@elliemae/ds-treeview 1.61.12 → 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 (93) hide show
  1. package/cjs/TreeView.js.map +1 -1
  2. package/cjs/TreeViewContext.js.map +1 -1
  3. package/cjs/deprecated/TreeView.js.map +1 -1
  4. package/cjs/deprecated/__testUtils__/utils.js.map +1 -1
  5. package/cjs/deprecated/plugins/dnd/TreeDndPlugin.js.map +1 -1
  6. package/cjs/deprecated/plugins/dnd/renderers/DraggableItem.js.map +1 -1
  7. package/cjs/deprecated/plugins/dnd/renderers/DroppableList.js.map +1 -1
  8. package/cjs/deprecated/plugins/dnd/utils.js.map +1 -1
  9. package/cjs/deprecated/plugins/roving/TreeRovingPlugin.js.map +1 -1
  10. package/cjs/deprecated/plugins/searchable/SearchableTreePlugin.js.map +1 -1
  11. package/cjs/deprecated/plugins/selectable/SelectablePluginTree.js.map +1 -1
  12. package/cjs/deprecated/plugins/selectable/utils.js.map +1 -1
  13. package/cjs/deprecated/plugins/toolbar/TreeToolbarPlugin.js.map +1 -1
  14. package/cjs/deprecated/plugins/tree/TreeDataPlugin.js.map +1 -1
  15. package/cjs/deprecated/plugins/tree/useExpandTreeState.js.map +1 -1
  16. package/cjs/deprecated/plugins/tree/utils.js.map +1 -1
  17. package/cjs/deprecated/plugins/tree/walkTreeStrategy.js.map +1 -1
  18. package/cjs/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js.map +1 -1
  19. package/cjs/deprecated/renderers.js.map +1 -1
  20. package/cjs/index-69815fd3.js.map +1 -1
  21. package/cjs/index.js.map +1 -1
  22. package/cjs/parts/CheckboxSelectable.js.map +1 -1
  23. package/cjs/parts/ChildrenCountDisplayer.js.map +1 -1
  24. package/cjs/parts/ExpandCaret.js.map +1 -1
  25. package/cjs/parts/Icon.js.map +1 -1
  26. package/cjs/parts/NestingSpace.js.map +1 -1
  27. package/cjs/parts/RadioSelectable.js.map +1 -1
  28. package/cjs/parts/TreeItem.js.map +1 -1
  29. package/cjs/parts/TreeItemText.js.map +1 -1
  30. package/cjs/parts/TreeList.js.map +1 -1
  31. package/cjs/plugins/dnd/TreeDndPlugin.js.map +1 -1
  32. package/cjs/prop-types.js.map +1 -1
  33. package/cjs/react-desc-prop-types.js.map +1 -1
  34. package/cjs/related-components/TreeViewSearchBar.js.map +1 -1
  35. package/cjs/utils/array-helpers.js.map +1 -1
  36. package/cjs/utils/dnd-helpers.js.map +1 -1
  37. package/cjs/utils/group-expands-helpers.js.map +1 -1
  38. package/cjs/utils/keyboard-helpers.js.map +1 -1
  39. package/cjs/utils/object-helpers.js.map +1 -1
  40. package/cjs/utils/refs-helpers.js.map +1 -1
  41. package/cjs/utils/selectable-helper.js.map +1 -1
  42. package/cjs/utils/string-helpers.js.map +1 -1
  43. package/cjs/utils/tree-helpers.js.map +1 -1
  44. package/cjs/utils/useDnDHelpers.js.map +1 -1
  45. package/cjs/utils/useInstanceRefActions.js.map +1 -1
  46. package/cjs/utils/useTree.js.map +1 -1
  47. package/esm/TreeView.js.map +1 -1
  48. package/esm/TreeViewContext.js.map +1 -1
  49. package/esm/deprecated/TreeView.js.map +1 -1
  50. package/esm/deprecated/__testUtils__/utils.js.map +1 -1
  51. package/esm/deprecated/plugins/dnd/TreeDndPlugin.js.map +1 -1
  52. package/esm/deprecated/plugins/dnd/renderers/DraggableItem.js.map +1 -1
  53. package/esm/deprecated/plugins/dnd/renderers/DroppableList.js.map +1 -1
  54. package/esm/deprecated/plugins/dnd/utils.js.map +1 -1
  55. package/esm/deprecated/plugins/roving/TreeRovingPlugin.js.map +1 -1
  56. package/esm/deprecated/plugins/searchable/SearchableTreePlugin.js.map +1 -1
  57. package/esm/deprecated/plugins/selectable/SelectablePluginTree.js.map +1 -1
  58. package/esm/deprecated/plugins/selectable/utils.js.map +1 -1
  59. package/esm/deprecated/plugins/toolbar/TreeToolbarPlugin.js.map +1 -1
  60. package/esm/deprecated/plugins/tree/TreeDataPlugin.js.map +1 -1
  61. package/esm/deprecated/plugins/tree/useExpandTreeState.js.map +1 -1
  62. package/esm/deprecated/plugins/tree/utils.js.map +1 -1
  63. package/esm/deprecated/plugins/tree/walkTreeStrategy.js.map +1 -1
  64. package/esm/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js.map +1 -1
  65. package/esm/deprecated/renderers.js.map +1 -1
  66. package/esm/index-f9def0ea.js.map +1 -1
  67. package/esm/index.js.map +1 -1
  68. package/esm/parts/CheckboxSelectable.js.map +1 -1
  69. package/esm/parts/ChildrenCountDisplayer.js.map +1 -1
  70. package/esm/parts/ExpandCaret.js.map +1 -1
  71. package/esm/parts/Icon.js.map +1 -1
  72. package/esm/parts/NestingSpace.js.map +1 -1
  73. package/esm/parts/RadioSelectable.js.map +1 -1
  74. package/esm/parts/TreeItem.js.map +1 -1
  75. package/esm/parts/TreeItemText.js.map +1 -1
  76. package/esm/parts/TreeList.js.map +1 -1
  77. package/esm/plugins/dnd/TreeDndPlugin.js.map +1 -1
  78. package/esm/prop-types.js.map +1 -1
  79. package/esm/react-desc-prop-types.js.map +1 -1
  80. package/esm/related-components/TreeViewSearchBar.js.map +1 -1
  81. package/esm/utils/array-helpers.js.map +1 -1
  82. package/esm/utils/dnd-helpers.js.map +1 -1
  83. package/esm/utils/group-expands-helpers.js.map +1 -1
  84. package/esm/utils/keyboard-helpers.js.map +1 -1
  85. package/esm/utils/object-helpers.js.map +1 -1
  86. package/esm/utils/refs-helpers.js.map +1 -1
  87. package/esm/utils/selectable-helper.js.map +1 -1
  88. package/esm/utils/string-helpers.js.map +1 -1
  89. package/esm/utils/tree-helpers.js.map +1 -1
  90. package/esm/utils/useDnDHelpers.js.map +1 -1
  91. package/esm/utils/useInstanceRefActions.js.map +1 -1
  92. package/esm/utils/useTree.js.map +1 -1
  93. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.js","sources":["../../src/prop-types.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport PropTypes from 'prop-types';\n\nexport const InstanceActionsPropTypes = PropTypes.shape({\n toggleExpandAll: PropTypes.func,\n scrollTo: PropTypes.func,\n});\n\nexport const TreeViewInstancePropType = PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.shape({\n actions: InstanceActionsPropTypes.isRequired,\n }),\n ]),\n});\n\nexport const TreeViewItemPropType = PropTypes.shape({\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isGroup: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.bool,\n ]),\n name: PropTypes.string,\n node: PropTypes.object,\n});\n\nexport const TreeListPropTypes = {\n // required when drag and drop is enabled, tracks the drag and drop results after drop and visual feedback borders\n // passed down to TreeItem\n onMouseDragOverItem: PropTypes.func,\n};\nexport const TreeItemPropTypes = {\n item: TreeViewItemPropType.isRequired,\n index: PropTypes.number,\n itemIndex: PropTypes.number,\n itemWrapperStyle: PropTypes.object,\n virtualItemRef: PropTypes.func,\n spaceForNestingLevel: PropTypes.number,\n onMouseDragOverItem: PropTypes.func,\n};\n\nexport const TreeItemExpandCaretPropTypes = {\n item: TreeViewItemPropType.isRequired,\n};\nexport const TreeItemNestingSpacePropTypes = {\n item: TreeViewItemPropType.isRequired,\n spaceForNestingLevel: PropTypes.number.isRequired,\n};\n\nexport const TreeItemCheckboxPropTypes = {\n item: TreeViewItemPropType.isRequired,\n itemIndex: PropTypes.number.isRequired,\n};\n"],"names":["InstanceActionsPropTypes","PropTypes","shape","toggleExpandAll","func","scrollTo","TreeViewInstancePropType","current","oneOfType","oneOf","actions","isRequired","TreeViewItemPropType","children","arrayOf","object","id","string","number","isGroup","undefined","bool","name","node","TreeListPropTypes","onMouseDragOverItem","TreeItemPropTypes","item","index","itemIndex","itemWrapperStyle","virtualItemRef","spaceForNestingLevel","TreeItemExpandCaretPropTypes","TreeItemNestingSpacePropTypes","TreeItemCheckboxPropTypes"],"mappings":";;;;;;;;;;AAAA;IAGaA,wBAAwB,GAAGC,6BAAS,CAACC,KAAV,CAAgB;AACtDC,EAAAA,eAAe,EAAEF,6BAAS,CAACG,IAD2B;AAEtDC,EAAAA,QAAQ,EAAEJ,6BAAS,CAACG;AAFkC,CAAhB;IAK3BE,wBAAwB,GAAGL,6BAAS,CAACC,KAAV,CAAgB;AACtDK,EAAAA,OAAO,EAAEN,6BAAS,CAACO,SAAV,CAAoB,CAC3BP,6BAAS,CAACQ,KAAV,CAAgB,CAAC,IAAD,CAAhB,CAD2B,EAE3BR,6BAAS,CAACC,KAAV,CAAgB;AACdQ,IAAAA,OAAO,EAAEV,wBAAwB,CAACW;AADpB,GAAhB,CAF2B,CAApB;AAD6C,CAAhB;IAS3BC,oBAAoB,GAAGX,6BAAS,CAACC,KAAV,CAAgB;AAClDW,EAAAA,QAAQ,EAAEZ,6BAAS,CAACa,OAAV,CAAkBb,6BAAS,CAACc,MAA5B,CADwC;AAElDC,EAAAA,EAAE,EAAEf,6BAAS,CAACO,SAAV,CAAoB,CAACP,6BAAS,CAACgB,MAAX,EAAmBhB,6BAAS,CAACiB,MAA7B,CAApB,CAF8C;AAGlDC,EAAAA,OAAO,EAAElB,6BAAS,CAACO,SAAV,CAAoB,CAC3BP,6BAAS,CAACQ,KAAV,CAAgB,CAACW,SAAD,EAAY,IAAZ,CAAhB,CAD2B,EAE3BnB,6BAAS,CAACoB,IAFiB,CAApB,CAHyC;AAOlDC,EAAAA,IAAI,EAAErB,6BAAS,CAACgB,MAPkC;AAQlDM,EAAAA,IAAI,EAAEtB,6BAAS,CAACc;AARkC,CAAhB;IAWvBS,iBAAiB,GAAG;AAC/B;AACA;AACAC,EAAAA,mBAAmB,EAAExB,6BAAS,CAACG;AAHA;IAKpBsB,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAEf,oBAAoB,CAACD,UADI;AAE/BiB,EAAAA,KAAK,EAAE3B,6BAAS,CAACiB,MAFc;AAG/BW,EAAAA,SAAS,EAAE5B,6BAAS,CAACiB,MAHU;AAI/BY,EAAAA,gBAAgB,EAAE7B,6BAAS,CAACc,MAJG;AAK/BgB,EAAAA,cAAc,EAAE9B,6BAAS,CAACG,IALK;AAM/B4B,EAAAA,oBAAoB,EAAE/B,6BAAS,CAACiB,MAND;AAO/BO,EAAAA,mBAAmB,EAAExB,6BAAS,CAACG;AAPA;IAUpB6B,4BAA4B,GAAG;AAC1CN,EAAAA,IAAI,EAAEf,oBAAoB,CAACD;AADe;IAG/BuB,6BAA6B,GAAG;AAC3CP,EAAAA,IAAI,EAAEf,oBAAoB,CAACD,UADgB;AAE3CqB,EAAAA,oBAAoB,EAAE/B,6BAAS,CAACiB,MAAV,CAAiBP;AAFI;IAKhCwB,yBAAyB,GAAG;AACvCR,EAAAA,IAAI,EAAEf,oBAAoB,CAACD,UADY;AAEvCkB,EAAAA,SAAS,EAAE5B,6BAAS,CAACiB,MAAV,CAAiBP;AAFW;;;;;;;;;;;"}
1
+ {"version":3,"file":"prop-types.js","sources":["../../src/prop-types.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport PropTypes from 'prop-types';\n\nexport const InstanceActionsPropTypes = PropTypes.shape({\n toggleExpandAll: PropTypes.func,\n scrollTo: PropTypes.func,\n});\n\nexport const TreeViewInstancePropType = PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.shape({\n actions: InstanceActionsPropTypes.isRequired,\n }),\n ]),\n});\n\nexport const TreeViewItemPropType = PropTypes.shape({\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isGroup: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.bool,\n ]),\n name: PropTypes.string,\n node: PropTypes.object,\n});\n\nexport const TreeListPropTypes = {\n // required when drag and drop is enabled, tracks the drag and drop results after drop and visual feedback borders\n // passed down to TreeItem\n onMouseDragOverItem: PropTypes.func,\n};\nexport const TreeItemPropTypes = {\n item: TreeViewItemPropType.isRequired,\n index: PropTypes.number,\n itemIndex: PropTypes.number,\n itemWrapperStyle: PropTypes.object,\n virtualItemRef: PropTypes.func,\n spaceForNestingLevel: PropTypes.number,\n onMouseDragOverItem: PropTypes.func,\n};\n\nexport const TreeItemExpandCaretPropTypes = {\n item: TreeViewItemPropType.isRequired,\n};\nexport const TreeItemNestingSpacePropTypes = {\n item: TreeViewItemPropType.isRequired,\n spaceForNestingLevel: PropTypes.number.isRequired,\n};\n\nexport const TreeItemCheckboxPropTypes = {\n item: TreeViewItemPropType.isRequired,\n itemIndex: PropTypes.number.isRequired,\n};\n"],"names":["InstanceActionsPropTypes","PropTypes","shape","toggleExpandAll","func","scrollTo","TreeViewInstancePropType","current","oneOfType","oneOf","actions","isRequired","TreeViewItemPropType","children","arrayOf","object","id","string","number","isGroup","undefined","bool","name","node","TreeListPropTypes","onMouseDragOverItem","TreeItemPropTypes","item","index","itemIndex","itemWrapperStyle","virtualItemRef","spaceForNestingLevel","TreeItemExpandCaretPropTypes","TreeItemNestingSpacePropTypes","TreeItemCheckboxPropTypes"],"mappings":";;;;;;;;;;AAAA;IAGaA,wBAAwB,GAAGC,6BAAS,CAACC,KAAV,CAAgB;EACtDC,eAAe,EAAEF,6BAAS,CAACG,IAD2B;EAEtDC,QAAQ,EAAEJ,6BAAS,CAACG;AAFkC,CAAhB;IAK3BE,wBAAwB,GAAGL,6BAAS,CAACC,KAAV,CAAgB;EACtDK,OAAO,EAAEN,6BAAS,CAACO,SAAV,CAAoB,CAC3BP,6BAAS,CAACQ,KAAV,CAAgB,CAAC,IAAD,CAAhB,CAD2B,EAE3BR,6BAAS,CAACC,KAAV,CAAgB;IACdQ,OAAO,EAAEV,wBAAwB,CAACW;GADpC,CAF2B,CAApB;AAD6C,CAAhB;IAS3BC,oBAAoB,GAAGX,6BAAS,CAACC,KAAV,CAAgB;EAClDW,QAAQ,EAAEZ,6BAAS,CAACa,OAAV,CAAkBb,6BAAS,CAACc,MAA5B,CADwC;EAElDC,EAAE,EAAEf,6BAAS,CAACO,SAAV,CAAoB,CAACP,6BAAS,CAACgB,MAAX,EAAmBhB,6BAAS,CAACiB,MAA7B,CAApB,CAF8C;EAGlDC,OAAO,EAAElB,6BAAS,CAACO,SAAV,CAAoB,CAC3BP,6BAAS,CAACQ,KAAV,CAAgB,CAACW,SAAD,EAAY,IAAZ,CAAhB,CAD2B,EAE3BnB,6BAAS,CAACoB,IAFiB,CAApB,CAHyC;EAOlDC,IAAI,EAAErB,6BAAS,CAACgB,MAPkC;EAQlDM,IAAI,EAAEtB,6BAAS,CAACc;AARkC,CAAhB;IAWvBS,iBAAiB,GAAG;;;EAG/BC,mBAAmB,EAAExB,6BAAS,CAACG;AAHA;IAKpBsB,iBAAiB,GAAG;EAC/BC,IAAI,EAAEf,oBAAoB,CAACD,UADI;EAE/BiB,KAAK,EAAE3B,6BAAS,CAACiB,MAFc;EAG/BW,SAAS,EAAE5B,6BAAS,CAACiB,MAHU;EAI/BY,gBAAgB,EAAE7B,6BAAS,CAACc,MAJG;EAK/BgB,cAAc,EAAE9B,6BAAS,CAACG,IALK;EAM/B4B,oBAAoB,EAAE/B,6BAAS,CAACiB,MAND;EAO/BO,mBAAmB,EAAExB,6BAAS,CAACG;AAPA;IAUpB6B,4BAA4B,GAAG;EAC1CN,IAAI,EAAEf,oBAAoB,CAACD;AADe;IAG/BuB,6BAA6B,GAAG;EAC3CP,IAAI,EAAEf,oBAAoB,CAACD,UADgB;EAE3CqB,oBAAoB,EAAE/B,6BAAS,CAACiB,MAAV,CAAiBP;AAFI;IAKhCwB,yBAAyB,GAAG;EACvCR,IAAI,EAAEf,oBAAoB,CAACD,UADY;EAEvCkB,SAAS,EAAE5B,6BAAS,CAACiB,MAAV,CAAiBP;AAFW;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-desc-prop-types.js","sources":["../../src/react-desc-prop-types.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PropTypes } from 'react-desc';\n\nconst InstanceActionsPropTypes = PropTypes.shape({\n toggleExpandAll: PropTypes.func,\n scrollTo: PropTypes.func,\n});\nconst TreeViewItemPropType = PropTypes.shape({\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isGroup: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.bool,\n ]),\n name: PropTypes.string,\n node: PropTypes.object,\n});\n\nconst TreeViewInstancePropType = PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.shape({\n actions: InstanceActionsPropTypes.isRequired,\n }),\n ]),\n});\n\nexport const TreeViewPropTypes = {\n data: PropTypes.arrayOf(TreeViewItemPropType).description(\n 'data to populate tree view',\n ).isRequired,\n plugins: PropTypes.arrayOf(PropTypes.string)\n .description('list of enabled plugins')\n .defaultValue([]),\n selection: PropTypes.object\n .description('pre selected items')\n .defaultValue({}),\n instanceRef: TreeViewInstancePropType.description('instance ref'),\n disableGroups: PropTypes.bool\n .description('disable grouping funcionality')\n .defaultValue(false),\n disableLeafs: PropTypes.bool\n .description('disable leaf items')\n .defaultValue(false),\n disableIcons: PropTypes.bool.description('disable icons').defaultValue(false),\n fluid: PropTypes.bool\n .description('whether is fluid or not')\n .defaultValue(false),\n isMultiSelect: PropTypes.bool\n .description('whether the tree view is multi select or not')\n .defaultValue(false),\n isSingleSelect: PropTypes.bool\n .description('wheter the tree view is single select or not')\n .defaultValue(false),\n restrictDragAndDrop: PropTypes.bool\n .description('whether to restrict DnD functionality or not')\n .defaultValue(false),\n showChildrenAmount: PropTypes.bool\n .description('whether to show the amount of children or not')\n .defaultValue(false),\n sortable: PropTypes.bool\n .description('whether the sortable functionality is active or not')\n .defaultValue(false),\n labelRenderer: PropTypes.func.description('custom renderer for labels'),\n onItemClick: PropTypes.func.description(\n 'function executed when clicking on an item',\n ),\n onItemFocus: PropTypes.func.description(\n 'function executed when focusing on an item',\n ),\n onVisibleItemsChange: PropTypes.func.description(\n 'function executed when the visible items change',\n ),\n onOrderChange: PropTypes.func.description(\n 'function executed when the items order changes',\n ),\n onSelectionChange: PropTypes.func.description(\n 'function executed when the selection changes',\n ),\n onExpandChange: PropTypes.func.description(\n 'function executed when expanding an item',\n ),\n rowSize: PropTypes.oneOf(['normal', 'compact'])\n .description('size of the row')\n .defaultValue('normal'),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .description('components width')\n .defaultValue('100%'),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .description('components height')\n .defaultValue('100%'),\n groupIcon: PropTypes.node.description('icon for groups'),\n itemIcon: PropTypes.node.description('icon for items'),\n searchQuery: PropTypes.string.description('search query value'),\n highlightOnlyQuery: PropTypes.bool\n .description('whether to highlight results or not')\n .defaultValue(false),\n};\n"],"names":["InstanceActionsPropTypes","PropTypes","shape","toggleExpandAll","func","scrollTo","TreeViewItemPropType","children","arrayOf","object","id","oneOfType","string","number","isGroup","oneOf","undefined","bool","name","node","TreeViewInstancePropType","current","actions","isRequired","TreeViewPropTypes","data","description","plugins","defaultValue","selection","instanceRef","disableGroups","disableLeafs","disableIcons","fluid","isMultiSelect","isSingleSelect","restrictDragAndDrop","showChildrenAmount","sortable","labelRenderer","onItemClick","onItemFocus","onVisibleItemsChange","onOrderChange","onSelectionChange","onExpandChange","rowSize","width","height","groupIcon","itemIcon","searchQuery","highlightOnlyQuery"],"mappings":"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"}
1
+ {"version":3,"file":"react-desc-prop-types.js","sources":["../../src/react-desc-prop-types.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PropTypes } from 'react-desc';\n\nconst InstanceActionsPropTypes = PropTypes.shape({\n toggleExpandAll: PropTypes.func,\n scrollTo: PropTypes.func,\n});\nconst TreeViewItemPropType = PropTypes.shape({\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isGroup: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.bool,\n ]),\n name: PropTypes.string,\n node: PropTypes.object,\n});\n\nconst TreeViewInstancePropType = PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.shape({\n actions: InstanceActionsPropTypes.isRequired,\n }),\n ]),\n});\n\nexport const TreeViewPropTypes = {\n data: PropTypes.arrayOf(TreeViewItemPropType).description(\n 'data to populate tree view',\n ).isRequired,\n plugins: PropTypes.arrayOf(PropTypes.string)\n .description('list of enabled plugins')\n .defaultValue([]),\n selection: PropTypes.object\n .description('pre selected items')\n .defaultValue({}),\n instanceRef: TreeViewInstancePropType.description('instance ref'),\n disableGroups: PropTypes.bool\n .description('disable grouping funcionality')\n .defaultValue(false),\n disableLeafs: PropTypes.bool\n .description('disable leaf items')\n .defaultValue(false),\n disableIcons: PropTypes.bool.description('disable icons').defaultValue(false),\n fluid: PropTypes.bool\n .description('whether is fluid or not')\n .defaultValue(false),\n isMultiSelect: PropTypes.bool\n .description('whether the tree view is multi select or not')\n .defaultValue(false),\n isSingleSelect: PropTypes.bool\n .description('wheter the tree view is single select or not')\n .defaultValue(false),\n restrictDragAndDrop: PropTypes.bool\n .description('whether to restrict DnD functionality or not')\n .defaultValue(false),\n showChildrenAmount: PropTypes.bool\n .description('whether to show the amount of children or not')\n .defaultValue(false),\n sortable: PropTypes.bool\n .description('whether the sortable functionality is active or not')\n .defaultValue(false),\n labelRenderer: PropTypes.func.description('custom renderer for labels'),\n onItemClick: PropTypes.func.description(\n 'function executed when clicking on an item',\n ),\n onItemFocus: PropTypes.func.description(\n 'function executed when focusing on an item',\n ),\n onVisibleItemsChange: PropTypes.func.description(\n 'function executed when the visible items change',\n ),\n onOrderChange: PropTypes.func.description(\n 'function executed when the items order changes',\n ),\n onSelectionChange: PropTypes.func.description(\n 'function executed when the selection changes',\n ),\n onExpandChange: PropTypes.func.description(\n 'function executed when expanding an item',\n ),\n rowSize: PropTypes.oneOf(['normal', 'compact'])\n .description('size of the row')\n .defaultValue('normal'),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .description('components width')\n .defaultValue('100%'),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .description('components height')\n .defaultValue('100%'),\n groupIcon: PropTypes.node.description('icon for groups'),\n itemIcon: PropTypes.node.description('icon for items'),\n searchQuery: PropTypes.string.description('search query value'),\n highlightOnlyQuery: PropTypes.bool\n .description('whether to highlight results or not')\n .defaultValue(false),\n};\n"],"names":["InstanceActionsPropTypes","PropTypes","shape","toggleExpandAll","func","scrollTo","TreeViewItemPropType","children","arrayOf","object","id","oneOfType","string","number","isGroup","oneOf","undefined","bool","name","node","TreeViewInstancePropType","current","actions","isRequired","TreeViewPropTypes","data","description","plugins","defaultValue","selection","instanceRef","disableGroups","disableLeafs","disableIcons","fluid","isMultiSelect","isSingleSelect","restrictDragAndDrop","showChildrenAmount","sortable","labelRenderer","onItemClick","onItemFocus","onVisibleItemsChange","onOrderChange","onSelectionChange","onExpandChange","rowSize","width","height","groupIcon","itemIcon","searchQuery","highlightOnlyQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeViewSearchBar.js","sources":["../../../src/related-components/TreeViewSearchBar.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { DSNavSearchBox } from '@elliemae/ds-form';\n\nexport function TreeViewSearchBar(props) {\n const { handleChange, onNext, onPrevious, onClear, currentResultIndex, totalResults, value } = props;\n\n return (\n <DSNavSearchBox\n onChange={(v) => {\n handleChange({ target: { value: v } });\n }}\n onNext={onNext}\n onPrevious={onPrevious}\n onClear={onClear}\n currentResultIndex={currentResultIndex}\n totalResults={totalResults}\n value={value}\n />\n );\n}\n\nTreeViewSearchBar.propTypes = {\n value: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n onPrevious: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n currentResultIndex: PropTypes.number.isRequired,\n totalResults: PropTypes.number.isRequired,\n};\n"],"names":["TreeViewSearchBar","props","handleChange","onNext","onPrevious","onClear","currentResultIndex","totalResults","value","React","DSNavSearchBox","v","target","propTypes","PropTypes","string","isRequired","func","number"],"mappings":";;;;;;;;;;;;;AAAA;AAKO,SAASA,iBAAT,CAA2BC,KAA3B,EAAkC;AACvC,MAAQC,YAAR,GAA+FD,KAA/F,CAAQC,YAAR;AAAA,MAAsBC,MAAtB,GAA+FF,KAA/F,CAAsBE,MAAtB;AAAA,MAA8BC,UAA9B,GAA+FH,KAA/F,CAA8BG,UAA9B;AAAA,MAA0CC,OAA1C,GAA+FJ,KAA/F,CAA0CI,OAA1C;AAAA,MAAmDC,kBAAnD,GAA+FL,KAA/F,CAAmDK,kBAAnD;AAAA,MAAuEC,YAAvE,GAA+FN,KAA/F,CAAuEM,YAAvE;AAAA,MAAqFC,KAArF,GAA+FP,KAA/F,CAAqFO,KAArF;AAEA,sBACEC,wCAACC,qBAAD;AACE,IAAA,QAAQ,EAAE,kBAACC,CAAD,EAAO;AACfT,MAAAA,YAAY,CAAC;AAAEU,QAAAA,MAAM,EAAE;AAAEJ,UAAAA,KAAK,EAAEG;AAAT;AAAV,OAAD,CAAZ;AACD,KAHH;AAIE,IAAA,MAAM,EAAER,MAJV;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,OAAO,EAAEC,OANX;AAOE,IAAA,kBAAkB,EAAEC,kBAPtB;AAQE,IAAA,YAAY,EAAEC,YARhB;AASE,IAAA,KAAK,EAAEC;AATT,IADF;AAaD;AAEDR,iBAAiB,CAACa,SAAlB,GAA8B;AAC5BL,EAAAA,KAAK,EAAEM,6BAAS,CAACC,MAAV,CAAiBC,UADI;AAE5Bd,EAAAA,YAAY,EAAEY,6BAAS,CAACG,IAAV,CAAeD,UAFD;AAG5Bb,EAAAA,MAAM,EAAEW,6BAAS,CAACG,IAAV,CAAeD,UAHK;AAI5BZ,EAAAA,UAAU,EAAEU,6BAAS,CAACG,IAAV,CAAeD,UAJC;AAK5BX,EAAAA,OAAO,EAAES,6BAAS,CAACG,IAAV,CAAeD,UALI;AAM5BV,EAAAA,kBAAkB,EAAEQ,6BAAS,CAACI,MAAV,CAAiBF,UANT;AAO5BT,EAAAA,YAAY,EAAEO,6BAAS,CAACI,MAAV,CAAiBF;AAPH,CAA9B;;;;"}
1
+ {"version":3,"file":"TreeViewSearchBar.js","sources":["../../../src/related-components/TreeViewSearchBar.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { DSNavSearchBox } from '@elliemae/ds-form';\n\nexport function TreeViewSearchBar(props) {\n const { handleChange, onNext, onPrevious, onClear, currentResultIndex, totalResults, value } = props;\n\n return (\n <DSNavSearchBox\n onChange={(v) => {\n handleChange({ target: { value: v } });\n }}\n onNext={onNext}\n onPrevious={onPrevious}\n onClear={onClear}\n currentResultIndex={currentResultIndex}\n totalResults={totalResults}\n value={value}\n />\n );\n}\n\nTreeViewSearchBar.propTypes = {\n value: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n onPrevious: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n currentResultIndex: PropTypes.number.isRequired,\n totalResults: PropTypes.number.isRequired,\n};\n"],"names":["TreeViewSearchBar","props","handleChange","onNext","onPrevious","onClear","currentResultIndex","totalResults","value","React","DSNavSearchBox","v","target","propTypes","PropTypes","string","isRequired","func","number"],"mappings":";;;;;;;;;;;;;AAAA;AAKO,SAASA,iBAAT,CAA2BC,KAA3B,EAAkC;EACvC,IAAQC,YAAR,GAA+FD,KAA/F,CAAQC,YAAR;MAAsBC,MAAtB,GAA+FF,KAA/F,CAAsBE,MAAtB;MAA8BC,UAA9B,GAA+FH,KAA/F,CAA8BG,UAA9B;MAA0CC,OAA1C,GAA+FJ,KAA/F,CAA0CI,OAA1C;MAAmDC,kBAAnD,GAA+FL,KAA/F,CAAmDK,kBAAnD;MAAuEC,YAAvE,GAA+FN,KAA/F,CAAuEM,YAAvE;MAAqFC,KAArF,GAA+FP,KAA/F,CAAqFO,KAArF;EAEA,oBACEC,wCAACC,qBAAD;IACE,QAAQ,EAAE,kBAACC,CAAD,EAAO;MACfT,YAAY,CAAC;QAAEU,MAAM,EAAE;UAAEJ,KAAK,EAAEG;;OAApB,CAAZ;KAFJ;IAIE,MAAM,EAAER,MAJV;IAKE,UAAU,EAAEC,UALd;IAME,OAAO,EAAEC,OANX;IAOE,kBAAkB,EAAEC,kBAPtB;IAQE,YAAY,EAAEC,YARhB;IASE,KAAK,EAAEC;IAVX;AAaD;AAEDR,iBAAiB,CAACa,SAAlB,GAA8B;EAC5BL,KAAK,EAAEM,6BAAS,CAACC,MAAV,CAAiBC,UADI;EAE5Bd,YAAY,EAAEY,6BAAS,CAACG,IAAV,CAAeD,UAFD;EAG5Bb,MAAM,EAAEW,6BAAS,CAACG,IAAV,CAAeD,UAHK;EAI5BZ,UAAU,EAAEU,6BAAS,CAACG,IAAV,CAAeD,UAJC;EAK5BX,OAAO,EAAES,6BAAS,CAACG,IAAV,CAAeD,UALI;EAM5BV,kBAAkB,EAAEQ,6BAAS,CAACI,MAAV,CAAiBF,UANT;EAO5BT,YAAY,EAAEO,6BAAS,CAACI,MAAV,CAAiBF;AAPH,CAA9B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"array-helpers.js","sources":["../../../src/utils/array-helpers.tsx"],"sourcesContent":["// https://github.com/sindresorhus/array-move/blob/master/index.js\nexport const arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n"],"names":["arrayMoveMutate","array","from","to","startIndex","length","endIndex","splice","item","arrayMove","newArray"],"mappings":";;;;;;;;;;;;AAAA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,IAAR,EAAcC,EAAd,EAAqB;AAClD,MAAMC,UAAU,GAAGF,IAAI,GAAG,CAAP,GAAWD,KAAK,CAACI,MAAN,GAAeH,IAA1B,GAAiCA,IAApD;;AAEA,MAAIE,UAAU,IAAI,CAAd,IAAmBA,UAAU,GAAGH,KAAK,CAACI,MAA1C,EAAkD;AAChD,QAAMC,QAAQ,GAAGH,EAAE,GAAG,CAAL,GAASF,KAAK,CAACI,MAAN,GAAeF,EAAxB,GAA6BA,EAA9C;;AAEA,wBAAeF,KAAK,CAACM,MAAN,CAAaL,IAAb,EAAmB,CAAnB,CAAf;AAAA;AAAA,QAAOM,IAAP;;AACAP,IAAAA,KAAK,CAACM,MAAN,CAAaD,QAAb,EAAuB,CAAvB,EAA0BE,IAA1B;AACD;AACF;IAEYC,SAAS,GAAG,SAAZA,SAAY,CAACR,KAAD,EAAQC,IAAR,EAAcC,EAAd,EAAqB;AAC5C,MAAMO,QAAQ,0CAAOT,KAAP,CAAd;;AACAD,EAAAA,eAAe,CAACU,QAAD,EAAWR,IAAX,EAAiBC,EAAjB,CAAf;AACA,SAAOO,QAAP;AACD;;;;;"}
1
+ {"version":3,"file":"array-helpers.js","sources":["../../../src/utils/array-helpers.tsx"],"sourcesContent":["// https://github.com/sindresorhus/array-move/blob/master/index.js\nexport const arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n"],"names":["arrayMoveMutate","array","from","to","startIndex","length","endIndex","splice","item","arrayMove","newArray"],"mappings":";;;;;;;;;;;;AAAA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,IAAR,EAAcC,EAAd,EAAqB;EAClD,IAAMC,UAAU,GAAGF,IAAI,GAAG,CAAP,GAAWD,KAAK,CAACI,MAAN,GAAeH,IAA1B,GAAiCA,IAApD;;EAEA,IAAIE,UAAU,IAAI,CAAd,IAAmBA,UAAU,GAAGH,KAAK,CAACI,MAA1C,EAAkD;IAChD,IAAMC,QAAQ,GAAGH,EAAE,GAAG,CAAL,GAASF,KAAK,CAACI,MAAN,GAAeF,EAAxB,GAA6BA,EAA9C;;IAEA,oBAAeF,KAAK,CAACM,MAAN,CAAaL,IAAb,EAAmB,CAAnB,CAAf;;QAAOM,IAAP;;IACAP,KAAK,CAACM,MAAN,CAAaD,QAAb,EAAuB,CAAvB,EAA0BE,IAA1B;;AAEH;IAEYC,SAAS,GAAG,SAAZA,SAAY,CAACR,KAAD,EAAQC,IAAR,EAAcC,EAAd,EAAqB;EAC5C,IAAMO,QAAQ,0CAAOT,KAAP,CAAd;;EACAD,eAAe,CAACU,QAAD,EAAWR,IAAX,EAAiBC,EAAjB,CAAf;EACA,OAAOO,QAAP;AACD;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dnd-helpers.js","sources":["../../../src/utils/dnd-helpers.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { getItemsParentNode, itemsShareSameParent } from './tree-helpers';\n\nexport const keyCodes = {\n lift: [32, 13],\n drop: [32, 13],\n cancel: [27],\n up: [38, 37],\n down: [40, 39],\n};\n\nexport const sameParentAsHoverItemDrop = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n movementDirection,\n}) => {\n const hoveredItemNodeNestedIndex = overItem.node.getIndex();\n let newParentNode = getItemsParentNode([overItem], true);\n\n const { treeDepth: draggedItemTreeDepth } = draggedItem;\n const { treeDepth: overItemTreeDepth } = overItem;\n const directionOffset =\n // we don't apply the offset for direction\n // if moving from less nested to more nested\n // or moving bottom to top\n // the offset is required when moving elemnts down in their nest level\n draggedItemTreeDepth <= overItemTreeDepth && movementDirection === 'topToBottom' ? -1 : 0;\n let newNestedIndex;\n\n if (isBefore) newNestedIndex = hoveredItemNodeNestedIndex + directionOffset;\n else if (isAfter) newNestedIndex = hoveredItemNodeNestedIndex + 1 + directionOffset;\n else {\n newNestedIndex = overItem.children.length; // append as last child of the group\n newParentNode = overItem.node;\n }\n if (newNestedIndex < 0) newNestedIndex = 0;\n return {\n newNestedIndex,\n newParentNode,\n };\n};\n\nexport const inferHoverItemKinshipDrop = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n movementDirection,\n}) => {\n const hoverItemModel = overItem.node.model;\n const isGroupAndIsExpanded = hoverItemModel.isExpanded && hoverItemModel.children.length > 0;\n\n if (isAfter && isGroupAndIsExpanded) {\n return {\n newNestedIndex: 0, // append after the group, so basically as first child\n newParentNode: overItem.node,\n };\n }\n\n if (isBefore || (isAfter && !isGroupAndIsExpanded)) {\n return sameParentAsHoverItemDrop({\n isBefore,\n isAfter,\n draggedItem,\n overItem,\n movementDirection,\n });\n }\n\n // drop inside\n return {\n newNestedIndex: overItem.children.length, // append as last child of the group\n newParentNode: overItem.node,\n };\n};\n\nexport const isDropValid = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n\n restrictDragAndDrop,\n}) => {\n const { id: movedId } = draggedItem;\n const { id: hoverId } = overItem;\n const isInside = !isBefore && !isAfter;\n\n if (movedId === hoverId) return false;\n\n if (isInside && !overItem.isGroup) {\n return false; // we can't drop inside an item that isn't a group\n }\n\n if (restrictDragAndDrop) {\n if (isInside) return false; // in this mode we can't drop inside another element\n const sameParent = itemsShareSameParent([draggedItem, overItem]);\n if (overItem.node.model.isExpanded && isAfter) return false;\n if (!sameParent) return false;\n }\n\n return true;\n};\n\nexport const inferKeyboardKinshipDrop = ({\n items,\n\n newIndex,\n // movementDirection,\n}) => {\n const kinship = {};\n\n // const directionOffset = movementDirection === 'topToBottom' ? 0 : 0;\n const itemBefore = items[newIndex];\n\n const itemBeforeModel = itemBefore.node.model;\n const isGroupAndIsExpanded = itemBeforeModel.isExpanded && itemBeforeModel.children.length > 0;\n\n if (isGroupAndIsExpanded) {\n kinship.newParentNode = itemBefore.node;\n kinship.newNestedIndex = 0;\n } else {\n kinship.newParentNode = getItemsParentNode([itemBefore], true);\n kinship.newNestedIndex = itemBefore.node.getIndex();\n }\n\n return kinship;\n};\n"],"names":["keyCodes","lift","drop","cancel","up","down","sameParentAsHoverItemDrop","isBefore","isAfter","draggedItem","overItem","movementDirection","hoveredItemNodeNestedIndex","node","getIndex","newParentNode","getItemsParentNode","draggedItemTreeDepth","treeDepth","overItemTreeDepth","directionOffset","newNestedIndex","children","length","inferHoverItemKinshipDrop","hoverItemModel","model","isGroupAndIsExpanded","isExpanded","isDropValid","restrictDragAndDrop","movedId","id","hoverId","isInside","isGroup","sameParent","itemsShareSameParent","inferKeyboardKinshipDrop","items","newIndex","kinship","itemBefore","itemBeforeModel"],"mappings":";;;;;;;;;AAAA;IAGaA,QAAQ,GAAG;AACtBC,EAAAA,IAAI,EAAE,CAAC,EAAD,EAAK,EAAL,CADgB;AAEtBC,EAAAA,IAAI,EAAE,CAAC,EAAD,EAAK,EAAL,CAFgB;AAGtBC,EAAAA,MAAM,EAAE,CAAC,EAAD,CAHc;AAItBC,EAAAA,EAAE,EAAE,CAAC,EAAD,EAAK,EAAL,CAJkB;AAKtBC,EAAAA,IAAI,EAAE,CAAC,EAAD,EAAK,EAAL;AALgB;IAQXC,yBAAyB,GAAG,SAA5BA,yBAA4B,OAOnC;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,MALJC,OAKI,QALJA,OAKI;AAAA,MAHJC,WAGI,QAHJA,WAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,iBACI,QADJA,iBACI;AACJ,MAAMC,0BAA0B,GAAGF,QAAQ,CAACG,IAAT,CAAcC,QAAd,EAAnC;AACA,MAAIC,aAAa,GAAGC,oCAAkB,CAAC,CAACN,QAAD,CAAD,EAAa,IAAb,CAAtC;AAEA,MAAmBO,oBAAnB,GAA4CR,WAA5C,CAAQS,SAAR;AACA,MAAmBC,iBAAnB,GAAyCT,QAAzC,CAAQQ,SAAR;AACA,MAAME,eAAe;AAEnB;AACA;AACA;AACAH,EAAAA,oBAAoB,IAAIE,iBAAxB,IAA6CR,iBAAiB,KAAK,aAAnE,GAAmF,CAAC,CAApF,GAAwF,CAL1F;AAMA,MAAIU,cAAJ;AAEA,MAAId,QAAJ,EAAcc,cAAc,GAAGT,0BAA0B,GAAGQ,eAA9C,CAAd,KACK,IAAIZ,OAAJ,EAAaa,cAAc,GAAGT,0BAA0B,GAAG,CAA7B,GAAiCQ,eAAlD,CAAb,KACA;AACHC,IAAAA,cAAc,GAAGX,QAAQ,CAACY,QAAT,CAAkBC,MAAnC,CADG;;AAEHR,IAAAA,aAAa,GAAGL,QAAQ,CAACG,IAAzB;AACD;AACD,MAAIQ,cAAc,GAAG,CAArB,EAAwBA,cAAc,GAAG,CAAjB;AACxB,SAAO;AACLA,IAAAA,cAAc,EAAdA,cADK;AAELN,IAAAA,aAAa,EAAbA;AAFK,GAAP;AAID;IAEYS,yBAAyB,GAAG,SAA5BA,yBAA4B,QAOnC;AAAA,MANJjB,QAMI,SANJA,QAMI;AAAA,MALJC,OAKI,SALJA,OAKI;AAAA,MAHJC,WAGI,SAHJA,WAGI;AAAA,MAFJC,QAEI,SAFJA,QAEI;AAAA,MADJC,iBACI,SADJA,iBACI;AACJ,MAAMc,cAAc,GAAGf,QAAQ,CAACG,IAAT,CAAca,KAArC;AACA,MAAMC,oBAAoB,GAAGF,cAAc,CAACG,UAAf,IAA6BH,cAAc,CAACH,QAAf,CAAwBC,MAAxB,GAAiC,CAA3F;;AAEA,MAAIf,OAAO,IAAImB,oBAAf,EAAqC;AACnC,WAAO;AACLN,MAAAA,cAAc,EAAE,CADX;AACc;AACnBN,MAAAA,aAAa,EAAEL,QAAQ,CAACG;AAFnB,KAAP;AAID;;AAED,MAAIN,QAAQ,IAAKC,OAAO,IAAI,CAACmB,oBAA7B,EAAoD;AAClD,WAAOrB,yBAAyB,CAAC;AAC/BC,MAAAA,QAAQ,EAARA,QAD+B;AAE/BC,MAAAA,OAAO,EAAPA,OAF+B;AAG/BC,MAAAA,WAAW,EAAXA,WAH+B;AAI/BC,MAAAA,QAAQ,EAARA,QAJ+B;AAK/BC,MAAAA,iBAAiB,EAAjBA;AAL+B,KAAD,CAAhC;AAOD,GAnBG;;;AAsBJ,SAAO;AACLU,IAAAA,cAAc,EAAEX,QAAQ,CAACY,QAAT,CAAkBC,MAD7B;AACqC;AAC1CR,IAAAA,aAAa,EAAEL,QAAQ,CAACG;AAFnB,GAAP;AAID;IAEYgB,WAAW,GAAG,SAAdA,WAAc,QAQrB;AAAA,MAPJtB,QAOI,SAPJA,QAOI;AAAA,MANJC,OAMI,SANJA,OAMI;AAAA,MAJJC,WAII,SAJJA,WAII;AAAA,MAHJC,QAGI,SAHJA,QAGI;AAAA,MADJoB,mBACI,SADJA,mBACI;AACJ,MAAYC,OAAZ,GAAwBtB,WAAxB,CAAQuB,EAAR;AACA,MAAYC,OAAZ,GAAwBvB,QAAxB,CAAQsB,EAAR;AACA,MAAME,QAAQ,GAAG,CAAC3B,QAAD,IAAa,CAACC,OAA/B;AAEA,MAAIuB,OAAO,KAAKE,OAAhB,EAAyB,OAAO,KAAP;;AAEzB,MAAIC,QAAQ,IAAI,CAACxB,QAAQ,CAACyB,OAA1B,EAAmC;AACjC,WAAO,KAAP,CADiC;AAElC;;AAED,MAAIL,mBAAJ,EAAyB;AACvB,QAAII,QAAJ,EAAc,OAAO,KAAP,CADS;;AAEvB,QAAME,UAAU,GAAGC,sCAAoB,CAAC,CAAC5B,WAAD,EAAcC,QAAd,CAAD,CAAvC;AACA,QAAIA,QAAQ,CAACG,IAAT,CAAca,KAAd,CAAoBE,UAApB,IAAkCpB,OAAtC,EAA+C,OAAO,KAAP;AAC/C,QAAI,CAAC4B,UAAL,EAAiB,OAAO,KAAP;AAClB;;AAED,SAAO,IAAP;AACD;IAEYE,wBAAwB,GAAG,SAA3BA,wBAA2B,QAKlC;AAAA,MAJJC,KAII,SAJJA,KAII;AAAA,MAFJC,QAEI,SAFJA,QAEI;AACJ,MAAMC,OAAO,GAAG,EAAhB,CADI;;AAIJ,MAAMC,UAAU,GAAGH,KAAK,CAACC,QAAD,CAAxB;AAEA,MAAMG,eAAe,GAAGD,UAAU,CAAC7B,IAAX,CAAgBa,KAAxC;AACA,MAAMC,oBAAoB,GAAGgB,eAAe,CAACf,UAAhB,IAA8Be,eAAe,CAACrB,QAAhB,CAAyBC,MAAzB,GAAkC,CAA7F;;AAEA,MAAII,oBAAJ,EAA0B;AACxBc,IAAAA,OAAO,CAAC1B,aAAR,GAAwB2B,UAAU,CAAC7B,IAAnC;AACA4B,IAAAA,OAAO,CAACpB,cAAR,GAAyB,CAAzB;AACD,GAHD,MAGO;AACLoB,IAAAA,OAAO,CAAC1B,aAAR,GAAwBC,oCAAkB,CAAC,CAAC0B,UAAD,CAAD,EAAe,IAAf,CAA1C;AACAD,IAAAA,OAAO,CAACpB,cAAR,GAAyBqB,UAAU,CAAC7B,IAAX,CAAgBC,QAAhB,EAAzB;AACD;;AAED,SAAO2B,OAAP;AACD;;;;;;;;"}
1
+ {"version":3,"file":"dnd-helpers.js","sources":["../../../src/utils/dnd-helpers.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { getItemsParentNode, itemsShareSameParent } from './tree-helpers';\n\nexport const keyCodes = {\n lift: [32, 13],\n drop: [32, 13],\n cancel: [27],\n up: [38, 37],\n down: [40, 39],\n};\n\nexport const sameParentAsHoverItemDrop = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n movementDirection,\n}) => {\n const hoveredItemNodeNestedIndex = overItem.node.getIndex();\n let newParentNode = getItemsParentNode([overItem], true);\n\n const { treeDepth: draggedItemTreeDepth } = draggedItem;\n const { treeDepth: overItemTreeDepth } = overItem;\n const directionOffset =\n // we don't apply the offset for direction\n // if moving from less nested to more nested\n // or moving bottom to top\n // the offset is required when moving elemnts down in their nest level\n draggedItemTreeDepth <= overItemTreeDepth && movementDirection === 'topToBottom' ? -1 : 0;\n let newNestedIndex;\n\n if (isBefore) newNestedIndex = hoveredItemNodeNestedIndex + directionOffset;\n else if (isAfter) newNestedIndex = hoveredItemNodeNestedIndex + 1 + directionOffset;\n else {\n newNestedIndex = overItem.children.length; // append as last child of the group\n newParentNode = overItem.node;\n }\n if (newNestedIndex < 0) newNestedIndex = 0;\n return {\n newNestedIndex,\n newParentNode,\n };\n};\n\nexport const inferHoverItemKinshipDrop = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n movementDirection,\n}) => {\n const hoverItemModel = overItem.node.model;\n const isGroupAndIsExpanded = hoverItemModel.isExpanded && hoverItemModel.children.length > 0;\n\n if (isAfter && isGroupAndIsExpanded) {\n return {\n newNestedIndex: 0, // append after the group, so basically as first child\n newParentNode: overItem.node,\n };\n }\n\n if (isBefore || (isAfter && !isGroupAndIsExpanded)) {\n return sameParentAsHoverItemDrop({\n isBefore,\n isAfter,\n draggedItem,\n overItem,\n movementDirection,\n });\n }\n\n // drop inside\n return {\n newNestedIndex: overItem.children.length, // append as last child of the group\n newParentNode: overItem.node,\n };\n};\n\nexport const isDropValid = ({\n isBefore,\n isAfter,\n\n draggedItem,\n overItem,\n\n restrictDragAndDrop,\n}) => {\n const { id: movedId } = draggedItem;\n const { id: hoverId } = overItem;\n const isInside = !isBefore && !isAfter;\n\n if (movedId === hoverId) return false;\n\n if (isInside && !overItem.isGroup) {\n return false; // we can't drop inside an item that isn't a group\n }\n\n if (restrictDragAndDrop) {\n if (isInside) return false; // in this mode we can't drop inside another element\n const sameParent = itemsShareSameParent([draggedItem, overItem]);\n if (overItem.node.model.isExpanded && isAfter) return false;\n if (!sameParent) return false;\n }\n\n return true;\n};\n\nexport const inferKeyboardKinshipDrop = ({\n items,\n\n newIndex,\n // movementDirection,\n}) => {\n const kinship = {};\n\n // const directionOffset = movementDirection === 'topToBottom' ? 0 : 0;\n const itemBefore = items[newIndex];\n\n const itemBeforeModel = itemBefore.node.model;\n const isGroupAndIsExpanded = itemBeforeModel.isExpanded && itemBeforeModel.children.length > 0;\n\n if (isGroupAndIsExpanded) {\n kinship.newParentNode = itemBefore.node;\n kinship.newNestedIndex = 0;\n } else {\n kinship.newParentNode = getItemsParentNode([itemBefore], true);\n kinship.newNestedIndex = itemBefore.node.getIndex();\n }\n\n return kinship;\n};\n"],"names":["keyCodes","lift","drop","cancel","up","down","sameParentAsHoverItemDrop","isBefore","isAfter","draggedItem","overItem","movementDirection","hoveredItemNodeNestedIndex","node","getIndex","newParentNode","getItemsParentNode","draggedItemTreeDepth","treeDepth","overItemTreeDepth","directionOffset","newNestedIndex","children","length","inferHoverItemKinshipDrop","hoverItemModel","model","isGroupAndIsExpanded","isExpanded","isDropValid","restrictDragAndDrop","movedId","id","hoverId","isInside","isGroup","sameParent","itemsShareSameParent","inferKeyboardKinshipDrop","items","newIndex","kinship","itemBefore","itemBeforeModel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"group-expands-helpers.js","sources":["../../../src/utils/group-expands-helpers.tsx"],"sourcesContent":["/* eslint-disable max-params */\nimport { useCallback, useEffect } from 'react';\n\nexport const toggleItemExpand = (itemToToggle, triggerTreeRerender, scrollTo = () => {}) => {\n const {\n node: {\n model: { isExpanded },\n },\n virtualIndex,\n } = itemToToggle;\n if (itemToToggle.node.model.isGroup) {\n itemToToggle.node.model.isExpanded = !isExpanded;\n triggerTreeRerender();\n setTimeout(() => {\n scrollTo(virtualIndex, { align: 'start' });\n });\n }\n};\n\nexport const expandItemModel = (modelToExpand) => {\n if (modelToExpand.isGroup) modelToExpand.isExpanded = true;\n};\n\nexport const collapseItemModel = (modelToCollapse) => {\n if (modelToCollapse.isGroup) modelToCollapse.isExpanded = false;\n};\n\nexport const expandAll = (treeRoot, triggerTreeRerender) => {\n treeRoot.walk((node) => {\n if (!node.isRoot()) expandItemModel(node.model);\n });\n triggerTreeRerender();\n};\nexport const collapseAll = (treeRoot, triggerTreeRerender) => {\n treeRoot.walk((node) => {\n if (!node.isRoot()) collapseItemModel(node.model);\n });\n triggerTreeRerender();\n};\nexport const getToggleExpandShouldExpand = (treeRoot) => {\n let shouldExpand = false;\n treeRoot.walk((node) => {\n if (!node.isRoot()) {\n if (!node.model.isExpanded && node.model.isGroup) {\n shouldExpand = true;\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n });\n return shouldExpand;\n};\n\nexport const toggleExpandAllHelper = (isExpand, treeRoot, triggerTreeRerender, setLatestToggledItem) => {\n if (isExpand === true) expandAll(treeRoot, triggerTreeRerender);\n else if (isExpand === false) collapseAll(treeRoot, triggerTreeRerender);\n else {\n const shouldExpand = getToggleExpandShouldExpand(treeRoot);\n if (shouldExpand === true) expandAll(treeRoot, triggerTreeRerender);\n else collapseAll(treeRoot, triggerTreeRerender);\n }\n setLatestToggledItem(null);\n};\n\nexport const useNotifyExpandedChange = (propsWithDefaults, { latestToggledItem, expandedGroups }) => {\n const notifyExpandedChange = useCallback(\n (expandedGroupHashmap) => propsWithDefaults.onExpandChange(expandedGroupHashmap, latestToggledItem),\n [propsWithDefaults, latestToggledItem],\n );\n\n useEffect(() => {\n notifyExpandedChange(expandedGroups);\n }, [expandedGroups]);\n};\n"],"names":["toggleItemExpand","itemToToggle","triggerTreeRerender","scrollTo","isExpanded","node","model","virtualIndex","isGroup","setTimeout","align","expandItemModel","modelToExpand","collapseItemModel","modelToCollapse","expandAll","treeRoot","walk","isRoot","collapseAll","getToggleExpandShouldExpand","shouldExpand","toggleExpandAllHelper","isExpand","setLatestToggledItem","useNotifyExpandedChange","propsWithDefaults","latestToggledItem","expandedGroups","notifyExpandedChange","useCallback","expandedGroupHashmap","onExpandChange","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"group-expands-helpers.js","sources":["../../../src/utils/group-expands-helpers.tsx"],"sourcesContent":["/* eslint-disable max-params */\nimport { useCallback, useEffect } from 'react';\n\nexport const toggleItemExpand = (itemToToggle, triggerTreeRerender, scrollTo = () => {}) => {\n const {\n node: {\n model: { isExpanded },\n },\n virtualIndex,\n } = itemToToggle;\n if (itemToToggle.node.model.isGroup) {\n itemToToggle.node.model.isExpanded = !isExpanded;\n triggerTreeRerender();\n setTimeout(() => {\n scrollTo(virtualIndex, { align: 'start' });\n });\n }\n};\n\nexport const expandItemModel = (modelToExpand) => {\n if (modelToExpand.isGroup) modelToExpand.isExpanded = true;\n};\n\nexport const collapseItemModel = (modelToCollapse) => {\n if (modelToCollapse.isGroup) modelToCollapse.isExpanded = false;\n};\n\nexport const expandAll = (treeRoot, triggerTreeRerender) => {\n treeRoot.walk((node) => {\n if (!node.isRoot()) expandItemModel(node.model);\n });\n triggerTreeRerender();\n};\nexport const collapseAll = (treeRoot, triggerTreeRerender) => {\n treeRoot.walk((node) => {\n if (!node.isRoot()) collapseItemModel(node.model);\n });\n triggerTreeRerender();\n};\nexport const getToggleExpandShouldExpand = (treeRoot) => {\n let shouldExpand = false;\n treeRoot.walk((node) => {\n if (!node.isRoot()) {\n if (!node.model.isExpanded && node.model.isGroup) {\n shouldExpand = true;\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n });\n return shouldExpand;\n};\n\nexport const toggleExpandAllHelper = (isExpand, treeRoot, triggerTreeRerender, setLatestToggledItem) => {\n if (isExpand === true) expandAll(treeRoot, triggerTreeRerender);\n else if (isExpand === false) collapseAll(treeRoot, triggerTreeRerender);\n else {\n const shouldExpand = getToggleExpandShouldExpand(treeRoot);\n if (shouldExpand === true) expandAll(treeRoot, triggerTreeRerender);\n else collapseAll(treeRoot, triggerTreeRerender);\n }\n setLatestToggledItem(null);\n};\n\nexport const useNotifyExpandedChange = (propsWithDefaults, { latestToggledItem, expandedGroups }) => {\n const notifyExpandedChange = useCallback(\n (expandedGroupHashmap) => propsWithDefaults.onExpandChange(expandedGroupHashmap, latestToggledItem),\n [propsWithDefaults, latestToggledItem],\n );\n\n useEffect(() => {\n notifyExpandedChange(expandedGroups);\n }, [expandedGroups]);\n};\n"],"names":["toggleItemExpand","itemToToggle","triggerTreeRerender","scrollTo","isExpanded","node","model","virtualIndex","isGroup","setTimeout","align","expandItemModel","modelToExpand","collapseItemModel","modelToCollapse","expandAll","treeRoot","walk","isRoot","collapseAll","getToggleExpandShouldExpand","shouldExpand","toggleExpandAllHelper","isExpand","setLatestToggledItem","useNotifyExpandedChange","propsWithDefaults","latestToggledItem","expandedGroups","notifyExpandedChange","useCallback","expandedGroupHashmap","onExpandChange","useEffect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-helpers.js","sources":["../../../src/utils/keyboard-helpers.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useCallback, useContext, useEffect } from 'react';\nimport TreeViewContext from '../TreeViewContext';\nimport { focusItem } from './tree-helpers';\nimport {\n toggleExpandAllHelper,\n toggleItemExpand,\n} from './group-expands-helpers';\n\n// 9 tab\n// 13 enter\n// 32 space\n// 37 left arrow\n// 38 up arrow\n// 39 right arrow\n// 40 down arrow\n// 35 end\n// 36 home\n\n// 56 number 8\n// 106 (NumPad) *\n\nexport const useOnItemKeyDown = (item) => {\n const ctx = useContext(TreeViewContext);\n const {\n props: { onItemFocus },\n triggerTreeRerender,\n isDragging,\n visibleItems,\n setFocusedItem,\n setSelectedItem,\n setLatestToggledItem,\n virtualListHelpers: { scrollToIndex },\n } = ctx;\n const { isGroup, isExpanded } = item;\n const onItemFocusCurry = useCallback(\n (newFocusItem) =>\n onItemFocus({\n itemIndex: newFocusItem.virtualIndex,\n scrollToItem: (opts = { align: 'start' }) =>\n scrollToIndex(newFocusItem.virtualIndex, opts),\n item: newFocusItem,\n }),\n [onItemFocus],\n );\n\n const onItemKeyDown = useCallback(\n (e) => {\n const { keyCode } = e;\n if (!isDragging) {\n if (keyCode !== 9) e.preventDefault(); // allow tab/shift+tab\n if (keyCode === 13 || keyCode === 32) setSelectedItem(item);\n\n if (keyCode === 37) {\n if (isGroup && isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n if (keyCode === 39) {\n if (isGroup && !isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n\n const { virtualIndex } = item;\n const lastItemIndex = visibleItems.length - 1;\n if (keyCode === 38) {\n const isLoopedFocus = virtualIndex === 0;\n const newFocusIndex = isLoopedFocus\n ? lastItemIndex\n : virtualIndex - 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n focusItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 40) {\n const isLoopedFocus = virtualIndex === lastItemIndex;\n const newFocusIndex = isLoopedFocus ? 0 : virtualIndex + 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 35) {\n if (virtualIndex !== lastItemIndex) {\n const newFocusItem = visibleItems[lastItemIndex];\n scrollToIndex(lastItemIndex);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n if (keyCode === 36) {\n if (virtualIndex !== 0) {\n const newFocusItem = visibleItems[0];\n scrollToIndex(0);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n }\n },\n [\n item,\n visibleItems,\n isGroup,\n isDragging,\n onItemFocusCurry,\n setFocusedItem,\n setSelectedItem,\n ],\n );\n\n return onItemKeyDown;\n};\n\nexport const useGlobalKeyboardListener = (func) => {\n useEffect(() => {\n document.addEventListener('keydown', func);\n return () => document.removeEventListener('keydown', func);\n }, [func]);\n};\n\nexport const useGlobalToggleAllExpandShortcut = (\n treeRoot,\n triggerTreeRerender,\n setLatestToggledItem,\n) => {\n const memoizedToggleAllKeyboardShortcut = useCallback(\n (e) => {\n const { shiftKey, keyCode } = e;\n if (shiftKey && keyCode === 56) {\n toggleExpandAllHelper(\n 'toggle',\n treeRoot,\n triggerTreeRerender,\n setLatestToggledItem,\n );\n }\n },\n [treeRoot, triggerTreeRerender],\n );\n\n return useGlobalKeyboardListener(memoizedToggleAllKeyboardShortcut);\n};\n"],"names":["useOnItemKeyDown","item","ctx","useContext","TreeViewContext","onItemFocus","props","triggerTreeRerender","isDragging","visibleItems","setFocusedItem","setSelectedItem","setLatestToggledItem","scrollToIndex","virtualListHelpers","isGroup","isExpanded","onItemFocusCurry","useCallback","newFocusItem","itemIndex","virtualIndex","scrollToItem","opts","align","onItemKeyDown","e","keyCode","preventDefault","toggleItemExpand","lastItemIndex","length","isLoopedFocus","newFocusIndex","setTimeout","focusItem","useGlobalKeyboardListener","func","useEffect","document","addEventListener","removeEventListener","useGlobalToggleAllExpandShortcut","treeRoot","memoizedToggleAllKeyboardShortcut","shiftKey","toggleExpandAllHelper"],"mappings":"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"}
1
+ {"version":3,"file":"keyboard-helpers.js","sources":["../../../src/utils/keyboard-helpers.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useCallback, useContext, useEffect } from 'react';\nimport TreeViewContext from '../TreeViewContext';\nimport { focusItem } from './tree-helpers';\nimport {\n toggleExpandAllHelper,\n toggleItemExpand,\n} from './group-expands-helpers';\n\n// 9 tab\n// 13 enter\n// 32 space\n// 37 left arrow\n// 38 up arrow\n// 39 right arrow\n// 40 down arrow\n// 35 end\n// 36 home\n\n// 56 number 8\n// 106 (NumPad) *\n\nexport const useOnItemKeyDown = (item) => {\n const ctx = useContext(TreeViewContext);\n const {\n props: { onItemFocus },\n triggerTreeRerender,\n isDragging,\n visibleItems,\n setFocusedItem,\n setSelectedItem,\n setLatestToggledItem,\n virtualListHelpers: { scrollToIndex },\n } = ctx;\n const { isGroup, isExpanded } = item;\n const onItemFocusCurry = useCallback(\n (newFocusItem) =>\n onItemFocus({\n itemIndex: newFocusItem.virtualIndex,\n scrollToItem: (opts = { align: 'start' }) =>\n scrollToIndex(newFocusItem.virtualIndex, opts),\n item: newFocusItem,\n }),\n [onItemFocus],\n );\n\n const onItemKeyDown = useCallback(\n (e) => {\n const { keyCode } = e;\n if (!isDragging) {\n if (keyCode !== 9) e.preventDefault(); // allow tab/shift+tab\n if (keyCode === 13 || keyCode === 32) setSelectedItem(item);\n\n if (keyCode === 37) {\n if (isGroup && isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n if (keyCode === 39) {\n if (isGroup && !isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n\n const { virtualIndex } = item;\n const lastItemIndex = visibleItems.length - 1;\n if (keyCode === 38) {\n const isLoopedFocus = virtualIndex === 0;\n const newFocusIndex = isLoopedFocus\n ? lastItemIndex\n : virtualIndex - 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n focusItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 40) {\n const isLoopedFocus = virtualIndex === lastItemIndex;\n const newFocusIndex = isLoopedFocus ? 0 : virtualIndex + 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 35) {\n if (virtualIndex !== lastItemIndex) {\n const newFocusItem = visibleItems[lastItemIndex];\n scrollToIndex(lastItemIndex);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n if (keyCode === 36) {\n if (virtualIndex !== 0) {\n const newFocusItem = visibleItems[0];\n scrollToIndex(0);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n }\n },\n [\n item,\n visibleItems,\n isGroup,\n isDragging,\n onItemFocusCurry,\n setFocusedItem,\n setSelectedItem,\n ],\n );\n\n return onItemKeyDown;\n};\n\nexport const useGlobalKeyboardListener = (func) => {\n useEffect(() => {\n document.addEventListener('keydown', func);\n return () => document.removeEventListener('keydown', func);\n }, [func]);\n};\n\nexport const useGlobalToggleAllExpandShortcut = (\n treeRoot,\n triggerTreeRerender,\n setLatestToggledItem,\n) => {\n const memoizedToggleAllKeyboardShortcut = useCallback(\n (e) => {\n const { shiftKey, keyCode } = e;\n if (shiftKey && keyCode === 56) {\n toggleExpandAllHelper(\n 'toggle',\n treeRoot,\n triggerTreeRerender,\n setLatestToggledItem,\n );\n }\n },\n [treeRoot, triggerTreeRerender],\n );\n\n return useGlobalKeyboardListener(memoizedToggleAllKeyboardShortcut);\n};\n"],"names":["useOnItemKeyDown","item","ctx","useContext","TreeViewContext","onItemFocus","props","triggerTreeRerender","isDragging","visibleItems","setFocusedItem","setSelectedItem","setLatestToggledItem","scrollToIndex","virtualListHelpers","isGroup","isExpanded","onItemFocusCurry","useCallback","newFocusItem","itemIndex","virtualIndex","scrollToItem","opts","align","onItemKeyDown","e","keyCode","preventDefault","toggleItemExpand","lastItemIndex","length","isLoopedFocus","newFocusIndex","setTimeout","focusItem","useGlobalKeyboardListener","func","useEffect","document","addEventListener","removeEventListener","useGlobalToggleAllExpandShortcut","treeRoot","memoizedToggleAllKeyboardShortcut","shiftKey","toggleExpandAllHelper"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"object-helpers.js","sources":["../../../src/utils/object-helpers.tsx"],"sourcesContent":["/* eslint-disable no-sequences */\n/* eslint-disable no-return-assign */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\n\nexport const unfreeze = (o) => {\n let oo;\n if (o === null) {\n oo = null;\n } else if (o === undefined) {\n oo = undefined;\n } else if (o.constructor.name === 'Date') {\n oo = new Date(o);\n } else if (o instanceof Array) {\n oo = [];\n o.forEach((v) => {\n oo.push(v);\n });\n } else if (o instanceof String) {\n oo = String(o);\n } else if (typeof o === 'object') {\n oo = {};\n for (const property in o) {\n oo[property] = o[property];\n }\n } else {\n oo = o;\n }\n return oo;\n};\n\nexport const filterObject = (obj, predicate) =>\n Object.keys(obj)\n .filter((key) => predicate(obj[key]))\n .reduce((res, key) => ((res[key] = obj[key]), res), {});\n"],"names":["unfreeze","o","oo","undefined","constructor","name","Date","Array","forEach","v","push","String","_typeof","property","filterObject","obj","predicate","Object","keys","filter","key","reduce","res"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;IAEaA,QAAQ,GAAG,SAAXA,QAAW,CAACC,CAAD,EAAO;AAC7B,MAAIC,EAAJ;;AACA,MAAID,CAAC,KAAK,IAAV,EAAgB;AACdC,IAAAA,EAAE,GAAG,IAAL;AACD,GAFD,MAEO,IAAID,CAAC,KAAKE,SAAV,EAAqB;AAC1BD,IAAAA,EAAE,GAAGC,SAAL;AACD,GAFM,MAEA,IAAIF,CAAC,CAACG,WAAF,CAAcC,IAAd,KAAuB,MAA3B,EAAmC;AACxCH,IAAAA,EAAE,GAAG,IAAII,IAAJ,CAASL,CAAT,CAAL;AACD,GAFM,MAEA,IAAIA,CAAC,YAAYM,KAAjB,EAAwB;AAC7BL,IAAAA,EAAE,GAAG,EAAL;AACAD,IAAAA,CAAC,CAACO,OAAF,CAAU,UAACC,CAAD,EAAO;AACfP,MAAAA,EAAE,CAACQ,IAAH,CAAQD,CAAR;AACD,KAFD;AAGD,GALM,MAKA,IAAIR,CAAC,YAAYU,MAAjB,EAAyB;AAC9BT,IAAAA,EAAE,GAAGS,MAAM,CAACV,CAAD,CAAX;AACD,GAFM,MAEA,IAAIW,4BAAOX,CAAP,MAAa,QAAjB,EAA2B;AAChCC,IAAAA,EAAE,GAAG,EAAL;;AACA,SAAK,IAAMW,QAAX,IAAuBZ,CAAvB,EAA0B;AACxBC,MAAAA,EAAE,CAACW,QAAD,CAAF,GAAeZ,CAAC,CAACY,QAAD,CAAhB;AACD;AACF,GALM,MAKA;AACLX,IAAAA,EAAE,GAAGD,CAAL;AACD;;AACD,SAAOC,EAAP;AACD;IAEYY,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAMC,SAAN;AAAA,SAC1BC,MAAM,CAACC,IAAP,CAAYH,GAAZ,EACGI,MADH,CACU,UAACC,GAAD;AAAA,WAASJ,SAAS,CAACD,GAAG,CAACK,GAAD,CAAJ,CAAlB;AAAA,GADV,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMF,GAAN;AAAA,WAAgBE,GAAG,CAACF,GAAD,CAAH,GAAWL,GAAG,CAACK,GAAD,CAAf,EAAuBE,GAAtC;AAAA,GAFV,EAEsD,EAFtD,CAD0B;AAAA;;;;;"}
1
+ {"version":3,"file":"object-helpers.js","sources":["../../../src/utils/object-helpers.tsx"],"sourcesContent":["/* eslint-disable no-sequences */\n/* eslint-disable no-return-assign */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\n\nexport const unfreeze = (o) => {\n let oo;\n if (o === null) {\n oo = null;\n } else if (o === undefined) {\n oo = undefined;\n } else if (o.constructor.name === 'Date') {\n oo = new Date(o);\n } else if (o instanceof Array) {\n oo = [];\n o.forEach((v) => {\n oo.push(v);\n });\n } else if (o instanceof String) {\n oo = String(o);\n } else if (typeof o === 'object') {\n oo = {};\n for (const property in o) {\n oo[property] = o[property];\n }\n } else {\n oo = o;\n }\n return oo;\n};\n\nexport const filterObject = (obj, predicate) =>\n Object.keys(obj)\n .filter((key) => predicate(obj[key]))\n .reduce((res, key) => ((res[key] = obj[key]), res), {});\n"],"names":["unfreeze","o","oo","undefined","constructor","name","Date","Array","forEach","v","push","String","_typeof","property","filterObject","obj","predicate","Object","keys","filter","key","reduce","res"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;IAEaA,QAAQ,GAAG,SAAXA,QAAW,CAACC,CAAD,EAAO;EAC7B,IAAIC,EAAJ;;EACA,IAAID,CAAC,KAAK,IAAV,EAAgB;IACdC,EAAE,GAAG,IAAL;GADF,MAEO,IAAID,CAAC,KAAKE,SAAV,EAAqB;IAC1BD,EAAE,GAAGC,SAAL;GADK,MAEA,IAAIF,CAAC,CAACG,WAAF,CAAcC,IAAd,KAAuB,MAA3B,EAAmC;IACxCH,EAAE,GAAG,IAAII,IAAJ,CAASL,CAAT,CAAL;GADK,MAEA,IAAIA,CAAC,YAAYM,KAAjB,EAAwB;IAC7BL,EAAE,GAAG,EAAL;IACAD,CAAC,CAACO,OAAF,CAAU,UAACC,CAAD,EAAO;MACfP,EAAE,CAACQ,IAAH,CAAQD,CAAR;KADF;GAFK,MAKA,IAAIR,CAAC,YAAYU,MAAjB,EAAyB;IAC9BT,EAAE,GAAGS,MAAM,CAACV,CAAD,CAAX;GADK,MAEA,IAAIW,4BAAOX,CAAP,MAAa,QAAjB,EAA2B;IAChCC,EAAE,GAAG,EAAL;;IACA,KAAK,IAAMW,QAAX,IAAuBZ,CAAvB,EAA0B;MACxBC,EAAE,CAACW,QAAD,CAAF,GAAeZ,CAAC,CAACY,QAAD,CAAhB;;GAHG,MAKA;IACLX,EAAE,GAAGD,CAAL;;;EAEF,OAAOC,EAAP;AACD;IAEYY,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAMC,SAAN;EAAA,OAC1BC,MAAM,CAACC,IAAP,CAAYH,GAAZ,EACGI,MADH,CACU,UAACC,GAAD;IAAA,OAASJ,SAAS,CAACD,GAAG,CAACK,GAAD,CAAJ,CAAlB;GADV,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMF,GAAN;IAAA,OAAgBE,GAAG,CAACF,GAAD,CAAH,GAAWL,GAAG,CAACK,GAAD,CAAf,EAAuBE,GAAtC;GAFV,EAEsD,EAFtD,CAD0B;AAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"refs-helpers.js","sources":["../../../src/utils/refs-helpers.tsx"],"sourcesContent":["// allow multiple refs to be set to point to the same DOM element\nexport const setMultipleRefs = (...refs) => {\n const filteredRefs = refs.filter(Boolean);\n if (!filteredRefs.length) return null;\n if (filteredRefs.length === 0) return filteredRefs[0];\n\n return (newRef) => {\n filteredRefs.forEach((refToBeUpdated) => {\n if (typeof refToBeUpdated === 'function') {\n refToBeUpdated(newRef);\n } else if (refToBeUpdated) {\n refToBeUpdated.current = newRef;\n }\n });\n };\n};\n"],"names":["setMultipleRefs","refs","filteredRefs","filter","Boolean","length","newRef","forEach","refToBeUpdated","current"],"mappings":";;;;AAAA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,GAAa;AAAA,oCAATC,IAAS;AAATA,IAAAA,IAAS;AAAA;;AAC1C,MAAMC,YAAY,GAAGD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAArB;AACA,MAAI,CAACF,YAAY,CAACG,MAAlB,EAA0B,OAAO,IAAP;AAC1B,MAAIH,YAAY,CAACG,MAAb,KAAwB,CAA5B,EAA+B,OAAOH,YAAY,CAAC,CAAD,CAAnB;AAE/B,SAAO,UAACI,MAAD,EAAY;AACjBJ,IAAAA,YAAY,CAACK,OAAb,CAAqB,UAACC,cAAD,EAAoB;AACvC,UAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,QAAAA,cAAc,CAACF,MAAD,CAAd;AACD,OAFD,MAEO,IAAIE,cAAJ,EAAoB;AACzBA,QAAAA,cAAc,CAACC,OAAf,GAAyBH,MAAzB;AACD;AACF,KAND;AAOD,GARD;AASD;;;;"}
1
+ {"version":3,"file":"refs-helpers.js","sources":["../../../src/utils/refs-helpers.tsx"],"sourcesContent":["// allow multiple refs to be set to point to the same DOM element\nexport const setMultipleRefs = (...refs) => {\n const filteredRefs = refs.filter(Boolean);\n if (!filteredRefs.length) return null;\n if (filteredRefs.length === 0) return filteredRefs[0];\n\n return (newRef) => {\n filteredRefs.forEach((refToBeUpdated) => {\n if (typeof refToBeUpdated === 'function') {\n refToBeUpdated(newRef);\n } else if (refToBeUpdated) {\n refToBeUpdated.current = newRef;\n }\n });\n };\n};\n"],"names":["setMultipleRefs","refs","filteredRefs","filter","Boolean","length","newRef","forEach","refToBeUpdated","current"],"mappings":";;;;AAAA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,GAAa;EAAA,kCAATC,IAAS;IAATA,IAAS;;;EAC1C,IAAMC,YAAY,GAAGD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAArB;EACA,IAAI,CAACF,YAAY,CAACG,MAAlB,EAA0B,OAAO,IAAP;EAC1B,IAAIH,YAAY,CAACG,MAAb,KAAwB,CAA5B,EAA+B,OAAOH,YAAY,CAAC,CAAD,CAAnB;EAE/B,OAAO,UAACI,MAAD,EAAY;IACjBJ,YAAY,CAACK,OAAb,CAAqB,UAACC,cAAD,EAAoB;MACvC,IAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;QACxCA,cAAc,CAACF,MAAD,CAAd;OADF,MAEO,IAAIE,cAAJ,EAAoB;QACzBA,cAAc,CAACC,OAAf,GAAyBH,MAAzB;;KAJJ;GADF;AASD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectable-helper.js","sources":["../../../src/utils/selectable-helper.tsx"],"sourcesContent":["/* eslint-disable max-params */\nimport { walkParents, walkAllNodeChildren } from './tree-helpers';\n\nexport const getGroupCheckState = (node) => {\n let childAllChecked = true;\n let anyChildChecked = false;\n walkAllNodeChildren(node, (childNode) => {\n const {\n model: { isChecked },\n } = childNode;\n if (isChecked === 'mixed' || isChecked === true) anyChildChecked = true;\n else childAllChecked = false;\n });\n\n if (childAllChecked) return true;\n if (anyChildChecked) return 'mixed';\n return false;\n};\n\nexport const selectCheckboxItemModelParentsTillRoot = (\n modelToCheck,\n triggerTreeRerender = null,\n) => {\n const newSelections = {};\n const { nodePath } = modelToCheck;\n walkParents(nodePath, (parentNode) => {\n const nextState = getGroupCheckState(parentNode);\n parentNode.model.isChecked = nextState;\n newSelections[parentNode.model.id] = nextState;\n });\n if (triggerTreeRerender) triggerTreeRerender();\n return newSelections;\n};\n\nexport const toggleCheckboxItem = (\n itemToSelect,\n triggerTreeRerender = null,\n) => {\n const {\n node: {\n model: { id, isChecked, children = [] },\n },\n } = itemToSelect;\n\n const newSelections = {};\n // 'mixed' -> true -> false -> true [...->false -> true]\n const nextState = isChecked === 'mixed' ? true : !isChecked;\n itemToSelect.node.model.isChecked = nextState;\n newSelections[id] = nextState;\n\n if (children.length > 0 && (nextState === true || nextState === false)) {\n walkAllNodeChildren(itemToSelect.node, (childNode) => {\n childNode.model.isChecked = nextState;\n newSelections[childNode.model.id] = nextState;\n });\n }\n\n const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(\n itemToSelect,\n );\n\n if (triggerTreeRerender) triggerTreeRerender();\n return { ...parentsNewSelections, ...newSelections };\n};\n"],"names":["getGroupCheckState","node","childAllChecked","anyChildChecked","walkAllNodeChildren","childNode","isChecked","model","selectCheckboxItemModelParentsTillRoot","modelToCheck","triggerTreeRerender","newSelections","nodePath","walkParents","parentNode","nextState","id","toggleCheckboxItem","itemToSelect","children","length","parentsNewSelections"],"mappings":";;;;;;;;;;;;;;;;;IAGaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAAU;AAC1C,MAAIC,eAAe,GAAG,IAAtB;AACA,MAAIC,eAAe,GAAG,KAAtB;AACAC,EAAAA,qCAAmB,CAACH,IAAD,EAAO,UAACI,SAAD,EAAe;AACvC,QACWC,SADX,GAEID,SAFJ,CACEE,KADF,CACWD,SADX;AAGA,QAAIA,SAAS,KAAK,OAAd,IAAyBA,SAAS,KAAK,IAA3C,EAAiDH,eAAe,GAAG,IAAlB,CAAjD,KACKD,eAAe,GAAG,KAAlB;AACN,GANkB,CAAnB;AAQA,MAAIA,eAAJ,EAAqB,OAAO,IAAP;AACrB,MAAIC,eAAJ,EAAqB,OAAO,OAAP;AACrB,SAAO,KAAP;AACD;IAEYK,sCAAsC,GAAG,SAAzCA,sCAAyC,CACpDC,YADoD,EAGjD;AAAA,MADHC,mBACG,uEADmB,IACnB;AACH,MAAMC,aAAa,GAAG,EAAtB;AACA,MAAQC,QAAR,GAAqBH,YAArB,CAAQG,QAAR;AACAC,EAAAA,6BAAW,CAACD,QAAD,EAAW,UAACE,UAAD,EAAgB;AACpC,QAAMC,SAAS,GAAGf,kBAAkB,CAACc,UAAD,CAApC;AACAA,IAAAA,UAAU,CAACP,KAAX,CAAiBD,SAAjB,GAA6BS,SAA7B;AACAJ,IAAAA,aAAa,CAACG,UAAU,CAACP,KAAX,CAAiBS,EAAlB,CAAb,GAAqCD,SAArC;AACD,GAJU,CAAX;AAKA,MAAIL,mBAAJ,EAAyBA,mBAAmB;AAC5C,SAAOC,aAAP;AACD;IAEYM,kBAAkB,GAAG,SAArBA,kBAAqB,CAChCC,YADgC,EAG7B;AAAA,MADHR,mBACG,uEADmB,IACnB;AACH,8BAIIQ,YAJJ,CACEjB,IADF,CAEIM,KAFJ;AAAA,MAEaS,EAFb,yBAEaA,EAFb;AAAA,MAEiBV,SAFjB,yBAEiBA,SAFjB;AAAA,qDAE4Ba,QAF5B;AAAA,MAE4BA,QAF5B,uCAEuC,EAFvC;AAMA,MAAMR,aAAa,GAAG,EAAtB,CAPG;;AASH,MAAMI,SAAS,GAAGT,SAAS,KAAK,OAAd,GAAwB,IAAxB,GAA+B,CAACA,SAAlD;AACAY,EAAAA,YAAY,CAACjB,IAAb,CAAkBM,KAAlB,CAAwBD,SAAxB,GAAoCS,SAApC;AACAJ,EAAAA,aAAa,CAACK,EAAD,CAAb,GAAoBD,SAApB;;AAEA,MAAII,QAAQ,CAACC,MAAT,GAAkB,CAAlB,KAAwBL,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAA5D,CAAJ,EAAwE;AACtEX,IAAAA,qCAAmB,CAACc,YAAY,CAACjB,IAAd,EAAoB,UAACI,SAAD,EAAe;AACpDA,MAAAA,SAAS,CAACE,KAAV,CAAgBD,SAAhB,GAA4BS,SAA5B;AACAJ,MAAAA,aAAa,CAACN,SAAS,CAACE,KAAV,CAAgBS,EAAjB,CAAb,GAAoCD,SAApC;AACD,KAHkB,CAAnB;AAID;;AAED,MAAMM,oBAAoB,GAAGb,sCAAsC,CACjEU,YADiE,CAAnE;AAIA,MAAIR,mBAAJ,EAAyBA,mBAAmB;AAC5C,yCAAYW,oBAAZ,GAAqCV,aAArC;AACD;;;;;;"}
1
+ {"version":3,"file":"selectable-helper.js","sources":["../../../src/utils/selectable-helper.tsx"],"sourcesContent":["/* eslint-disable max-params */\nimport { walkParents, walkAllNodeChildren } from './tree-helpers';\n\nexport const getGroupCheckState = (node) => {\n let childAllChecked = true;\n let anyChildChecked = false;\n walkAllNodeChildren(node, (childNode) => {\n const {\n model: { isChecked },\n } = childNode;\n if (isChecked === 'mixed' || isChecked === true) anyChildChecked = true;\n else childAllChecked = false;\n });\n\n if (childAllChecked) return true;\n if (anyChildChecked) return 'mixed';\n return false;\n};\n\nexport const selectCheckboxItemModelParentsTillRoot = (\n modelToCheck,\n triggerTreeRerender = null,\n) => {\n const newSelections = {};\n const { nodePath } = modelToCheck;\n walkParents(nodePath, (parentNode) => {\n const nextState = getGroupCheckState(parentNode);\n parentNode.model.isChecked = nextState;\n newSelections[parentNode.model.id] = nextState;\n });\n if (triggerTreeRerender) triggerTreeRerender();\n return newSelections;\n};\n\nexport const toggleCheckboxItem = (\n itemToSelect,\n triggerTreeRerender = null,\n) => {\n const {\n node: {\n model: { id, isChecked, children = [] },\n },\n } = itemToSelect;\n\n const newSelections = {};\n // 'mixed' -> true -> false -> true [...->false -> true]\n const nextState = isChecked === 'mixed' ? true : !isChecked;\n itemToSelect.node.model.isChecked = nextState;\n newSelections[id] = nextState;\n\n if (children.length > 0 && (nextState === true || nextState === false)) {\n walkAllNodeChildren(itemToSelect.node, (childNode) => {\n childNode.model.isChecked = nextState;\n newSelections[childNode.model.id] = nextState;\n });\n }\n\n const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(\n itemToSelect,\n );\n\n if (triggerTreeRerender) triggerTreeRerender();\n return { ...parentsNewSelections, ...newSelections };\n};\n"],"names":["getGroupCheckState","node","childAllChecked","anyChildChecked","walkAllNodeChildren","childNode","isChecked","model","selectCheckboxItemModelParentsTillRoot","modelToCheck","triggerTreeRerender","newSelections","nodePath","walkParents","parentNode","nextState","id","toggleCheckboxItem","itemToSelect","children","length","parentsNewSelections"],"mappings":";;;;;;;;;;;;;;;;;IAGaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAAU;EAC1C,IAAIC,eAAe,GAAG,IAAtB;EACA,IAAIC,eAAe,GAAG,KAAtB;EACAC,qCAAmB,CAACH,IAAD,EAAO,UAACI,SAAD,EAAe;IACvC,IACWC,SADX,GAEID,SAFJ,CACEE,KADF,CACWD,SADX;IAGA,IAAIA,SAAS,KAAK,OAAd,IAAyBA,SAAS,KAAK,IAA3C,EAAiDH,eAAe,GAAG,IAAlB,CAAjD,KACKD,eAAe,GAAG,KAAlB;GALY,CAAnB;EAQA,IAAIA,eAAJ,EAAqB,OAAO,IAAP;EACrB,IAAIC,eAAJ,EAAqB,OAAO,OAAP;EACrB,OAAO,KAAP;AACD;IAEYK,sCAAsC,GAAG,SAAzCA,sCAAyC,CACpDC,YADoD,EAGjD;EAAA,IADHC,mBACG,uEADmB,IACnB;EACH,IAAMC,aAAa,GAAG,EAAtB;EACA,IAAQC,QAAR,GAAqBH,YAArB,CAAQG,QAAR;EACAC,6BAAW,CAACD,QAAD,EAAW,UAACE,UAAD,EAAgB;IACpC,IAAMC,SAAS,GAAGf,kBAAkB,CAACc,UAAD,CAApC;IACAA,UAAU,CAACP,KAAX,CAAiBD,SAAjB,GAA6BS,SAA7B;IACAJ,aAAa,CAACG,UAAU,CAACP,KAAX,CAAiBS,EAAlB,CAAb,GAAqCD,SAArC;GAHS,CAAX;EAKA,IAAIL,mBAAJ,EAAyBA,mBAAmB;EAC5C,OAAOC,aAAP;AACD;IAEYM,kBAAkB,GAAG,SAArBA,kBAAqB,CAChCC,YADgC,EAG7B;EAAA,IADHR,mBACG,uEADmB,IACnB;EACH,4BAIIQ,YAJJ,CACEjB,IADF,CAEIM,KAFJ;MAEaS,EAFb,yBAEaA,EAFb;MAEiBV,SAFjB,yBAEiBA,SAFjB;qDAE4Ba,QAF5B;MAE4BA,QAF5B,uCAEuC,EAFvC;EAMA,IAAMR,aAAa,GAAG,EAAtB,CAPG;;EASH,IAAMI,SAAS,GAAGT,SAAS,KAAK,OAAd,GAAwB,IAAxB,GAA+B,CAACA,SAAlD;EACAY,YAAY,CAACjB,IAAb,CAAkBM,KAAlB,CAAwBD,SAAxB,GAAoCS,SAApC;EACAJ,aAAa,CAACK,EAAD,CAAb,GAAoBD,SAApB;;EAEA,IAAII,QAAQ,CAACC,MAAT,GAAkB,CAAlB,KAAwBL,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAA5D,CAAJ,EAAwE;IACtEX,qCAAmB,CAACc,YAAY,CAACjB,IAAd,EAAoB,UAACI,SAAD,EAAe;MACpDA,SAAS,CAACE,KAAV,CAAgBD,SAAhB,GAA4BS,SAA5B;MACAJ,aAAa,CAACN,SAAS,CAACE,KAAV,CAAgBS,EAAjB,CAAb,GAAoCD,SAApC;KAFiB,CAAnB;;;EAMF,IAAMM,oBAAoB,GAAGb,sCAAsC,CACjEU,YADiE,CAAnE;EAIA,IAAIR,mBAAJ,EAAyBA,mBAAmB;EAC5C,uCAAYW,oBAAZ,GAAqCV,aAArC;AACD;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"string-helpers.js","sources":["../../../src/utils/string-helpers.tsx"],"sourcesContent":["export const standardizeSearchQueryString = (input) =>\n input.trim().toLowerCase();\n"],"names":["standardizeSearchQueryString","input","trim","toLowerCase"],"mappings":";;;;IAAaA,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD;AAAA,SAC1CA,KAAK,CAACC,IAAN,GAAaC,WAAb,EAD0C;AAAA;;;;"}
1
+ {"version":3,"file":"string-helpers.js","sources":["../../../src/utils/string-helpers.tsx"],"sourcesContent":["export const standardizeSearchQueryString = (input) =>\n input.trim().toLowerCase();\n"],"names":["standardizeSearchQueryString","input","trim","toLowerCase"],"mappings":";;;;IAAaA,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD;EAAA,OAC1CA,KAAK,CAACC,IAAN,GAAaC,WAAb,EAD0C;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-helpers.js","sources":["../../../src/utils/tree-helpers.tsx"],"sourcesContent":["/* eslint-disable max-params */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport { createRef } from 'react';\nimport { standardizeSearchQueryString } from './string-helpers';\n\nexport const walkVisibles = (\n node,\n callback,\n skipRoot = true,\n highlightOnlyQuery = false,\n) => {\n const { children, model } = node;\n const {\n name,\n isExpanded,\n childrenMatchesSearchQuery,\n matchesSearchQuery,\n } = model;\n\n const shouldSkipBecauseIsRoot = skipRoot && name === '__root';\n const queryRestrictionsPassed =\n highlightOnlyQuery || childrenMatchesSearchQuery || matchesSearchQuery;\n\n if (!shouldSkipBecauseIsRoot && queryRestrictionsPassed) callback(node);\n\n const shouldWalkChildren =\n children.length && isExpanded && queryRestrictionsPassed;\n if (shouldWalkChildren) {\n children.forEach((childNode) => {\n walkVisibles(childNode, callback, skipRoot, highlightOnlyQuery);\n });\n }\n};\n\nexport const walkParents = (nodePath, callback, skipRoot = true) => {\n const parents = [...nodePath].reverse();\n parents.shift(); // remove current node from the parents array\n if (skipRoot) parents.pop(); // remove the root from the parents if skipping root\n parents.forEach(callback);\n};\n\nexport const walkAllNodeChildren = (node, callback, isFirst = true) => {\n const { children = [] } = node;\n const shouldWalkChildren = children.length;\n\n if (!isFirst) callback(node);\n\n if (shouldWalkChildren) {\n children.forEach((childNode) => {\n walkAllNodeChildren(childNode, callback, false);\n });\n }\n};\n\nexport const getNodeById = (treeRoot, id) => {\n const nodes = treeRoot.all((node) => node.model.id === id);\n return nodes[0];\n};\n\nexport const cloneNode = (tree, node) => tree.parse(node.model);\n\nexport const getItemsParentNode = (items = [], skipSameParentCheck = false) => {\n if (items.length === 0)\n throw new Error(\"Received empty items, can't retrieve parent\");\n\n // in case we already know the items compared shares the same parent\n if (!skipSameParentCheck)\n if (!itemsShareSameParent(items))\n // if we don't know (default, we don't) check if they share the parent\n throw new Error(\n \"Received items don't share the same parent, can't retrieve parent\",\n );\n\n // when moving in first position we receive [undefined,...{items}]\n // when moving in last position we receive [...{items}, undefined]\n const firstExistingItem = items.find((item) => !!item);\n if (!firstExistingItem)\n throw new Error(\"Received no items, can't retrieve parent\");\n\n const firstExistingItemPath = firstExistingItem.node.getPath();\n // path is like [rootParent, ...[parentsNodes], currentNode]\n // length -1 is the current-node\n // length -2 is the parent-node\n // root node is not printed and is always present so minimum path length is 2 (root + currentNode)\n const directParentNode =\n firstExistingItemPath[firstExistingItemPath.length - 2];\n return directParentNode;\n};\n\nexport const itemsShareSameParent = (items = []) => {\n if (items.length === 0)\n throw new Error('Received empty items for comparison');\n if (items.length === 1) return true;\n\n // when moving in first position we receive [undefined,...{items}]\n // when moving in last position we receive [...{items}, undefined]\n const firstExistingItem = items.find((item) => !!item);\n if (!firstExistingItem)\n throw new Error(\"Received no items, can't retrieve parent\");\n\n const firstExistingItemPath = firstExistingItem.node.getPath();\n // path is like [rootParent, ...[parentsNodes], currentNode]\n // length -1 is the current-node\n // length -2 is the parent-node\n // root node is not printed and is always present so minimum path length is 2 (root + currentNode)\n const directParentNode =\n firstExistingItemPath[firstExistingItemPath.length - 2];\n\n return items.every((item) => {\n // undefined nodes count as having the same parent\n if (!item) return true;\n const itemPath = item.node.getPath();\n const itemDirectParent = itemPath[itemPath.length - 2];\n return directParentNode === itemDirectParent;\n });\n};\n\nexport const getNodeMatchesSearchQuery = (node, searchQuery = '') => {\n const standardizedName = standardizeSearchQueryString(node.model.name);\n const standardizedSearchQuery = standardizeSearchQueryString(searchQuery);\n return standardizedName.includes(standardizedSearchQuery);\n};\n\nexport const getChildrenMatchesSearchQuery = (parentNode, searchQuery = '') => {\n let anyChildMatch = false;\n walkAllNodeChildren(parentNode, (node) => {\n if (getNodeMatchesSearchQuery(node, searchQuery)) anyChildMatch = true;\n });\n return anyChildMatch;\n};\n\nexport const enrichNodeModelInPlace = (\n node,\n searchQuery = '',\n selection = null,\n) => {\n const path = node.getPath();\n const depth = path.length - 1;\n node.model.nodePath = path;\n node.model.treeDepth = depth;\n\n if (!node.model.nodeItemRef) {\n node.model.nodeItemRef = createRef();\n }\n\n // if a node has children but was not marked as isGroup, force-mark as group\n // this is useful to avoid having to always check both the flag and the children.length...\n if (\n typeof node.model.isGroup !== 'boolean' &&\n node.model?.children?.length > 0\n ) {\n node.model.isGroup = true;\n }\n\n if (typeof node.model.isExpanded !== 'boolean') {\n node.model.isExpanded = false;\n }\n\n node.model.matchesSearchQuery = true;\n node.model.childrenMatchesSearchQuery = false;\n if (searchQuery) {\n node.model.matchesSearchQuery = getNodeMatchesSearchQuery(\n node,\n searchQuery,\n );\n\n if (node.model.isGroup === true) {\n node.model.childrenMatchesSearchQuery = getChildrenMatchesSearchQuery(\n node,\n searchQuery,\n );\n if (node.model.childrenMatchesSearchQuery) node.model.isExpanded = true;\n }\n }\n if (selection && selection[node.model.id]) {\n node.model.isChecked = selection[node.model.id];\n }\n};\n\nexport const focusItem = (item) => {\n item?.nodeItemRef?.current?.focus();\n};\n"],"names":["walkVisibles","node","callback","skipRoot","highlightOnlyQuery","children","model","name","isExpanded","childrenMatchesSearchQuery","matchesSearchQuery","shouldSkipBecauseIsRoot","queryRestrictionsPassed","shouldWalkChildren","length","forEach","childNode","walkParents","nodePath","parents","_toConsumableArray","reverse","shift","pop","walkAllNodeChildren","isFirst","getNodeById","treeRoot","id","nodes","all","cloneNode","tree","parse","getItemsParentNode","items","skipSameParentCheck","Error","itemsShareSameParent","firstExistingItem","find","item","firstExistingItemPath","getPath","directParentNode","every","itemPath","itemDirectParent","getNodeMatchesSearchQuery","searchQuery","standardizedName","standardizeSearchQueryString","standardizedSearchQuery","includes","getChildrenMatchesSearchQuery","parentNode","anyChildMatch","enrichNodeModelInPlace","selection","path","depth","treeDepth","nodeItemRef","createRef","isGroup","isChecked","focusItem","current","focus"],"mappings":"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"}
1
+ {"version":3,"file":"tree-helpers.js","sources":["../../../src/utils/tree-helpers.tsx"],"sourcesContent":["/* eslint-disable max-params */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport { createRef } from 'react';\nimport { standardizeSearchQueryString } from './string-helpers';\n\nexport const walkVisibles = (\n node,\n callback,\n skipRoot = true,\n highlightOnlyQuery = false,\n) => {\n const { children, model } = node;\n const {\n name,\n isExpanded,\n childrenMatchesSearchQuery,\n matchesSearchQuery,\n } = model;\n\n const shouldSkipBecauseIsRoot = skipRoot && name === '__root';\n const queryRestrictionsPassed =\n highlightOnlyQuery || childrenMatchesSearchQuery || matchesSearchQuery;\n\n if (!shouldSkipBecauseIsRoot && queryRestrictionsPassed) callback(node);\n\n const shouldWalkChildren =\n children.length && isExpanded && queryRestrictionsPassed;\n if (shouldWalkChildren) {\n children.forEach((childNode) => {\n walkVisibles(childNode, callback, skipRoot, highlightOnlyQuery);\n });\n }\n};\n\nexport const walkParents = (nodePath, callback, skipRoot = true) => {\n const parents = [...nodePath].reverse();\n parents.shift(); // remove current node from the parents array\n if (skipRoot) parents.pop(); // remove the root from the parents if skipping root\n parents.forEach(callback);\n};\n\nexport const walkAllNodeChildren = (node, callback, isFirst = true) => {\n const { children = [] } = node;\n const shouldWalkChildren = children.length;\n\n if (!isFirst) callback(node);\n\n if (shouldWalkChildren) {\n children.forEach((childNode) => {\n walkAllNodeChildren(childNode, callback, false);\n });\n }\n};\n\nexport const getNodeById = (treeRoot, id) => {\n const nodes = treeRoot.all((node) => node.model.id === id);\n return nodes[0];\n};\n\nexport const cloneNode = (tree, node) => tree.parse(node.model);\n\nexport const getItemsParentNode = (items = [], skipSameParentCheck = false) => {\n if (items.length === 0)\n throw new Error(\"Received empty items, can't retrieve parent\");\n\n // in case we already know the items compared shares the same parent\n if (!skipSameParentCheck)\n if (!itemsShareSameParent(items))\n // if we don't know (default, we don't) check if they share the parent\n throw new Error(\n \"Received items don't share the same parent, can't retrieve parent\",\n );\n\n // when moving in first position we receive [undefined,...{items}]\n // when moving in last position we receive [...{items}, undefined]\n const firstExistingItem = items.find((item) => !!item);\n if (!firstExistingItem)\n throw new Error(\"Received no items, can't retrieve parent\");\n\n const firstExistingItemPath = firstExistingItem.node.getPath();\n // path is like [rootParent, ...[parentsNodes], currentNode]\n // length -1 is the current-node\n // length -2 is the parent-node\n // root node is not printed and is always present so minimum path length is 2 (root + currentNode)\n const directParentNode =\n firstExistingItemPath[firstExistingItemPath.length - 2];\n return directParentNode;\n};\n\nexport const itemsShareSameParent = (items = []) => {\n if (items.length === 0)\n throw new Error('Received empty items for comparison');\n if (items.length === 1) return true;\n\n // when moving in first position we receive [undefined,...{items}]\n // when moving in last position we receive [...{items}, undefined]\n const firstExistingItem = items.find((item) => !!item);\n if (!firstExistingItem)\n throw new Error(\"Received no items, can't retrieve parent\");\n\n const firstExistingItemPath = firstExistingItem.node.getPath();\n // path is like [rootParent, ...[parentsNodes], currentNode]\n // length -1 is the current-node\n // length -2 is the parent-node\n // root node is not printed and is always present so minimum path length is 2 (root + currentNode)\n const directParentNode =\n firstExistingItemPath[firstExistingItemPath.length - 2];\n\n return items.every((item) => {\n // undefined nodes count as having the same parent\n if (!item) return true;\n const itemPath = item.node.getPath();\n const itemDirectParent = itemPath[itemPath.length - 2];\n return directParentNode === itemDirectParent;\n });\n};\n\nexport const getNodeMatchesSearchQuery = (node, searchQuery = '') => {\n const standardizedName = standardizeSearchQueryString(node.model.name);\n const standardizedSearchQuery = standardizeSearchQueryString(searchQuery);\n return standardizedName.includes(standardizedSearchQuery);\n};\n\nexport const getChildrenMatchesSearchQuery = (parentNode, searchQuery = '') => {\n let anyChildMatch = false;\n walkAllNodeChildren(parentNode, (node) => {\n if (getNodeMatchesSearchQuery(node, searchQuery)) anyChildMatch = true;\n });\n return anyChildMatch;\n};\n\nexport const enrichNodeModelInPlace = (\n node,\n searchQuery = '',\n selection = null,\n) => {\n const path = node.getPath();\n const depth = path.length - 1;\n node.model.nodePath = path;\n node.model.treeDepth = depth;\n\n if (!node.model.nodeItemRef) {\n node.model.nodeItemRef = createRef();\n }\n\n // if a node has children but was not marked as isGroup, force-mark as group\n // this is useful to avoid having to always check both the flag and the children.length...\n if (\n typeof node.model.isGroup !== 'boolean' &&\n node.model?.children?.length > 0\n ) {\n node.model.isGroup = true;\n }\n\n if (typeof node.model.isExpanded !== 'boolean') {\n node.model.isExpanded = false;\n }\n\n node.model.matchesSearchQuery = true;\n node.model.childrenMatchesSearchQuery = false;\n if (searchQuery) {\n node.model.matchesSearchQuery = getNodeMatchesSearchQuery(\n node,\n searchQuery,\n );\n\n if (node.model.isGroup === true) {\n node.model.childrenMatchesSearchQuery = getChildrenMatchesSearchQuery(\n node,\n searchQuery,\n );\n if (node.model.childrenMatchesSearchQuery) node.model.isExpanded = true;\n }\n }\n if (selection && selection[node.model.id]) {\n node.model.isChecked = selection[node.model.id];\n }\n};\n\nexport const focusItem = (item) => {\n item?.nodeItemRef?.current?.focus();\n};\n"],"names":["walkVisibles","node","callback","skipRoot","highlightOnlyQuery","children","model","name","isExpanded","childrenMatchesSearchQuery","matchesSearchQuery","shouldSkipBecauseIsRoot","queryRestrictionsPassed","shouldWalkChildren","length","forEach","childNode","walkParents","nodePath","parents","_toConsumableArray","reverse","shift","pop","walkAllNodeChildren","isFirst","getNodeById","treeRoot","id","nodes","all","cloneNode","tree","parse","getItemsParentNode","items","skipSameParentCheck","Error","itemsShareSameParent","firstExistingItem","find","item","firstExistingItemPath","getPath","directParentNode","every","itemPath","itemDirectParent","getNodeMatchesSearchQuery","searchQuery","standardizedName","standardizeSearchQueryString","standardizedSearchQuery","includes","getChildrenMatchesSearchQuery","parentNode","anyChildMatch","enrichNodeModelInPlace","selection","path","depth","treeDepth","nodeItemRef","createRef","isGroup","isChecked","focusItem","current","focus"],"mappings":";;;;;;;;;;;;IAMaA,YAAY,GAAG,SAAfA,YAAe,CAC1BC,IAD0B,EAE1BC,QAF0B,EAKvB;EAAA,IAFHC,QAEG,uEAFQ,IAER;EAAA,IADHC,kBACG,uEADkB,KAClB;EACH,IAAQC,QAAR,GAA4BJ,IAA5B,CAAQI,QAAR;MAAkBC,KAAlB,GAA4BL,IAA5B,CAAkBK,KAAlB;EACA,IACEC,IADF,GAKID,KALJ,CACEC,IADF;MAEEC,UAFF,GAKIF,KALJ,CAEEE,UAFF;MAGEC,0BAHF,GAKIH,KALJ,CAGEG,0BAHF;MAIEC,kBAJF,GAKIJ,KALJ,CAIEI,kBAJF;EAOA,IAAMC,uBAAuB,GAAGR,QAAQ,IAAII,IAAI,KAAK,QAArD;EACA,IAAMK,uBAAuB,GAC3BR,kBAAkB,IAAIK,0BAAtB,IAAoDC,kBADtD;EAGA,IAAI,CAACC,uBAAD,IAA4BC,uBAAhC,EAAyDV,QAAQ,CAACD,IAAD,CAAR;EAEzD,IAAMY,kBAAkB,GACtBR,QAAQ,CAACS,MAAT,IAAmBN,UAAnB,IAAiCI,uBADnC;;EAEA,IAAIC,kBAAJ,EAAwB;IACtBR,QAAQ,CAACU,OAAT,CAAiB,UAACC,SAAD,EAAe;MAC9BhB,YAAY,CAACgB,SAAD,EAAYd,QAAZ,EAAsBC,QAAtB,EAAgCC,kBAAhC,CAAZ;KADF;;AAIH;IAEYa,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAWhB,QAAX,EAAyC;EAAA,IAApBC,QAAoB,uEAAT,IAAS;;EAClE,IAAMgB,OAAO,GAAGC,uCAAIF,QAAJ,EAAcG,OAAd,EAAhB;;EACAF,OAAO,CAACG,KAAR,GAFkE;;EAGlE,IAAInB,QAAJ,EAAcgB,OAAO,CAACI,GAAR,GAHoD;;EAIlEJ,OAAO,CAACJ,OAAR,CAAgBb,QAAhB;AACD;IAEYsB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACvB,IAAD,EAAOC,QAAP,EAAoC;EAAA,IAAnBuB,OAAmB,uEAAT,IAAS;EACrE,qBAA0BxB,IAA1B,CAAQI,QAAR;MAAQA,QAAR,+BAAmB,EAAnB;EACA,IAAMQ,kBAAkB,GAAGR,QAAQ,CAACS,MAApC;EAEA,IAAI,CAACW,OAAL,EAAcvB,QAAQ,CAACD,IAAD,CAAR;;EAEd,IAAIY,kBAAJ,EAAwB;IACtBR,QAAQ,CAACU,OAAT,CAAiB,UAACC,SAAD,EAAe;MAC9BQ,mBAAmB,CAACR,SAAD,EAAYd,QAAZ,EAAsB,KAAtB,CAAnB;KADF;;AAIH;IAEYwB,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAWC,EAAX,EAAkB;EAC3C,IAAMC,KAAK,GAAGF,QAAQ,CAACG,GAAT,CAAa,UAAC7B,IAAD;IAAA,OAAUA,IAAI,CAACK,KAAL,CAAWsB,EAAX,KAAkBA,EAA5B;GAAb,CAAd;EACA,OAAOC,KAAK,CAAC,CAAD,CAAZ;AACD;IAEYE,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAO/B,IAAP;EAAA,OAAgB+B,IAAI,CAACC,KAAL,CAAWhC,IAAI,CAACK,KAAhB,CAAhB;AAAA;IAEZ4B,kBAAkB,GAAG,SAArBA,kBAAqB,GAA6C;EAAA,IAA5CC,KAA4C,uEAApC,EAAoC;EAAA,IAAhCC,mBAAgC,uEAAV,KAAU;EAC7E,IAAID,KAAK,CAACrB,MAAN,KAAiB,CAArB,EACE,MAAM,IAAIuB,KAAJ,CAAU,6CAAV,CAAN,CAF2E;;EAK7E,IAAI,CAACD,mBAAL,EACE,IAAI,CAACE,oBAAoB,CAACH,KAAD,CAAzB;IAEE,MAAM,IAAIE,KAAJ,CACJ,mEADI,CAAN,CARyE;;;EAc7E,IAAME,iBAAiB,GAAGJ,KAAK,CAACK,IAAN,CAAW,UAACC,IAAD;IAAA,OAAU,CAAC,CAACA,IAAZ;GAAX,CAA1B;EACA,IAAI,CAACF,iBAAL,EACE,MAAM,IAAIF,KAAJ,CAAU,0CAAV,CAAN;EAEF,IAAMK,qBAAqB,GAAGH,iBAAiB,CAACtC,IAAlB,CAAuB0C,OAAvB,EAA9B,CAlB6E;;;;;EAuB7E,IAAMC,gBAAgB,GACpBF,qBAAqB,CAACA,qBAAqB,CAAC5B,MAAtB,GAA+B,CAAhC,CADvB;EAEA,OAAO8B,gBAAP;AACD;IAEYN,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAgB;EAAA,IAAfH,KAAe,uEAAP,EAAO;EAClD,IAAIA,KAAK,CAACrB,MAAN,KAAiB,CAArB,EACE,MAAM,IAAIuB,KAAJ,CAAU,qCAAV,CAAN;EACF,IAAIF,KAAK,CAACrB,MAAN,KAAiB,CAArB,EAAwB,OAAO,IAAP,CAH0B;;;EAOlD,IAAMyB,iBAAiB,GAAGJ,KAAK,CAACK,IAAN,CAAW,UAACC,IAAD;IAAA,OAAU,CAAC,CAACA,IAAZ;GAAX,CAA1B;EACA,IAAI,CAACF,iBAAL,EACE,MAAM,IAAIF,KAAJ,CAAU,0CAAV,CAAN;EAEF,IAAMK,qBAAqB,GAAGH,iBAAiB,CAACtC,IAAlB,CAAuB0C,OAAvB,EAA9B,CAXkD;;;;;EAgBlD,IAAMC,gBAAgB,GACpBF,qBAAqB,CAACA,qBAAqB,CAAC5B,MAAtB,GAA+B,CAAhC,CADvB;EAGA,OAAOqB,KAAK,CAACU,KAAN,CAAY,UAACJ,IAAD,EAAU;;IAE3B,IAAI,CAACA,IAAL,EAAW,OAAO,IAAP;IACX,IAAMK,QAAQ,GAAGL,IAAI,CAACxC,IAAL,CAAU0C,OAAV,EAAjB;IACA,IAAMI,gBAAgB,GAAGD,QAAQ,CAACA,QAAQ,CAAChC,MAAT,GAAkB,CAAnB,CAAjC;IACA,OAAO8B,gBAAgB,KAAKG,gBAA5B;GALK,CAAP;AAOD;IAEYC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAC/C,IAAD,EAA4B;EAAA,IAArBgD,WAAqB,uEAAP,EAAO;EACnE,IAAMC,gBAAgB,GAAGC,gDAA4B,CAAClD,IAAI,CAACK,KAAL,CAAWC,IAAZ,CAArD;EACA,IAAM6C,uBAAuB,GAAGD,gDAA4B,CAACF,WAAD,CAA5D;EACA,OAAOC,gBAAgB,CAACG,QAAjB,CAA0BD,uBAA1B,CAAP;AACD;IAEYE,6BAA6B,GAAG,SAAhCA,6BAAgC,CAACC,UAAD,EAAkC;EAAA,IAArBN,WAAqB,uEAAP,EAAO;EAC7E,IAAIO,aAAa,GAAG,KAApB;EACAhC,mBAAmB,CAAC+B,UAAD,EAAa,UAACtD,IAAD,EAAU;IACxC,IAAI+C,yBAAyB,CAAC/C,IAAD,EAAOgD,WAAP,CAA7B,EAAkDO,aAAa,GAAG,IAAhB;GADjC,CAAnB;EAGA,OAAOA,aAAP;AACD;IAEYC,sBAAsB,GAAG,SAAzBA,sBAAyB,CACpCxD,IADoC,EAIjC;EAAA;;EAAA,IAFHgD,WAEG,uEAFW,EAEX;EAAA,IADHS,SACG,uEADS,IACT;EACH,IAAMC,IAAI,GAAG1D,IAAI,CAAC0C,OAAL,EAAb;EACA,IAAMiB,KAAK,GAAGD,IAAI,CAAC7C,MAAL,GAAc,CAA5B;EACAb,IAAI,CAACK,KAAL,CAAWY,QAAX,GAAsByC,IAAtB;EACA1D,IAAI,CAACK,KAAL,CAAWuD,SAAX,GAAuBD,KAAvB;;EAEA,IAAI,CAAC3D,IAAI,CAACK,KAAL,CAAWwD,WAAhB,EAA6B;IAC3B7D,IAAI,CAACK,KAAL,CAAWwD,WAAX,gBAAyBC,eAAS,EAAlC;GAPC;;;;EAYH,IACE,OAAO9D,IAAI,CAACK,KAAL,CAAW0D,OAAlB,KAA8B,SAA9B,IACA,gBAAA/D,IAAI,CAACK,KAAL,oFAAYD,QAAZ,8EAAsBS,MAAtB,IAA+B,CAFjC,EAGE;IACAb,IAAI,CAACK,KAAL,CAAW0D,OAAX,GAAqB,IAArB;;;EAGF,IAAI,OAAO/D,IAAI,CAACK,KAAL,CAAWE,UAAlB,KAAiC,SAArC,EAAgD;IAC9CP,IAAI,CAACK,KAAL,CAAWE,UAAX,GAAwB,KAAxB;;;EAGFP,IAAI,CAACK,KAAL,CAAWI,kBAAX,GAAgC,IAAhC;EACAT,IAAI,CAACK,KAAL,CAAWG,0BAAX,GAAwC,KAAxC;;EACA,IAAIwC,WAAJ,EAAiB;IACfhD,IAAI,CAACK,KAAL,CAAWI,kBAAX,GAAgCsC,yBAAyB,CACvD/C,IADuD,EAEvDgD,WAFuD,CAAzD;;IAKA,IAAIhD,IAAI,CAACK,KAAL,CAAW0D,OAAX,KAAuB,IAA3B,EAAiC;MAC/B/D,IAAI,CAACK,KAAL,CAAWG,0BAAX,GAAwC6C,6BAA6B,CACnErD,IADmE,EAEnEgD,WAFmE,CAArE;MAIA,IAAIhD,IAAI,CAACK,KAAL,CAAWG,0BAAf,EAA2CR,IAAI,CAACK,KAAL,CAAWE,UAAX,GAAwB,IAAxB;;;;EAG/C,IAAIkD,SAAS,IAAIA,SAAS,CAACzD,IAAI,CAACK,KAAL,CAAWsB,EAAZ,CAA1B,EAA2C;IACzC3B,IAAI,CAACK,KAAL,CAAW2D,SAAX,GAAuBP,SAAS,CAACzD,IAAI,CAACK,KAAL,CAAWsB,EAAZ,CAAhC;;AAEH;IAEYsC,SAAS,GAAG,SAAZA,SAAY,CAACzB,IAAD,EAAU;EAAA;;EACjCA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,iCAAAA,IAAI,CAAEqB,WAAN,iGAAmBK,OAAnB,gFAA4BC,KAA5B;AACD;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDnDHelpers.js","sources":["../../../src/utils/useDnDHelpers.tsx"],"sourcesContent":["/* eslint-disable max-depth */\n/* eslint-disable no-lonely-if */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useContext, useCallback } from 'react';\nimport { cloneDeep } from 'lodash';\n\nimport TreeViewContext, { defaultRelativeMouseCoord } from '../TreeViewContext';\nimport { getNodeById, focusItem } from './tree-helpers';\nimport { inferHoverItemKinshipDrop, inferKeyboardKinshipDrop, isDropValid } from './dnd-helpers';\n\nexport const useDnDHelpers = () => {\n const ctx = useContext(TreeViewContext);\n\n const {\n props: { data, onOrderChange, restrictDragAndDrop },\n relativeMouseCord,\n setRelativeMouseCord,\n visibleItems,\n isDragging,\n setIsDragging,\n isKeyboardDragging,\n setIsKeyboardDragging,\n setDraggedItem,\n setFocusedItem,\n triggerTreeRerender,\n tree,\n treeRoot,\n draggedItem,\n } = ctx;\n\n const onSortEnd = useCallback(\n ({ oldIndex, newIndex, isKeySorting }) => {\n let newItems = cloneDeep(data);\n const { isBefore, isAfter, item: overItem, isValid } = relativeMouseCord;\n // if dropping in same position do nothing\n // if the drop is not allowed do nothing\n if (oldIndex === newIndex || !isValid) {\n // onOrderChange(newItems, data);\n setIsDragging(false);\n setDraggedItem(null);\n triggerTreeRerender();\n return;\n }\n\n // if we are moving from topToBottom the offset changes\n const movementDirection = newIndex > oldIndex ? 'topToBottom' : 'bottomToTop';\n\n let newNestedIndex;\n let newParentNode;\n if (isKeySorting) {\n const kinship = inferKeyboardKinshipDrop({\n items: visibleItems,\n\n newIndex,\n movementDirection,\n });\n newNestedIndex = kinship.newNestedIndex;\n newParentNode = kinship.newParentNode;\n } else {\n const kinship = inferHoverItemKinshipDrop({\n isBefore,\n isAfter,\n overItem,\n movementDirection,\n draggedItem,\n });\n newNestedIndex = kinship.newNestedIndex;\n newParentNode = kinship.newParentNode;\n }\n\n const newMovedItemNode = tree.parse(draggedItem.node.model);\n getNodeById(treeRoot, draggedItem.id).drop();\n newParentNode.addChildAtIndex(newMovedItemNode, newNestedIndex);\n\n if (newParentNode.isRoot()) {\n newItems = [...newParentNode.model.children];\n } else {\n newItems = [...treeRoot.model.children];\n }\n\n onOrderChange(newItems, data, draggedItem);\n setIsDragging(false);\n setDraggedItem(null);\n triggerTreeRerender();\n },\n [\n data,\n draggedItem,\n relativeMouseCord,\n visibleItems,\n tree,\n treeRoot,\n onOrderChange,\n triggerTreeRerender,\n setIsDragging,\n setDraggedItem,\n setRelativeMouseCord,\n ],\n );\n\n const onSortStart = useCallback(\n () => {},\n // ({ node, index, collection, isKeySorting }, event) => {\n // console.log('node :>> ', node);\n // console.log('isKeySorting :>> ', isKeySorting);\n // console.log('event :>> ', event);\n // const item = collection?.[index] || visibleItems[index];\n // setIsDragging(true);\n // setDraggedItem(item);\n // },\n [],\n );\n\n const updateBeforeSortStart = useCallback(\n (beforeStartArgs) =>\n new Promise((resolve) => {\n const { index, collection, isKeySorting } = beforeStartArgs;\n const item = collection?.[index] || visibleItems[index];\n const { isExpanded } = item.node.model;\n if (isExpanded) {\n item.node.model.isExpanded = false;\n triggerTreeRerender();\n }\n setRelativeMouseCord(defaultRelativeMouseCoord);\n setIsKeyboardDragging(isKeySorting);\n setIsDragging(true);\n setDraggedItem(item);\n focusItem(null);\n setFocusedItem(null);\n document.activeElement.blur();\n resolve();\n }),\n [visibleItems, isKeyboardDragging, setFocusedItem, setIsKeyboardDragging, setRelativeMouseCord],\n );\n\n // tracks mouse coords relative to an element to check if the drop happens\n // at the top/center/bottom of an element to choose where to move the element\n // requested in the specs\n const onMouseDragOverItem = useCallback(\n ({ event, item, itemIndex, setIsDraggingOverThis, openFolderOnHoverTimeout }) => {\n const { node } = item;\n const { nodeItemRef } = node.model;\n if (isDragging && !isKeyboardDragging) {\n const rect = nodeItemRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left; // x position within the element.\n const y = event.clientY - rect.top; // y position within the element.\n\n // by spec we need to track where the drop will happens\n // if drop happens on top 25% drop before\n // if drop happens on bottom of 25% drop after\n // if drop happens in the middle 50% either invalid or drop into children\n const { height: elementHeight } = rect;\n const dropBeforeMaxY = elementHeight * 0.25;\n const dropAfterMinY = elementHeight - elementHeight * 0.25;\n const isBefore = y < dropBeforeMaxY;\n const isAfter = y > dropAfterMinY;\n const isInside = !isBefore && !isAfter;\n const isValid = isDropValid({\n isBefore,\n isAfter,\n draggedItem,\n overItem: item,\n restrictDragAndDrop,\n });\n setRelativeMouseCord({\n isBefore,\n isAfter,\n isInside,\n isValid,\n item,\n x,\n y,\n relativeElementDOMRect: rect,\n relativeElementIndex: itemIndex,\n });\n setIsDraggingOverThis(true);\n\n if (\n !openFolderOnHoverTimeout?.current && // only set the interval if it wasn't set already once\n draggedItem?.id !== item?.id && // don't open ghost element\n (item.isGroup || item.children.length > 0) && // only open groups\n !restrictDragAndDrop\n ) {\n openFolderOnHoverTimeout.current = setTimeout(() => {\n item.node.model.isExpanded = true;\n openFolderOnHoverTimeout.current = null;\n triggerTreeRerender();\n }, 1000);\n }\n } else {\n setRelativeMouseCord(defaultRelativeMouseCoord);\n }\n },\n [isDragging, setRelativeMouseCord, draggedItem, restrictDragAndDrop, isKeyboardDragging],\n );\n\n return {\n updateBeforeSortStart,\n onSortStart,\n onSortEnd,\n onMouseDragOverItem,\n };\n};\n"],"names":["useDnDHelpers","ctx","useContext","TreeViewContext","props","data","onOrderChange","restrictDragAndDrop","relativeMouseCord","setRelativeMouseCord","visibleItems","isDragging","setIsDragging","isKeyboardDragging","setIsKeyboardDragging","setDraggedItem","setFocusedItem","triggerTreeRerender","tree","treeRoot","draggedItem","onSortEnd","useCallback","oldIndex","newIndex","isKeySorting","newItems","cloneDeep","isBefore","isAfter","overItem","item","isValid","movementDirection","newNestedIndex","newParentNode","kinship","inferKeyboardKinshipDrop","items","inferHoverItemKinshipDrop","newMovedItemNode","parse","node","model","getNodeById","id","drop","addChildAtIndex","isRoot","children","onSortStart","updateBeforeSortStart","beforeStartArgs","Promise","resolve","index","collection","isExpanded","defaultRelativeMouseCoord","focusItem","document","activeElement","blur","onMouseDragOverItem","event","itemIndex","setIsDraggingOverThis","openFolderOnHoverTimeout","nodeItemRef","rect","current","getBoundingClientRect","x","clientX","left","y","clientY","top","elementHeight","height","dropBeforeMaxY","dropAfterMinY","isInside","isDropValid","relativeElementDOMRect","relativeElementIndex","isGroup","length","setTimeout"],"mappings":"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"}
1
+ {"version":3,"file":"useDnDHelpers.js","sources":["../../../src/utils/useDnDHelpers.tsx"],"sourcesContent":["/* eslint-disable max-depth */\n/* eslint-disable no-lonely-if */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useContext, useCallback } from 'react';\nimport { cloneDeep } from 'lodash';\n\nimport TreeViewContext, { defaultRelativeMouseCoord } from '../TreeViewContext';\nimport { getNodeById, focusItem } from './tree-helpers';\nimport { inferHoverItemKinshipDrop, inferKeyboardKinshipDrop, isDropValid } from './dnd-helpers';\n\nexport const useDnDHelpers = () => {\n const ctx = useContext(TreeViewContext);\n\n const {\n props: { data, onOrderChange, restrictDragAndDrop },\n relativeMouseCord,\n setRelativeMouseCord,\n visibleItems,\n isDragging,\n setIsDragging,\n isKeyboardDragging,\n setIsKeyboardDragging,\n setDraggedItem,\n setFocusedItem,\n triggerTreeRerender,\n tree,\n treeRoot,\n draggedItem,\n } = ctx;\n\n const onSortEnd = useCallback(\n ({ oldIndex, newIndex, isKeySorting }) => {\n let newItems = cloneDeep(data);\n const { isBefore, isAfter, item: overItem, isValid } = relativeMouseCord;\n // if dropping in same position do nothing\n // if the drop is not allowed do nothing\n if (oldIndex === newIndex || !isValid) {\n // onOrderChange(newItems, data);\n setIsDragging(false);\n setDraggedItem(null);\n triggerTreeRerender();\n return;\n }\n\n // if we are moving from topToBottom the offset changes\n const movementDirection = newIndex > oldIndex ? 'topToBottom' : 'bottomToTop';\n\n let newNestedIndex;\n let newParentNode;\n if (isKeySorting) {\n const kinship = inferKeyboardKinshipDrop({\n items: visibleItems,\n\n newIndex,\n movementDirection,\n });\n newNestedIndex = kinship.newNestedIndex;\n newParentNode = kinship.newParentNode;\n } else {\n const kinship = inferHoverItemKinshipDrop({\n isBefore,\n isAfter,\n overItem,\n movementDirection,\n draggedItem,\n });\n newNestedIndex = kinship.newNestedIndex;\n newParentNode = kinship.newParentNode;\n }\n\n const newMovedItemNode = tree.parse(draggedItem.node.model);\n getNodeById(treeRoot, draggedItem.id).drop();\n newParentNode.addChildAtIndex(newMovedItemNode, newNestedIndex);\n\n if (newParentNode.isRoot()) {\n newItems = [...newParentNode.model.children];\n } else {\n newItems = [...treeRoot.model.children];\n }\n\n onOrderChange(newItems, data, draggedItem);\n setIsDragging(false);\n setDraggedItem(null);\n triggerTreeRerender();\n },\n [\n data,\n draggedItem,\n relativeMouseCord,\n visibleItems,\n tree,\n treeRoot,\n onOrderChange,\n triggerTreeRerender,\n setIsDragging,\n setDraggedItem,\n setRelativeMouseCord,\n ],\n );\n\n const onSortStart = useCallback(\n () => {},\n // ({ node, index, collection, isKeySorting }, event) => {\n // console.log('node :>> ', node);\n // console.log('isKeySorting :>> ', isKeySorting);\n // console.log('event :>> ', event);\n // const item = collection?.[index] || visibleItems[index];\n // setIsDragging(true);\n // setDraggedItem(item);\n // },\n [],\n );\n\n const updateBeforeSortStart = useCallback(\n (beforeStartArgs) =>\n new Promise((resolve) => {\n const { index, collection, isKeySorting } = beforeStartArgs;\n const item = collection?.[index] || visibleItems[index];\n const { isExpanded } = item.node.model;\n if (isExpanded) {\n item.node.model.isExpanded = false;\n triggerTreeRerender();\n }\n setRelativeMouseCord(defaultRelativeMouseCoord);\n setIsKeyboardDragging(isKeySorting);\n setIsDragging(true);\n setDraggedItem(item);\n focusItem(null);\n setFocusedItem(null);\n document.activeElement.blur();\n resolve();\n }),\n [visibleItems, isKeyboardDragging, setFocusedItem, setIsKeyboardDragging, setRelativeMouseCord],\n );\n\n // tracks mouse coords relative to an element to check if the drop happens\n // at the top/center/bottom of an element to choose where to move the element\n // requested in the specs\n const onMouseDragOverItem = useCallback(\n ({ event, item, itemIndex, setIsDraggingOverThis, openFolderOnHoverTimeout }) => {\n const { node } = item;\n const { nodeItemRef } = node.model;\n if (isDragging && !isKeyboardDragging) {\n const rect = nodeItemRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left; // x position within the element.\n const y = event.clientY - rect.top; // y position within the element.\n\n // by spec we need to track where the drop will happens\n // if drop happens on top 25% drop before\n // if drop happens on bottom of 25% drop after\n // if drop happens in the middle 50% either invalid or drop into children\n const { height: elementHeight } = rect;\n const dropBeforeMaxY = elementHeight * 0.25;\n const dropAfterMinY = elementHeight - elementHeight * 0.25;\n const isBefore = y < dropBeforeMaxY;\n const isAfter = y > dropAfterMinY;\n const isInside = !isBefore && !isAfter;\n const isValid = isDropValid({\n isBefore,\n isAfter,\n draggedItem,\n overItem: item,\n restrictDragAndDrop,\n });\n setRelativeMouseCord({\n isBefore,\n isAfter,\n isInside,\n isValid,\n item,\n x,\n y,\n relativeElementDOMRect: rect,\n relativeElementIndex: itemIndex,\n });\n setIsDraggingOverThis(true);\n\n if (\n !openFolderOnHoverTimeout?.current && // only set the interval if it wasn't set already once\n draggedItem?.id !== item?.id && // don't open ghost element\n (item.isGroup || item.children.length > 0) && // only open groups\n !restrictDragAndDrop\n ) {\n openFolderOnHoverTimeout.current = setTimeout(() => {\n item.node.model.isExpanded = true;\n openFolderOnHoverTimeout.current = null;\n triggerTreeRerender();\n }, 1000);\n }\n } else {\n setRelativeMouseCord(defaultRelativeMouseCoord);\n }\n },\n [isDragging, setRelativeMouseCord, draggedItem, restrictDragAndDrop, isKeyboardDragging],\n );\n\n return {\n updateBeforeSortStart,\n onSortStart,\n onSortEnd,\n onMouseDragOverItem,\n };\n};\n"],"names":["useDnDHelpers","ctx","useContext","TreeViewContext","props","data","onOrderChange","restrictDragAndDrop","relativeMouseCord","setRelativeMouseCord","visibleItems","isDragging","setIsDragging","isKeyboardDragging","setIsKeyboardDragging","setDraggedItem","setFocusedItem","triggerTreeRerender","tree","treeRoot","draggedItem","onSortEnd","useCallback","oldIndex","newIndex","isKeySorting","newItems","cloneDeep","isBefore","isAfter","overItem","item","isValid","movementDirection","newNestedIndex","newParentNode","kinship","inferKeyboardKinshipDrop","items","inferHoverItemKinshipDrop","newMovedItemNode","parse","node","model","getNodeById","id","drop","addChildAtIndex","isRoot","children","onSortStart","updateBeforeSortStart","beforeStartArgs","Promise","resolve","index","collection","isExpanded","defaultRelativeMouseCoord","focusItem","document","activeElement","blur","onMouseDragOverItem","event","itemIndex","setIsDraggingOverThis","openFolderOnHoverTimeout","nodeItemRef","rect","current","getBoundingClientRect","x","clientX","left","y","clientY","top","elementHeight","height","dropBeforeMaxY","dropAfterMinY","isInside","isDropValid","relativeElementDOMRect","relativeElementIndex","isGroup","length","setTimeout"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInstanceRefActions.js","sources":["../../../src/utils/useInstanceRefActions.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, useRef, useCallback } from 'react';\nimport { focusItem } from './tree-helpers';\nimport { toggleExpandAllHelper } from './group-expands-helpers';\n\nexport const useInstanceRefActions = ({ actions }, ctx) => {\n const {\n props: { onItemFocus },\n virtualListHelpers,\n treeRoot,\n visibleItems,\n triggerTreeRerender,\n setSelectedItem,\n setFocusedItem,\n setLatestToggledItem,\n } = ctx;\n const { current: promises } = useRef({});\n const { scrollToIndex } = useMemo(() => virtualListHelpers, [virtualListHelpers]);\n const [expandPromise, setPromise] = useState();\n\n useEffect(() => {\n if (expandPromise && promises.expandResolve) {\n promises.expandResolve(visibleItems);\n promises.expandResolve = null;\n setPromise(null);\n }\n }, [visibleItems, expandPromise, promises]);\n\n actions.toggleExpandAll = useCallback(\n (isExpand) => {\n const p = new Promise((resolve) => {\n promises.expandResolve = resolve;\n toggleExpandAllHelper(isExpand, treeRoot, triggerTreeRerender, setLatestToggledItem);\n });\n setPromise(p);\n return p;\n },\n [promises, treeRoot, triggerTreeRerender, setLatestToggledItem],\n );\n actions.scrollTo = useCallback(\n (indx, opts = { align: 'start' }) => {\n if (scrollToIndex) scrollToIndex(indx, opts);\n },\n [scrollToIndex],\n );\n\n actions.setSelectedItemByVirtualIndex = useCallback(\n (index) => {\n const itemByIndex = visibleItems[index];\n setSelectedItem(itemByIndex);\n },\n [visibleItems, setSelectedItem],\n );\n\n actions.setFocusedItemByVirtualIndex = useCallback(\n (index, opts = { align: 'start', withScroll: false }) => {\n const itemByIndex = visibleItems[index];\n const onItemFocusParams = {\n itemIndex: itemByIndex.virtualIndex,\n scrollToItem: () => scrollToIndex(index, opts),\n item: itemByIndex,\n };\n\n if (opts.withScroll && scrollToIndex) {\n scrollToIndex(index, opts);\n setTimeout(() => {\n setFocusedItem(itemByIndex);\n focusItem(itemByIndex);\n onItemFocus(onItemFocusParams);\n }, 300);\n } else {\n setFocusedItem(itemByIndex);\n focusItem(itemByIndex);\n onItemFocus(onItemFocusParams);\n }\n },\n [visibleItems, scrollToIndex, setFocusedItem, onItemFocus],\n );\n\n return actions;\n};\n"],"names":["useInstanceRefActions","ctx","actions","onItemFocus","props","virtualListHelpers","treeRoot","visibleItems","triggerTreeRerender","setSelectedItem","setFocusedItem","setLatestToggledItem","useRef","promises","current","useMemo","scrollToIndex","useState","expandPromise","setPromise","useEffect","expandResolve","toggleExpandAll","useCallback","isExpand","p","Promise","resolve","toggleExpandAllHelper","scrollTo","indx","opts","align","setSelectedItemByVirtualIndex","index","itemByIndex","setFocusedItemByVirtualIndex","withScroll","onItemFocusParams","itemIndex","virtualIndex","scrollToItem","item","setTimeout","focusItem"],"mappings":"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"}
1
+ {"version":3,"file":"useInstanceRefActions.js","sources":["../../../src/utils/useInstanceRefActions.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, useRef, useCallback } from 'react';\nimport { focusItem } from './tree-helpers';\nimport { toggleExpandAllHelper } from './group-expands-helpers';\n\nexport const useInstanceRefActions = ({ actions }, ctx) => {\n const {\n props: { onItemFocus },\n virtualListHelpers,\n treeRoot,\n visibleItems,\n triggerTreeRerender,\n setSelectedItem,\n setFocusedItem,\n setLatestToggledItem,\n } = ctx;\n const { current: promises } = useRef({});\n const { scrollToIndex } = useMemo(() => virtualListHelpers, [virtualListHelpers]);\n const [expandPromise, setPromise] = useState();\n\n useEffect(() => {\n if (expandPromise && promises.expandResolve) {\n promises.expandResolve(visibleItems);\n promises.expandResolve = null;\n setPromise(null);\n }\n }, [visibleItems, expandPromise, promises]);\n\n actions.toggleExpandAll = useCallback(\n (isExpand) => {\n const p = new Promise((resolve) => {\n promises.expandResolve = resolve;\n toggleExpandAllHelper(isExpand, treeRoot, triggerTreeRerender, setLatestToggledItem);\n });\n setPromise(p);\n return p;\n },\n [promises, treeRoot, triggerTreeRerender, setLatestToggledItem],\n );\n actions.scrollTo = useCallback(\n (indx, opts = { align: 'start' }) => {\n if (scrollToIndex) scrollToIndex(indx, opts);\n },\n [scrollToIndex],\n );\n\n actions.setSelectedItemByVirtualIndex = useCallback(\n (index) => {\n const itemByIndex = visibleItems[index];\n setSelectedItem(itemByIndex);\n },\n [visibleItems, setSelectedItem],\n );\n\n actions.setFocusedItemByVirtualIndex = useCallback(\n (index, opts = { align: 'start', withScroll: false }) => {\n const itemByIndex = visibleItems[index];\n const onItemFocusParams = {\n itemIndex: itemByIndex.virtualIndex,\n scrollToItem: () => scrollToIndex(index, opts),\n item: itemByIndex,\n };\n\n if (opts.withScroll && scrollToIndex) {\n scrollToIndex(index, opts);\n setTimeout(() => {\n setFocusedItem(itemByIndex);\n focusItem(itemByIndex);\n onItemFocus(onItemFocusParams);\n }, 300);\n } else {\n setFocusedItem(itemByIndex);\n focusItem(itemByIndex);\n onItemFocus(onItemFocusParams);\n }\n },\n [visibleItems, scrollToIndex, setFocusedItem, onItemFocus],\n );\n\n return actions;\n};\n"],"names":["useInstanceRefActions","ctx","actions","onItemFocus","props","virtualListHelpers","treeRoot","visibleItems","triggerTreeRerender","setSelectedItem","setFocusedItem","setLatestToggledItem","useRef","promises","current","useMemo","scrollToIndex","useState","expandPromise","setPromise","useEffect","expandResolve","toggleExpandAll","useCallback","isExpand","p","Promise","resolve","toggleExpandAllHelper","scrollTo","indx","opts","align","setSelectedItemByVirtualIndex","index","itemByIndex","setFocusedItemByVirtualIndex","withScroll","onItemFocusParams","itemIndex","virtualIndex","scrollToItem","item","setTimeout","focusItem"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTree.js","sources":["../../../src/utils/useTree.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useEffect } from 'react';\nimport TreeModel from 'tree-model';\nimport { cloneDeep } from 'lodash';\n\nimport { walkVisibles, enrichNodeModelInPlace } from './tree-helpers';\n\nexport const useTree = (data, props, states) => {\n const { setExpandedGroups } = states;\n const unfrozenData = useMemo(() => cloneDeep(data), [data]);\n // convert data into a TreeModel with extra isExpanded prop\n const tree = useMemo(() => new TreeModel(), []);\n const [treeData, setTreeData] = useState({\n name: '__root',\n isExpanded: true,\n children: unfrozenData,\n });\n\n useEffect(() => {\n setTreeData({\n name: '__root',\n isExpanded: true,\n children: unfrozenData,\n });\n }, [unfrozenData]);\n\n // expose a way to rerender the tree\n // used for expand functionality\n const [rerenderItems, setRerenderItems] = useState({});\n const triggerTreeRerender = useCallback(() => {\n setRerenderItems({});\n }, []);\n\n // when re-rendering we re-parse the list\n const [treeRoot, setTreeRoot] = useState(tree.parse(treeData));\n useEffect(() => {\n setTreeRoot(tree.parse(treeData));\n }, [treeData, rerenderItems]);\n\n const [visibleItems, setVisibleItems] = useState([]);\n\n const {\n searchQuery,\n highlightOnlyQuery,\n onVisibleItemsChange,\n selection,\n } = props;\n\n useEffect(() => {\n const parsedVisibleItems = [];\n const newExpandedHashMap = {};\n treeRoot.walk((node) => {\n enrichNodeModelInPlace(node, searchQuery, selection);\n if (node.model.id && node.model.isGroup && node.model.isExpanded)\n newExpandedHashMap[node.model.id] = true;\n });\n\n walkVisibles(\n treeRoot,\n (node) => {\n parsedVisibleItems.push({ ...node.model, node });\n },\n true,\n highlightOnlyQuery,\n );\n setVisibleItems(parsedVisibleItems);\n onVisibleItemsChange(parsedVisibleItems);\n\n setExpandedGroups(newExpandedHashMap);\n }, [treeRoot, rerenderItems, searchQuery]);\n\n return {\n visibleItems,\n tree,\n treeRoot,\n rerenderItems,\n triggerTreeRerender,\n };\n};\n"],"names":["useTree","data","props","states","setExpandedGroups","unfrozenData","useMemo","cloneDeep","tree","TreeModel","useState","name","isExpanded","children","treeData","setTreeData","useEffect","rerenderItems","setRerenderItems","triggerTreeRerender","useCallback","parse","treeRoot","setTreeRoot","visibleItems","setVisibleItems","searchQuery","highlightOnlyQuery","onVisibleItemsChange","selection","parsedVisibleItems","newExpandedHashMap","walk","node","enrichNodeModelInPlace","model","id","isGroup","walkVisibles","push"],"mappings":"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"}
1
+ {"version":3,"file":"useTree.js","sources":["../../../src/utils/useTree.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useEffect } from 'react';\nimport TreeModel from 'tree-model';\nimport { cloneDeep } from 'lodash';\n\nimport { walkVisibles, enrichNodeModelInPlace } from './tree-helpers';\n\nexport const useTree = (data, props, states) => {\n const { setExpandedGroups } = states;\n const unfrozenData = useMemo(() => cloneDeep(data), [data]);\n // convert data into a TreeModel with extra isExpanded prop\n const tree = useMemo(() => new TreeModel(), []);\n const [treeData, setTreeData] = useState({\n name: '__root',\n isExpanded: true,\n children: unfrozenData,\n });\n\n useEffect(() => {\n setTreeData({\n name: '__root',\n isExpanded: true,\n children: unfrozenData,\n });\n }, [unfrozenData]);\n\n // expose a way to rerender the tree\n // used for expand functionality\n const [rerenderItems, setRerenderItems] = useState({});\n const triggerTreeRerender = useCallback(() => {\n setRerenderItems({});\n }, []);\n\n // when re-rendering we re-parse the list\n const [treeRoot, setTreeRoot] = useState(tree.parse(treeData));\n useEffect(() => {\n setTreeRoot(tree.parse(treeData));\n }, [treeData, rerenderItems]);\n\n const [visibleItems, setVisibleItems] = useState([]);\n\n const {\n searchQuery,\n highlightOnlyQuery,\n onVisibleItemsChange,\n selection,\n } = props;\n\n useEffect(() => {\n const parsedVisibleItems = [];\n const newExpandedHashMap = {};\n treeRoot.walk((node) => {\n enrichNodeModelInPlace(node, searchQuery, selection);\n if (node.model.id && node.model.isGroup && node.model.isExpanded)\n newExpandedHashMap[node.model.id] = true;\n });\n\n walkVisibles(\n treeRoot,\n (node) => {\n parsedVisibleItems.push({ ...node.model, node });\n },\n true,\n highlightOnlyQuery,\n );\n setVisibleItems(parsedVisibleItems);\n onVisibleItemsChange(parsedVisibleItems);\n\n setExpandedGroups(newExpandedHashMap);\n }, [treeRoot, rerenderItems, searchQuery]);\n\n return {\n visibleItems,\n tree,\n treeRoot,\n rerenderItems,\n triggerTreeRerender,\n };\n};\n"],"names":["useTree","data","props","states","setExpandedGroups","unfrozenData","useMemo","cloneDeep","tree","TreeModel","useState","name","isExpanded","children","treeData","setTreeData","useEffect","rerenderItems","setRerenderItems","triggerTreeRerender","useCallback","parse","treeRoot","setTreeRoot","visibleItems","setVisibleItems","searchQuery","highlightOnlyQuery","onVisibleItemsChange","selection","parsedVisibleItems","newExpandedHashMap","walk","node","enrichNodeModelInPlace","model","id","isGroup","walkVisibles","push"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAMaA,OAAO,GAAG,SAAVA,OAAU,CAACC,IAAD,EAAOC,KAAP,EAAcC,MAAd,EAAyB;EAC9C,IAAQC,iBAAR,GAA8BD,MAA9B,CAAQC,iBAAR;EACA,IAAMC,YAAY,GAAGC,aAAO,CAAC;IAAA,OAAMC,gBAAS,CAACN,IAAD,CAAf;GAAD,EAAwB,CAACA,IAAD,CAAxB,CAA5B,CAF8C;;EAI9C,IAAMO,IAAI,GAAGF,aAAO,CAAC;IAAA,OAAM,IAAIG,6BAAJ,EAAN;GAAD,EAAwB,EAAxB,CAApB;;EACA,gBAAgCC,cAAQ,CAAC;IACvCC,IAAI,EAAE,QADiC;IAEvCC,UAAU,EAAE,IAF2B;IAGvCC,QAAQ,EAAER;GAH4B,CAAxC;;MAAOS,QAAP;MAAiBC,WAAjB;;EAMAC,eAAS,CAAC,YAAM;IACdD,WAAW,CAAC;MACVJ,IAAI,EAAE,QADI;MAEVC,UAAU,EAAE,IAFF;MAGVC,QAAQ,EAAER;KAHD,CAAX;GADO,EAMN,CAACA,YAAD,CANM,CAAT,CAX8C;;;EAqB9C,iBAA0CK,cAAQ,CAAC,EAAD,CAAlD;;MAAOO,aAAP;MAAsBC,gBAAtB;;EACA,IAAMC,mBAAmB,GAAGC,iBAAW,CAAC,YAAM;IAC5CF,gBAAgB,CAAC,EAAD,CAAhB;GADqC,EAEpC,EAFoC,CAAvC,CAtB8C;;EA2B9C,iBAAgCR,cAAQ,CAACF,IAAI,CAACa,KAAL,CAAWP,QAAX,CAAD,CAAxC;;MAAOQ,QAAP;MAAiBC,WAAjB;;EACAP,eAAS,CAAC,YAAM;IACdO,WAAW,CAACf,IAAI,CAACa,KAAL,CAAWP,QAAX,CAAD,CAAX;GADO,EAEN,CAACA,QAAD,EAAWG,aAAX,CAFM,CAAT;;EAIA,iBAAwCP,cAAQ,CAAC,EAAD,CAAhD;;MAAOc,YAAP;MAAqBC,eAArB;;EAEA,IACEC,WADF,GAKIxB,KALJ,CACEwB,WADF;MAEEC,kBAFF,GAKIzB,KALJ,CAEEyB,kBAFF;MAGEC,oBAHF,GAKI1B,KALJ,CAGE0B,oBAHF;MAIEC,SAJF,GAKI3B,KALJ,CAIE2B,SAJF;EAOAb,eAAS,CAAC,YAAM;IACd,IAAMc,kBAAkB,GAAG,EAA3B;IACA,IAAMC,kBAAkB,GAAG,EAA3B;IACAT,QAAQ,CAACU,IAAT,CAAc,UAACC,IAAD,EAAU;MACtBC,wCAAsB,CAACD,IAAD,EAAOP,WAAP,EAAoBG,SAApB,CAAtB;MACA,IAAII,IAAI,CAACE,KAAL,CAAWC,EAAX,IAAiBH,IAAI,CAACE,KAAL,CAAWE,OAA5B,IAAuCJ,IAAI,CAACE,KAAL,CAAWvB,UAAtD,EACEmB,kBAAkB,CAACE,IAAI,CAACE,KAAL,CAAWC,EAAZ,CAAlB,GAAoC,IAApC;KAHJ;IAMAE,8BAAY,CACVhB,QADU,EAEV,UAACW,IAAD,EAAU;MACRH,kBAAkB,CAACS,IAAnB,iCAA6BN,IAAI,CAACE,KAAlC;QAAyCF,IAAI,EAAJA;;KAHjC,EAKV,IALU,EAMVN,kBANU,CAAZ;IAQAF,eAAe,CAACK,kBAAD,CAAf;IACAF,oBAAoB,CAACE,kBAAD,CAApB;IAEA1B,iBAAiB,CAAC2B,kBAAD,CAAjB;GApBO,EAqBN,CAACT,QAAD,EAAWL,aAAX,EAA0BS,WAA1B,CArBM,CAAT;EAuBA,OAAO;IACLF,YAAY,EAAZA,YADK;IAELhB,IAAI,EAAJA,IAFK;IAGLc,QAAQ,EAARA,QAHK;IAILL,aAAa,EAAbA,aAJK;IAKLE,mBAAmB,EAAnBA;GALF;AAOD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.js","sources":["../../src/TreeView.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { describe } from 'react-desc';\nimport { TreeViewPropTypes } from './react-desc-prop-types';\nimport TreeViewContext, { defaultProps, defaultRelativeMouseCoord } from './TreeViewContext';\nimport { TreeDnD, TreeDndPlugin } from './plugins/dnd';\nimport { useTree } from './utils/useTree';\nimport { TreeList } from './parts/TreeList';\nimport { useNotifyExpandedChange } from './utils/group-expands-helpers';\nimport { useInstanceRefActions } from './utils/useInstanceRefActions';\nimport { useGlobalToggleAllExpandShortcut } from './utils/keyboard-helpers';\nexport function TreeView(props) {\n const treeRef = useRef({ actions: {} });\n const { data, plugins, onOrderChange, isMultiSelect, isSingleSelect, instanceRef, selection } = props;\n const [isDragging, setIsDragging] = useState(false);\n const [isKeyboardDragging, setIsKeyboardDragging] = useState(false);\n const [draggedItem, setDraggedItem] = useState(null);\n const [hoverItem, setHoverItem] = useState(null);\n const [relativeMouseCord, setRelativeMouseCord] = useState(defaultRelativeMouseCoord);\n const [uniqueTreeViewUUID] = useState(uuidv4());\n const [latestToggledItem, setLatestToggledItem] = useState(null);\n const [selectedItem, setSelectedItem] = useState(null);\n const [focusedItem, setFocusedItem] = useState(null);\n const [selectedCheckboxes, setSelectedCheckboxes] = useState({\n ...selection,\n });\n const [expandedGroups, setExpandedGroups] = useState({});\n\n const { visibleItems, tree, treeRoot, triggerTreeRerender } = useTree(data, props, {\n setExpandedGroups,\n });\n\n const virtualListRef = useRef();\n // estimateSize should not be really required given what was stated on\n // https://github.com/tannerlinsley/react-virtual/issues/23\n\n const virtualListHelpers = useVirtual({\n size: visibleItems.length,\n parentRef: virtualListRef,\n overscan: 15,\n });\n\n const withDragAndDrop = plugins?.includes(TreeDndPlugin) && onOrderChange;\n const withRadioChecks = isSingleSelect && !isMultiSelect;\n const withCheckboxChecks = !isSingleSelect && isMultiSelect;\n\n const ctx = {\n props,\n setRelativeMouseCord,\n relativeMouseCord,\n virtualListHelpers,\n virtualListRef,\n tree,\n treeRoot,\n visibleItems,\n triggerTreeRerender,\n isDragging,\n setIsDragging,\n isKeyboardDragging,\n setIsKeyboardDragging,\n draggedItem,\n setDraggedItem,\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n uniqueTreeViewUUID,\n selectedCheckboxes,\n setSelectedCheckboxes,\n selectedItem,\n setSelectedItem,\n expandedGroups,\n setExpandedGroups,\n latestToggledItem,\n setLatestToggledItem,\n focusedItem,\n setFocusedItem,\n hoverItem,\n setHoverItem,\n };\n // this hooks can't use the context because the context provider doesn't wrap this\n // as such we manually pass the second parameter as fit\n if (instanceRef) instanceRef.current = treeRef.current;\n useInstanceRefActions(treeRef.current, ctx);\n useGlobalToggleAllExpandShortcut(treeRoot, triggerTreeRerender, setLatestToggledItem);\n useNotifyExpandedChange(props, ctx);\n\n useEffect(() => {\n setTimeout(() => {\n ctx.props.onInstanceRefInitialized(treeRef);\n }, 100);\n }, []);\n\n return (\n <TreeViewContext.Provider value={ctx}>\n {plugins?.includes(TreeDndPlugin) ? <TreeDnD /> : <TreeList />}\n </TreeViewContext.Provider>\n );\n}\n\nTreeView.propTypes = TreeViewPropTypes;\nTreeView.defaultProps = defaultProps;\n\nconst TreeViewWithSchema = describe(TreeView);\nTreeViewWithSchema.propTypes = TreeViewPropTypes;\n\nexport { TreeViewWithSchema };\n"],"names":["TreeView","props","treeRef","useRef","actions","data","plugins","onOrderChange","isMultiSelect","isSingleSelect","instanceRef","selection","useState","isDragging","setIsDragging","isKeyboardDragging","setIsKeyboardDragging","draggedItem","setDraggedItem","hoverItem","setHoverItem","defaultRelativeMouseCoord","relativeMouseCord","setRelativeMouseCord","uuidv4","uniqueTreeViewUUID","latestToggledItem","setLatestToggledItem","selectedItem","setSelectedItem","focusedItem","setFocusedItem","selectedCheckboxes","setSelectedCheckboxes","expandedGroups","setExpandedGroups","useTree","visibleItems","tree","treeRoot","triggerTreeRerender","virtualListRef","virtualListHelpers","useVirtual","size","length","parentRef","overscan","withDragAndDrop","includes","TreeDndPlugin","withRadioChecks","withCheckboxChecks","ctx","current","useInstanceRefActions","useGlobalToggleAllExpandShortcut","useNotifyExpandedChange","useEffect","setTimeout","onInstanceRefInitialized","propTypes","TreeViewPropTypes","defaultProps","TreeViewWithSchema","describe"],"mappings":"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"}
1
+ {"version":3,"file":"TreeView.js","sources":["../../src/TreeView.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { describe } from 'react-desc';\nimport { TreeViewPropTypes } from './react-desc-prop-types';\nimport TreeViewContext, { defaultProps, defaultRelativeMouseCoord } from './TreeViewContext';\nimport { TreeDnD, TreeDndPlugin } from './plugins/dnd';\nimport { useTree } from './utils/useTree';\nimport { TreeList } from './parts/TreeList';\nimport { useNotifyExpandedChange } from './utils/group-expands-helpers';\nimport { useInstanceRefActions } from './utils/useInstanceRefActions';\nimport { useGlobalToggleAllExpandShortcut } from './utils/keyboard-helpers';\nexport function TreeView(props) {\n const treeRef = useRef({ actions: {} });\n const { data, plugins, onOrderChange, isMultiSelect, isSingleSelect, instanceRef, selection } = props;\n const [isDragging, setIsDragging] = useState(false);\n const [isKeyboardDragging, setIsKeyboardDragging] = useState(false);\n const [draggedItem, setDraggedItem] = useState(null);\n const [hoverItem, setHoverItem] = useState(null);\n const [relativeMouseCord, setRelativeMouseCord] = useState(defaultRelativeMouseCoord);\n const [uniqueTreeViewUUID] = useState(uuidv4());\n const [latestToggledItem, setLatestToggledItem] = useState(null);\n const [selectedItem, setSelectedItem] = useState(null);\n const [focusedItem, setFocusedItem] = useState(null);\n const [selectedCheckboxes, setSelectedCheckboxes] = useState({\n ...selection,\n });\n const [expandedGroups, setExpandedGroups] = useState({});\n\n const { visibleItems, tree, treeRoot, triggerTreeRerender } = useTree(data, props, {\n setExpandedGroups,\n });\n\n const virtualListRef = useRef();\n // estimateSize should not be really required given what was stated on\n // https://github.com/tannerlinsley/react-virtual/issues/23\n\n const virtualListHelpers = useVirtual({\n size: visibleItems.length,\n parentRef: virtualListRef,\n overscan: 15,\n });\n\n const withDragAndDrop = plugins?.includes(TreeDndPlugin) && onOrderChange;\n const withRadioChecks = isSingleSelect && !isMultiSelect;\n const withCheckboxChecks = !isSingleSelect && isMultiSelect;\n\n const ctx = {\n props,\n setRelativeMouseCord,\n relativeMouseCord,\n virtualListHelpers,\n virtualListRef,\n tree,\n treeRoot,\n visibleItems,\n triggerTreeRerender,\n isDragging,\n setIsDragging,\n isKeyboardDragging,\n setIsKeyboardDragging,\n draggedItem,\n setDraggedItem,\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n uniqueTreeViewUUID,\n selectedCheckboxes,\n setSelectedCheckboxes,\n selectedItem,\n setSelectedItem,\n expandedGroups,\n setExpandedGroups,\n latestToggledItem,\n setLatestToggledItem,\n focusedItem,\n setFocusedItem,\n hoverItem,\n setHoverItem,\n };\n // this hooks can't use the context because the context provider doesn't wrap this\n // as such we manually pass the second parameter as fit\n if (instanceRef) instanceRef.current = treeRef.current;\n useInstanceRefActions(treeRef.current, ctx);\n useGlobalToggleAllExpandShortcut(treeRoot, triggerTreeRerender, setLatestToggledItem);\n useNotifyExpandedChange(props, ctx);\n\n useEffect(() => {\n setTimeout(() => {\n ctx.props.onInstanceRefInitialized(treeRef);\n }, 100);\n }, []);\n\n return (\n <TreeViewContext.Provider value={ctx}>\n {plugins?.includes(TreeDndPlugin) ? <TreeDnD /> : <TreeList />}\n </TreeViewContext.Provider>\n );\n}\n\nTreeView.propTypes = TreeViewPropTypes;\nTreeView.defaultProps = defaultProps;\n\nconst TreeViewWithSchema = describe(TreeView);\nTreeViewWithSchema.propTypes = TreeViewPropTypes;\n\nexport { TreeViewWithSchema };\n"],"names":["TreeView","props","treeRef","useRef","actions","data","plugins","onOrderChange","isMultiSelect","isSingleSelect","instanceRef","selection","useState","isDragging","setIsDragging","isKeyboardDragging","setIsKeyboardDragging","draggedItem","setDraggedItem","hoverItem","setHoverItem","defaultRelativeMouseCoord","relativeMouseCord","setRelativeMouseCord","uuidv4","uniqueTreeViewUUID","latestToggledItem","setLatestToggledItem","selectedItem","setSelectedItem","focusedItem","setFocusedItem","selectedCheckboxes","setSelectedCheckboxes","expandedGroups","setExpandedGroups","useTree","visibleItems","tree","treeRoot","triggerTreeRerender","virtualListRef","virtualListHelpers","useVirtual","size","length","parentRef","overscan","withDragAndDrop","includes","TreeDndPlugin","withRadioChecks","withCheckboxChecks","ctx","current","useInstanceRefActions","useGlobalToggleAllExpandShortcut","useNotifyExpandedChange","useEffect","setTimeout","onInstanceRefInitialized","propTypes","TreeViewPropTypes","defaultProps","TreeViewWithSchema","describe"],"mappings":"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"}