@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":"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","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,wBAML,oBAACC,kBAAD;AACE,MAAA,WAAW,EAAEF,gBADf;AAEE,MAAA,gBAAgB,EAAEF,gBAFpB;AAGE,MAAA,gBAAgB,EAAEC;AAHpB,OAIMF,OAJN,gBAME,oBAAC,gBAAD,eAAsBI,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","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,oBAML,oBAACC,kBAAD;MACE,WAAW,EAAEF,gBADf;MAEE,gBAAgB,EAAEF,gBAFpB;MAGE,gBAAgB,EAAEC;OACdF,OAJN,gBAME,oBAAC,gBAAD,eAAsBI,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,UAAU,CAACC,iBAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,QAAQA,QAAR;AAAA,MAAkBC,UAAlB,QAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,SAAS,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,UAAU,CAACC,iBAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,SAAQA,QAAR;AAAA,MAAkBC,UAAlB,SAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,SAAS,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,UAAU,CAACC,iBAAD,CAAV,IAAiC,EADnC;MAAQC,QAAR,QAAQA,QAAR;MAAkBC,UAAlB,QAAkBA,UAAlB;MAAiCC,YAAjC;;EAGAC,SAAS,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,UAAU,CAACC,iBAAD,CAAV,IAAiC,EADnC;MAAQC,QAAR,SAAQA,QAAR;MAAkBC,UAAlB,SAAkBA,UAAlB;MAAiCC,YAAjC;;EAGAC,SAAS,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","nextProps","Component","defaultProps","propTypes","PropTypes","bool","func","oneOfType","number"],"mappings":"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"}
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","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","context"],"mappings":";;;AAGA,IAAQA,QAAR,GAAqBC,YAArB,CAAQD,QAAR;;IAEME,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,MAAH,QAAGA,MAAH;AAAA,sBAChB,oBAAC,QAAD,QAAW,UAAAC,OAAO;AAAA,WAAID,MAAM,CAACC,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","context"],"mappings":";;;AAGA,IAAQA,QAAR,GAAqBC,YAArB,CAAQD,QAAR;;IAEME,SAAS,GAAG,SAAZA,SAAY;EAAA,IAAGC,MAAH,QAAGA,MAAH;EAAA,oBAChB,oBAAC,QAAD,QAAW,UAAAC,OAAO;IAAA,OAAID,MAAM,CAACC,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","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","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,sBAClB,oBAAC,iBAAD,CAAmB,QAAnB,QACG,UAAAa,OAAO;AAAA,wBAAI,oBAAC,cAAD,eAAoBb,KAApB;AAA2B,MAAA,WAAW,EAAEa;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","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,oBAClB,oBAAC,iBAAD,CAAmB,QAAnB,QACG,UAAAa,OAAO;IAAA,oBAAI,oBAAC,cAAD,eAAoBb,KAApB;MAA2B,WAAW,EAAEa;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,KAAK,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,GAAG,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,sBAAO,oBAAC,QAAD,QAAWR,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,KAAK,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,GAAG,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,oBAAO,oBAAC,QAAD,QAAWR,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,gCAAgCL,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,gCAAgCL,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":";;;;;;;;;;;;;AASA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,QAAQ,EAAE,EADc;AAExBC,EAAAA,KAAK,EAAE,EAFiB;AAGxBC,EAAAA,OAAO,EAAE,EAHe;AAIxBC,EAAAA,SAAS,EAAE,EAJa;AAKxBC,EAAAA,WAAW,EAAE;AALW,CAA1B;AAQe,SAASC,qBAAT,OAOZ;AAAA,MANKC,QAML,QANDC,IAMC;AAAA,MALDC,IAKC,QALDA,IAKC;AAAA,MAJDL,SAIC,QAJDA,SAIC;AAAA,MAHDM,OAGC,QAHDA,OAGC;AAAA,MAFDC,gBAEC,QAFDA,gBAEC;AAAA,MADEC,KACF;;AACD;AACA,MAAMX,QAAQ,GAAGY,MAAM,EAAvB,CAFC;;AAID,kBAAeC,QAAQ,CAACP,QAAQ,IAAK;AAAA,WAAMQ,EAAM,EAAZ;AAAA,GAAd,CAAvB;AAAA;AAAA,MAAOP,IAAP;;AAEAP,EAAAA,QAAQ,CAACe,OAAT,GAAmB;AACjBR,IAAAA,IAAI,EAAJA,IADiB;AAEjBN,IAAAA,KAAK,EAAE,EAFU;AAGjBe,IAAAA,OAAO,EAAE,EAHQ;AAIjBd,IAAAA,OAAO,EAAE,EAJQ;AAIJ;AACbe,IAAAA,YAAY,EAAET,IALG;AAMjBU,IAAAA,OAAO,EAAE,EANQ;AAMJ;AACbf,IAAAA,SAAS,EAATA,SAPiB;AAQjBgB,IAAAA,GARiB,eAQbC,GARa,EAQR;AACP;AACA,aAAO,UAACC,IAAD;AAAA,eAAWrB,QAAQ,CAACe,OAAT,CAAiBO,IAAjB,CAAsBF,GAAtB,IAA6BC,IAAxC;AAAA,OAAP;AACD,KAXgB;AAYjBE,IAAAA,WAZiB,yBAYH;AACZ,aAAOvB,QAAQ,CAACe,OAAhB;AACD,KAdgB;AAejBJ,IAAAA,KAAK,EAALA;AAfiB,GAAnB,CANC;;AAyBD,MAAMa,UAAU,GAAGC,OAAO,CAAC,YAAM;AAC/B,QAAIC,cAAc,mCAAQ3B,iBAAR,GAA8BW,gBAA9B,CAAlB;;AAEAD,IAAAA,OAAO,CAACkB,OAAR,CAAgB,UAACC,MAAD,EAAY;AAC1B,UAAI,CAACA,MAAL,EAAa;AACbF,MAAAA,cAAc,GAAGE,MAAM,CAACF,cAAD,CAAvB;AACD,KAHD;AAKAG,IAAAA,MAAM,CAACC,IAAP,CAAYJ,cAAZ,EAA4BC,OAA5B,CAAoC,UAACP,GAAD,EAAS;AAC3C,UAAIW,KAAK,CAACC,OAAN,CAAcN,cAAc,CAACN,GAAD,CAA5B,CAAJ,EACEM,cAAc,CAACN,GAAD,CAAd,GAAsBa,OAAO,CAC3BP,cAAc,CAACN,GAAD,CADa,EAE3B,UAACc,IAAD;AAAA,eAAUA,IAAI,CAACC,KAAf;AAAA,OAF2B,CAA7B;AAIH,KAND;AAQA,WAAOT,cAAP;AACD,GAjByB,EAiBvB,EAjBuB,CAA1B,CAzBC;AA4CD;AACA;;AACA1B,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACxB,QAAX,CAAoBoC,MAApB,CACjBC,aADiB,EAEjBrC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACvB,KAAX,CAAiBmC,MAAjB,CACjBE,2BADiB,EAEjBtC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACtB,OAAX,CAAmBkC,MAAnB,CACjBG,6BADiB,EAEjBvC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,CAAiBZ,SAAjB,GAA6BqB,UAAU,CAACrB,SAAX,CAAqBiC,MAArB,CAC3B,UAACI,MAAD,EAASC,SAAT;AAAA,WAAuBA,SAAS,CAACD,MAAD,EAASxC,QAAQ,CAACe,OAAlB,CAAhC;AAAA,GAD2B,EAE3BZ,SAF2B,CAA7B;AAKA,SAAO;AAAEH,IAAAA,QAAQ,EAARA,QAAF;AAAYwB,IAAAA,UAAU,EAAVA;AAAZ,GAAP;AACD;;;;"}
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,MAAM,EAAvB,CAFC;;EAID,gBAAeC,QAAQ,CAACP,QAAQ,IAAK;IAAA,OAAMQ,EAAM,EAAZ;GAAd,CAAvB;;MAAOP,IAAP;;EAEAP,QAAQ,CAACe,OAAT,GAAmB;IACjBR,IAAI,EAAJA,IADiB;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,OAAO,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,OAAO,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,aADiB,EAEjBrC,QAAQ,CAACe,OAFQ,CAAnB;EAIAf,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACvB,KAAX,CAAiBmC,MAAjB,CACjBE,2BADiB,EAEjBtC,QAAQ,CAACe,OAFQ,CAAnB;EAIAf,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACtB,OAAX,CAAmBkC,MAAnB,CACjBG,6BADiB,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":";;;;;;IAAaA,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,MAACC,UAAD,uEAAc,EAAd;AAAA,MAAkBC,IAAlB;AAAA,SAA2B,YAGvD;AAAA,QAFHC,KAEG,uEAFK,EAEL;AAAA,QADHC,WACG;AACH,QAAIC,SAAS,GAAGF,KAAhB;AACAF,IAAAA,UAAU,CAACK,OAAX,CAAmB,UAACC,SAAD,EAAe;AAChCF,MAAAA,SAAS,GAAGE,SAAS,CAACF,SAAD,EAAYH,IAAZ,EAAkBE,WAAlB,CAArB;AACD,KAFD;AAGA,WAAOC,SAAP;AACD,GATgC;AAAA;AAWjC;;AACO,SAASG,kBAAT,CACLC,UADK,EAELC,KAFK,EAML;AAAA,MAHAN,WAGA,uEAHc,EAGd;AAAA,MAFAD,KAEA,uEAFQ,EAER;AAAA,MADAD,IACA;AACA,MAAIG,SAAS,GAAGF,KAAhB;AACAM,EAAAA,UAAU,CAACH,OAAX,CAAmB,UAACK,SAAD,EAAe;AAChCN,IAAAA,SAAS,GAAGM,SAAS,CAACD,KAAD,EAAQN,WAAR,EAAqBC,SAArB,EAAgCH,IAAhC,CAArB;AACD,GAFD;AAGA,SAAOG,SAAP;AACD;AAED;;AACO,SAASO,kBAAT,CAA4BC,UAA5B,EAAwCH,KAAxC,EAAuE;AAAA,MAAxBN,WAAwB,uEAAV,EAAU;AAAA,MAANF,IAAM;AAC5E,SAAOW,UAAU,CAACC,MAAX,CACL,UAACC,MAAD,EAASC,SAAT;AAAA,WAAuBA,SAAS,CAACD,MAAD,EAASX,WAAT,EAAsBF,IAAtB,CAAhC;AAAA,GADK,EAELQ,KAFK,CAAP;AAID;AAEM,SAASO,iBAAT,CACLJ,UADK,EAELK,QAFK,EAIL;AAAA,MADAC,YACA,uEADe,UAACC,MAAD;AAAA,WAAYA,MAAM,CAACC,IAAP,CAAYC,IAAxB;AAAA,GACf;AACA;AACA;AACA,SAAO,UAACnB,KAAD;AAAA,WACLU,UAAU,CAACC,MAAX,CACE,UAACC,MAAD,EAASC,SAAT;AAAA,aAAuBA,SAAS,CAACD,MAAD,EAASZ,KAAT,EAAgBe,QAAhB,CAAhC;AAAA,KADF,EAEEC,YAAY,CAAChB,KAAK,CAACiB,MAAP,CAFd,CADK;AAAA,GAAP;AAKD;IAEYG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD;AAAA,MAAUvB,UAAV,uEAAuB,EAAvB;;AAAA,oCAA8BwB,IAA9B;AAA8BA,IAAAA,IAA9B;AAAA;;AAAA,SAC7BxB,UAAU,CAACa,MAAX,CACE,UAACY,WAAD,EAAcnB,SAAd;AAAA,WAA4BA,SAAS,MAAT,UAAUmB,WAAV,SAA0BD,IAA1B,EAA5B;AAAA,GADF,EAEED,OAFF,CAD6B;AAAA;IAMlBG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD,EAAU3B,UAAV,EAAsBC,IAAtB,EAA+B;AAC5D,MAAM2B,WAAW,GAAGN,eAAe,CACjCK,OADiC,EAEjC3B,UAAU,CAAC0B,eAFsB,EAGjCzB,IAHiC,CAAnC;AAKA,SAAO2B,WAAW,CAACC,GAAZ,CAAgB,UAACC,MAAD,EAASC,KAAT;AAAA,WACrBT,eAAe,CAACQ,MAAD,EAAS9B,UAAU,CAACgC,cAApB,EAAoC/B,IAApC,EAA0C8B,KAA1C,CADM;AAAA,GAAhB,CAAP;AAGD;IAEYE,aAAa,GAAG,SAAhBA,aAAgB,CAAChB,QAAD,EAAWiB,YAAX;AAAA,yCACxBjB,QADwB,GAExBiB,YAAY,CAACjB,QAAD,CAFY;AAAA;IAKhBkB,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAClB,QAAD,EAAWmB,SAAX,EAAyB;AAClE,mBAA2BA,SAAS,CAACnB,QAAD,CAApC;AAAA,MAAQoB,KAAR,cAAQA,KAAR;AAAA,MAAeC,OAAf,cAAeA,OAAf;;AACA,yCACKrB,QADL;AAEEoB,IAAAA,KAAK,kCACApB,QAAQ,CAACoB,KADT,GAEAA,KAFA,CAFP;AAMEC,IAAAA,OAAO,kCACFrB,QAAQ,CAACqB,OADP,GAEFA,OAFE;AANT;AAWD;;AAED,IAAMC,YAAY,GAAG,SAAfA,YAAe,CACnBtB,QADmB;AAAA,MAEjBuB,GAFiB,QAEjBA,GAFiB;AAAA,MAEZC,OAFY,QAEZA,OAFY;AAAA,MAEHC,OAFG,QAEHA,OAFG;AAAA,MAEMC,oBAFN,QAEMA,oBAFN;AAAA,yCAIhB1B,QAJgB;AAKnB2B,IAAAA,OAAO,kCACF3B,QAAQ,CAAC2B,OADP,2BAEJJ,GAFI,EAEE;AAAEC,MAAAA,OAAO,EAAPA,OAAF;AAAWC,MAAAA,OAAO,EAAPA,OAAX;AAAoBC,MAAAA,oBAAoB,EAApBA;AAApB,KAFF;AALY;AAAA,CAArB;;IAWaE,6BAA6B,GAAG,SAAhCA,6BAAgC,CAAC5B,QAAD,EAAW6B,WAAX,EAA2B;AACtE,MAAMF,OAAO,GAAGE,WAAW,CAAC7B,QAAD,CAA3B;;AACA,MAAI8B,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAJ,EAA4B;AAC1B,WAAOA,OAAO,CAAC/B,MAAR,CAAe0B,YAAf,EAA6BtB,QAA7B,CAAP;AACD;;AACD,SAAOsB,YAAY,CAACtB,QAAD,EAAW2B,OAAX,CAAnB;AACD;;;;"}
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","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,GAAG,CAAC;AAAA,iBAAMA,GAAG,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,gBACL,oBAAC,gBAAD,EAAsB,KAAKG,KAA3B,CADK,GAGLN,QAHF;AAKD;AAfoE;;AAAA;AAAA,IACnCO,aADmC;;AAkBvE,SAAOC,mBAAmB,CAACP,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","state","shouldRender","raf","setState","props","PureComponent","hoistNonReactStatic"],"mappings":";;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASA,oBAAT,CAA8BC,gBAA9B,EAAgDC,QAAhD,EAA0D;EAAA,IACjEC,qBADiE;IAAA;;IAAA;;IAAA;MAAA;;MAAA;;MAAA;QAAA;;;MAAA;MAAA,MAErEC,KAFqE,GAE7D;QAAEC,YAAY,EAAE;OAF6C;MAAA;;;IAAA;MAAA;MAAA,OAIrE,6BAAoB;QAAA;;QAClBC,GAAG,CAAC;UAAA,OAAMA,GAAG,CAAC;YAAA,OAAM,MAAI,CAACC,QAAL,CAAc;cAAEF,YAAY,EAAE;aAA9B,CAAN;WAAD,CAAT;SAAD,CAAH;;;MALmE;MAAA,OAQrE,kBAAS;;QAEP,OAAO,KAAKD,KAAL,CAAWC,YAAX,gBACL,oBAAC,gBAAD,EAAsB,KAAKG,KAA3B,CADK,GAGLN,QAHF;;;;IAVmE;IACnCO,aADmC;;EAkBvE,OAAOC,mBAAmB,CAACP,qBAAD,EAAwBF,gBAAxB,CAA1B;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarProvider.js","sources":["../../../src/toolbar/ToolbarProvider.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState, useEffect } from 'react';\nimport DSPopover from '@elliemae/ds-popper';\nimport { useOnClickOutside } from '@elliemae/ds-utilities';\n\nexport const ToolbarContext = React.createContext();\n\nconst { Provider } = ToolbarContext;\n\nconst useScrollListener = (callback, dependencies) => {\n useEffect(() => {\n window.addEventListener('scroll', callback, true);\n return () => {\n window.removeEventListener('scroll', callback, true);\n };\n }, [dependencies]);\n};\n\nconst noop = () => null;\nfunction ToolbarProvider({ delay = 200, children, onHide = noop, onShow = noop }) {\n const showTimer = useRef();\n const hideTimer = useRef();\n const toolbarRef = useRef();\n const [tooltipState, setTooltipState] = useState({});\n\n const show = (state) => {\n if (state.reference === tooltipState.reference) clearTimeout(hideTimer.current);\n showTimer.current = setTimeout(\n () =>\n setTooltipState({\n ...state,\n visible: true,\n }),\n delay,\n );\n onShow();\n };\n\n const hide = (e, force) => {\n if (!force) clearTimeout(showTimer.current);\n hideTimer.current = setTimeout(\n () =>\n setTooltipState((prevState) => ({\n ...prevState,\n visible: false,\n })),\n 100,\n );\n onHide(tooltipState, e);\n };\n\n useScrollListener((e) => hide(e, true), tooltipState.visible);\n useOnClickOutside(toolbarRef, () => hide());\n\n const keyDownHandler = (e) => {\n if (e.key === 'Escape') {\n hide(e);\n }\n };\n\n useEffect(() => {\n window.addEventListener('keydown', keyDownHandler);\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n };\n });\n\n const value = useMemo(\n () => ({\n state: tooltipState,\n show,\n hide,\n }),\n [tooltipState.reference],\n );\n\n return (\n <Provider value={value}>\n {children}\n <DSPopover\n boundaries=\"scrollParent\"\n {...(tooltipState.options || {})}\n content={tooltipState.renderer}\n placement=\"left\"\n referenceEl={tooltipState.reference}\n renderer={({ as: Component, style, children: Content }) => (\n <div ref={toolbarRef} onMouseEnter={(e) => show(tooltipState, e)} onMouseLeave={hide}>\n <Component style={style}>{Content}</Component>\n </div>\n )}\n style={tooltipState.style}\n visible={tooltipState.visible}\n />\n </Provider>\n );\n}\n\nexport default React.memo(ToolbarProvider);\n"],"names":["ToolbarContext","React","createContext","Provider","useScrollListener","callback","dependencies","useEffect","window","addEventListener","removeEventListener","noop","ToolbarProvider","delay","children","onHide","onShow","showTimer","useRef","hideTimer","toolbarRef","useState","tooltipState","setTooltipState","show","state","reference","clearTimeout","current","setTimeout","visible","hide","e","force","prevState","useOnClickOutside","keyDownHandler","key","value","useMemo","options","renderer","Component","as","style","Content","memo"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarProvider.js","sources":["../../../src/toolbar/ToolbarProvider.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState, useEffect } from 'react';\nimport DSPopover from '@elliemae/ds-popper';\nimport { useOnClickOutside } from '@elliemae/ds-utilities';\n\nexport const ToolbarContext = React.createContext();\n\nconst { Provider } = ToolbarContext;\n\nconst useScrollListener = (callback, dependencies) => {\n useEffect(() => {\n window.addEventListener('scroll', callback, true);\n return () => {\n window.removeEventListener('scroll', callback, true);\n };\n }, [dependencies]);\n};\n\nconst noop = () => null;\nfunction ToolbarProvider({ delay = 200, children, onHide = noop, onShow = noop }) {\n const showTimer = useRef();\n const hideTimer = useRef();\n const toolbarRef = useRef();\n const [tooltipState, setTooltipState] = useState({});\n\n const show = (state) => {\n if (state.reference === tooltipState.reference) clearTimeout(hideTimer.current);\n showTimer.current = setTimeout(\n () =>\n setTooltipState({\n ...state,\n visible: true,\n }),\n delay,\n );\n onShow();\n };\n\n const hide = (e, force) => {\n if (!force) clearTimeout(showTimer.current);\n hideTimer.current = setTimeout(\n () =>\n setTooltipState((prevState) => ({\n ...prevState,\n visible: false,\n })),\n 100,\n );\n onHide(tooltipState, e);\n };\n\n useScrollListener((e) => hide(e, true), tooltipState.visible);\n useOnClickOutside(toolbarRef, () => hide());\n\n const keyDownHandler = (e) => {\n if (e.key === 'Escape') {\n hide(e);\n }\n };\n\n useEffect(() => {\n window.addEventListener('keydown', keyDownHandler);\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n };\n });\n\n const value = useMemo(\n () => ({\n state: tooltipState,\n show,\n hide,\n }),\n [tooltipState.reference],\n );\n\n return (\n <Provider value={value}>\n {children}\n <DSPopover\n boundaries=\"scrollParent\"\n {...(tooltipState.options || {})}\n content={tooltipState.renderer}\n placement=\"left\"\n referenceEl={tooltipState.reference}\n renderer={({ as: Component, style, children: Content }) => (\n <div ref={toolbarRef} onMouseEnter={(e) => show(tooltipState, e)} onMouseLeave={hide}>\n <Component style={style}>{Content}</Component>\n </div>\n )}\n style={tooltipState.style}\n visible={tooltipState.visible}\n />\n </Provider>\n );\n}\n\nexport default React.memo(ToolbarProvider);\n"],"names":["ToolbarContext","React","createContext","Provider","useScrollListener","callback","dependencies","useEffect","window","addEventListener","removeEventListener","noop","ToolbarProvider","delay","children","onHide","onShow","showTimer","useRef","hideTimer","toolbarRef","useState","tooltipState","setTooltipState","show","state","reference","clearTimeout","current","setTimeout","visible","hide","e","force","prevState","useOnClickOutside","keyDownHandler","key","value","useMemo","options","renderer","Component","as","style","Content","memo"],"mappings":";;;;;;;;;;IAIaA,cAAc,gBAAGC,KAAK,CAACC,aAAN;AAE9B,IAAQC,QAAR,GAAqBH,cAArB,CAAQG,QAAR;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAWC,YAAX,EAA4B;EACpDC,SAAS,CAAC,YAAM;IACdC,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkCJ,QAAlC,EAA4C,IAA5C;IACA,OAAO,YAAM;MACXG,MAAM,CAACE,mBAAP,CAA2B,QAA3B,EAAqCL,QAArC,EAA+C,IAA/C;KADF;GAFO,EAKN,CAACC,YAAD,CALM,CAAT;AAMD,CAPD;;AASA,IAAMK,IAAI,GAAG,SAAPA,IAAO;EAAA,OAAM,IAAN;AAAA,CAAb;;AACA,SAASC,eAAT,OAAkF;EAAA,sBAAvDC,KAAuD;MAAvDA,KAAuD,2BAA/C,GAA+C;MAA1CC,QAA0C,QAA1CA,QAA0C;yBAAhCC,MAAgC;MAAhCA,MAAgC,4BAAvBJ,IAAuB;yBAAjBK,MAAiB;MAAjBA,MAAiB,4BAARL,IAAQ;EAChF,IAAMM,SAAS,GAAGC,MAAM,EAAxB;EACA,IAAMC,SAAS,GAAGD,MAAM,EAAxB;EACA,IAAME,UAAU,GAAGF,MAAM,EAAzB;;EACA,gBAAwCG,QAAQ,CAAC,EAAD,CAAhD;;MAAOC,YAAP;MAAqBC,eAArB;;EAEA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;IACtB,IAAIA,KAAK,CAACC,SAAN,KAAoBJ,YAAY,CAACI,SAArC,EAAgDC,YAAY,CAACR,SAAS,CAACS,OAAX,CAAZ;IAChDX,SAAS,CAACW,OAAV,GAAoBC,UAAU,CAC5B;MAAA,OACEN,eAAe,iCACVE,KADU;QAEbK,OAAO,EAAE;SAHb;KAD4B,EAM5BjB,KAN4B,CAA9B;IAQAG,MAAM;GAVR;;EAaA,IAAMe,IAAI,GAAG,SAAPA,IAAO,CAACC,CAAD,EAAIC,KAAJ,EAAc;IACzB,IAAI,CAACA,KAAL,EAAYN,YAAY,CAACV,SAAS,CAACW,OAAX,CAAZ;IACZT,SAAS,CAACS,OAAV,GAAoBC,UAAU,CAC5B;MAAA,OACEN,eAAe,CAAC,UAACW,SAAD;QAAA,uCACXA,SADW;UAEdJ,OAAO,EAAE;;OAFI,CADjB;KAD4B,EAM5B,GAN4B,CAA9B;IAQAf,MAAM,CAACO,YAAD,EAAeU,CAAf,CAAN;GAVF;;EAaA5B,iBAAiB,CAAC,UAAC4B,CAAD;IAAA,OAAOD,IAAI,CAACC,CAAD,EAAI,IAAJ,CAAX;GAAD,EAAuBV,YAAY,CAACQ,OAApC,CAAjB;EACAK,iBAAiB,CAACf,UAAD,EAAa;IAAA,OAAMW,IAAI,EAAV;GAAb,CAAjB;;EAEA,IAAMK,cAAc,GAAG,SAAjBA,cAAiB,CAACJ,CAAD,EAAO;IAC5B,IAAIA,CAAC,CAACK,GAAF,KAAU,QAAd,EAAwB;MACtBN,IAAI,CAACC,CAAD,CAAJ;;GAFJ;;EAMAzB,SAAS,CAAC,YAAM;IACdC,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC2B,cAAnC;IACA,OAAO,YAAM;MACX5B,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsC0B,cAAtC;KADF;GAFO,CAAT;EAOA,IAAME,KAAK,GAAGC,OAAO,CACnB;IAAA,OAAO;MACLd,KAAK,EAAEH,YADF;MAELE,IAAI,EAAJA,IAFK;MAGLO,IAAI,EAAJA;KAHF;GADmB,EAMnB,CAACT,YAAY,CAACI,SAAd,CANmB,CAArB;EASA,oBACE,oBAAC,QAAD;IAAU,KAAK,EAAEY;KACdxB,QADH,eAEE,oBAAC,SAAD;IACE,UAAU,EAAC;KACNQ,YAAY,CAACkB,OAAb,IAAwB,EAF/B;IAGE,OAAO,EAAElB,YAAY,CAACmB,QAHxB;IAIE,SAAS,EAAC,MAJZ;IAKE,WAAW,EAAEnB,YAAY,CAACI,SAL5B;IAME,QAAQ,EAAE;MAAA,IAAOgB,SAAP,SAAGC,EAAH;UAAkBC,KAAlB,SAAkBA,KAAlB;UAAmCC,OAAnC,SAAyB/B,QAAzB;MAAA,oBACR;QAAK,GAAG,EAAEM,UAAV;QAAsB,YAAY,EAAE,sBAACY,CAAD;UAAA,OAAOR,IAAI,CAACF,YAAD,CAAX;SAApC;QAAkE,YAAY,EAAES;sBAC9E,oBAAC,SAAD;QAAW,KAAK,EAAEa;SAAQC,OAA1B,CADF,CADQ;KANZ;IAWE,KAAK,EAAEvB,YAAY,CAACsB,KAXtB;IAYE,OAAO,EAAEtB,YAAY,CAACQ;KAd1B,CADF;AAmBD;;AAED,qCAAe7B,KAAK,CAAC6C,IAAN,CAAWlC,eAAX,CAAf;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VolatileRowsListener.js","sources":["../../../src/useDataGrid/VolatileRowsListener.tsx"],"sourcesContent":["import { safeCall } from '@elliemae/ds-utilities';\n\nexport default class VolatileRowsListener {\n observers = [];\n\n observe(listener) {\n this.observers.push(listener);\n }\n\n notify(nextRows) {\n this.observers.forEach(observer => safeCall(observer, nextRows));\n this.observers = [];\n }\n}\n"],"names":["VolatileRowsListener","observers","listener","push","nextRows","forEach","observer","safeCall"],"mappings":";;;;IAEqBA;;;;SACnBC,YAAY;;;;;WAEZ,iBAAQC,QAAR,EAAkB;AAChB,WAAKD,SAAL,CAAeE,IAAf,CAAoBD,QAApB;AACD;;;WAED,gBAAOE,QAAP,EAAiB;AACf,WAAKH,SAAL,CAAeI,OAAf,CAAuB,UAAAC,QAAQ;AAAA,eAAIC,QAAQ,CAACD,QAAD,EAAWF,QAAX,CAAZ;AAAA,OAA/B;AACA,WAAKH,SAAL,GAAiB,EAAjB;AACD;;;;;;;;"}
1
+ {"version":3,"file":"VolatileRowsListener.js","sources":["../../../src/useDataGrid/VolatileRowsListener.tsx"],"sourcesContent":["import { safeCall } from '@elliemae/ds-utilities';\n\nexport default class VolatileRowsListener {\n observers = [];\n\n observe(listener) {\n this.observers.push(listener);\n }\n\n notify(nextRows) {\n this.observers.forEach(observer => safeCall(observer, nextRows));\n this.observers = [];\n }\n}\n"],"names":["VolatileRowsListener","observers","listener","push","nextRows","forEach","observer","safeCall"],"mappings":";;;;IAEqBA;;;;SACnBC,YAAY;;;;;WAEZ,iBAAQC,QAAR,EAAkB;MAChB,KAAKD,SAAL,CAAeE,IAAf,CAAoBD,QAApB;;;;WAGF,gBAAOE,QAAP,EAAiB;MACf,KAAKH,SAAL,CAAeI,OAAf,CAAuB,UAAAC,QAAQ;QAAA,OAAIC,QAAQ,CAACD,QAAD,EAAWF,QAAX,CAAZ;OAA/B;MACA,KAAKH,SAAL,GAAiB,EAAjB;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"initColumnDefinition.js","sources":["../../../src/useDataGrid/initColumnDefinition.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n get,\n curry,\n set,\n cloneDeep,\n isFunction,\n} from '@elliemae/ds-utilities';\n\n// TODO: use lenses to access nested fields\n\nexport const appendHeaderFormatter = curry((formatter, column) => ({\n ...column,\n header: {\n ...column.header,\n formatters: [...get(column, 'header.formatters', []), formatter],\n },\n}));\n\nexport const appendCellFormatter = curry(\n (formatter, column, path = 'formatters') => {\n const nextColumn = cloneDeep(column);\n const formatters = get(nextColumn, ['cell', path], []);\n const scrollingFormatters = get(nextColumn, 'cell.scrollingFormatters', []);\n if (Array.isArray(formatter)) {\n if (formatter[1]) scrollingFormatters.push(formatter[1]);\n formatters.push(formatter[0]);\n } else {\n formatters.push(formatter);\n scrollingFormatters.push(formatter);\n }\n set(nextColumn, ['cell', path], formatters);\n set(nextColumn, 'cell.scrollingFormatters', scrollingFormatters);\n return nextColumn;\n },\n);\n\nconst defaultColumnDefinitionOptions = {\n normalize: false,\n useTextTruncation: true,\n isUserColumn: true,\n visible: true,\n};\n\nexport const mergeClassNameToColumnHeader = curry((className, column) => {\n const headerProps = get(column, ['header', 'props'], {});\n const headerClassName = headerProps.className || '';\n return {\n ...column,\n header: {\n ...column.header,\n props: {\n ...headerProps,\n className: `${headerClassName} ${className}`,\n },\n },\n };\n});\n\nexport default function initColumnDefinition(options = {}) {\n // eslint-disable-next-line complexity\n return (column) => {\n // todo: clean this\n if (column.type === 'number') {\n // eslint-disable-next-line no-param-reassign\n column.cellStyle = {\n textAlign: 'right',\n };\n }\n const { useTextTruncation = true, isUserColumn, visible, normalize } = {\n ...defaultColumnDefinitionOptions,\n ...options,\n };\n\n if (normalize) {\n // eslint-disable-next-line no-param-reassign\n column.originalProperty = column.property;\n // eslint-disable-next-line no-param-reassign\n column.property = column.property.replace(/\\s+/g, '');\n }\n\n // eslint-disable-next-line no-param-reassign\n column.props = {\n ...column.props,\n style: {},\n };\n // eslint-disable-next-line no-param-reassign\n column.header = {\n ...column.header,\n label: column.label,\n formatters: [...get(column, ['header', 'formatters'], [])],\n props: {\n style: column.headerStyle || {},\n },\n };\n if (\n useTextTruncation &&\n !(\n isFunction(column.customHeaderRenderer) ||\n column.header.formatters.length\n )\n ) {\n column.header.formatters.push((value) => (\n <span className=\"cell-value\">{value}</span>\n ));\n }\n\n // eslint-disable-next-line no-param-reassign\n column.cell = {\n ...column.cell,\n transforms: [],\n formatters: [...get(column, ['cell', 'formatters'], [])],\n scrollingFormatters: [...get(column, ['cell', 'formatters'], [])],\n props: {\n style: column.cellStyle || {},\n },\n };\n\n if (\n useTextTruncation &&\n !(isFunction(column.customRenderer) || column.cell.formatters.length)\n ) {\n column.cell.formatters.push((value) => (\n <span\n className=\"cell-value\"\n style={{\n justifyContent:\n column.type === 'number' ? 'flex-end' : 'flex-start',\n }}\n >\n {value}\n </span>\n ));\n }\n // eslint-disable-next-line no-param-reassign\n column.uuid = column.uuid || uuidv4();\n // eslint-disable-next-line no-param-reassign\n column.visible = column.visible === undefined ? visible : column.visible;\n // eslint-disable-next-line no-param-reassign, max-lines\n column.isUserColumn = column.isUserColumn || isUserColumn;\n // eslint-disable-next-line no-param-reassign\n column.headerHookEffects = [];\n return column;\n };\n}\n"],"names":["appendHeaderFormatter","curry","formatter","column","header","formatters","get","appendCellFormatter","path","nextColumn","cloneDeep","scrollingFormatters","Array","isArray","push","set","defaultColumnDefinitionOptions","normalize","useTextTruncation","isUserColumn","visible","mergeClassNameToColumnHeader","className","headerProps","headerClassName","props","initColumnDefinition","options","type","cellStyle","textAlign","originalProperty","property","replace","style","label","headerStyle","isFunction","customHeaderRenderer","length","value","cell","transforms","customRenderer","justifyContent","uuid","uuidv4","undefined","headerHookEffects"],"mappings":"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"}
1
+ {"version":3,"file":"initColumnDefinition.js","sources":["../../../src/useDataGrid/initColumnDefinition.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n get,\n curry,\n set,\n cloneDeep,\n isFunction,\n} from '@elliemae/ds-utilities';\n\n// TODO: use lenses to access nested fields\n\nexport const appendHeaderFormatter = curry((formatter, column) => ({\n ...column,\n header: {\n ...column.header,\n formatters: [...get(column, 'header.formatters', []), formatter],\n },\n}));\n\nexport const appendCellFormatter = curry(\n (formatter, column, path = 'formatters') => {\n const nextColumn = cloneDeep(column);\n const formatters = get(nextColumn, ['cell', path], []);\n const scrollingFormatters = get(nextColumn, 'cell.scrollingFormatters', []);\n if (Array.isArray(formatter)) {\n if (formatter[1]) scrollingFormatters.push(formatter[1]);\n formatters.push(formatter[0]);\n } else {\n formatters.push(formatter);\n scrollingFormatters.push(formatter);\n }\n set(nextColumn, ['cell', path], formatters);\n set(nextColumn, 'cell.scrollingFormatters', scrollingFormatters);\n return nextColumn;\n },\n);\n\nconst defaultColumnDefinitionOptions = {\n normalize: false,\n useTextTruncation: true,\n isUserColumn: true,\n visible: true,\n};\n\nexport const mergeClassNameToColumnHeader = curry((className, column) => {\n const headerProps = get(column, ['header', 'props'], {});\n const headerClassName = headerProps.className || '';\n return {\n ...column,\n header: {\n ...column.header,\n props: {\n ...headerProps,\n className: `${headerClassName} ${className}`,\n },\n },\n };\n});\n\nexport default function initColumnDefinition(options = {}) {\n // eslint-disable-next-line complexity\n return (column) => {\n // todo: clean this\n if (column.type === 'number') {\n // eslint-disable-next-line no-param-reassign\n column.cellStyle = {\n textAlign: 'right',\n };\n }\n const { useTextTruncation = true, isUserColumn, visible, normalize } = {\n ...defaultColumnDefinitionOptions,\n ...options,\n };\n\n if (normalize) {\n // eslint-disable-next-line no-param-reassign\n column.originalProperty = column.property;\n // eslint-disable-next-line no-param-reassign\n column.property = column.property.replace(/\\s+/g, '');\n }\n\n // eslint-disable-next-line no-param-reassign\n column.props = {\n ...column.props,\n style: {},\n };\n // eslint-disable-next-line no-param-reassign\n column.header = {\n ...column.header,\n label: column.label,\n formatters: [...get(column, ['header', 'formatters'], [])],\n props: {\n style: column.headerStyle || {},\n },\n };\n if (\n useTextTruncation &&\n !(\n isFunction(column.customHeaderRenderer) ||\n column.header.formatters.length\n )\n ) {\n column.header.formatters.push((value) => (\n <span className=\"cell-value\">{value}</span>\n ));\n }\n\n // eslint-disable-next-line no-param-reassign\n column.cell = {\n ...column.cell,\n transforms: [],\n formatters: [...get(column, ['cell', 'formatters'], [])],\n scrollingFormatters: [...get(column, ['cell', 'formatters'], [])],\n props: {\n style: column.cellStyle || {},\n },\n };\n\n if (\n useTextTruncation &&\n !(isFunction(column.customRenderer) || column.cell.formatters.length)\n ) {\n column.cell.formatters.push((value) => (\n <span\n className=\"cell-value\"\n style={{\n justifyContent:\n column.type === 'number' ? 'flex-end' : 'flex-start',\n }}\n >\n {value}\n </span>\n ));\n }\n // eslint-disable-next-line no-param-reassign\n column.uuid = column.uuid || uuidv4();\n // eslint-disable-next-line no-param-reassign\n column.visible = column.visible === undefined ? visible : column.visible;\n // eslint-disable-next-line no-param-reassign, max-lines\n column.isUserColumn = column.isUserColumn || isUserColumn;\n // eslint-disable-next-line no-param-reassign\n column.headerHookEffects = [];\n return column;\n };\n}\n"],"names":["appendHeaderFormatter","curry","formatter","column","header","formatters","get","appendCellFormatter","path","nextColumn","cloneDeep","scrollingFormatters","Array","isArray","push","set","defaultColumnDefinitionOptions","normalize","useTextTruncation","isUserColumn","visible","mergeClassNameToColumnHeader","className","headerProps","headerClassName","props","initColumnDefinition","options","type","cellStyle","textAlign","originalProperty","property","replace","style","label","headerStyle","isFunction","customHeaderRenderer","length","value","cell","transforms","customRenderer","justifyContent","uuid","uuidv4","undefined","headerHookEffects"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGrid.js","sources":["../../../src/useDataGrid/useDataGrid.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport {\n cloneDeep,\n compose,\n isEqual,\n isObject,\n setRef, \n usePrevious, \n useDerivedStateFromProps \n} from '@elliemae/ds-utilities';\nimport { useMemo, useRef, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as resolve from 'table-resolver';\nimport initColumnDefinition from './initColumnDefinition';\nimport {\n applyDecorators,\n decorateColumns,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport VolatileRowsListener from './VolatileRowsListener';\nimport { isInternetExplorer } from '../utils';\n\nconst IS_INTERNET_EXPLORER = isInternetExplorer();\n\n// TODO: Reuse createDataInstance for the grid the same\n// way as the list does ex: packages/ds-shared/src/useDataList/useDataList.js\n// eslint-disable-next-line max-statements\nexport default function useDataGrid({\n uuid: uuidProp,\n plugins: pluginsFromProps,\n rows,\n columns,\n renderers = {},\n ...props\n}) {\n const plugins = pluginsFromProps;\n const instance = useRef();\n const tableRef = useRef();\n const headerRef = useRef();\n const bodyRef = useRef();\n const bodyInnerRef = useRef();\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n const [hasScroll, setHasScroll] = useState(false);\n const [isRowDragging, setIsRowDragging] = useState(false);\n const isScrolling = useRef();\n const shouldRefocus = useRef(); // todo: we probably need a plugin for focus related stuff\n const [RowsObserver] = useState(() => new VolatileRowsListener());\n\n // todo move this with rows composition\n const [originalRows, updateRows] = useDerivedStateFromProps(rows, {\n onUpdate: resolve.resolve({\n columns,\n method: (extra) =>\n compose(\n resolve.byFunction('valueTransformation')(extra),\n resolve.nested(extra),\n ),\n }),\n updateOnStateChange: true,\n });\n\n instance.current = {\n decoratedRenderers: cloneDeep(renderers),\n decoratedColumns: columns,\n columns,\n rows,\n composedRows: originalRows,\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n effects: [],\n uuid,\n props,\n refs: {\n table: tableRef,\n body: bodyRef,\n header: headerRef,\n innerBody: bodyInnerRef,\n },\n state: {\n hasScroll,\n },\n actions: {\n updateRows,\n },\n updateRows,\n // eslint-disable-next-line no-return-assign\n enableEvents: () =>\n (document.body.style.pointerEvents = IS_INTERNET_EXPLORER ? '' : null),\n // eslint-disable-next-line no-return-assign\n disableEvents: () => (document.body.style.pointerEvents = 'none'),\n observeRows: (observer) => RowsObserver.observe(observer),\n hotKeys: {},\n shouldRefocus,\n isScrolling,\n setHasScroll,\n setIsRowDragging,\n isRowDragging,\n plugins,\n };\n instance.current.getState = () => instance.current.state;\n instance.current.getInstance = () => instance.current;\n\n const defaultDecorators = {\n decorateGrid: [],\n registerStateHook: [],\n registerHotKeys: [],\n decorateColumn: [],\n decorateColumns: [\n (cols) =>\n cols.map((col) =>\n initColumnDefinition({\n useTextTruncation: col.useTextTruncation,\n wrapText: props.wrapText,\n normalize: props.normalizeDataKeys,\n })(col),\n ),\n ],\n decorateRenderers: [],\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n getHeaderProps: [],\n composeRows: [],\n };\n\n const decorators = useMemo(() => {\n let nextDecorators = defaultDecorators;\n // eslint-disable-next-line no-return-assign\n plugins.forEach((plugin) => (nextDecorators = plugin(nextDecorators)));\n return nextDecorators;\n }, [plugins]);\n\n instance.current = decorators.decorateGrid.reduce(\n (nextInstance, decorator) => ({\n ...nextInstance,\n ...decorator(instance.current),\n }),\n instance.current,\n );\n\n instance.current = decorators.registerStateHook.reduce(\n (nextInstance, decorator) => {\n const { state, actions } = decorator(instance.current);\n return {\n ...nextInstance,\n state: {\n ...nextInstance.state,\n ...state,\n },\n actions: {\n ...nextInstance.actions,\n ...actions,\n },\n };\n },\n instance.current,\n );\n\n const reduceHotKey = (nextInstance, { key, handler, options }) => ({\n ...nextInstance,\n hotKeys: {\n ...nextInstance.hotKeys,\n [key]: { handler, options },\n },\n });\n instance.current = decorators.registerHotKeys.reduce(\n (nextInstance, decorator) => {\n const hotKeys = decorator(nextInstance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, nextInstance);\n }\n return reduceHotKey(nextInstance, hotKeys);\n },\n instance.current,\n );\n\n instance.current.decoratedRenderers = applyDecorators(\n instance.current.decoratedRenderers,\n decorators.decorateRenderers,\n instance.current,\n );\n\n instance.current.decoratedColumns = useMemo(() => {\n const visibleColumns = cloneDeep(columns).filter(\n (column) => typeof column.visible === 'undefined' || column.visible,\n );\n return visibleColumns.length\n ? decorateColumns(visibleColumns, decorators, instance.current)\n : [];\n }, [columns]);\n\n instance.current.getBodyProps = reducePropsGetter(\n decorators.getBodyProps,\n instance.current,\n );\n instance.current.getHeaderProps = reducePropsGetter(\n decorators.getHeaderProps,\n instance.current,\n );\n instance.current.getRowProps = reducePropsGetter(\n decorators.getRowProps,\n instance.current,\n );\n instance.current.getHeaderRowProps = reducePropsGetter(\n decorators.getHeaderRowProps,\n instance.current,\n );\n instance.current.getTableProps = reducePropsGetter(\n decorators.getTableProps,\n instance.current,\n );\n\n instance.current.composedRows = decorators.composeRows.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n instance.current.composedRows,\n );\n\n RowsObserver.notify(instance.current.composedRows);\n\n const currentShouldRefocus = instance.current.shouldRefocus.current;\n const prevState = usePrevious(instance.current.state);\n if (isObject(currentShouldRefocus) && currentShouldRefocus.forced) {\n instance.current.shouldRefocus.current = currentShouldRefocus.value;\n } else {\n instance.current.shouldRefocus.current = !isEqual(\n prevState,\n instance.current.state,\n );\n }\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return {\n ...instance.current,\n decorators,\n };\n}\n"],"names":["IS_INTERNET_EXPLORER","isInternetExplorer","useDataGrid","uuidProp","uuid","pluginsFromProps","plugins","rows","columns","renderers","props","instance","useRef","tableRef","headerRef","bodyRef","bodyInnerRef","useState","uuidv4","hasScroll","setHasScroll","isRowDragging","setIsRowDragging","isScrolling","shouldRefocus","VolatileRowsListener","RowsObserver","useDerivedStateFromProps","onUpdate","resolve","method","extra","compose","byFunction","nested","updateOnStateChange","originalRows","updateRows","current","decoratedRenderers","cloneDeep","decoratedColumns","composedRows","getRowProps","getHeaderRowProps","getBodyProps","getTableProps","effects","refs","table","body","header","innerBody","state","actions","enableEvents","document","style","pointerEvents","disableEvents","observeRows","observer","observe","hotKeys","getState","getInstance","defaultDecorators","decorateGrid","registerStateHook","registerHotKeys","decorateColumn","decorateColumns","cols","map","col","initColumnDefinition","useTextTruncation","wrapText","normalize","normalizeDataKeys","decorateRenderers","getHeaderProps","composeRows","decorators","useMemo","nextDecorators","forEach","plugin","reduce","nextInstance","decorator","reduceHotKey","key","handler","options","Array","isArray","applyDecorators","visibleColumns","filter","column","visible","length","reducePropsGetter","nextRows","getter","notify","currentShouldRefocus","prevState","usePrevious","isObject","forced","value","isEqual","instanceRef","setRef"],"mappings":"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"}
1
+ {"version":3,"file":"useDataGrid.js","sources":["../../../src/useDataGrid/useDataGrid.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport {\n cloneDeep,\n compose,\n isEqual,\n isObject,\n setRef, \n usePrevious, \n useDerivedStateFromProps \n} from '@elliemae/ds-utilities';\nimport { useMemo, useRef, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as resolve from 'table-resolver';\nimport initColumnDefinition from './initColumnDefinition';\nimport {\n applyDecorators,\n decorateColumns,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport VolatileRowsListener from './VolatileRowsListener';\nimport { isInternetExplorer } from '../utils';\n\nconst IS_INTERNET_EXPLORER = isInternetExplorer();\n\n// TODO: Reuse createDataInstance for the grid the same\n// way as the list does ex: packages/ds-shared/src/useDataList/useDataList.js\n// eslint-disable-next-line max-statements\nexport default function useDataGrid({\n uuid: uuidProp,\n plugins: pluginsFromProps,\n rows,\n columns,\n renderers = {},\n ...props\n}) {\n const plugins = pluginsFromProps;\n const instance = useRef();\n const tableRef = useRef();\n const headerRef = useRef();\n const bodyRef = useRef();\n const bodyInnerRef = useRef();\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n const [hasScroll, setHasScroll] = useState(false);\n const [isRowDragging, setIsRowDragging] = useState(false);\n const isScrolling = useRef();\n const shouldRefocus = useRef(); // todo: we probably need a plugin for focus related stuff\n const [RowsObserver] = useState(() => new VolatileRowsListener());\n\n // todo move this with rows composition\n const [originalRows, updateRows] = useDerivedStateFromProps(rows, {\n onUpdate: resolve.resolve({\n columns,\n method: (extra) =>\n compose(\n resolve.byFunction('valueTransformation')(extra),\n resolve.nested(extra),\n ),\n }),\n updateOnStateChange: true,\n });\n\n instance.current = {\n decoratedRenderers: cloneDeep(renderers),\n decoratedColumns: columns,\n columns,\n rows,\n composedRows: originalRows,\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n effects: [],\n uuid,\n props,\n refs: {\n table: tableRef,\n body: bodyRef,\n header: headerRef,\n innerBody: bodyInnerRef,\n },\n state: {\n hasScroll,\n },\n actions: {\n updateRows,\n },\n updateRows,\n // eslint-disable-next-line no-return-assign\n enableEvents: () =>\n (document.body.style.pointerEvents = IS_INTERNET_EXPLORER ? '' : null),\n // eslint-disable-next-line no-return-assign\n disableEvents: () => (document.body.style.pointerEvents = 'none'),\n observeRows: (observer) => RowsObserver.observe(observer),\n hotKeys: {},\n shouldRefocus,\n isScrolling,\n setHasScroll,\n setIsRowDragging,\n isRowDragging,\n plugins,\n };\n instance.current.getState = () => instance.current.state;\n instance.current.getInstance = () => instance.current;\n\n const defaultDecorators = {\n decorateGrid: [],\n registerStateHook: [],\n registerHotKeys: [],\n decorateColumn: [],\n decorateColumns: [\n (cols) =>\n cols.map((col) =>\n initColumnDefinition({\n useTextTruncation: col.useTextTruncation,\n wrapText: props.wrapText,\n normalize: props.normalizeDataKeys,\n })(col),\n ),\n ],\n decorateRenderers: [],\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n getHeaderProps: [],\n composeRows: [],\n };\n\n const decorators = useMemo(() => {\n let nextDecorators = defaultDecorators;\n // eslint-disable-next-line no-return-assign\n plugins.forEach((plugin) => (nextDecorators = plugin(nextDecorators)));\n return nextDecorators;\n }, [plugins]);\n\n instance.current = decorators.decorateGrid.reduce(\n (nextInstance, decorator) => ({\n ...nextInstance,\n ...decorator(instance.current),\n }),\n instance.current,\n );\n\n instance.current = decorators.registerStateHook.reduce(\n (nextInstance, decorator) => {\n const { state, actions } = decorator(instance.current);\n return {\n ...nextInstance,\n state: {\n ...nextInstance.state,\n ...state,\n },\n actions: {\n ...nextInstance.actions,\n ...actions,\n },\n };\n },\n instance.current,\n );\n\n const reduceHotKey = (nextInstance, { key, handler, options }) => ({\n ...nextInstance,\n hotKeys: {\n ...nextInstance.hotKeys,\n [key]: { handler, options },\n },\n });\n instance.current = decorators.registerHotKeys.reduce(\n (nextInstance, decorator) => {\n const hotKeys = decorator(nextInstance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, nextInstance);\n }\n return reduceHotKey(nextInstance, hotKeys);\n },\n instance.current,\n );\n\n instance.current.decoratedRenderers = applyDecorators(\n instance.current.decoratedRenderers,\n decorators.decorateRenderers,\n instance.current,\n );\n\n instance.current.decoratedColumns = useMemo(() => {\n const visibleColumns = cloneDeep(columns).filter(\n (column) => typeof column.visible === 'undefined' || column.visible,\n );\n return visibleColumns.length\n ? decorateColumns(visibleColumns, decorators, instance.current)\n : [];\n }, [columns]);\n\n instance.current.getBodyProps = reducePropsGetter(\n decorators.getBodyProps,\n instance.current,\n );\n instance.current.getHeaderProps = reducePropsGetter(\n decorators.getHeaderProps,\n instance.current,\n );\n instance.current.getRowProps = reducePropsGetter(\n decorators.getRowProps,\n instance.current,\n );\n instance.current.getHeaderRowProps = reducePropsGetter(\n decorators.getHeaderRowProps,\n instance.current,\n );\n instance.current.getTableProps = reducePropsGetter(\n decorators.getTableProps,\n instance.current,\n );\n\n instance.current.composedRows = decorators.composeRows.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n instance.current.composedRows,\n );\n\n RowsObserver.notify(instance.current.composedRows);\n\n const currentShouldRefocus = instance.current.shouldRefocus.current;\n const prevState = usePrevious(instance.current.state);\n if (isObject(currentShouldRefocus) && currentShouldRefocus.forced) {\n instance.current.shouldRefocus.current = currentShouldRefocus.value;\n } else {\n instance.current.shouldRefocus.current = !isEqual(\n prevState,\n instance.current.state,\n );\n }\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return {\n ...instance.current,\n decorators,\n };\n}\n"],"names":["IS_INTERNET_EXPLORER","isInternetExplorer","useDataGrid","uuidProp","uuid","pluginsFromProps","plugins","rows","columns","renderers","props","instance","useRef","tableRef","headerRef","bodyRef","bodyInnerRef","useState","uuidv4","hasScroll","setHasScroll","isRowDragging","setIsRowDragging","isScrolling","shouldRefocus","VolatileRowsListener","RowsObserver","useDerivedStateFromProps","onUpdate","resolve","method","extra","compose","byFunction","nested","updateOnStateChange","originalRows","updateRows","current","decoratedRenderers","cloneDeep","decoratedColumns","composedRows","getRowProps","getHeaderRowProps","getBodyProps","getTableProps","effects","refs","table","body","header","innerBody","state","actions","enableEvents","document","style","pointerEvents","disableEvents","observeRows","observer","observe","hotKeys","getState","getInstance","defaultDecorators","decorateGrid","registerStateHook","registerHotKeys","decorateColumn","decorateColumns","cols","map","col","initColumnDefinition","useTextTruncation","wrapText","normalize","normalizeDataKeys","decorateRenderers","getHeaderProps","composeRows","decorators","useMemo","nextDecorators","forEach","plugin","reduce","nextInstance","decorator","reduceHotKey","key","handler","options","Array","isArray","applyDecorators","visibleColumns","filter","column","visible","length","reducePropsGetter","nextRows","getter","notify","currentShouldRefocus","prevState","usePrevious","isObject","forced","value","isEqual","instanceRef","setRef"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recordIterator.js","sources":["../../../src/useDataList/recordIterator.tsx"],"sourcesContent":["const defaultStrategy = () => {\n throw Error('Implement an iterator strategy for record iterator');\n};\n\nexport function recordIterator(\n records,\n strategy = defaultStrategy,\n decorators = [],\n instance,\n) {\n const nextRows = [];\n\n strategy({\n data: records,\n cb: row => {\n let nextRow = row;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let i = 0; i < decorators.length; i++) {\n nextRow = decorators[i](nextRow, instance);\n if (!nextRow) break;\n }\n\n if (nextRow) nextRows.push(nextRow);\n },\n instance,\n });\n\n return nextRows;\n}\n"],"names":["defaultStrategy","Error","recordIterator","records","strategy","decorators","instance","nextRows","data","cb","row","nextRow","i","length","push"],"mappings":"AAAA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,QAAMC,KAAK,CAAC,oDAAD,CAAX;AACD,CAFD;;AAIO,SAASC,cAAT,CACLC,OADK,EAKL;AAAA,MAHAC,QAGA,uEAHWJ,eAGX;AAAA,MAFAK,UAEA,uEAFa,EAEb;AAAA,MADAC,QACA;AACA,MAAMC,QAAQ,GAAG,EAAjB;AAEAH,EAAAA,QAAQ,CAAC;AACPI,IAAAA,IAAI,EAAEL,OADC;AAEPM,IAAAA,EAAE,EAAE,YAAAC,GAAG,EAAI;AACT,UAAIC,OAAO,GAAGD,GAAd,CADS;;AAIT,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,UAAU,CAACQ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;AAC1CD,QAAAA,OAAO,GAAGN,UAAU,CAACO,CAAD,CAAV,CAAcD,OAAd,EAAuBL,QAAvB,CAAV;AACA,YAAI,CAACK,OAAL,EAAc;AACf;;AAED,UAAIA,OAAJ,EAAaJ,QAAQ,CAACO,IAAT,CAAcH,OAAd;AACd,KAZM;AAaPL,IAAAA,QAAQ,EAARA;AAbO,GAAD,CAAR;AAgBA,SAAOC,QAAP;AACD;;;;"}
1
+ {"version":3,"file":"recordIterator.js","sources":["../../../src/useDataList/recordIterator.tsx"],"sourcesContent":["const defaultStrategy = () => {\n throw Error('Implement an iterator strategy for record iterator');\n};\n\nexport function recordIterator(\n records,\n strategy = defaultStrategy,\n decorators = [],\n instance,\n) {\n const nextRows = [];\n\n strategy({\n data: records,\n cb: row => {\n let nextRow = row;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let i = 0; i < decorators.length; i++) {\n nextRow = decorators[i](nextRow, instance);\n if (!nextRow) break;\n }\n\n if (nextRow) nextRows.push(nextRow);\n },\n instance,\n });\n\n return nextRows;\n}\n"],"names":["defaultStrategy","Error","recordIterator","records","strategy","decorators","instance","nextRows","data","cb","row","nextRow","i","length","push"],"mappings":"AAAA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;EAC5B,MAAMC,KAAK,CAAC,oDAAD,CAAX;AACD,CAFD;;AAIO,SAASC,cAAT,CACLC,OADK,EAKL;EAAA,IAHAC,QAGA,uEAHWJ,eAGX;EAAA,IAFAK,UAEA,uEAFa,EAEb;EAAA,IADAC,QACA;EACA,IAAMC,QAAQ,GAAG,EAAjB;EAEAH,QAAQ,CAAC;IACPI,IAAI,EAAEL,OADC;IAEPM,EAAE,EAAE,YAAAC,GAAG,EAAI;MACT,IAAIC,OAAO,GAAGD,GAAd,CADS;;MAIT,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,UAAU,CAACQ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;QAC1CD,OAAO,GAAGN,UAAU,CAACO,CAAD,CAAV,CAAcD,OAAd,EAAuBL,QAAvB,CAAV;QACA,IAAI,CAACK,OAAL,EAAc;;;MAGhB,IAAIA,OAAJ,EAAaJ,QAAQ,CAACO,IAAT,CAAcH,OAAd;KAXR;IAaPL,QAAQ,EAARA;GAbM,CAAR;EAgBA,OAAOC,QAAP;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDataList.js","sources":["../../../src/useDataList/useDataList.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react';\nimport { setRef } from '@elliemae/ds-utilities';\nimport get from 'lodash/get';\nimport {\n composeFormatters,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport { recordIterator } from './recordIterator';\nimport createInstanceRef from '../createDataInstance/createInstanceRef';\n\nexport const getItemLabel = (record, nameKey = 'name') =>\n get(record, ['data', nameKey]);\nexport const getItemChildren = (record, childrenKey = 'children') =>\n get(record, ['data', childrenKey]);\n\nconst listRenderers = {\n list: 'ul',\n item: 'li',\n};\n\n// todo: check if a plugin is a LIST plugin rather than GRID\nexport default function useDataList({\n data = [],\n plugins = [],\n renderers = listRenderers,\n itemRenderer = [],\n customDecorators,\n ...props\n}) {\n const listRef = useRef();\n const { instance, decorators } = createInstanceRef({\n data,\n renderers,\n plugins,\n customDecorators: {\n ...customDecorators,\n recordIterator,\n getListProps: [],\n getItemProps: [],\n itemRenderer: [...itemRenderer], // components reduce to compose item content\n record: [],\n records: [],\n },\n ...props,\n });\n instance.current.getListRef = () => listRef;\n instance.current.setListRef = (ref) => {\n listRef.current = ref;\n };\n instance.current.getItemLabel = (record) =>\n getItemLabel(record, props.nameKey);\n instance.current.getItemChildren = (record) =>\n getItemChildren(record, props.childrenKey);\n\n instance.current.decorators = decorators;\n instance.current.getListProps = reducePropsGetter(\n decorators.getListProps,\n instance.current,\n );\n instance.current.getItemProps = reducePropsGetter(\n decorators.getItemProps,\n instance.current,\n );\n instance.current.itemRenderer = composeFormatters(\n instance.current.decorators.itemRenderer,\n instance.current,\n );\n\n instance.current.records = useMemo(() => {\n // record iterator TREE / Simple\n let nextRecords = recordIterator(\n data,\n instance.current.decorators.recordIterator,\n decorators.record,\n instance.current,\n );\n\n // compose all records\n nextRecords = decorators.records.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n nextRecords,\n );\n\n return nextRecords;\n });\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return instance.current;\n}\n"],"names":["getItemLabel","record","nameKey","get","getItemChildren","childrenKey","listRenderers","list","item","useDataList","data","plugins","renderers","itemRenderer","customDecorators","props","listRef","useRef","createInstanceRef","recordIterator","getListProps","getItemProps","records","instance","decorators","current","getListRef","setListRef","ref","reducePropsGetter","composeFormatters","useMemo","nextRecords","reduce","nextRows","getter","instanceRef","setRef"],"mappings":"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"}
1
+ {"version":3,"file":"useDataList.js","sources":["../../../src/useDataList/useDataList.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react';\nimport { setRef } from '@elliemae/ds-utilities';\nimport get from 'lodash/get';\nimport {\n composeFormatters,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport { recordIterator } from './recordIterator';\nimport createInstanceRef from '../createDataInstance/createInstanceRef';\n\nexport const getItemLabel = (record, nameKey = 'name') =>\n get(record, ['data', nameKey]);\nexport const getItemChildren = (record, childrenKey = 'children') =>\n get(record, ['data', childrenKey]);\n\nconst listRenderers = {\n list: 'ul',\n item: 'li',\n};\n\n// todo: check if a plugin is a LIST plugin rather than GRID\nexport default function useDataList({\n data = [],\n plugins = [],\n renderers = listRenderers,\n itemRenderer = [],\n customDecorators,\n ...props\n}) {\n const listRef = useRef();\n const { instance, decorators } = createInstanceRef({\n data,\n renderers,\n plugins,\n customDecorators: {\n ...customDecorators,\n recordIterator,\n getListProps: [],\n getItemProps: [],\n itemRenderer: [...itemRenderer], // components reduce to compose item content\n record: [],\n records: [],\n },\n ...props,\n });\n instance.current.getListRef = () => listRef;\n instance.current.setListRef = (ref) => {\n listRef.current = ref;\n };\n instance.current.getItemLabel = (record) =>\n getItemLabel(record, props.nameKey);\n instance.current.getItemChildren = (record) =>\n getItemChildren(record, props.childrenKey);\n\n instance.current.decorators = decorators;\n instance.current.getListProps = reducePropsGetter(\n decorators.getListProps,\n instance.current,\n );\n instance.current.getItemProps = reducePropsGetter(\n decorators.getItemProps,\n instance.current,\n );\n instance.current.itemRenderer = composeFormatters(\n instance.current.decorators.itemRenderer,\n instance.current,\n );\n\n instance.current.records = useMemo(() => {\n // record iterator TREE / Simple\n let nextRecords = recordIterator(\n data,\n instance.current.decorators.recordIterator,\n decorators.record,\n instance.current,\n );\n\n // compose all records\n nextRecords = decorators.records.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n nextRecords,\n );\n\n return nextRecords;\n });\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return instance.current;\n}\n"],"names":["getItemLabel","record","nameKey","get","getItemChildren","childrenKey","listRenderers","list","item","useDataList","data","plugins","renderers","itemRenderer","customDecorators","props","listRef","useRef","createInstanceRef","recordIterator","getListProps","getItemProps","records","instance","decorators","current","getListRef","setListRef","ref","reducePropsGetter","composeFormatters","useMemo","nextRecords","reduce","nextRows","getter","instanceRef","setRef"],"mappings":"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"}
package/esm/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["/* eslint-disable no-cond-assign */\nexport const objectType = (obj) =>\n Object.prototype.toString.call(obj).slice(8, -1);\nexport const isDefined = (param) => typeof param !== 'undefined';\nexport const isUndefined = (param) => typeof param === 'undefined';\nexport const isFunction = (param) => typeof param === 'function';\nexport const isNumber = param => typeof param === 'number' && !isNaN(param); // eslint-disable-line\nexport const isString = (str) => objectType(str) === 'String';\nexport const isArray = (arr) => objectType(arr) === 'Array';\n\nexport const closest = (target, selector) => {\n // closest(e.target, '.field')\n while (target) {\n // eslint-disable-line\n if (target.matches && target.matches(selector)) return target;\n if (target.msMatchesSelector && target.msMatchesSelector(selector))\n return target;\n // eslint-disable-next-line no-param-reassign\n target = target.parentNode;\n }\n return null;\n};\n\nexport const getOffsetRect = (elem) => {\n // (1)\n const box = elem.getBoundingClientRect();\n\n const { body, documentElement } = document;\n\n // (2)\n const scrollTop =\n window.pageYOffset || documentElement.scrollTop || body.scrollTop;\n const scrollLeft =\n window.pageXOffset || documentElement.scrollLeft || body.scrollLeft;\n\n // (3)\n const clientTop = documentElement.clientTop || body.clientTop || 0;\n const clientLeft = documentElement.clientLeft || body.clientLeft || 0;\n\n // (4)\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return { top: Math.round(top), left: Math.round(left) };\n};\n\nexport const getTotalScroll = (elem) => {\n let top = 0;\n let left = 0;\n\n // eslint-disable-next-line no-param-reassign\n while ((elem = elem.parentNode)) {\n top += elem.scrollTop || 0;\n left += elem.scrollLeft || 0;\n }\n\n return { top, left };\n};\n\nexport const getTransformProps = (x, y) => ({\n transform: `translate(${x}px, ${y}px)`,\n});\n\nexport const listWithChildren = (list, childrenProp) =>\n list.map((item) => ({\n ...item,\n [childrenProp]: item[childrenProp]\n ? listWithChildren(item[childrenProp], childrenProp)\n : [],\n }));\n\nexport const getAllNonEmptyNodesIds = (items, childrenProp) => {\n let childrenIds = [];\n const ids = items\n .filter((item) => item[childrenProp].length)\n .map((item) => {\n childrenIds = childrenIds.concat(\n getAllNonEmptyNodesIds(item[childrenProp], childrenProp),\n );\n return item.id;\n });\n\n return ids.concat(childrenIds);\n};\n\nexport const isInternetExplorer = () => {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n // If Internet Explorer, return version number\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n return true;\n }\n return false;\n};\n"],"names":["objectType","obj","Object","prototype","toString","call","slice","isDefined","param","isUndefined","isFunction","isNumber","isNaN","isString","str","isArray","arr","closest","target","selector","matches","msMatchesSelector","parentNode","getOffsetRect","elem","box","getBoundingClientRect","document","body","documentElement","scrollTop","window","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","top","left","Math","round","getTotalScroll","getTransformProps","x","y","transform","listWithChildren","list","childrenProp","map","item","getAllNonEmptyNodesIds","items","childrenIds","ids","filter","length","concat","id","isInternetExplorer","ua","navigator","userAgent","msie","indexOf","match"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["/* eslint-disable no-cond-assign */\nexport const objectType = (obj) =>\n Object.prototype.toString.call(obj).slice(8, -1);\nexport const isDefined = (param) => typeof param !== 'undefined';\nexport const isUndefined = (param) => typeof param === 'undefined';\nexport const isFunction = (param) => typeof param === 'function';\nexport const isNumber = param => typeof param === 'number' && !isNaN(param); // eslint-disable-line\nexport const isString = (str) => objectType(str) === 'String';\nexport const isArray = (arr) => objectType(arr) === 'Array';\n\nexport const closest = (target, selector) => {\n // closest(e.target, '.field')\n while (target) {\n // eslint-disable-line\n if (target.matches && target.matches(selector)) return target;\n if (target.msMatchesSelector && target.msMatchesSelector(selector))\n return target;\n // eslint-disable-next-line no-param-reassign\n target = target.parentNode;\n }\n return null;\n};\n\nexport const getOffsetRect = (elem) => {\n // (1)\n const box = elem.getBoundingClientRect();\n\n const { body, documentElement } = document;\n\n // (2)\n const scrollTop =\n window.pageYOffset || documentElement.scrollTop || body.scrollTop;\n const scrollLeft =\n window.pageXOffset || documentElement.scrollLeft || body.scrollLeft;\n\n // (3)\n const clientTop = documentElement.clientTop || body.clientTop || 0;\n const clientLeft = documentElement.clientLeft || body.clientLeft || 0;\n\n // (4)\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return { top: Math.round(top), left: Math.round(left) };\n};\n\nexport const getTotalScroll = (elem) => {\n let top = 0;\n let left = 0;\n\n // eslint-disable-next-line no-param-reassign\n while ((elem = elem.parentNode)) {\n top += elem.scrollTop || 0;\n left += elem.scrollLeft || 0;\n }\n\n return { top, left };\n};\n\nexport const getTransformProps = (x, y) => ({\n transform: `translate(${x}px, ${y}px)`,\n});\n\nexport const listWithChildren = (list, childrenProp) =>\n list.map((item) => ({\n ...item,\n [childrenProp]: item[childrenProp]\n ? listWithChildren(item[childrenProp], childrenProp)\n : [],\n }));\n\nexport const getAllNonEmptyNodesIds = (items, childrenProp) => {\n let childrenIds = [];\n const ids = items\n .filter((item) => item[childrenProp].length)\n .map((item) => {\n childrenIds = childrenIds.concat(\n getAllNonEmptyNodesIds(item[childrenProp], childrenProp),\n );\n return item.id;\n });\n\n return ids.concat(childrenIds);\n};\n\nexport const isInternetExplorer = () => {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n // If Internet Explorer, return version number\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n return true;\n }\n return false;\n};\n"],"names":["objectType","obj","Object","prototype","toString","call","slice","isDefined","param","isUndefined","isFunction","isNumber","isNaN","isString","str","isArray","arr","closest","target","selector","matches","msMatchesSelector","parentNode","getOffsetRect","elem","box","getBoundingClientRect","document","body","documentElement","scrollTop","window","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","top","left","Math","round","getTotalScroll","getTransformProps","x","y","transform","listWithChildren","list","childrenProp","map","item","getAllNonEmptyNodesIds","items","childrenIds","ids","filter","length","concat","id","isInternetExplorer","ua","navigator","userAgent","msie","indexOf","match"],"mappings":"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"}