variable-explorer 0.1.0__py3-none-any.whl

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 (49) hide show
  1. variable_explorer/__init__.py +7 -0
  2. variable_explorer/_version.py +4 -0
  3. variable_explorer/kernel/__init__.py +5 -0
  4. variable_explorer/kernel/comm_handler.py +255 -0
  5. variable_explorer/kernel/data_provider.py +235 -0
  6. variable_explorer/kernel/editor.py +88 -0
  7. variable_explorer/kernel/introspection.py +186 -0
  8. variable_explorer/kernel/serialization.py +73 -0
  9. variable_explorer/kernel/sorter.py +34 -0
  10. variable_explorer/kernel/statistics.py +101 -0
  11. variable_explorer/labextension/build_log.json +726 -0
  12. variable_explorer/labextension/package.json +96 -0
  13. variable_explorer/labextension/schemas/variable-explorer/package.json.orig +91 -0
  14. variable_explorer/labextension/schemas/variable-explorer/plugin.json +75 -0
  15. variable_explorer/labextension/static/lib_index_js.88a2cd3be0f2bf49f0eb.js +1417 -0
  16. variable_explorer/labextension/static/lib_index_js.88a2cd3be0f2bf49f0eb.js.map +1 -0
  17. variable_explorer/labextension/static/remoteEntry.a8ed3dcc7548f0b68f93.js +576 -0
  18. variable_explorer/labextension/static/remoteEntry.a8ed3dcc7548f0b68f93.js.map +1 -0
  19. variable_explorer/labextension/static/style.js +4 -0
  20. variable_explorer/labextension/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js +785 -0
  21. variable_explorer/labextension/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js.map +1 -0
  22. variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js +50347 -0
  23. variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js.map +1 -0
  24. variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js +8124 -0
  25. variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js.map +1 -0
  26. variable_explorer/labextension/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js +2917 -0
  27. variable_explorer/labextension/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js.map +1 -0
  28. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/build_log.json +726 -0
  29. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/install.json +5 -0
  30. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/package.json +96 -0
  31. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/schemas/variable-explorer/package.json.orig +91 -0
  32. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/schemas/variable-explorer/plugin.json +75 -0
  33. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/lib_index_js.88a2cd3be0f2bf49f0eb.js +1417 -0
  34. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/lib_index_js.88a2cd3be0f2bf49f0eb.js.map +1 -0
  35. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/remoteEntry.a8ed3dcc7548f0b68f93.js +576 -0
  36. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/remoteEntry.a8ed3dcc7548f0b68f93.js.map +1 -0
  37. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style.js +4 -0
  38. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js +785 -0
  39. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js.map +1 -0
  40. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js +50347 -0
  41. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js.map +1 -0
  42. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js +8124 -0
  43. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js.map +1 -0
  44. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js +2917 -0
  45. variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js.map +1 -0
  46. variable_explorer-0.1.0.dist-info/METADATA +80 -0
  47. variable_explorer-0.1.0.dist-info/RECORD +49 -0
  48. variable_explorer-0.1.0.dist-info/WHEEL +4 -0
  49. variable_explorer-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAC2C;;AAE3C;AAY2B;AAUZ;;AAEf;AACkD;AAUnC;;AAEf;AAC0B;AAC1B,mBAAmB,0DAAmB,GAAG;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AAC2B;AACM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0DAAkB;AACtB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,iDAAU;AAClC,UAAU,wBAAwB,EAAE,iDAAU;AAC9C,eAAe,6CAAM;AACrB,oBAAoB,6CAAM;AAC1B,uBAAuB,6CAAM;AAC7B,uBAAuB,6CAAM;AAC7B,yBAAyB,6CAAM;AAC/B,kBAAkB,6CAAM;AACxB,kDAAkD,+CAAQ;AAC1D,sCAAsC,+CAAQ;AAC9C,4BAA4B,+CAAQ;AACpC,sCAAsC,+CAAQ;AAC9C,sDAAsD,+CAAQ;AAC9D,0DAA0D,+CAAQ;AAClE,sDAAsD,+CAAQ;AAC9D,EAAE,0DAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,sDAAe;AACjB;AACA,GAAG;AACH,kBAAkB,kDAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,8CAAO,0BAA0B,sBAAsB;AAC3E,4BAA4B,8CAAO,4BAA4B,8BAA8B;AAC7F,8BAA8B,8CAAO;AACrC,iCAAiC,gCAAgC;AACjE;AACA;AACA,4BAA4B,8CAAO,4BAA4B,8BAA8B;AAC7F;AACA;AACA;AACA,uBAAuB,gEAAa;AACpC,yBAAyB,0DAAoB;AAC7C;AACA;AACA;AACA;AACA,2BAA2B,2CAA2C;AACtE,KAAK;AACL,oBAAoB,0DAAoB,WAAW,iDAAiD;AACpG,oBAAoB,0DAAoB,WAAW,qDAAqD;AACxG,oBAAoB,0DAAoB,WAAW,iDAAiD;AACpG,oBAAoB,0DAAoB,WAAW,6CAA6C,8BAA8B,0DAAoB,CAAC,uDAAe,wDAAwD,0DAAoB,eAAe,4BAA4B;AACzR,oBAAoB,0DAAoB,WAAW,mCAAmC;AACtF;AACA,CAAC;AACD;;AAEA;AAC4D;;AAE5D;AACuE;;AAEvE;AACsC;AACtC,oBAAoB,oDAAa;AACjC;AACA;AACA,CAAC;;AAED;AACA;AACA,UAAU,oEAAoE;AAC9E,WAAW,eAAe,cAAc,+CAAS;AACjD,EAAE,gDAAS;AACX;AACA,GAAG;AACH,yBAAyB,0DAAoB,2BAA2B,SAAS,cAAc,kBAAkB,0DAAoB,yBAAyB,eAAe;AAC7K;AACA,gCAAgC,2CAAI;;AAEpC;AACyD;AACnB;AACG;;AAEzC;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wDAAS,sBAAsB,wDAAS;AACjG;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4DAAS;AACf;AACA;AACA;AACA;AACA;AACA,MAAM,4DAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0BAA0B;AAC5F,kBAAkB,uDAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mCAAmC,wDAAU;AAC7C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAU;AAC/B;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAAU;AACzB;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAC4D;AAC5D;AACA;AACA,iCAAiC,wDAAU;AAC3C;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACqF;AACrF;AACA,uDAAuD,wDAAU;AACjE;AACA;AACA;AACA,EAAE,4DAAU;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AAC6C;AAC4H;;AAEzK;AAS2B;AACiJ;;AAE5K;AACmD;AACmH;;AAEtK;AAC2D;AACqF;;AAEhJ;AAC6E;AACwF;;AAErK;AAC+F;AACoI;AACnO,wBAAwB,MAAM;AAC9B;AACA,UAAU,UAAU,EAAE,iDAAW;AACjC;AACA,gDAAgD,+CAAS;AACzD,mBAAmB,6CAAO;AAC1B,eAAe,6CAAO;AACtB,kBAAkB,6CAAO;AACzB,6BAA6B,6CAAO;AACpC,sBAAsB,6CAAO;AAC7B,0BAA0B,6CAAO;AACjC;AACA,kCAAkC,8DAAe;AACjD;AACA,kBAAkB,kDAAY;AAC9B;AACA,qDAAqD,yDAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AA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D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+BAA+B,0DAAoB,UAAU,kFAAkF,kBAAkB,0DAAoB,UAAU,2EAA2E;AAC1Q;AACA,qCAAqC,2CAAK;;AAE1C;AACA;AACA,sCAAsC,+CAAS;AAC/C,8BAA8B,+CAAS;AACvC,UAAU,UAAU,EAAE,iDAAW;AACjC,eAAe,6CAAO;AACtB,sBAAsB,6CAAO;AAC7B,kBAAkB,kDAAY;AAC9B;AACA,wDAAwD,6DAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,8CAAQ;AAC5B;AACA;AACA,GAAG;AACH,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yBAAyB,0DAAqB,UAAU,sDAAsD,kBAAkB,0DAAqB,mCAAmC,gBAAgB,mBAAmB,0DAAqB,mCAAmC,cAAc,mBAAmB,0DAAqB,mCAAmC,iBAAiB;AAC7X;AACA,6BAA6B,2CAAK;;AAElC;AACgD;AAChD;AACA,EAAE,gDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AAC8E;AAC6F;;AAE3K;AACmG;AACsI;;AAEzO;AACsH;AACuF;;AAE7M;AAC4D;AAC5D;AACA;AACA;AACA;AACA,+BAA+B,wDAAU;AACzC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACkG;AACxC;;AAE1D;AAC0F;AAC1F;AACA,mBAAmB,6CAAO;AAC1B,oBAAoB,6CAAO;AAC3B,uBAAuB,6CAAO;AAC9B,mBAAmB,6CAAO;AAC1B,qBAAqB,+CAAS;AAC9B;AACA;AACA;AACA,EAAE,gDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,sDAAsD,+CAAU;AAChE,UAAU,yDAAyD,EAAE,iDAAW;AAChF;AACA,YAAY,qCAAqC;AACjD,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,0DAAqB,CAAC,uDAAgB,sDAAsD,uDAAa;AAClI;AACA,8BAA8B,2CAAK;;AAEnC;AACwG;AACxG;AACA,UAAU,UAAU,EAAE,iDAAW;AACjC,8BAA8B,kDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE,gDAAU;AACZ;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,yBAAyB,0DAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kCAAkC,0DAAqB,oBAAoB,UAAU,oBAAoB,0DAAqB,oBAAoB,+CAA+C;AACjM;AACA;AACA;AACA;AACA,yBAAyB,0DAAqB,CAAC,uDAAgB,4FAA4F,0DAAqB,oBAAoB,iDAAiD;AACrP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAqB,CAAC,uDAAgB,4HAA4H,0DAAqB;AAChN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0DAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA;AACA,4CAA4C,0DAAqB,CAAC,uDAAgB,0CAA0C,0DAAqB,CAAC,uDAAgB,qGAAqG,0DAAqB,sBAAsB,kDAAkD,sEAAsE,0DAAqB,sBAAsB,4BAA4B;AACjf,yBAAyB,0DAAqB,CAAC,uDAAgB,0CAA0C,0DAAqB,WAAW,kCAAkC,SAAS,mDAAmD;AACvO;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,UAAU,UAAU,EAAE,iDAAY;AAClC,UAAU,6BAA6B;AACvC,mBAAmB,6CAAO;AAC1B,4CAA4C,+CAAU;AACtD,iDAAiD;AACjD;AACA,wCAAwC,+CAAU;AAClD,oCAAoC,+CAAU;AAC9C,sCAAsC,+CAAU;AAChD,kDAAkD,+CAAU;AAC5D,8CAA8C,+CAAU;AACxD,kDAAkD,+CAAU;AAC5D,0CAA0C,+CAAU;AACpD,uBAAuB,8CAAQ;AAC/B,uBAAuB,8CAAQ;AAC/B,eAAe,6CAAO;AACtB,0BAA0B,6CAAO;AACjC,4BAA4B,6CAAO;AACnC,wBAAwB,6CAAO;AAC/B,uBAAuB,6CAAO;AAC9B,kCAAkC,6CAAO;AACzC,qBAAqB,6CAAO;AAC5B,kDAAkD,+CAAU;AAC5D,0BAA0B,kDAAY;AACtC;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,kDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,0BAA0B,6CAAO;AACjC;AACA,kCAAkC,8DAAgB;AAClD;AACA;AACA,4BAA4B,6CAAO;AACnC,EAAE,sDAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,sDAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,4BAA4B,kDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAiB;AAC7B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,kDAAY;AAC9B;AACA,qDAAqD,yDAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,8CAAQ;AAC7C;AACA;AACA,GAAG;AACH,EAAE,sDAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA,GAAG;AACH,6CAA6C,0DAAqB,CAAC,uDAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kDAAY;AAC7B,yBAAyB,0DAAqB,UAAU,uFAAuF,oCAAoC,0DAAqB,UAAU,4EAA4E;AAC9R;AACA,uBAAuB,2CAAK;;AAE5B;AACA,iBAAiB,wBAAwB;AACzC,UAAU,eAAe,EAAE,iDAAY;AACvC,mBAAmB,6CAAQ;AAC3B,sBAAsB,6CAAQ;AAC9B;AACA;AACA,kCAAkC,+CAAU;AAC5C,4BAA4B,+CAAU;AACtC,8CAA8C,+CAAU;AACxD,sCAAsC,+CAAU;AAChD,uBAAuB,6CAAQ;AAC/B,2BAA2B,6CAAQ;AACnC,oCAAoC,+CAAU;AAC9C,0DAA0D,+CAAU;AACpE,wBAAwB,+CAAU;AAClC;AACA;AACA,oCAAoC,+CAAU;AAC9C;AACA;AACA,eAAe,6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AwB,6CAAQ;AAChC,kBAAkB,6CAAQ;AAC1B,yBAAyB,6CAAQ;AACjC,uBAAuB,6CAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kDAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAAe;AACjC,kBAAkB,sEAAuB;AACzC;AACA,6BAA6B,8DAAe;AAC5C;AACA;AACA;AACA;AACA;AACA,UAAU,mEAAgB;AAC1B;AACA,OAAO;AACP;AACA;AACA,UAAU,mEAAgB;AAC1B;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC,2DAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,8CAAS;AAC/B,8BAA8B,8CAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8CAAS;AAC/B,qBAAqB,8CAAS;AAC9B,2BAA2B,8CAAS;AACpC,8BAA8B,8CAAS;AACvC;AACA;AACA;AACA,wBAAwB,8CAAS;AACjC,mBAAmB,8CAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yBAAyB,8CAAS;AAClC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B,8CAAS;AACrC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,8CAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4DAA4D,0DAAqB,6BAA6B,yBAAyB,UAAU,aAAa;AAC9J;AACA;AACA;AACA;AACA;AACA,GAAG,qBAAqB,0DAAqB,UAAU,sDAAsD;AAC7G,yBAAyB,0DAAqB,UAAU,wDAAwD,kBAAkB,0DAAqB;AACvJ;AACA;AACA;AACA;AACA,GAAG,mBAAmB,0DAAqB,UAAU,0DAA0D;AAC/G;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,2BAA2B,2CAAM;;AAEjC;AACqE;AACiI;AACtM;AACA,UAAU,0FAA0F;AACpG,UAAU,UAAU,EAAE,iDAAY;AAClC,yBAAyB,6CAAQ;AACjC,4BAA4B,6CAAQ;AACpC,0BAA0B,6CAAQ;AAClC;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAoB;AACtB;AACA;AACA;AACA,GAAG;AACH,oBAAoB,kDAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH,oBAAoB,kDAAa;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,kDAAa;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uCAAuC,iEAAkB,iBAAiB,iEAAkB;AAC5F,2BAA2B,0DAAqB;AAChD;AACA;AACA,sBAAsB,iEAAkB,YAAY,EAAE,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAqB,CAAC,uDAAgB;AAC/D;AACA,mBAAmB,iDAAW;AAC9B,2BAA2B,2CAAM;;AAEjC;AACA,kBAAkB,SAAS;AAC3B,kCAAkC,+CAAU;AAC5C,8CAA8C,+CAAU;AACxD,wCAAwC,+CAAU;AAClD,8BAA8B,+CAAU;AACxC,sCAAsC,+CAAU;AAChD,wCAAwC,+CAAU;AAClD,4CAA4C,+CAAU;AACtD,sBAAsB,6CAAQ;AAC9B,0BAA0B,6CAAQ;AAClC,sBAAsB,6CAAQ;AAC9B,+CAA+C,+CAAU;AACzD,+BAA+B,6CAAQ;AACvC,4BAA4B,6CAAQ;AACpC,iCAAiC,6CAAQ;AACzC,uBAAuB,kDAAa;AACpC,gBAAgB,8CAAS;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,kBAAkB,kDAAa;AAC/B;AACA,wDAAwD,uDAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,6BAA6B,8CAAS;AACtC;AACA;AACA;AACA,iCAAiC,8CAAS;AAC1C;AACA;AACA;AACA,mBAAmB,8CAAS;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B,kDAAa;AAC1C;AACA;AACA,GAAG;AACH,yBAAyB,0DAAqB,UAAU,oFAAoF,kBAAkB,0DAAqB,UAAU,iFAAiF,6DAA6D,0DAAqB,0BAA0B,cAAc,kBAAkB,0DAAqB;AAC/a;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAqB;AACzC;AACA;AACA,uBAAuB,2CAAM;;AAE7B;AAC6C;AAC7C,wCAAwC,uDAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,6CAAQ;AACzB,eAAe,6CAAQ;AACvB,wBAAwB,6CAAQ;AAChC,uBAAuB,6CAAQ;AAC/B,yBAAyB,6CAAQ;AACjC,oBAAoB,6CAAQ;AAC5B,gCAAgC,6CAAQ;AACxC,oBAAoB,6CAAQ;AAC5B,gBAAgB,6CAAQ;AACxB,gCAAgC,+CAAU;AAC1C,iCAAiC,+CAAU;AAC3C,kBAAkB,kDAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,0BAA0B,mFAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uEAAoB;AACxE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8DAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,gBAAgB,8CAAS;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,kDAAa;AACxC;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,EAAE,gDAAU;AACZ;AACA;AACA;AACA;AACA,QAAQ,mEAAgB;AACxB;AACA,KAAK;AACL,GAAG;AACH,yBAAyB,0DAAqB,UAAU,iDAAiD,sDAAsD,0DAAqB,qBAAqB,SAAS;AAClN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mDAAmD,mEAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAW;AACpC,UAAU,8DAA8D,EAAE,iDAAY;AACtF,sCAAsC,+CAAU;AAChD,8CAA8C,+CAAU;AACxD,oDAAoD,+CAAU;AAC9D,4CAA4C,+CAAU;AACtD,kBAAkB,6CAAQ;AAC1B,kBAAkB,6CAAQ;AAC1B,oCAAoC,6CAAQ;AAC5C,wBAAwB,8CAAS,OAAO,6DAAc;AACtD,uBAAuB,8CAAS;AAChC,wBAAwB,8CAAS;AACjC;AACA,IAAI,0DAAoB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI,4DAAU;AACd;AACA;AACA;AACA,kBAAkB,kDAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAqB,SAAS,wEAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qBAAqB,kDAAa;AAClC;AACA,GAAG;AACH,yBAAyB,0DAAqB,UAAU,uCAAuC,uCAAuC,0DAAqB;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,4CAA4C,wEAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4CAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAqB,kBAAkB,4CAA4C;AAC9G;AACA;;AAEA;AACmD;AACnD;AACA,UAAU,aAAa,EAAE,iDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWE","sources":["webpack://variable-explorer/./node_modules/ag-grid-react/dist/package/index.esm.mjs"],"sourcesContent":["// packages/ag-grid-react/src/agGridReact.tsx\nimport React19, { Component } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/agGridReactUi.tsx\nimport {\n BaseComponentWrapper,\n GridCoreCreator,\n ModuleRegistry,\n VanillaFrameworkOverrides,\n _combineAttributesAndGridOptions,\n _getGlobalGridOption,\n _isClientSideRowModel,\n _isServerSideRowModel,\n _processOnChange,\n _warnOnce as _warnOnce3\n} from \"ag-grid-community\";\nimport React18, {\n forwardRef as forwardRef3,\n useCallback as useCallback15,\n useContext as useContext15,\n useEffect as useEffect9,\n useImperativeHandle as useImperativeHandle3,\n useMemo as useMemo12,\n useRef as useRef15,\n useState as useState16\n} from \"react\";\n\n// packages/ag-grid-react/src/reactUi/cellRenderer/groupCellRenderer.tsx\nimport { _escapeString } from \"ag-grid-community\";\nimport React3, {\n forwardRef,\n useCallback,\n useContext,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\n\n// packages/ag-grid-react/src/reactUi/beansContext.tsx\nimport React from \"react\";\nvar BeansContext = React.createContext({});\n\n// packages/ag-grid-react/src/reactUi/jsComp.tsx\nvar showJsComp = (compDetails, context, eParent, ref) => {\n const doNothing = !compDetails || compDetails.componentFromFramework || context.isDestroyed();\n if (doNothing) {\n return;\n }\n const promise = compDetails.newAgStackInstance();\n if (promise == null) {\n return;\n }\n let comp;\n let compGui;\n let destroyed = false;\n promise.then((c) => {\n if (destroyed) {\n context.destroyBean(c);\n return;\n }\n comp = c;\n compGui = comp.getGui();\n eParent.appendChild(compGui);\n setRef(ref, comp);\n });\n return () => {\n destroyed = true;\n if (!comp) {\n return;\n }\n compGui?.parentElement?.removeChild(compGui);\n context.destroyBean(comp);\n if (ref) {\n setRef(ref, void 0);\n }\n };\n};\nvar setRef = (ref, value) => {\n if (!ref) {\n return;\n }\n if (ref instanceof Function) {\n const refCallback = ref;\n refCallback(value);\n } else {\n const refObj = ref;\n refObj.current = value;\n }\n};\n\n// packages/ag-grid-react/src/reactUi/utils.tsx\nimport React2 from \"react\";\nimport ReactDOM from \"react-dom\";\nvar classesList = (...list) => {\n const filtered = list.filter((s) => s != null && s !== \"\");\n return filtered.join(\" \");\n};\nvar CssClasses = class _CssClasses {\n constructor(...initialClasses) {\n this.classesMap = {};\n initialClasses.forEach((className) => {\n this.classesMap[className] = true;\n });\n }\n setClass(className, on) {\n const nothingHasChanged = !!this.classesMap[className] == on;\n if (nothingHasChanged) {\n return this;\n }\n const res = new _CssClasses();\n res.classesMap = { ...this.classesMap };\n res.classesMap[className] = on;\n return res;\n }\n toString() {\n const res = Object.keys(this.classesMap).filter((key) => this.classesMap[key]).join(\" \");\n return res;\n }\n};\nvar isComponentStateless = (Component2) => {\n const hasSymbol = () => typeof Symbol === \"function\" && Symbol.for;\n const getMemoType = () => hasSymbol() ? Symbol.for(\"react.memo\") : 60115;\n return typeof Component2 === \"function\" && !(Component2.prototype && Component2.prototype.isReactComponent) || typeof Component2 === \"object\" && Component2.$$typeof === getMemoType();\n};\nvar reactVersion = React2.version?.split(\".\")[0];\nvar isReactVersion17Minus = reactVersion === \"16\" || reactVersion === \"17\";\nfunction isReact19() {\n return reactVersion === \"19\";\n}\nvar disableFlushSync = false;\nfunction runWithoutFlushSync(func) {\n if (!disableFlushSync) {\n setTimeout(() => disableFlushSync = false, 0);\n }\n disableFlushSync = true;\n return func();\n}\nvar agFlushSync = (useFlushSync, fn) => {\n if (!isReactVersion17Minus && useFlushSync && !disableFlushSync) {\n ReactDOM.flushSync(fn);\n } else {\n fn();\n }\n};\nfunction getNextValueIfDifferent(prev, next, maintainOrder) {\n if (next == null || prev == null) {\n return next;\n }\n if (prev === next || next.length === 0 && prev.length === 0) {\n return prev;\n }\n if (maintainOrder || prev.length === 0 && next.length > 0 || prev.length > 0 && next.length === 0) {\n return next;\n }\n const oldValues = [];\n const newValues = [];\n const prevMap = /* @__PURE__ */ new Map();\n const nextMap = /* @__PURE__ */ new Map();\n for (let i = 0; i < next.length; i++) {\n const c = next[i];\n nextMap.set(c.instanceId, c);\n }\n for (let i = 0; i < prev.length; i++) {\n const c = prev[i];\n prevMap.set(c.instanceId, c);\n if (nextMap.has(c.instanceId)) {\n oldValues.push(c);\n }\n }\n for (let i = 0; i < next.length; i++) {\n const c = next[i];\n const instanceId = c.instanceId;\n if (!prevMap.has(instanceId)) {\n newValues.push(c);\n }\n }\n if (oldValues.length === prev.length && newValues.length === 0) {\n return prev;\n }\n if (oldValues.length === 0 && newValues.length === next.length) {\n return next;\n }\n if (oldValues.length === 0) {\n return newValues;\n }\n if (newValues.length === 0) {\n return oldValues;\n }\n return [...oldValues, ...newValues];\n}\n\n// packages/ag-grid-react/src/reactUi/cellRenderer/groupCellRenderer.tsx\nvar GroupCellRenderer = forwardRef((props, ref) => {\n const { ctrlsFactory, context } = useContext(BeansContext);\n const eGui = useRef(null);\n const eValueRef = useRef(null);\n const eCheckboxRef = useRef(null);\n const eExpandedRef = useRef(null);\n const eContractedRef = useRef(null);\n const ctrlRef = useRef();\n const [innerCompDetails, setInnerCompDetails] = useState();\n const [childCount, setChildCount] = useState();\n const [value, setValue] = useState();\n const [cssClasses, setCssClasses] = useState(() => new CssClasses());\n const [expandedCssClasses, setExpandedCssClasses] = useState(() => new CssClasses(\"ag-hidden\"));\n const [contractedCssClasses, setContractedCssClasses] = useState(() => new CssClasses(\"ag-hidden\"));\n const [checkboxCssClasses, setCheckboxCssClasses] = useState(() => new CssClasses(\"ag-invisible\"));\n useImperativeHandle(ref, () => {\n return {\n // force new instance when grid tries to refresh\n refresh() {\n return false;\n }\n };\n });\n useLayoutEffect(() => {\n return showJsComp(innerCompDetails, context, eValueRef.current);\n }, [innerCompDetails]);\n const setRef2 = useCallback((eRef) => {\n eGui.current = eRef;\n if (!eRef) {\n ctrlRef.current = context.destroyBean(ctrlRef.current);\n return;\n }\n const compProxy = {\n setInnerRenderer: (details, valueToDisplay) => {\n setInnerCompDetails(details);\n setValue(valueToDisplay);\n },\n setChildCount: (count) => setChildCount(count),\n addOrRemoveCssClass: (name, on) => setCssClasses((prev) => prev.setClass(name, on)),\n setContractedDisplayed: (displayed) => setContractedCssClasses((prev) => prev.setClass(\"ag-hidden\", !displayed)),\n setExpandedDisplayed: (displayed) => setExpandedCssClasses((prev) => prev.setClass(\"ag-hidden\", !displayed)),\n setCheckboxVisible: (visible) => setCheckboxCssClasses((prev) => prev.setClass(\"ag-invisible\", !visible))\n };\n const groupCellRendererCtrl = ctrlsFactory.getInstance(\"groupCellRendererCtrl\");\n if (groupCellRendererCtrl) {\n ctrlRef.current = context.createBean(groupCellRendererCtrl);\n ctrlRef.current.init(\n compProxy,\n eRef,\n eCheckboxRef.current,\n eExpandedRef.current,\n eContractedRef.current,\n GroupCellRenderer,\n props\n );\n }\n }, []);\n const className = useMemo(() => `ag-cell-wrapper ${cssClasses.toString()}`, [cssClasses]);\n const expandedClassName = useMemo(() => `ag-group-expanded ${expandedCssClasses.toString()}`, [expandedCssClasses]);\n const contractedClassName = useMemo(\n () => `ag-group-contracted ${contractedCssClasses.toString()}`,\n [contractedCssClasses]\n );\n const checkboxClassName = useMemo(() => `ag-group-checkbox ${checkboxCssClasses.toString()}`, [checkboxCssClasses]);\n const useFwRenderer = innerCompDetails && innerCompDetails.componentFromFramework;\n const FwRenderer = useFwRenderer ? innerCompDetails.componentClass : void 0;\n const useValue = innerCompDetails == null && value != null;\n const escapedValue = _escapeString(value, true);\n return /* @__PURE__ */ React3.createElement(\n \"span\",\n {\n className,\n ref: setRef2,\n ...!props.colDef ? { role: ctrlRef.current?.getCellAriaRole() } : {}\n },\n /* @__PURE__ */ React3.createElement(\"span\", { className: expandedClassName, ref: eExpandedRef }),\n /* @__PURE__ */ React3.createElement(\"span\", { className: contractedClassName, ref: eContractedRef }),\n /* @__PURE__ */ React3.createElement(\"span\", { className: checkboxClassName, ref: eCheckboxRef }),\n /* @__PURE__ */ React3.createElement(\"span\", { className: \"ag-group-value\", ref: eValueRef }, useValue && /* @__PURE__ */ React3.createElement(React3.Fragment, null, escapedValue), useFwRenderer && /* @__PURE__ */ React3.createElement(FwRenderer, { ...innerCompDetails.params })),\n /* @__PURE__ */ React3.createElement(\"span\", { className: \"ag-group-child-count\" }, childCount)\n );\n});\nvar groupCellRenderer_default = GroupCellRenderer;\n\n// packages/ag-grid-react/src/shared/customComp/customComponentWrapper.ts\nimport { AgPromise as AgPromise2 } from \"ag-grid-community\";\n\n// packages/ag-grid-react/src/reactUi/customComp/customWrapperComp.tsx\nimport React4, { memo, useEffect, useState as useState2 } from \"react\";\n\n// packages/ag-grid-react/src/shared/customComp/customContext.ts\nimport { createContext } from \"react\";\nvar CustomContext = createContext({\n setMethods: () => {\n }\n});\n\n// packages/ag-grid-react/src/reactUi/customComp/customWrapperComp.tsx\nvar CustomWrapperComp = (params) => {\n const { initialProps, addUpdateCallback, CustomComponentClass, setMethods } = params;\n const [{ key, ...props }, setProps] = useState2(initialProps);\n useEffect(() => {\n addUpdateCallback((newProps) => setProps(newProps));\n }, []);\n return /* @__PURE__ */ React4.createElement(CustomContext.Provider, { value: { setMethods } }, /* @__PURE__ */ React4.createElement(CustomComponentClass, { key, ...props }));\n};\nvar customWrapperComp_default = memo(CustomWrapperComp);\n\n// packages/ag-grid-react/src/shared/reactComponent.ts\nimport { AgPromise, _warnOnce } from \"ag-grid-community\";\nimport { createElement } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n// packages/ag-grid-react/src/shared/keyGenerator.ts\nvar counter = 0;\nfunction generateNewKey() {\n return `agPortalKey_${++counter}`;\n}\n\n// packages/ag-grid-react/src/shared/reactComponent.ts\nvar ReactComponent = class {\n constructor(reactComponent, portalManager, componentType, suppressFallbackMethods) {\n this.portal = null;\n this.oldPortal = null;\n this.reactComponent = reactComponent;\n this.portalManager = portalManager;\n this.componentType = componentType;\n this.suppressFallbackMethods = !!suppressFallbackMethods;\n this.statelessComponent = this.isStateless(this.reactComponent);\n this.key = generateNewKey();\n this.portalKey = generateNewKey();\n this.instanceCreated = this.isStatelessComponent() ? AgPromise.resolve(false) : new AgPromise((resolve) => {\n this.resolveInstanceCreated = resolve;\n });\n }\n getGui() {\n return this.eParentElement;\n }\n /** `getGui()` returns the parent element. This returns the actual root element. */\n getRootElement() {\n const firstChild = this.eParentElement.firstChild;\n return firstChild;\n }\n destroy() {\n if (this.componentInstance && typeof this.componentInstance.destroy == \"function\") {\n this.componentInstance.destroy();\n }\n const portal = this.portal;\n if (portal) {\n this.portalManager.destroyPortal(portal);\n }\n }\n createParentElement(params) {\n const componentWrappingElement = this.portalManager.getComponentWrappingElement();\n const eParentElement = document.createElement(componentWrappingElement || \"div\");\n eParentElement.classList.add(\"ag-react-container\");\n params.reactContainer = eParentElement;\n return eParentElement;\n }\n addParentContainerStyleAndClasses() {\n if (!this.componentInstance) {\n return;\n }\n if (this.componentInstance.getReactContainerStyle && this.componentInstance.getReactContainerStyle()) {\n _warnOnce(\n 'Since v31.1 \"getReactContainerStyle\" is deprecated. Apply styling directly to \".ag-react-container\" if needed.'\n );\n Object.assign(this.eParentElement.style, this.componentInstance.getReactContainerStyle());\n }\n if (this.componentInstance.getReactContainerClasses && this.componentInstance.getReactContainerClasses()) {\n _warnOnce(\n 'Since v31.1 \"getReactContainerClasses\" is deprecated. Apply styling directly to \".ag-react-container\" if needed.'\n );\n const parentContainerClasses = this.componentInstance.getReactContainerClasses();\n parentContainerClasses.forEach((className) => this.eParentElement.classList.add(className));\n }\n }\n statelessComponentRendered() {\n return this.eParentElement.childElementCount > 0 || this.eParentElement.childNodes.length > 0;\n }\n getFrameworkComponentInstance() {\n return this.componentInstance;\n }\n isStatelessComponent() {\n return this.statelessComponent;\n }\n getReactComponentName() {\n return this.reactComponent.name;\n }\n getMemoType() {\n return this.hasSymbol() ? Symbol.for(\"react.memo\") : 60115;\n }\n hasSymbol() {\n return typeof Symbol === \"function\" && Symbol.for;\n }\n isStateless(Component2) {\n return typeof Component2 === \"function\" && !(Component2.prototype && Component2.prototype.isReactComponent) || typeof Component2 === \"object\" && Component2.$$typeof === this.getMemoType();\n }\n hasMethod(name) {\n const frameworkComponentInstance = this.getFrameworkComponentInstance();\n return !!frameworkComponentInstance && frameworkComponentInstance[name] != null || this.fallbackMethodAvailable(name);\n }\n callMethod(name, args) {\n const frameworkComponentInstance = this.getFrameworkComponentInstance();\n if (this.isStatelessComponent()) {\n return this.fallbackMethod(name, !!args && args[0] ? args[0] : {});\n } else if (!frameworkComponentInstance) {\n setTimeout(() => this.callMethod(name, args));\n return;\n }\n const method = frameworkComponentInstance[name];\n if (method) {\n return method.apply(frameworkComponentInstance, args);\n }\n if (this.fallbackMethodAvailable(name)) {\n return this.fallbackMethod(name, !!args && args[0] ? args[0] : {});\n }\n }\n addMethod(name, callback) {\n this[name] = callback;\n }\n init(params) {\n this.eParentElement = this.createParentElement(params);\n this.createOrUpdatePortal(params);\n return new AgPromise((resolve) => this.createReactComponent(resolve));\n }\n createOrUpdatePortal(params) {\n if (!this.isStatelessComponent()) {\n this.ref = (element) => {\n this.componentInstance = element;\n this.addParentContainerStyleAndClasses();\n this.resolveInstanceCreated?.(true);\n this.resolveInstanceCreated = void 0;\n };\n params.ref = this.ref;\n }\n this.reactElement = this.createElement(this.reactComponent, { ...params, key: this.key });\n this.portal = createPortal(\n this.reactElement,\n this.eParentElement,\n this.portalKey\n // fixed deltaRowModeRefreshCompRenderer\n );\n }\n createElement(reactComponent, props) {\n return createElement(reactComponent, props);\n }\n createReactComponent(resolve) {\n this.portalManager.mountReactPortal(this.portal, this, resolve);\n }\n rendered() {\n return this.isStatelessComponent() && this.statelessComponentRendered() || !!(!this.isStatelessComponent() && this.getFrameworkComponentInstance());\n }\n /*\n * fallback methods - these will be invoked if a corresponding instance method is not present\n * for example if refresh is called and is not available on the component instance, then refreshComponent on this\n * class will be invoked instead\n *\n * Currently only refresh is supported\n */\n refreshComponent(args) {\n this.oldPortal = this.portal;\n this.createOrUpdatePortal(args);\n this.portalManager.updateReactPortal(this.oldPortal, this.portal);\n }\n fallbackMethod(name, params) {\n const method = this[`${name}Component`];\n if (!this.suppressFallbackMethods && !!method) {\n return method.bind(this)(params);\n }\n }\n fallbackMethodAvailable(name) {\n if (this.suppressFallbackMethods) {\n return false;\n }\n const method = this[`${name}Component`];\n return !!method;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/customComponentWrapper.ts\nfunction addOptionalMethods(optionalMethodNames, providedMethods, component) {\n optionalMethodNames.forEach((methodName) => {\n const providedMethod = providedMethods[methodName];\n if (providedMethod) {\n component[methodName] = providedMethod;\n }\n });\n}\nvar CustomComponentWrapper = class extends ReactComponent {\n constructor() {\n super(...arguments);\n this.awaitUpdateCallback = new AgPromise2((resolve) => {\n this.resolveUpdateCallback = resolve;\n });\n this.wrapperComponent = customWrapperComp_default;\n }\n init(params) {\n this.sourceParams = params;\n return super.init(this.getProps());\n }\n addMethod() {\n }\n getInstance() {\n return this.instanceCreated.then(() => this.componentInstance);\n }\n getFrameworkComponentInstance() {\n return this;\n }\n createElement(reactComponent, props) {\n return super.createElement(this.wrapperComponent, {\n initialProps: props,\n CustomComponentClass: reactComponent,\n setMethods: (methods) => this.setMethods(methods),\n addUpdateCallback: (callback) => {\n this.updateCallback = () => {\n callback(this.getProps());\n return new AgPromise2((resolve) => {\n setTimeout(() => {\n resolve();\n });\n });\n };\n this.resolveUpdateCallback();\n }\n });\n }\n setMethods(methods) {\n this.providedMethods = methods;\n addOptionalMethods(this.getOptionalMethods(), this.providedMethods, this);\n }\n getOptionalMethods() {\n return [];\n }\n getProps() {\n return {\n ...this.sourceParams,\n key: this.key,\n ref: this.ref\n };\n }\n refreshProps() {\n if (this.updateCallback) {\n return this.updateCallback();\n }\n return new AgPromise2(\n (resolve) => this.awaitUpdateCallback.then(() => {\n this.updateCallback().then(() => resolve());\n })\n );\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/cellRendererComponentWrapper.ts\nvar CellRendererComponentWrapper = class extends CustomComponentWrapper {\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n return true;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/dateComponentWrapper.ts\nvar DateComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.date = null;\n this.onDateChange = (date) => this.updateDate(date);\n }\n getDate() {\n return this.date;\n }\n setDate(date) {\n this.date = date;\n this.refreshProps();\n }\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n }\n getOptionalMethods() {\n return [\"afterGuiAttached\", \"setInputPlaceholder\", \"setInputAriaLabel\", \"setDisabled\"];\n }\n updateDate(date) {\n this.setDate(date);\n this.sourceParams.onDateChanged();\n }\n getProps() {\n const props = super.getProps();\n props.date = this.date;\n props.onDateChange = this.onDateChange;\n delete props.onDateChanged;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/dragAndDropImageComponentWrapper.ts\nvar DragAndDropImageComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.label = \"\";\n this.icon = null;\n this.shake = false;\n }\n setIcon(iconName, shake) {\n this.icon = iconName;\n this.shake = shake;\n this.refreshProps();\n }\n setLabel(label) {\n this.label = label;\n this.refreshProps();\n }\n getProps() {\n const props = super.getProps();\n const { label, icon, shake } = this;\n props.label = label;\n props.icon = icon;\n props.shake = shake;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/filterComponentWrapper.ts\nvar FilterComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.model = null;\n this.onModelChange = (model) => this.updateModel(model);\n this.onUiChange = () => this.sourceParams.filterChangedCallback();\n this.expectingNewMethods = true;\n this.hasBeenActive = false;\n }\n isFilterActive() {\n return this.model != null;\n }\n doesFilterPass(params) {\n return this.providedMethods.doesFilterPass(params);\n }\n getModel() {\n return this.model;\n }\n setModel(model) {\n this.expectingNewMethods = true;\n this.model = model;\n this.hasBeenActive || (this.hasBeenActive = this.isFilterActive());\n return this.refreshProps();\n }\n refresh(newParams) {\n this.sourceParams = newParams;\n this.refreshProps();\n return true;\n }\n getOptionalMethods() {\n return [\"afterGuiAttached\", \"afterGuiDetached\", \"onNewRowsLoaded\", \"getModelAsString\", \"onAnyFilterChanged\"];\n }\n setMethods(methods) {\n if (this.expectingNewMethods === false && this.hasBeenActive && this.providedMethods?.doesFilterPass !== methods?.doesFilterPass) {\n setTimeout(() => {\n this.sourceParams.filterChangedCallback();\n });\n }\n this.expectingNewMethods = false;\n super.setMethods(methods);\n }\n updateModel(model) {\n this.setModel(model).then(() => this.sourceParams.filterChangedCallback());\n }\n getProps() {\n const props = super.getProps();\n props.model = this.model;\n props.onModelChange = this.onModelChange;\n props.onUiChange = this.onUiChange;\n delete props.filterChangedCallback;\n delete props.filterModifiedCallback;\n delete props.valueGetter;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/floatingFilterComponentProxy.ts\nimport { AgPromise as AgPromise3 } from \"ag-grid-community\";\nfunction updateFloatingFilterParent(params, model) {\n params.parentFilterInstance((instance) => {\n (instance.setModel(model) || AgPromise3.resolve()).then(() => {\n params.filterParams.filterChangedCallback();\n });\n });\n}\nvar FloatingFilterComponentProxy = class {\n constructor(floatingFilterParams, refreshProps) {\n this.floatingFilterParams = floatingFilterParams;\n this.refreshProps = refreshProps;\n this.model = null;\n this.onModelChange = (model) => this.updateModel(model);\n }\n getProps() {\n return {\n ...this.floatingFilterParams,\n model: this.model,\n onModelChange: this.onModelChange\n };\n }\n onParentModelChanged(parentModel) {\n this.model = parentModel;\n this.refreshProps();\n }\n refresh(params) {\n this.floatingFilterParams = params;\n this.refreshProps();\n }\n setMethods(methods) {\n addOptionalMethods(this.getOptionalMethods(), methods, this);\n }\n getOptionalMethods() {\n return [\"afterGuiAttached\"];\n }\n updateModel(model) {\n this.model = model;\n this.refreshProps();\n updateFloatingFilterParent(this.floatingFilterParams, model);\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/floatingFilterComponentWrapper.ts\nvar FloatingFilterComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.model = null;\n this.onModelChange = (model) => this.updateModel(model);\n }\n onParentModelChanged(parentModel) {\n this.model = parentModel;\n this.refreshProps();\n }\n refresh(newParams) {\n this.sourceParams = newParams;\n this.refreshProps();\n }\n getOptionalMethods() {\n return [\"afterGuiAttached\"];\n }\n updateModel(model) {\n this.model = model;\n this.refreshProps();\n updateFloatingFilterParent(this.sourceParams, model);\n }\n getProps() {\n const props = super.getProps();\n props.model = this.model;\n props.onModelChange = this.onModelChange;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/loadingOverlayComponentWrapper.ts\nvar LoadingOverlayComponentWrapper = class extends CustomComponentWrapper {\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/menuItemComponentWrapper.ts\nvar MenuItemComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.active = false;\n this.expanded = false;\n this.onActiveChange = (active) => this.updateActive(active);\n }\n setActive(active) {\n this.awaitSetActive(active);\n }\n setExpanded(expanded) {\n this.expanded = expanded;\n this.refreshProps();\n }\n getOptionalMethods() {\n return [\"select\", \"configureDefaults\"];\n }\n awaitSetActive(active) {\n this.active = active;\n return this.refreshProps();\n }\n updateActive(active) {\n const result = this.awaitSetActive(active);\n if (active) {\n result.then(() => this.sourceParams.onItemActivated());\n }\n }\n getProps() {\n const props = super.getProps();\n props.active = this.active;\n props.expanded = this.expanded;\n props.onActiveChange = this.onActiveChange;\n delete props.onItemActivated;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/noRowsOverlayComponentWrapper.ts\nvar NoRowsOverlayComponentWrapper = class extends CustomComponentWrapper {\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/statusPanelComponentWrapper.ts\nvar StatusPanelComponentWrapper = class extends CustomComponentWrapper {\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n return true;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/toolPanelComponentWrapper.ts\nvar ToolPanelComponentWrapper = class extends CustomComponentWrapper {\n constructor() {\n super(...arguments);\n this.onStateChange = (state) => this.updateState(state);\n }\n refresh(params) {\n this.sourceParams = params;\n this.refreshProps();\n return true;\n }\n getState() {\n return this.state;\n }\n updateState(state) {\n this.state = state;\n this.refreshProps();\n this.sourceParams.onStateUpdated();\n }\n getProps() {\n const props = super.getProps();\n props.state = this.state;\n props.onStateChange = this.onStateChange;\n return props;\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/util.ts\nimport { AgPromise as AgPromise4, _warnOnce as _warnOnce2 } from \"ag-grid-community\";\nfunction getInstance(wrapperComponent, callback) {\n const promise = wrapperComponent?.getInstance?.() ?? AgPromise4.resolve(void 0);\n promise.then((comp) => callback(comp));\n}\nfunction warnReactiveCustomComponents() {\n _warnOnce2(\"As of v32, using custom components with `reactiveCustomComponents = false` is deprecated.\");\n}\n\n// packages/ag-grid-react/src/shared/portalManager.ts\nvar MAX_COMPONENT_CREATION_TIME_IN_MS = 1e3;\nvar PortalManager = class {\n constructor(refresher, wrappingElement, maxComponentCreationTimeMs) {\n this.destroyed = false;\n this.portals = [];\n this.hasPendingPortalUpdate = false;\n this.wrappingElement = wrappingElement ? wrappingElement : \"div\";\n this.refresher = refresher;\n this.maxComponentCreationTimeMs = maxComponentCreationTimeMs ? maxComponentCreationTimeMs : MAX_COMPONENT_CREATION_TIME_IN_MS;\n }\n getPortals() {\n return this.portals;\n }\n destroy() {\n this.destroyed = true;\n }\n destroyPortal(portal) {\n this.portals = this.portals.filter((curPortal) => curPortal !== portal);\n this.batchUpdate();\n }\n getComponentWrappingElement() {\n return this.wrappingElement;\n }\n mountReactPortal(portal, reactComponent, resolve) {\n this.portals = [...this.portals, portal];\n this.waitForInstance(reactComponent, resolve);\n this.batchUpdate();\n }\n updateReactPortal(oldPortal, newPortal) {\n this.portals[this.portals.indexOf(oldPortal)] = newPortal;\n this.batchUpdate();\n }\n batchUpdate() {\n if (this.hasPendingPortalUpdate) {\n return;\n }\n setTimeout(() => {\n if (!this.destroyed) {\n this.refresher();\n this.hasPendingPortalUpdate = false;\n }\n });\n this.hasPendingPortalUpdate = true;\n }\n waitForInstance(reactComponent, resolve, startTime = Date.now()) {\n if (this.destroyed) {\n resolve(null);\n return;\n }\n if (reactComponent.rendered()) {\n resolve(reactComponent);\n } else {\n if (Date.now() - startTime >= this.maxComponentCreationTimeMs && !this.hasPendingPortalUpdate) {\n return;\n }\n window.setTimeout(() => {\n this.waitForInstance(reactComponent, resolve, startTime);\n });\n }\n }\n};\n\n// packages/ag-grid-react/src/reactUi/gridComp.tsx\nimport { GridCtrl } from \"ag-grid-community\";\nimport React17, { memo as memo14, useCallback as useCallback14, useEffect as useEffect8, useMemo as useMemo11, useRef as useRef14, useState as useState15 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/gridBodyComp.tsx\nimport {\n CssClassManager as CssClassManager4,\n FakeHScrollComp,\n FakeVScrollComp,\n GridBodyCtrl,\n OverlayWrapperComponent,\n _setAriaColCount,\n _setAriaRowCount\n} from \"ag-grid-community\";\nimport React15, { memo as memo12, useCallback as useCallback12, useContext as useContext13, useMemo as useMemo10, useRef as useRef12, useState as useState14 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/header/gridHeaderComp.tsx\nimport { GridHeaderCtrl } from \"ag-grid-community\";\nimport React10, { memo as memo7, useCallback as useCallback7, useContext as useContext7, useMemo as useMemo6, useRef as useRef7, useState as useState8 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/header/headerRowContainerComp.tsx\nimport { HeaderRowContainerCtrl } from \"ag-grid-community\";\nimport React9, { memo as memo6, useCallback as useCallback6, useContext as useContext6, useRef as useRef6, useState as useState7 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/header/headerRowComp.tsx\nimport { HeaderRowType, _EmptyBean as _EmptyBean4 } from \"ag-grid-community\";\nimport React8, { memo as memo5, useCallback as useCallback5, useContext as useContext5, useMemo as useMemo5, useRef as useRef5, useState as useState6 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/header/headerCellComp.tsx\nimport { CssClassManager, _EmptyBean, _removeAriaSort, _setAriaSort } from \"ag-grid-community\";\nimport React5, { memo as memo2, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect2, useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef2, useState as useState3 } from \"react\";\nvar HeaderCellComp = ({ ctrl }) => {\n const isAlive = ctrl.isAlive();\n const { context } = useContext2(BeansContext);\n const colId = isAlive ? ctrl.getColId() : void 0;\n const [userCompDetails, setUserCompDetails] = useState3();\n const compBean = useRef2();\n const eGui = useRef2(null);\n const eResize = useRef2(null);\n const eHeaderCompWrapper = useRef2(null);\n const userCompRef = useRef2();\n const cssClassManager = useRef2();\n if (isAlive && !cssClassManager.current) {\n cssClassManager.current = new CssClassManager(() => eGui.current);\n }\n const setRef2 = useCallback2((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean()) : context.destroyBean(compBean.current);\n if (!eRef || !isAlive) {\n return;\n }\n const compProxy = {\n setWidth: (width) => {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n addOrRemoveCssClass: (name, on) => cssClassManager.current.addOrRemoveCssClass(name, on),\n setAriaSort: (sort) => {\n if (eGui.current) {\n sort ? _setAriaSort(eGui.current, sort) : _removeAriaSort(eGui.current);\n }\n },\n setUserCompDetails: (compDetails) => setUserCompDetails(compDetails),\n getUserCompInstance: () => userCompRef.current || void 0\n };\n ctrl.setComp(compProxy, eRef, eResize.current, eHeaderCompWrapper.current, compBean.current);\n const selectAllGui = ctrl.getSelectAllGui();\n eResize.current?.insertAdjacentElement(\"afterend\", selectAllGui);\n compBean.current.addDestroyFunc(() => selectAllGui.remove());\n }, []);\n useLayoutEffect2(\n () => showJsComp(userCompDetails, context, eHeaderCompWrapper.current, userCompRef),\n [userCompDetails]\n );\n useEffect2(() => {\n ctrl.setDragSource(eGui.current);\n }, [userCompDetails]);\n const userCompStateless = useMemo2(() => {\n const res = userCompDetails?.componentFromFramework && isComponentStateless(userCompDetails.componentClass);\n return !!res;\n }, [userCompDetails]);\n const reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n const UserCompClass = userCompDetails && userCompDetails.componentClass;\n return /* @__PURE__ */ React5.createElement(\"div\", { ref: setRef2, className: \"ag-header-cell\", \"col-id\": colId, role: \"columnheader\" }, /* @__PURE__ */ React5.createElement(\"div\", { ref: eResize, className: \"ag-header-cell-resize\", role: \"presentation\" }), /* @__PURE__ */ React5.createElement(\"div\", { ref: eHeaderCompWrapper, className: \"ag-header-cell-comp-wrapper\", role: \"presentation\" }, reactUserComp && userCompStateless && /* @__PURE__ */ React5.createElement(UserCompClass, { ...userCompDetails.params }), reactUserComp && !userCompStateless && /* @__PURE__ */ React5.createElement(UserCompClass, { ...userCompDetails.params, ref: userCompRef })));\n};\nvar headerCellComp_default = memo2(HeaderCellComp);\n\n// packages/ag-grid-react/src/reactUi/header/headerFilterCellComp.tsx\nimport { AgPromise as AgPromise5, _EmptyBean as _EmptyBean2 } from \"ag-grid-community\";\nimport React6, { memo as memo3, useCallback as useCallback3, useContext as useContext3, useLayoutEffect as useLayoutEffect3, useMemo as useMemo3, useRef as useRef3, useState as useState4 } from \"react\";\nvar HeaderFilterCellComp = ({ ctrl }) => {\n const { context, gos } = useContext3(BeansContext);\n const [cssClasses, setCssClasses] = useState4(\n () => new CssClasses(\"ag-header-cell\", \"ag-floating-filter\")\n );\n const [cssBodyClasses, setBodyCssClasses] = useState4(() => new CssClasses());\n const [cssButtonWrapperClasses, setButtonWrapperCssClasses] = useState4(\n () => new CssClasses(\"ag-floating-filter-button\", \"ag-hidden\")\n );\n const [buttonWrapperAriaHidden, setButtonWrapperAriaHidden] = useState4(\"false\");\n const [userCompDetails, setUserCompDetails] = useState4();\n const [, setRenderKey] = useState4(1);\n const compBean = useRef3();\n const eGui = useRef3(null);\n const eFloatingFilterBody = useRef3(null);\n const eButtonWrapper = useRef3(null);\n const eButtonShowMainFilter = useRef3(null);\n const userCompResolve = useRef3();\n const userCompPromise = useRef3();\n const userCompRef = (value) => {\n if (value == null) {\n return;\n }\n userCompResolve.current && userCompResolve.current(value);\n };\n const setRef2 = useCallback3((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean2()) : context.destroyBean(compBean.current);\n if (!eRef) {\n return;\n }\n userCompPromise.current = new AgPromise5((resolve) => {\n userCompResolve.current = resolve;\n });\n const compProxy = {\n addOrRemoveCssClass: (name, on) => setCssClasses((prev) => prev.setClass(name, on)),\n addOrRemoveBodyCssClass: (name, on) => setBodyCssClasses((prev) => prev.setClass(name, on)),\n setButtonWrapperDisplayed: (displayed) => {\n setButtonWrapperCssClasses((prev) => prev.setClass(\"ag-hidden\", !displayed));\n setButtonWrapperAriaHidden(!displayed ? \"true\" : \"false\");\n },\n setWidth: (width) => {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n setCompDetails: (compDetails) => setUserCompDetails(compDetails),\n getFloatingFilterComp: () => userCompPromise.current ? userCompPromise.current : null,\n setMenuIcon: (eIcon) => eButtonShowMainFilter.current?.appendChild(eIcon)\n };\n ctrl.setComp(compProxy, eRef, eButtonShowMainFilter.current, eFloatingFilterBody.current, compBean.current);\n }, []);\n useLayoutEffect3(\n () => showJsComp(userCompDetails, context, eFloatingFilterBody.current, userCompRef),\n [userCompDetails]\n );\n const className = useMemo3(() => cssClasses.toString(), [cssClasses]);\n const bodyClassName = useMemo3(() => cssBodyClasses.toString(), [cssBodyClasses]);\n const buttonWrapperClassName = useMemo3(() => cssButtonWrapperClasses.toString(), [cssButtonWrapperClasses]);\n const userCompStateless = useMemo3(() => {\n const res = userCompDetails && userCompDetails.componentFromFramework && isComponentStateless(userCompDetails.componentClass);\n return !!res;\n }, [userCompDetails]);\n const reactiveCustomComponents = useMemo3(() => gos.get(\"reactiveCustomComponents\"), []);\n const floatingFilterCompProxy = useMemo3(() => {\n if (userCompDetails) {\n if (reactiveCustomComponents) {\n const compProxy = new FloatingFilterComponentProxy(\n userCompDetails.params,\n () => setRenderKey((prev) => prev + 1)\n );\n userCompRef(compProxy);\n return compProxy;\n } else if (userCompDetails.componentFromFramework) {\n warnReactiveCustomComponents();\n }\n }\n return void 0;\n }, [userCompDetails]);\n const floatingFilterProps = floatingFilterCompProxy?.getProps();\n const reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n const UserCompClass = userCompDetails && userCompDetails.componentClass;\n return /* @__PURE__ */ React6.createElement(\"div\", { ref: setRef2, className, role: \"gridcell\" }, /* @__PURE__ */ React6.createElement(\"div\", { ref: eFloatingFilterBody, className: bodyClassName, role: \"presentation\" }, reactUserComp && !reactiveCustomComponents && /* @__PURE__ */ React6.createElement(UserCompClass, { ...userCompDetails.params, ref: userCompStateless ? () => {\n } : userCompRef }), reactUserComp && reactiveCustomComponents && /* @__PURE__ */ React6.createElement(\n CustomContext.Provider,\n {\n value: {\n setMethods: (methods) => floatingFilterCompProxy.setMethods(methods)\n }\n },\n /* @__PURE__ */ React6.createElement(UserCompClass, { ...floatingFilterProps })\n )), /* @__PURE__ */ React6.createElement(\n \"div\",\n {\n ref: eButtonWrapper,\n \"aria-hidden\": buttonWrapperAriaHidden,\n className: buttonWrapperClassName,\n role: \"presentation\"\n },\n /* @__PURE__ */ React6.createElement(\n \"button\",\n {\n ref: eButtonShowMainFilter,\n type: \"button\",\n className: \"ag-button ag-floating-filter-button-button\",\n tabIndex: -1\n }\n )\n ));\n};\nvar headerFilterCellComp_default = memo3(HeaderFilterCellComp);\n\n// packages/ag-grid-react/src/reactUi/header/headerGroupCellComp.tsx\nimport { _EmptyBean as _EmptyBean3 } from \"ag-grid-community\";\nimport React7, { memo as memo4, useCallback as useCallback4, useContext as useContext4, useEffect as useEffect3, useLayoutEffect as useLayoutEffect4, useMemo as useMemo4, useRef as useRef4, useState as useState5 } from \"react\";\nvar HeaderGroupCellComp = ({ ctrl }) => {\n const { context } = useContext4(BeansContext);\n const [cssClasses, setCssClasses] = useState5(() => new CssClasses());\n const [cssResizableClasses, setResizableCssClasses] = useState5(() => new CssClasses());\n const [resizableAriaHidden, setResizableAriaHidden] = useState5(\"false\");\n const [ariaExpanded, setAriaExpanded] = useState5();\n const [userCompDetails, setUserCompDetails] = useState5();\n const colId = useMemo4(() => ctrl.getColId(), []);\n const compBean = useRef4();\n const eGui = useRef4(null);\n const eResize = useRef4(null);\n const eHeaderCompWrapper = useRef4(null);\n const userCompRef = useRef4();\n const setRef2 = useCallback4((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean3()) : context.destroyBean(compBean.current);\n if (!eRef) {\n return;\n }\n const compProxy = {\n setWidth: (width) => {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n addOrRemoveCssClass: (name, on) => setCssClasses((prev) => prev.setClass(name, on)),\n setHeaderWrapperHidden: (hidden) => {\n const headerCompWrapper = eHeaderCompWrapper.current;\n if (!headerCompWrapper) {\n return;\n }\n if (hidden) {\n headerCompWrapper.style.setProperty(\"display\", \"none\");\n } else {\n headerCompWrapper.style.removeProperty(\"display\");\n }\n },\n setHeaderWrapperMaxHeight: (value) => {\n const headerCompWrapper = eHeaderCompWrapper.current;\n if (!headerCompWrapper) {\n return;\n }\n if (value != null) {\n headerCompWrapper.style.setProperty(\"max-height\", `${value}px`);\n } else {\n headerCompWrapper.style.removeProperty(\"max-height\");\n }\n headerCompWrapper.classList.toggle(\"ag-header-cell-comp-wrapper-limited-height\", value != null);\n },\n setUserCompDetails: (compDetails) => setUserCompDetails(compDetails),\n setResizableDisplayed: (displayed) => {\n setResizableCssClasses((prev) => prev.setClass(\"ag-hidden\", !displayed));\n setResizableAriaHidden(!displayed ? \"true\" : \"false\");\n },\n setAriaExpanded: (expanded) => setAriaExpanded(expanded),\n getUserCompInstance: () => userCompRef.current || void 0\n };\n ctrl.setComp(compProxy, eRef, eResize.current, eHeaderCompWrapper.current, compBean.current);\n }, []);\n useLayoutEffect4(() => showJsComp(userCompDetails, context, eHeaderCompWrapper.current), [userCompDetails]);\n useEffect3(() => {\n if (eGui.current) {\n ctrl.setDragSource(eGui.current);\n }\n }, [userCompDetails]);\n const userCompStateless = useMemo4(() => {\n const res = userCompDetails?.componentFromFramework && isComponentStateless(userCompDetails.componentClass);\n return !!res;\n }, [userCompDetails]);\n const className = useMemo4(() => \"ag-header-group-cell \" + cssClasses.toString(), [cssClasses]);\n const resizableClassName = useMemo4(\n () => \"ag-header-cell-resize \" + cssResizableClasses.toString(),\n [cssResizableClasses]\n );\n const reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n const UserCompClass = userCompDetails && userCompDetails.componentClass;\n return /* @__PURE__ */ React7.createElement(\"div\", { ref: setRef2, className, \"col-id\": colId, role: \"columnheader\", \"aria-expanded\": ariaExpanded }, /* @__PURE__ */ React7.createElement(\"div\", { ref: eHeaderCompWrapper, className: \"ag-header-cell-comp-wrapper\", role: \"presentation\" }, reactUserComp && userCompStateless && /* @__PURE__ */ React7.createElement(UserCompClass, { ...userCompDetails.params }), reactUserComp && !userCompStateless && /* @__PURE__ */ React7.createElement(UserCompClass, { ...userCompDetails.params, ref: userCompRef })), /* @__PURE__ */ React7.createElement(\"div\", { ref: eResize, \"aria-hidden\": resizableAriaHidden, className: resizableClassName }));\n};\nvar headerGroupCellComp_default = memo4(HeaderGroupCellComp);\n\n// packages/ag-grid-react/src/reactUi/header/headerRowComp.tsx\nvar HeaderRowComp = ({ ctrl }) => {\n const { context } = useContext5(BeansContext);\n const { topOffset, rowHeight } = useMemo5(() => ctrl.getTopAndHeight(), []);\n const ariaRowIndex = ctrl.getAriaRowIndex();\n const className = ctrl.getHeaderRowClass();\n const [height, setHeight] = useState6(() => rowHeight + \"px\");\n const [top, setTop] = useState6(() => topOffset + \"px\");\n const cellCtrlsRef = useRef5(null);\n const prevCellCtrlsRef = useRef5(null);\n const [cellCtrls, setCellCtrls] = useState6(() => ctrl.getHeaderCtrls());\n const compBean = useRef5();\n const eGui = useRef5(null);\n const setRef2 = useCallback5((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean4()) : context.destroyBean(compBean.current);\n if (!eRef) {\n return;\n }\n const compProxy = {\n setHeight: (height2) => setHeight(height2),\n setTop: (top2) => setTop(top2),\n setHeaderCtrls: (ctrls, forceOrder, afterScroll) => {\n prevCellCtrlsRef.current = cellCtrlsRef.current;\n cellCtrlsRef.current = ctrls;\n const next = getNextValueIfDifferent(prevCellCtrlsRef.current, ctrls, forceOrder);\n if (next !== prevCellCtrlsRef.current) {\n agFlushSync(afterScroll, () => setCellCtrls(next));\n }\n },\n setWidth: (width) => {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n }\n };\n ctrl.setComp(compProxy, compBean.current, false);\n }, []);\n const style = useMemo5(\n () => ({\n height,\n top\n }),\n [height, top]\n );\n const createCellJsx = useCallback5((cellCtrl) => {\n switch (ctrl.getType()) {\n case HeaderRowType.COLUMN_GROUP:\n return /* @__PURE__ */ React8.createElement(headerGroupCellComp_default, { ctrl: cellCtrl, key: cellCtrl.instanceId });\n case HeaderRowType.FLOATING_FILTER:\n return /* @__PURE__ */ React8.createElement(headerFilterCellComp_default, { ctrl: cellCtrl, key: cellCtrl.instanceId });\n default:\n return /* @__PURE__ */ React8.createElement(headerCellComp_default, { ctrl: cellCtrl, key: cellCtrl.instanceId });\n }\n }, []);\n return /* @__PURE__ */ React8.createElement(\"div\", { ref: setRef2, className, role: \"row\", style, \"aria-rowindex\": ariaRowIndex }, cellCtrls.map(createCellJsx));\n};\nvar headerRowComp_default = memo5(HeaderRowComp);\n\n// packages/ag-grid-react/src/reactUi/header/headerRowContainerComp.tsx\nvar HeaderRowContainerComp = ({ pinned }) => {\n const [displayed, setDisplayed] = useState7(true);\n const [headerRowCtrls, setHeaderRowCtrls] = useState7([]);\n const { context } = useContext6(BeansContext);\n const eGui = useRef6(null);\n const eCenterContainer = useRef6(null);\n const headerRowCtrlRef = useRef6();\n const pinnedLeft = pinned === \"left\";\n const pinnedRight = pinned === \"right\";\n const centre = !pinnedLeft && !pinnedRight;\n const setRef2 = useCallback6((eRef) => {\n eGui.current = eRef;\n headerRowCtrlRef.current = eRef ? context.createBean(new HeaderRowContainerCtrl(pinned)) : context.destroyBean(headerRowCtrlRef.current);\n if (!eRef) {\n return;\n }\n const compProxy = {\n setDisplayed,\n setCtrls: (ctrls) => setHeaderRowCtrls(ctrls),\n // centre only\n setCenterWidth: (width) => {\n if (eCenterContainer.current) {\n eCenterContainer.current.style.width = width;\n }\n },\n setViewportScrollLeft: (left) => {\n if (eGui.current) {\n eGui.current.scrollLeft = left;\n }\n },\n // pinned only\n setPinnedContainerWidth: (width) => {\n if (eGui.current) {\n eGui.current.style.width = width;\n eGui.current.style.minWidth = width;\n eGui.current.style.maxWidth = width;\n }\n }\n };\n headerRowCtrlRef.current.setComp(compProxy, eGui.current);\n }, []);\n const className = !displayed ? \"ag-hidden\" : \"\";\n const insertRowsJsx = () => headerRowCtrls.map((ctrl) => /* @__PURE__ */ React9.createElement(headerRowComp_default, { ctrl, key: ctrl.instanceId }));\n return /* @__PURE__ */ React9.createElement(React9.Fragment, null, pinnedLeft && /* @__PURE__ */ React9.createElement(\n \"div\",\n {\n ref: setRef2,\n className: \"ag-pinned-left-header \" + className,\n \"aria-hidden\": !displayed,\n role: \"rowgroup\"\n },\n insertRowsJsx()\n ), pinnedRight && /* @__PURE__ */ React9.createElement(\n \"div\",\n {\n ref: setRef2,\n className: \"ag-pinned-right-header \" + className,\n \"aria-hidden\": !displayed,\n role: \"rowgroup\"\n },\n insertRowsJsx()\n ), centre && /* @__PURE__ */ React9.createElement(\"div\", { ref: setRef2, className: \"ag-header-viewport \" + className, role: \"presentation\" }, /* @__PURE__ */ React9.createElement(\"div\", { ref: eCenterContainer, className: \"ag-header-container\", role: \"rowgroup\" }, insertRowsJsx())));\n};\nvar headerRowContainerComp_default = memo6(HeaderRowContainerComp);\n\n// packages/ag-grid-react/src/reactUi/header/gridHeaderComp.tsx\nvar GridHeaderComp = () => {\n const [cssClasses, setCssClasses] = useState8(() => new CssClasses());\n const [height, setHeight] = useState8();\n const { context } = useContext7(BeansContext);\n const eGui = useRef7(null);\n const gridCtrlRef = useRef7();\n const setRef2 = useCallback7((eRef) => {\n eGui.current = eRef;\n gridCtrlRef.current = eRef ? context.createBean(new GridHeaderCtrl()) : context.destroyBean(gridCtrlRef.current);\n if (!eRef)\n return;\n const compProxy = {\n addOrRemoveCssClass: (name, on) => setCssClasses((prev) => prev.setClass(name, on)),\n setHeightAndMinHeight: (height2) => setHeight(height2)\n };\n gridCtrlRef.current.setComp(compProxy, eRef, eRef);\n }, []);\n const className = useMemo6(() => {\n const res = cssClasses.toString();\n return \"ag-header \" + res;\n }, [cssClasses]);\n const style = useMemo6(\n () => ({\n height,\n minHeight: height\n }),\n [height]\n );\n return /* @__PURE__ */ React10.createElement(\"div\", { ref: setRef2, className, style, role: \"presentation\" }, /* @__PURE__ */ React10.createElement(headerRowContainerComp_default, { pinned: \"left\" }), /* @__PURE__ */ React10.createElement(headerRowContainerComp_default, { pinned: null }), /* @__PURE__ */ React10.createElement(headerRowContainerComp_default, { pinned: \"right\" }));\n};\nvar gridHeaderComp_default = memo7(GridHeaderComp);\n\n// packages/ag-grid-react/src/reactUi/reactComment.tsx\nimport { useEffect as useEffect4 } from \"react\";\nvar useReactCommentEffect = (comment, eForCommentRef) => {\n useEffect4(() => {\n const eForComment = eForCommentRef.current;\n if (eForComment) {\n const eParent = eForComment.parentElement;\n if (eParent) {\n const eComment = document.createComment(comment);\n eParent.insertBefore(eComment, eForComment);\n return () => {\n eParent.removeChild(eComment);\n };\n }\n }\n }, [comment]);\n};\nvar reactComment_default = useReactCommentEffect;\n\n// packages/ag-grid-react/src/reactUi/rows/rowContainerComp.tsx\nimport { RowContainerCtrl, _getRowContainerOptions } from \"ag-grid-community\";\nimport React14, { memo as memo11, useCallback as useCallback11, useContext as useContext12, useMemo as useMemo9, useRef as useRef11, useState as useState13 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/rows/rowComp.tsx\nimport { CssClassManager as CssClassManager3, _EmptyBean as _EmptyBean6 } from \"ag-grid-community\";\nimport React13, { memo as memo10, useCallback as useCallback10, useContext as useContext11, useEffect as useEffect7, useLayoutEffect as useLayoutEffect6, useMemo as useMemo8, useRef as useRef10, useState as useState12 } from \"react\";\n\n// packages/ag-grid-react/src/reactUi/cells/cellComp.tsx\nimport { CssClassManager as CssClassManager2, _EmptyBean as _EmptyBean5, _removeFromParent } from \"ag-grid-community\";\nimport React12, { memo as memo9, useCallback as useCallback9, useContext as useContext10, useLayoutEffect as useLayoutEffect5, useMemo as useMemo7, useRef as useRef9, useState as useState11 } from \"react\";\n\n// packages/ag-grid-react/src/shared/customComp/cellEditorComponentProxy.ts\nimport { AgPromise as AgPromise6 } from \"ag-grid-community\";\nvar CellEditorComponentProxy = class {\n constructor(cellEditorParams, refreshProps) {\n this.cellEditorParams = cellEditorParams;\n this.refreshProps = refreshProps;\n this.instanceCreated = new AgPromise6((resolve) => {\n this.resolveInstanceCreated = resolve;\n });\n this.onValueChange = (value) => this.updateValue(value);\n this.value = cellEditorParams.value;\n }\n getProps() {\n return {\n ...this.cellEditorParams,\n initialValue: this.cellEditorParams.value,\n value: this.value,\n onValueChange: this.onValueChange\n };\n }\n getValue() {\n return this.value;\n }\n refresh(params) {\n this.cellEditorParams = params;\n this.refreshProps();\n }\n setMethods(methods) {\n addOptionalMethods(this.getOptionalMethods(), methods, this);\n }\n getInstance() {\n return this.instanceCreated.then(() => this.componentInstance);\n }\n setRef(componentInstance) {\n this.componentInstance = componentInstance;\n this.resolveInstanceCreated?.();\n this.resolveInstanceCreated = void 0;\n }\n getOptionalMethods() {\n return [\"isCancelBeforeStart\", \"isCancelAfterEnd\", \"focusIn\", \"focusOut\", \"afterGuiAttached\"];\n }\n updateValue(value) {\n this.value = value;\n this.refreshProps();\n }\n};\n\n// packages/ag-grid-react/src/reactUi/cells/popupEditorComp.tsx\nimport React11, { memo as memo8, useContext as useContext8, useState as useState10 } from \"react\";\nimport { createPortal as createPortal2 } from \"react-dom\";\n\n// packages/ag-grid-react/src/reactUi/useEffectOnce.tsx\nimport { useEffect as useEffect5, useRef as useRef8, useState as useState9 } from \"react\";\nvar useEffectOnce = (effect) => {\n const effectFn = useRef8(effect);\n const destroyFn = useRef8();\n const effectCalled = useRef8(false);\n const rendered = useRef8(false);\n const [, setVal] = useState9(0);\n if (effectCalled.current) {\n rendered.current = true;\n }\n useEffect5(() => {\n if (!effectCalled.current) {\n destroyFn.current = effectFn.current();\n effectCalled.current = true;\n }\n setVal((val) => val + 1);\n return () => {\n if (!rendered.current) {\n return;\n }\n destroyFn.current?.();\n };\n }, []);\n};\n\n// packages/ag-grid-react/src/reactUi/cells/popupEditorComp.tsx\nvar PopupEditorComp = (props) => {\n const [popupEditorWrapper, setPopupEditorWrapper] = useState10();\n const { context, popupService, localeService, gos, editService } = useContext8(BeansContext);\n useEffectOnce(() => {\n const { editDetails, cellCtrl, eParentCell } = props;\n const { compDetails } = editDetails;\n const useModelPopup = gos.get(\"stopEditingWhenCellsLoseFocus\");\n const wrapper = context.createBean(editService.createPopupEditorWrapper(compDetails.params));\n const ePopupGui = wrapper.getGui();\n if (props.jsChildComp) {\n const eChildGui = props.jsChildComp.getGui();\n if (eChildGui) {\n ePopupGui.appendChild(eChildGui);\n }\n }\n const positionParams = {\n column: cellCtrl.getColumn(),\n rowNode: cellCtrl.getRowNode(),\n type: \"popupCellEditor\",\n eventSource: eParentCell,\n ePopup: ePopupGui,\n position: editDetails.popupPosition,\n keepWithinBounds: true\n };\n const positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);\n const translate = localeService.getLocaleTextFunc();\n const addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: () => {\n cellCtrl.onPopupEditorClosed();\n },\n anchorToElement: eParentCell,\n positionCallback,\n ariaLabel: translate(\"ariaLabelCellEditor\", \"Cell Editor\")\n });\n const hideEditorPopup = addPopupRes ? addPopupRes.hideFunc : void 0;\n setPopupEditorWrapper(wrapper);\n props.jsChildComp?.afterGuiAttached?.();\n return () => {\n hideEditorPopup?.();\n context.destroyBean(wrapper);\n };\n });\n return /* @__PURE__ */ React11.createElement(React11.Fragment, null, popupEditorWrapper && props.wrappedContent && createPortal2(props.wrappedContent, popupEditorWrapper.getGui()));\n};\nvar popupEditorComp_default = memo8(PopupEditorComp);\n\n// packages/ag-grid-react/src/reactUi/cells/showJsRenderer.tsx\nimport { useCallback as useCallback8, useContext as useContext9, useEffect as useEffect6 } from \"react\";\nvar useJsCellRenderer = (showDetails, showTools, eCellValue, cellValueVersion, jsCellRendererRef, eGui) => {\n const { context } = useContext9(BeansContext);\n const destroyCellRenderer = useCallback8(() => {\n const comp = jsCellRendererRef.current;\n if (!comp) {\n return;\n }\n const compGui = comp.getGui();\n if (compGui && compGui.parentElement) {\n compGui.parentElement.removeChild(compGui);\n }\n context.destroyBean(comp);\n jsCellRendererRef.current = void 0;\n }, []);\n useEffect6(() => {\n const showValue = showDetails != null;\n const jsCompDetails = showDetails?.compDetails && !showDetails.compDetails.componentFromFramework;\n const waitingForToolsSetup = showTools && eCellValue == null;\n const showComp = showValue && jsCompDetails && !waitingForToolsSetup;\n if (!showComp) {\n destroyCellRenderer();\n return;\n }\n const compDetails = showDetails.compDetails;\n if (jsCellRendererRef.current) {\n const comp = jsCellRendererRef.current;\n const attemptRefresh = comp.refresh != null && showDetails.force == false;\n const refreshResult = attemptRefresh ? comp.refresh(compDetails.params) : false;\n const refreshWorked = refreshResult === true || refreshResult === void 0;\n if (refreshWorked) {\n return;\n }\n destroyCellRenderer();\n }\n const promise = compDetails.newAgStackInstance();\n if (promise == null) {\n return;\n }\n promise.then((comp) => {\n if (!comp) {\n return;\n }\n const compGui = comp.getGui();\n if (!compGui) {\n return;\n }\n const parent = showTools ? eCellValue : eGui.current;\n parent.appendChild(compGui);\n jsCellRendererRef.current = comp;\n });\n }, [showDetails, showTools, cellValueVersion]);\n useEffect6(() => {\n return destroyCellRenderer;\n }, []);\n};\nvar showJsRenderer_default = useJsCellRenderer;\n\n// packages/ag-grid-react/src/reactUi/cells/cellComp.tsx\nvar jsxEditorProxy = (editDetails, CellEditorClass, setRef2) => {\n const { compProxy } = editDetails;\n setRef2(compProxy);\n const props = compProxy.getProps();\n const isStateless = isComponentStateless(CellEditorClass);\n return /* @__PURE__ */ React12.createElement(\n CustomContext.Provider,\n {\n value: {\n setMethods: (methods) => compProxy.setMethods(methods)\n }\n },\n isStateless ? /* @__PURE__ */ React12.createElement(CellEditorClass, { ...props }) : /* @__PURE__ */ React12.createElement(CellEditorClass, { ...props, ref: (ref) => compProxy.setRef(ref) })\n );\n};\nvar jsxEditor = (editDetails, CellEditorClass, setRef2) => {\n const newFormat = editDetails.compProxy;\n return /* @__PURE__ */ React12.createElement(React12.Fragment, null, newFormat ? jsxEditorProxy(editDetails, CellEditorClass, setRef2) : /* @__PURE__ */ React12.createElement(CellEditorClass, { ...editDetails.compDetails.params, ref: setRef2 }));\n};\nvar jsxEditValue = (editDetails, setCellEditorRef, eGui, cellCtrl, jsEditorComp) => {\n const compDetails = editDetails.compDetails;\n const CellEditorClass = compDetails.componentClass;\n const reactInlineEditor = compDetails.componentFromFramework && !editDetails.popup;\n const reactPopupEditor = compDetails.componentFromFramework && editDetails.popup;\n const jsPopupEditor = !compDetails.componentFromFramework && editDetails.popup;\n return /* @__PURE__ */ React12.createElement(React12.Fragment, null, reactInlineEditor && jsxEditor(editDetails, CellEditorClass, setCellEditorRef), reactPopupEditor && /* @__PURE__ */ React12.createElement(\n popupEditorComp_default,\n {\n editDetails,\n cellCtrl,\n eParentCell: eGui,\n wrappedContent: jsxEditor(editDetails, CellEditorClass, setCellEditorRef)\n }\n ), jsPopupEditor && jsEditorComp && /* @__PURE__ */ React12.createElement(\n popupEditorComp_default,\n {\n editDetails,\n cellCtrl,\n eParentCell: eGui,\n jsChildComp: jsEditorComp\n }\n ));\n};\nvar jsxShowValue = (showDetails, key, parentId, cellRendererRef, showCellWrapper, reactCellRendererStateless, setECellValue) => {\n const { compDetails, value } = showDetails;\n const noCellRenderer = !compDetails;\n const reactCellRenderer = compDetails && compDetails.componentFromFramework;\n const CellRendererClass = compDetails && compDetails.componentClass;\n const valueForNoCellRenderer = value?.toString ? value.toString() : value;\n const bodyJsxFunc = () => /* @__PURE__ */ React12.createElement(React12.Fragment, null, noCellRenderer && /* @__PURE__ */ React12.createElement(React12.Fragment, null, valueForNoCellRenderer), reactCellRenderer && !reactCellRendererStateless && /* @__PURE__ */ React12.createElement(CellRendererClass, { ...compDetails.params, key, ref: cellRendererRef }), reactCellRenderer && reactCellRendererStateless && /* @__PURE__ */ React12.createElement(CellRendererClass, { ...compDetails.params, key }));\n return /* @__PURE__ */ React12.createElement(React12.Fragment, null, showCellWrapper ? /* @__PURE__ */ React12.createElement(\"span\", { role: \"presentation\", id: `cell-${parentId}`, className: \"ag-cell-value\", ref: setECellValue }, bodyJsxFunc()) : bodyJsxFunc());\n};\nvar CellComp = ({\n cellCtrl,\n printLayout,\n editingRow\n}) => {\n const { context } = useContext10(BeansContext);\n const { colIdSanitised, instanceId } = cellCtrl;\n const compBean = useRef9();\n const [renderDetails, setRenderDetails] = useState11(\n () => cellCtrl.isCellRenderer() ? void 0 : { compDetails: void 0, value: cellCtrl.getValueToDisplay(), force: false }\n );\n const [editDetails, setEditDetails] = useState11();\n const [renderKey, setRenderKey] = useState11(1);\n const [userStyles, setUserStyles] = useState11();\n const [includeSelection, setIncludeSelection] = useState11(false);\n const [includeRowDrag, setIncludeRowDrag] = useState11(false);\n const [includeDndSource, setIncludeDndSource] = useState11(false);\n const [jsEditorComp, setJsEditorComp] = useState11();\n const forceWrapper = useMemo7(() => cellCtrl.isForceWrapper(), [cellCtrl]);\n const cellAriaRole = useMemo7(() => cellCtrl.getCellAriaRole(), [cellCtrl]);\n const eGui = useRef9(null);\n const cellRendererRef = useRef9(null);\n const jsCellRendererRef = useRef9();\n const cellEditorRef = useRef9();\n const eCellWrapper = useRef9();\n const cellWrapperDestroyFuncs = useRef9([]);\n const eCellValue = useRef9();\n const [cellValueVersion, setCellValueVersion] = useState11(0);\n const setCellValueRef = useCallback9((ref) => {\n eCellValue.current = ref;\n setCellValueVersion((v) => v + 1);\n }, []);\n const showTools = renderDetails != null && (includeSelection || includeDndSource || includeRowDrag);\n const showCellWrapper = forceWrapper || showTools;\n const setCellEditorRef = useCallback9(\n (cellEditor) => {\n cellEditorRef.current = cellEditor;\n if (cellEditor) {\n const editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n setTimeout(() => {\n if (editingCancelledByUserComp) {\n cellCtrl.stopEditing(true);\n cellCtrl.focusCell(true);\n } else {\n cellCtrl.cellEditorAttached();\n }\n });\n }\n },\n [cellCtrl]\n );\n const cssClassManager = useRef9();\n if (!cssClassManager.current) {\n cssClassManager.current = new CssClassManager2(() => eGui.current);\n }\n showJsRenderer_default(renderDetails, showCellWrapper, eCellValue.current, cellValueVersion, jsCellRendererRef, eGui);\n const lastRenderDetails = useRef9();\n useLayoutEffect5(() => {\n const oldDetails = lastRenderDetails.current;\n const newDetails = renderDetails;\n lastRenderDetails.current = renderDetails;\n if (oldDetails == null || oldDetails.compDetails == null || newDetails == null || newDetails.compDetails == null) {\n return;\n }\n const oldCompDetails = oldDetails.compDetails;\n const newCompDetails = newDetails.compDetails;\n if (oldCompDetails.componentClass != newCompDetails.componentClass) {\n return;\n }\n if (cellRendererRef.current?.refresh == null) {\n return;\n }\n const result = cellRendererRef.current.refresh(newCompDetails.params);\n if (result != true) {\n setRenderKey((prev) => prev + 1);\n }\n }, [renderDetails]);\n useLayoutEffect5(() => {\n const doingJsEditor = editDetails && !editDetails.compDetails.componentFromFramework;\n if (!doingJsEditor) {\n return;\n }\n const compDetails = editDetails.compDetails;\n const isPopup = editDetails.popup === true;\n const cellEditorPromise = compDetails.newAgStackInstance();\n cellEditorPromise.then((cellEditor) => {\n if (!cellEditor) {\n return;\n }\n const compGui = cellEditor.getGui();\n setCellEditorRef(cellEditor);\n if (!isPopup) {\n const parentEl = (forceWrapper ? eCellWrapper : eGui).current;\n parentEl?.appendChild(compGui);\n cellEditor.afterGuiAttached && cellEditor.afterGuiAttached();\n }\n setJsEditorComp(cellEditor);\n });\n return () => {\n cellEditorPromise.then((cellEditor) => {\n const compGui = cellEditor.getGui();\n context.destroyBean(cellEditor);\n setCellEditorRef(void 0);\n setJsEditorComp(void 0);\n compGui?.parentElement?.removeChild(compGui);\n });\n };\n }, [editDetails]);\n const setCellWrapperRef = useCallback9(\n (eRef) => {\n eCellWrapper.current = eRef;\n if (!eRef) {\n cellWrapperDestroyFuncs.current.forEach((f) => f());\n cellWrapperDestroyFuncs.current = [];\n return;\n }\n const addComp = (comp) => {\n if (comp) {\n const eGui2 = comp.getGui();\n eRef.insertAdjacentElement(\"afterbegin\", eGui2);\n cellWrapperDestroyFuncs.current.push(() => {\n context.destroyBean(comp);\n _removeFromParent(eGui2);\n });\n }\n return comp;\n };\n if (includeSelection) {\n const checkboxSelectionComp = cellCtrl.createSelectionCheckbox();\n addComp(checkboxSelectionComp);\n }\n if (includeDndSource) {\n addComp(cellCtrl.createDndSource());\n }\n if (includeRowDrag) {\n addComp(cellCtrl.createRowDragComp());\n }\n },\n [cellCtrl, context, includeDndSource, includeRowDrag, includeSelection]\n );\n const setRef2 = useCallback9((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean5()) : context.destroyBean(compBean.current);\n if (!eRef || !cellCtrl) {\n return;\n }\n const compProxy = {\n addOrRemoveCssClass: (name, on) => cssClassManager.current.addOrRemoveCssClass(name, on),\n setUserStyles: (styles) => setUserStyles(styles),\n getFocusableElement: () => eGui.current,\n setIncludeSelection: (include) => setIncludeSelection(include),\n setIncludeRowDrag: (include) => setIncludeRowDrag(include),\n setIncludeDndSource: (include) => setIncludeDndSource(include),\n getCellEditor: () => cellEditorRef.current || null,\n getCellRenderer: () => cellRendererRef.current ?? jsCellRendererRef.current,\n getParentOfValue: () => eCellValue.current ?? eCellWrapper.current ?? eGui.current,\n setRenderDetails: (compDetails, value, force) => {\n setRenderDetails((prev) => {\n if (prev?.compDetails !== compDetails || prev?.value !== value || prev?.force !== force) {\n return {\n value,\n compDetails,\n force\n };\n } else {\n return prev;\n }\n });\n },\n setEditDetails: (compDetails, popup, popupPosition, reactiveCustomComponents) => {\n if (compDetails) {\n let compProxy2 = void 0;\n if (reactiveCustomComponents) {\n compProxy2 = new CellEditorComponentProxy(\n compDetails.params,\n () => setRenderKey((prev) => prev + 1)\n );\n } else if (compDetails.componentFromFramework) {\n warnReactiveCustomComponents();\n }\n setEditDetails({\n compDetails,\n popup,\n popupPosition,\n compProxy: compProxy2\n });\n if (!popup) {\n setRenderDetails(void 0);\n }\n } else {\n setEditDetails((editDetails2) => {\n if (editDetails2?.compProxy) {\n cellEditorRef.current = void 0;\n }\n return void 0;\n });\n }\n }\n };\n const cellWrapperOrUndefined = eCellWrapper.current || void 0;\n cellCtrl.setComp(compProxy, eRef, cellWrapperOrUndefined, printLayout, editingRow, compBean.current);\n }, []);\n const reactCellRendererStateless = useMemo7(() => {\n const res = renderDetails?.compDetails?.componentFromFramework && isComponentStateless(renderDetails.compDetails.componentClass);\n return !!res;\n }, [renderDetails]);\n useLayoutEffect5(() => {\n if (!eGui.current) {\n return;\n }\n cssClassManager.current.addOrRemoveCssClass(\"ag-cell-value\", !showCellWrapper);\n cssClassManager.current.addOrRemoveCssClass(\"ag-cell-inline-editing\", !!editDetails && !editDetails.popup);\n cssClassManager.current.addOrRemoveCssClass(\"ag-cell-popup-editing\", !!editDetails && !!editDetails.popup);\n cssClassManager.current.addOrRemoveCssClass(\"ag-cell-not-inline-editing\", !editDetails || !!editDetails.popup);\n cellCtrl.getRowCtrl()?.setInlineEditingCss();\n if (cellCtrl.shouldRestoreFocus() && !cellCtrl.isEditing()) {\n eGui.current.focus({ preventScroll: true });\n }\n });\n const showContents = () => /* @__PURE__ */ React12.createElement(React12.Fragment, null, renderDetails != null && jsxShowValue(\n renderDetails,\n renderKey,\n instanceId,\n cellRendererRef,\n showCellWrapper,\n reactCellRendererStateless,\n setCellValueRef\n ), editDetails != null && jsxEditValue(editDetails, setCellEditorRef, eGui.current, cellCtrl, jsEditorComp));\n const onBlur = useCallback9(() => cellCtrl.onFocusOut(), []);\n return /* @__PURE__ */ React12.createElement(\"div\", { ref: setRef2, style: userStyles, role: cellAriaRole, \"col-id\": colIdSanitised, onBlur }, showCellWrapper ? /* @__PURE__ */ React12.createElement(\"div\", { className: \"ag-cell-wrapper\", role: \"presentation\", ref: setCellWrapperRef }, showContents()) : showContents());\n};\nvar cellComp_default = memo9(CellComp);\n\n// packages/ag-grid-react/src/reactUi/rows/rowComp.tsx\nvar RowComp = ({ rowCtrl, containerType }) => {\n const { context, gos } = useContext11(BeansContext);\n const compBean = useRef10();\n const domOrderRef = useRef10(rowCtrl.getDomOrder());\n const isFullWidth = rowCtrl.isFullWidth();\n const isDisplayed = rowCtrl.getRowNode().displayed;\n const [rowIndex, setRowIndex] = useState12(() => isDisplayed ? rowCtrl.getRowIndex() : null);\n const [rowId, setRowId] = useState12(() => rowCtrl.getRowId());\n const [rowBusinessKey, setRowBusinessKey] = useState12(() => rowCtrl.getBusinessKey());\n const [userStyles, setUserStyles] = useState12(() => rowCtrl.getRowStyles());\n const cellCtrlsRef = useRef10(null);\n const prevCellCtrlsRef = useRef10(null);\n const [cellCtrls, setCellCtrls] = useState12(() => null);\n const [fullWidthCompDetails, setFullWidthCompDetails] = useState12();\n const [top, setTop] = useState12(\n () => isDisplayed ? rowCtrl.getInitialRowTop(containerType) : void 0\n );\n const [transform, setTransform] = useState12(\n () => isDisplayed ? rowCtrl.getInitialTransform(containerType) : void 0\n );\n const eGui = useRef10(null);\n const fullWidthCompRef = useRef10();\n const autoHeightSetup = useRef10(false);\n const [autoHeightSetupAttempt, setAutoHeightSetupAttempt] = useState12(0);\n useEffect7(() => {\n if (autoHeightSetup.current || !fullWidthCompDetails || autoHeightSetupAttempt > 10) {\n return;\n }\n const eChild = eGui.current?.firstChild;\n if (eChild) {\n rowCtrl.setupDetailRowAutoHeight(eChild);\n autoHeightSetup.current = true;\n } else {\n setAutoHeightSetupAttempt((prev) => prev + 1);\n }\n }, [fullWidthCompDetails, autoHeightSetupAttempt]);\n const cssClassManager = useRef10();\n if (!cssClassManager.current) {\n cssClassManager.current = new CssClassManager3(() => eGui.current);\n }\n const setRef2 = useCallback10((eRef) => {\n eGui.current = eRef;\n compBean.current = eRef ? context.createBean(new _EmptyBean6()) : context.destroyBean(compBean.current);\n if (!eRef) {\n rowCtrl.unsetComp(containerType);\n return;\n }\n if (!rowCtrl.isAlive()) {\n return;\n }\n const compProxy = {\n // the rowTop is managed by state, instead of direct style manipulation by rowCtrl (like all the other styles)\n // as we need to have an initial value when it's placed into he DOM for the first time, for animation to work.\n setTop,\n setTransform,\n // i found using React for managing classes at the row level was to slow, as modifying classes caused a lot of\n // React code to execute, so avoiding React for managing CSS Classes made the grid go much faster.\n addOrRemoveCssClass: (name, on) => cssClassManager.current.addOrRemoveCssClass(name, on),\n setDomOrder: (domOrder) => domOrderRef.current = domOrder,\n setRowIndex,\n setRowId,\n setRowBusinessKey,\n setUserStyles,\n // if we don't maintain the order, then cols will be ripped out and into the dom\n // when cols reordered, which would stop the CSS transitions from working\n setCellCtrls: (next, useFlushSync) => {\n prevCellCtrlsRef.current = cellCtrlsRef.current;\n const nextCells = getNextValueIfDifferent(prevCellCtrlsRef.current, next, domOrderRef.current);\n if (nextCells !== prevCellCtrlsRef.current) {\n cellCtrlsRef.current = nextCells;\n agFlushSync(useFlushSync, () => setCellCtrls(nextCells));\n }\n },\n showFullWidth: (compDetails) => setFullWidthCompDetails(compDetails),\n getFullWidthCellRenderer: () => fullWidthCompRef.current,\n refreshFullWidth: (getUpdatedParams) => {\n if (canRefreshFullWidthRef.current) {\n setFullWidthCompDetails((prevFullWidthCompDetails) => ({\n ...prevFullWidthCompDetails,\n params: getUpdatedParams()\n }));\n return true;\n } else {\n if (!fullWidthCompRef.current || !fullWidthCompRef.current.refresh) {\n return false;\n }\n return fullWidthCompRef.current.refresh(getUpdatedParams());\n }\n }\n };\n rowCtrl.setComp(compProxy, eRef, containerType, compBean.current);\n }, []);\n useLayoutEffect6(\n () => showJsComp(fullWidthCompDetails, context, eGui.current, fullWidthCompRef),\n [fullWidthCompDetails]\n );\n const rowStyles = useMemo8(() => {\n const res = { top, transform };\n Object.assign(res, userStyles);\n return res;\n }, [top, transform, userStyles]);\n const showFullWidthFramework = isFullWidth && fullWidthCompDetails?.componentFromFramework;\n const showCells = !isFullWidth && cellCtrls != null;\n const reactFullWidthCellRendererStateless = useMemo8(() => {\n const res = fullWidthCompDetails?.componentFromFramework && isComponentStateless(fullWidthCompDetails.componentClass);\n return !!res;\n }, [fullWidthCompDetails]);\n const canRefreshFullWidthRef = useRef10(false);\n useEffect7(() => {\n canRefreshFullWidthRef.current = reactFullWidthCellRendererStateless && !!fullWidthCompDetails && !!gos.get(\"reactiveCustomComponents\");\n }, [reactFullWidthCellRendererStateless, fullWidthCompDetails]);\n const showCellsJsx = () => cellCtrls?.map((cellCtrl) => /* @__PURE__ */ React13.createElement(\n cellComp_default,\n {\n cellCtrl,\n editingRow: rowCtrl.isEditing(),\n printLayout: rowCtrl.isPrintLayout(),\n key: cellCtrl.instanceId\n }\n ));\n const showFullWidthFrameworkJsx = () => {\n const FullWidthComp = fullWidthCompDetails.componentClass;\n return /* @__PURE__ */ React13.createElement(React13.Fragment, null, reactFullWidthCellRendererStateless ? /* @__PURE__ */ React13.createElement(FullWidthComp, { ...fullWidthCompDetails.params }) : /* @__PURE__ */ React13.createElement(FullWidthComp, { ...fullWidthCompDetails.params, ref: fullWidthCompRef }));\n };\n return /* @__PURE__ */ React13.createElement(\n \"div\",\n {\n ref: setRef2,\n role: \"row\",\n style: rowStyles,\n \"row-index\": rowIndex,\n \"row-id\": rowId,\n \"row-business-key\": rowBusinessKey\n },\n showCells && showCellsJsx(),\n showFullWidthFramework && showFullWidthFrameworkJsx()\n );\n};\nvar rowComp_default = memo10(RowComp);\n\n// packages/ag-grid-react/src/reactUi/rows/rowContainerComp.tsx\nvar RowContainerComp = ({ name }) => {\n const { context } = useContext12(BeansContext);\n const containerOptions = useMemo9(() => _getRowContainerOptions(name), [name]);\n const eViewport = useRef11(null);\n const eContainer = useRef11(null);\n const rowCtrlsRef = useRef11([]);\n const prevRowCtrlsRef = useRef11([]);\n const [rowCtrlsOrdered, setRowCtrlsOrdered] = useState13(() => []);\n const domOrderRef = useRef11(false);\n const rowContainerCtrlRef = useRef11();\n const viewportClasses = useMemo9(() => classesList(containerOptions.viewport), [containerOptions]);\n const containerClasses = useMemo9(() => classesList(containerOptions.container), [containerOptions]);\n const isCenter = containerOptions.type === \"center\";\n const topLevelRef = isCenter ? eViewport : eContainer;\n reactComment_default(\" AG Row Container \" + name + \" \", topLevelRef);\n const areElementsReady = useCallback11(() => {\n if (isCenter) {\n return eViewport.current != null && eContainer.current != null;\n }\n return eContainer.current != null;\n }, []);\n const areElementsRemoved = useCallback11(() => {\n if (isCenter) {\n return eViewport.current == null && eContainer.current == null;\n }\n return eContainer.current == null;\n }, []);\n const setRef2 = useCallback11(() => {\n if (areElementsRemoved()) {\n rowContainerCtrlRef.current = context.destroyBean(rowContainerCtrlRef.current);\n }\n if (areElementsReady()) {\n const updateRowCtrlsOrdered = (useFlushSync) => {\n const next = getNextValueIfDifferent(\n prevRowCtrlsRef.current,\n rowCtrlsRef.current,\n domOrderRef.current\n );\n if (next !== prevRowCtrlsRef.current) {\n prevRowCtrlsRef.current = next;\n agFlushSync(useFlushSync, () => setRowCtrlsOrdered(next));\n }\n };\n const compProxy = {\n setHorizontalScroll: (offset) => {\n if (eViewport.current) {\n eViewport.current.scrollLeft = offset;\n }\n },\n setViewportHeight: (height) => {\n if (eViewport.current) {\n eViewport.current.style.height = height;\n }\n },\n setRowCtrls: ({ rowCtrls, useFlushSync }) => {\n const useFlush = !!useFlushSync && rowCtrlsRef.current.length > 0 && rowCtrls.length > 0;\n rowCtrlsRef.current = rowCtrls;\n updateRowCtrlsOrdered(useFlush);\n },\n setDomOrder: (domOrder) => {\n if (domOrderRef.current != domOrder) {\n domOrderRef.current = domOrder;\n updateRowCtrlsOrdered(false);\n }\n },\n setContainerWidth: (width) => {\n if (eContainer.current) {\n eContainer.current.style.width = width;\n }\n },\n setOffsetTop: (offset) => {\n if (eContainer.current) {\n eContainer.current.style.transform = `translateY(${offset})`;\n }\n }\n };\n rowContainerCtrlRef.current = context.createBean(new RowContainerCtrl(name));\n rowContainerCtrlRef.current.setComp(compProxy, eContainer.current, eViewport.current);\n }\n }, [areElementsReady, areElementsRemoved]);\n const setContainerRef = useCallback11(\n (e) => {\n eContainer.current = e;\n setRef2();\n },\n [setRef2]\n );\n const setViewportRef = useCallback11(\n (e) => {\n eViewport.current = e;\n setRef2();\n },\n [setRef2]\n );\n const buildContainer = () => /* @__PURE__ */ React14.createElement(\"div\", { className: containerClasses, ref: setContainerRef, role: \"rowgroup\" }, rowCtrlsOrdered.map((rowCtrl) => /* @__PURE__ */ React14.createElement(rowComp_default, { rowCtrl, containerType: containerOptions.type, key: rowCtrl.instanceId })));\n return /* @__PURE__ */ React14.createElement(React14.Fragment, null, isCenter ? /* @__PURE__ */ React14.createElement(\"div\", { className: viewportClasses, ref: setViewportRef, role: \"presentation\" }, buildContainer()) : buildContainer());\n};\nvar rowContainerComp_default = memo11(RowContainerComp);\n\n// packages/ag-grid-react/src/reactUi/gridBodyComp.tsx\nvar GridBodyComp = () => {\n const { context, resizeObserverService } = useContext13(BeansContext);\n const [rowAnimationClass, setRowAnimationClass] = useState14(\"\");\n const [topHeight, setTopHeight] = useState14(0);\n const [bottomHeight, setBottomHeight] = useState14(0);\n const [stickyTopHeight, setStickyTopHeight] = useState14(\"0px\");\n const [stickyTopTop, setStickyTopTop] = useState14(\"0px\");\n const [stickyTopWidth, setStickyTopWidth] = useState14(\"100%\");\n const [stickyBottomHeight, setStickyBottomHeight] = useState14(\"0px\");\n const [stickyBottomBottom, setStickyBottomBottom] = useState14(\"0px\");\n const [stickyBottomWidth, setStickyBottomWidth] = useState14(\"100%\");\n const [topDisplay, setTopDisplay] = useState14(\"\");\n const [bottomDisplay, setBottomDisplay] = useState14(\"\");\n const [forceVerticalScrollClass, setForceVerticalScrollClass] = useState14(null);\n const [topAndBottomOverflowY, setTopAndBottomOverflowY] = useState14(\"\");\n const [cellSelectableCss, setCellSelectableCss] = useState14(null);\n const [layoutClass, setLayoutClass] = useState14(\"ag-layout-normal\");\n const cssClassManager = useRef12();\n if (!cssClassManager.current) {\n cssClassManager.current = new CssClassManager4(() => eRoot.current);\n }\n const eRoot = useRef12(null);\n const eTop = useRef12(null);\n const eStickyTop = useRef12(null);\n const eStickyBottom = useRef12(null);\n const eBody = useRef12(null);\n const eBodyViewport = useRef12(null);\n const eBottom = useRef12(null);\n const beansToDestroy = useRef12([]);\n const destroyFuncs = useRef12([]);\n reactComment_default(\" AG Grid Body \", eRoot);\n reactComment_default(\" AG Pinned Top \", eTop);\n reactComment_default(\" AG Sticky Top \", eStickyTop);\n reactComment_default(\" AG Middle \", eBodyViewport);\n reactComment_default(\" AG Pinned Bottom \", eBottom);\n const setRef2 = useCallback12((eRef) => {\n eRoot.current = eRef;\n if (!eRef) {\n beansToDestroy.current = context.destroyBeans(beansToDestroy.current);\n destroyFuncs.current.forEach((f) => f());\n destroyFuncs.current = [];\n return;\n }\n if (!context) {\n return;\n }\n const attachToDom = (eParent, eChild) => {\n eParent.appendChild(eChild);\n destroyFuncs.current.push(() => eParent.removeChild(eChild));\n };\n const newComp = (compClass) => {\n const comp = context.createBean(new compClass());\n beansToDestroy.current.push(comp);\n return comp;\n };\n const addComp = (eParent, compClass, comment) => {\n attachToDom(eParent, document.createComment(comment));\n attachToDom(eParent, newComp(compClass).getGui());\n };\n addComp(eRef, FakeHScrollComp, \" AG Fake Horizontal Scroll \");\n addComp(eRef, OverlayWrapperComponent, \" AG Overlay Wrapper \");\n if (eBody.current) {\n addComp(eBody.current, FakeVScrollComp, \" AG Fake Vertical Scroll \");\n }\n const compProxy = {\n setRowAnimationCssOnBodyViewport: setRowAnimationClass,\n setColumnCount: (count) => {\n if (eRoot.current) {\n _setAriaColCount(eRoot.current, count);\n }\n },\n setRowCount: (count) => {\n if (eRoot.current) {\n _setAriaRowCount(eRoot.current, count);\n }\n },\n setTopHeight,\n setBottomHeight,\n setStickyTopHeight,\n setStickyTopTop,\n setStickyTopWidth,\n setTopDisplay,\n setBottomDisplay,\n setColumnMovingCss: (cssClass, flag) => cssClassManager.current.addOrRemoveCssClass(cssClass, flag),\n updateLayoutClasses: setLayoutClass,\n setAlwaysVerticalScrollClass: setForceVerticalScrollClass,\n setPinnedTopBottomOverflowY: setTopAndBottomOverflowY,\n setCellSelectableCss: (cssClass, flag) => setCellSelectableCss(flag ? cssClass : null),\n setBodyViewportWidth: (width) => {\n if (eBodyViewport.current) {\n eBodyViewport.current.style.width = width;\n }\n },\n registerBodyViewportResizeListener: (listener) => {\n if (eBodyViewport.current) {\n const unsubscribeFromResize = resizeObserverService.observeResize(eBodyViewport.current, listener);\n destroyFuncs.current.push(() => unsubscribeFromResize());\n }\n },\n setStickyBottomHeight,\n setStickyBottomBottom,\n setStickyBottomWidth\n };\n const ctrl = context.createBean(new GridBodyCtrl());\n beansToDestroy.current.push(ctrl);\n ctrl.setComp(\n compProxy,\n eRef,\n eBodyViewport.current,\n eTop.current,\n eBottom.current,\n eStickyTop.current,\n eStickyBottom.current\n );\n }, []);\n const rootClasses = useMemo10(() => classesList(\"ag-root\", \"ag-unselectable\", layoutClass), [layoutClass]);\n const bodyViewportClasses = useMemo10(\n () => classesList(\n \"ag-body-viewport\",\n rowAnimationClass,\n layoutClass,\n forceVerticalScrollClass,\n cellSelectableCss\n ),\n [rowAnimationClass, layoutClass, forceVerticalScrollClass, cellSelectableCss]\n );\n const bodyClasses = useMemo10(() => classesList(\"ag-body\", layoutClass), [layoutClass]);\n const topClasses = useMemo10(() => classesList(\"ag-floating-top\", cellSelectableCss), [cellSelectableCss]);\n const stickyTopClasses = useMemo10(() => classesList(\"ag-sticky-top\", cellSelectableCss), [cellSelectableCss]);\n const stickyBottomClasses = useMemo10(\n () => classesList(\"ag-sticky-bottom\", stickyBottomHeight === \"0px\" ? \"ag-hidden\" : null, cellSelectableCss),\n [cellSelectableCss, stickyBottomHeight]\n );\n const bottomClasses = useMemo10(() => classesList(\"ag-floating-bottom\", cellSelectableCss), [cellSelectableCss]);\n const topStyle = useMemo10(\n () => ({\n height: topHeight,\n minHeight: topHeight,\n display: topDisplay,\n overflowY: topAndBottomOverflowY\n }),\n [topHeight, topDisplay, topAndBottomOverflowY]\n );\n const stickyTopStyle = useMemo10(\n () => ({\n height: stickyTopHeight,\n top: stickyTopTop,\n width: stickyTopWidth\n }),\n [stickyTopHeight, stickyTopTop, stickyTopWidth]\n );\n const stickyBottomStyle = useMemo10(\n () => ({\n height: stickyBottomHeight,\n bottom: stickyBottomBottom,\n width: stickyBottomWidth\n }),\n [stickyBottomHeight, stickyBottomBottom, stickyBottomWidth]\n );\n const bottomStyle = useMemo10(\n () => ({\n height: bottomHeight,\n minHeight: bottomHeight,\n display: bottomDisplay,\n overflowY: topAndBottomOverflowY\n }),\n [bottomHeight, bottomDisplay, topAndBottomOverflowY]\n );\n const createRowContainer = (container) => /* @__PURE__ */ React15.createElement(rowContainerComp_default, { name: container, key: `${container}-container` });\n const createSection = ({\n section,\n children,\n className,\n style\n }) => /* @__PURE__ */ React15.createElement(\"div\", { ref: section, className, role: \"presentation\", style }, children.map(createRowContainer));\n return /* @__PURE__ */ React15.createElement(\"div\", { ref: setRef2, className: rootClasses, role: \"treegrid\" }, /* @__PURE__ */ React15.createElement(gridHeaderComp_default, null), createSection({\n section: eTop,\n className: topClasses,\n style: topStyle,\n children: [\"topLeft\", \"topCenter\", \"topRight\", \"topFullWidth\"]\n }), /* @__PURE__ */ React15.createElement(\"div\", { className: bodyClasses, ref: eBody, role: \"presentation\" }, createSection({\n section: eBodyViewport,\n className: bodyViewportClasses,\n children: [\"left\", \"center\", \"right\", \"fullWidth\"]\n })), createSection({\n section: eStickyTop,\n className: stickyTopClasses,\n style: stickyTopStyle,\n children: [\"stickyTopLeft\", \"stickyTopCenter\", \"stickyTopRight\", \"stickyTopFullWidth\"]\n }), createSection({\n section: eStickyBottom,\n className: stickyBottomClasses,\n style: stickyBottomStyle,\n children: [\"stickyBottomLeft\", \"stickyBottomCenter\", \"stickyBottomRight\", \"stickyBottomFullWidth\"]\n }), createSection({\n section: eBottom,\n className: bottomClasses,\n style: bottomStyle,\n children: [\"bottomLeft\", \"bottomCenter\", \"bottomRight\", \"bottomFullWidth\"]\n }));\n};\nvar gridBodyComp_default = memo12(GridBodyComp);\n\n// packages/ag-grid-react/src/reactUi/tabGuardComp.tsx\nimport { TabGuardClassNames, TabGuardCtrl } from \"ag-grid-community\";\nimport React16, { forwardRef as forwardRef2, memo as memo13, useCallback as useCallback13, useContext as useContext14, useImperativeHandle as useImperativeHandle2, useRef as useRef13 } from \"react\";\nvar TabGuardCompRef = (props, forwardRef4) => {\n const { children, eFocusableElement, onTabKeyDown, gridCtrl, forceFocusOutWhenTabGuardsAreEmpty } = props;\n const { context } = useContext14(BeansContext);\n const topTabGuardRef = useRef13(null);\n const bottomTabGuardRef = useRef13(null);\n const tabGuardCtrlRef = useRef13();\n const setTabIndex = (value) => {\n const processedValue = value == null ? void 0 : parseInt(value, 10).toString();\n [topTabGuardRef, bottomTabGuardRef].forEach((tabGuard) => {\n if (processedValue === void 0) {\n tabGuard.current?.removeAttribute(\"tabindex\");\n } else {\n tabGuard.current?.setAttribute(\"tabindex\", processedValue);\n }\n });\n };\n useImperativeHandle2(forwardRef4, () => ({\n forceFocusOutOfContainer(up) {\n tabGuardCtrlRef.current?.forceFocusOutOfContainer(up);\n }\n }));\n const setupCtrl = useCallback13(() => {\n const topTabGuard = topTabGuardRef.current;\n const bottomTabGuard = bottomTabGuardRef.current;\n if (!topTabGuard && !bottomTabGuard) {\n tabGuardCtrlRef.current = context.destroyBean(tabGuardCtrlRef.current);\n return;\n }\n if (topTabGuard && bottomTabGuard) {\n const compProxy = {\n setTabIndex\n };\n tabGuardCtrlRef.current = context.createBean(\n new TabGuardCtrl({\n comp: compProxy,\n eTopGuard: topTabGuard,\n eBottomGuard: bottomTabGuard,\n eFocusableElement,\n onTabKeyDown,\n forceFocusOutWhenTabGuardsAreEmpty,\n focusInnerElement: (fromBottom) => gridCtrl.focusInnerElement(fromBottom)\n })\n );\n }\n }, []);\n const setTopRef = useCallback13(\n (e) => {\n topTabGuardRef.current = e;\n setupCtrl();\n },\n [setupCtrl]\n );\n const setBottomRef = useCallback13(\n (e) => {\n bottomTabGuardRef.current = e;\n setupCtrl();\n },\n [setupCtrl]\n );\n const createTabGuard = (side) => {\n const className = side === \"top\" ? TabGuardClassNames.TAB_GUARD_TOP : TabGuardClassNames.TAB_GUARD_BOTTOM;\n return /* @__PURE__ */ React16.createElement(\n \"div\",\n {\n className: `${TabGuardClassNames.TAB_GUARD} ${className}`,\n role: \"presentation\",\n ref: side === \"top\" ? setTopRef : setBottomRef\n }\n );\n };\n return /* @__PURE__ */ React16.createElement(React16.Fragment, null, createTabGuard(\"top\"), children, createTabGuard(\"bottom\"));\n};\nvar TabGuardComp = forwardRef2(TabGuardCompRef);\nvar tabGuardComp_default = memo13(TabGuardComp);\n\n// packages/ag-grid-react/src/reactUi/gridComp.tsx\nvar GridComp = ({ context }) => {\n const [rtlClass, setRtlClass] = useState15(\"\");\n const [gridThemeClass, setGridThemeClass] = useState15(\"\");\n const [layoutClass, setLayoutClass] = useState15(\"\");\n const [cursor, setCursor] = useState15(null);\n const [userSelect, setUserSelect] = useState15(null);\n const [initialised, setInitialised] = useState15(false);\n const [tabGuardReady, setTabGuardReady] = useState15();\n const gridCtrlRef = useRef14();\n const eRootWrapperRef = useRef14(null);\n const tabGuardRef = useRef14();\n const [eGridBodyParent, setGridBodyParent] = useState15(null);\n const focusInnerElementRef = useRef14(() => void 0);\n const paginationCompRef = useRef14();\n const focusableContainersRef = useRef14([]);\n const onTabKeyDown = useCallback14(() => void 0, []);\n const beans = useMemo11(() => {\n if (context.isDestroyed()) {\n return null;\n }\n return context.getBeans();\n }, [context]);\n reactComment_default(\" AG Grid \", eRootWrapperRef);\n const setRef2 = useCallback14((eRef) => {\n eRootWrapperRef.current = eRef;\n gridCtrlRef.current = eRef ? context.createBean(new GridCtrl()) : context.destroyBean(gridCtrlRef.current);\n if (!eRef || context.isDestroyed()) {\n return;\n }\n const gridCtrl = gridCtrlRef.current;\n focusInnerElementRef.current = gridCtrl.focusInnerElement.bind(gridCtrl);\n const compProxy = {\n destroyGridUi: () => {\n },\n // do nothing, as framework users destroy grid by removing the comp\n setRtlClass,\n setGridThemeClass,\n forceFocusOutOfContainer: (up) => {\n if (!up && paginationCompRef.current?.isDisplayed()) {\n paginationCompRef.current.forceFocusOutOfContainer(up);\n return;\n }\n tabGuardRef.current?.forceFocusOutOfContainer(up);\n },\n updateLayoutClasses: setLayoutClass,\n getFocusableContainers: () => {\n const comps = [];\n const gridBodyCompEl = eRootWrapperRef.current?.querySelector(\".ag-root\");\n if (gridBodyCompEl) {\n comps.push({ getGui: () => gridBodyCompEl });\n }\n focusableContainersRef.current.forEach((comp) => {\n if (comp.isDisplayed()) {\n comps.push(comp);\n }\n });\n return comps;\n },\n setCursor,\n setUserSelect\n };\n gridCtrl.setComp(compProxy, eRef, eRef);\n setInitialised(true);\n }, []);\n useEffect8(() => {\n const gridCtrl = gridCtrlRef.current;\n const eRootWrapper = eRootWrapperRef.current;\n if (!tabGuardReady || !beans || !gridCtrl || !eGridBodyParent || !eRootWrapper) {\n return;\n }\n const beansToDestroy = [];\n const {\n watermarkSelector,\n paginationSelector,\n sideBarSelector,\n statusBarSelector,\n gridHeaderDropZonesSelector\n } = gridCtrl.getOptionalSelectors();\n const additionalEls = [];\n if (gridHeaderDropZonesSelector) {\n const headerDropZonesComp = context.createBean(new gridHeaderDropZonesSelector.component());\n const eGui = headerDropZonesComp.getGui();\n eRootWrapper.insertAdjacentElement(\"afterbegin\", eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(headerDropZonesComp);\n }\n if (sideBarSelector) {\n const sideBarComp = context.createBean(new sideBarSelector.component());\n const eGui = sideBarComp.getGui();\n const bottomTabGuard = eGridBodyParent.querySelector(\".ag-tab-guard-bottom\");\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement(\"beforebegin\", eGui);\n additionalEls.push(eGui);\n }\n beansToDestroy.push(sideBarComp);\n focusableContainersRef.current.push(sideBarComp);\n }\n const addComponentToDom = (component) => {\n const comp = context.createBean(new component());\n const eGui = comp.getGui();\n eRootWrapper.insertAdjacentElement(\"beforeend\", eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(comp);\n return comp;\n };\n if (statusBarSelector) {\n addComponentToDom(statusBarSelector.component);\n }\n if (paginationSelector) {\n const paginationComp = addComponentToDom(paginationSelector.component);\n paginationCompRef.current = paginationComp;\n focusableContainersRef.current.push(paginationComp);\n }\n if (watermarkSelector) {\n addComponentToDom(watermarkSelector.component);\n }\n return () => {\n context.destroyBeans(beansToDestroy);\n additionalEls.forEach((el) => {\n el.parentElement?.removeChild(el);\n });\n };\n }, [tabGuardReady, eGridBodyParent, beans]);\n const rootWrapperClasses = useMemo11(\n () => classesList(\"ag-root-wrapper\", rtlClass, gridThemeClass, layoutClass),\n [rtlClass, gridThemeClass, layoutClass]\n );\n const rootWrapperBodyClasses = useMemo11(\n () => classesList(\"ag-root-wrapper-body\", \"ag-focus-managed\", layoutClass),\n [layoutClass]\n );\n const topStyle = useMemo11(\n () => ({\n userSelect: userSelect != null ? userSelect : \"\",\n WebkitUserSelect: userSelect != null ? userSelect : \"\",\n cursor: cursor != null ? cursor : \"\"\n }),\n [userSelect, cursor]\n );\n const setTabGuardCompRef = useCallback14((ref) => {\n tabGuardRef.current = ref;\n setTabGuardReady(ref !== null);\n }, []);\n return /* @__PURE__ */ React17.createElement(\"div\", { ref: setRef2, className: rootWrapperClasses, style: topStyle, role: \"presentation\" }, /* @__PURE__ */ React17.createElement(\"div\", { className: rootWrapperBodyClasses, ref: setGridBodyParent, role: \"presentation\" }, initialised && eGridBodyParent && beans && /* @__PURE__ */ React17.createElement(BeansContext.Provider, { value: beans }, /* @__PURE__ */ React17.createElement(\n tabGuardComp_default,\n {\n ref: setTabGuardCompRef,\n eFocusableElement: eGridBodyParent,\n onTabKeyDown,\n gridCtrl: gridCtrlRef.current,\n forceFocusOutWhenTabGuardsAreEmpty: true\n },\n // we wait for initialised before rending the children, so GridComp has created and registered with it's\n // GridCtrl before we create the child GridBodyComp. Otherwise the GridBodyComp would initialise first,\n // before we have set the the Layout CSS classes, causing the GridBodyComp to render rows to a grid that\n // doesn't have it's height specified, which would result if all the rows getting rendered (and if many rows,\n // hangs the UI)\n /* @__PURE__ */ React17.createElement(gridBodyComp_default, null)\n ))));\n};\nvar gridComp_default = memo14(GridComp);\n\n// packages/ag-grid-react/src/reactUi/renderStatusService.tsx\nimport { BeanStub } from \"ag-grid-community\";\nvar RenderStatusService = class extends BeanStub {\n wireBeans(beans) {\n this.ctrlsService = beans.ctrlsService;\n }\n areHeaderCellsRendered() {\n return this.ctrlsService.getHeaderRowContainerCtrls().every((container) => container.getAllCtrls().every((ctrl) => ctrl.areCellsRendered()));\n }\n};\n\n// packages/ag-grid-react/src/reactUi/agGridReactUi.tsx\nvar AgGridReactUi = (props) => {\n const apiRef = useRef15();\n const eGui = useRef15(null);\n const portalManager = useRef15(null);\n const destroyFuncs = useRef15([]);\n const whenReadyFuncs = useRef15([]);\n const prevProps = useRef15(props);\n const frameworkOverridesRef = useRef15();\n const gridIdRef = useRef15();\n const ready = useRef15(false);\n const [context, setContext] = useState16(void 0);\n const [, setPortalRefresher] = useState16(0);\n const setRef2 = useCallback15((eRef) => {\n eGui.current = eRef;\n if (!eRef) {\n destroyFuncs.current.forEach((f) => f());\n destroyFuncs.current.length = 0;\n return;\n }\n const modules = props.modules || [];\n if (!portalManager.current) {\n portalManager.current = new PortalManager(\n () => setPortalRefresher((prev) => prev + 1),\n props.componentWrappingElement,\n props.maxComponentCreationTimeMs\n );\n destroyFuncs.current.push(() => {\n portalManager.current?.destroy();\n portalManager.current = null;\n });\n }\n const mergedGridOps = _combineAttributesAndGridOptions(props.gridOptions, props);\n const processQueuedUpdates = () => {\n if (ready.current) {\n const getFn = () => frameworkOverridesRef.current?.shouldQueueUpdates() ? void 0 : whenReadyFuncs.current.shift();\n let fn = getFn();\n while (fn) {\n fn();\n fn = getFn();\n }\n }\n };\n const frameworkOverrides = new ReactFrameworkOverrides(processQueuedUpdates);\n frameworkOverridesRef.current = frameworkOverrides;\n const renderStatusService = new RenderStatusService();\n const gridParams = {\n providedBeanInstances: {\n frameworkComponentWrapper: new ReactFrameworkComponentWrapper(\n portalManager.current,\n mergedGridOps.reactiveCustomComponents ?? _getGlobalGridOption(\"reactiveCustomComponents\") ?? true\n ),\n renderStatusService\n },\n modules,\n frameworkOverrides\n };\n const createUiCallback = (context2) => {\n setContext(context2);\n context2.createBean(renderStatusService);\n destroyFuncs.current.push(() => {\n context2.destroy();\n });\n context2.getBean(\"ctrlsService\").whenReady(\n {\n addDestroyFunc: (func) => {\n destroyFuncs.current.push(func);\n }\n },\n () => {\n if (context2.isDestroyed()) {\n return;\n }\n const api = apiRef.current;\n if (api) {\n props.setGridApi?.(api);\n }\n }\n );\n };\n const acceptChangesCallback = (context2) => {\n context2.getBean(\"ctrlsService\").whenReady(\n {\n addDestroyFunc: (func) => {\n destroyFuncs.current.push(func);\n }\n },\n () => {\n whenReadyFuncs.current.forEach((f) => f());\n whenReadyFuncs.current.length = 0;\n ready.current = true;\n }\n );\n };\n const gridCoreCreator = new GridCoreCreator();\n mergedGridOps.gridId ?? (mergedGridOps.gridId = gridIdRef.current);\n apiRef.current = gridCoreCreator.create(\n eRef,\n mergedGridOps,\n createUiCallback,\n acceptChangesCallback,\n gridParams\n );\n destroyFuncs.current.push(() => {\n apiRef.current = void 0;\n });\n if (apiRef.current) {\n gridIdRef.current = apiRef.current.getGridId();\n }\n }, []);\n const style = useMemo12(() => {\n return {\n height: \"100%\",\n ...props.containerStyle || {}\n };\n }, [props.containerStyle]);\n const processWhenReady = useCallback15((func) => {\n if (ready.current && !frameworkOverridesRef.current?.shouldQueueUpdates()) {\n func();\n } else {\n whenReadyFuncs.current.push(func);\n }\n }, []);\n useEffect9(() => {\n const changes = extractGridPropertyChanges(prevProps.current, props);\n prevProps.current = props;\n processWhenReady(() => {\n if (apiRef.current) {\n _processOnChange(changes, apiRef.current);\n }\n });\n }, [props]);\n return /* @__PURE__ */ React18.createElement(\"div\", { style, className: props.className, ref: setRef2 }, context && !context.isDestroyed() ? /* @__PURE__ */ React18.createElement(gridComp_default, { context }) : null, portalManager.current?.getPortals() ?? null);\n};\nfunction extractGridPropertyChanges(prevProps, nextProps) {\n const changes = {};\n Object.keys(nextProps).forEach((propKey) => {\n const propValue = nextProps[propKey];\n if (prevProps[propKey] !== propValue) {\n changes[propKey] = propValue;\n }\n });\n return changes;\n}\nvar ReactFrameworkComponentWrapper = class extends BaseComponentWrapper {\n constructor(parent, reactiveCustomComponents) {\n super();\n this.parent = parent;\n this.reactiveCustomComponents = reactiveCustomComponents;\n }\n createWrapper(UserReactComponent, componentType) {\n if (this.reactiveCustomComponents) {\n const getComponentClass = (propertyName) => {\n switch (propertyName) {\n case \"filter\":\n return FilterComponentWrapper;\n case \"floatingFilterComponent\":\n return FloatingFilterComponentWrapper;\n case \"dateComponent\":\n return DateComponentWrapper;\n case \"dragAndDropImageComponent\":\n return DragAndDropImageComponentWrapper;\n case \"loadingOverlayComponent\":\n return LoadingOverlayComponentWrapper;\n case \"noRowsOverlayComponent\":\n return NoRowsOverlayComponentWrapper;\n case \"statusPanel\":\n return StatusPanelComponentWrapper;\n case \"toolPanel\":\n return ToolPanelComponentWrapper;\n case \"menuItem\":\n return MenuItemComponentWrapper;\n case \"cellRenderer\":\n return CellRendererComponentWrapper;\n }\n };\n const ComponentClass = getComponentClass(componentType.propertyName);\n if (ComponentClass) {\n return new ComponentClass(UserReactComponent, this.parent, componentType);\n }\n } else {\n switch (componentType.propertyName) {\n case \"filter\":\n case \"floatingFilterComponent\":\n case \"dateComponent\":\n case \"dragAndDropImageComponent\":\n case \"loadingOverlayComponent\":\n case \"noRowsOverlayComponent\":\n case \"statusPanel\":\n case \"toolPanel\":\n case \"menuItem\":\n case \"cellRenderer\":\n warnReactiveCustomComponents();\n break;\n }\n }\n const suppressFallbackMethods = !componentType.cellRenderer && componentType.propertyName !== \"toolPanel\";\n return new ReactComponent(UserReactComponent, this.parent, componentType, suppressFallbackMethods);\n }\n};\nvar DetailCellRenderer = forwardRef3((props, ref) => {\n const { ctrlsFactory, context, gos, resizeObserverService, rowModel } = useContext15(BeansContext);\n const [cssClasses, setCssClasses] = useState16(() => new CssClasses());\n const [gridCssClasses, setGridCssClasses] = useState16(() => new CssClasses());\n const [detailGridOptions, setDetailGridOptions] = useState16();\n const [detailRowData, setDetailRowData] = useState16();\n const ctrlRef = useRef15();\n const eGuiRef = useRef15(null);\n const resizeObserverDestroyFunc = useRef15();\n const parentModules = useMemo12(() => ModuleRegistry.__getGridRegisteredModules(props.api.getGridId()), [props]);\n const topClassName = useMemo12(() => cssClasses.toString() + \" ag-details-row\", [cssClasses]);\n const gridClassName = useMemo12(() => gridCssClasses.toString() + \" ag-details-grid\", [gridCssClasses]);\n if (ref) {\n useImperativeHandle3(ref, () => ({\n refresh() {\n return ctrlRef.current?.refresh() ?? false;\n }\n }));\n }\n if (props.template) {\n _warnOnce3(\n \"detailCellRendererParams.template is not supported by AG Grid React. To change the template, provide a Custom Detail Cell Renderer. See https://ag-grid.com/react-data-grid/master-detail-custom-detail/\"\n );\n }\n const setRef2 = useCallback15((eRef) => {\n eGuiRef.current = eRef;\n if (!eRef) {\n ctrlRef.current = context.destroyBean(ctrlRef.current);\n resizeObserverDestroyFunc.current?.();\n return;\n }\n const compProxy = {\n addOrRemoveCssClass: (name, on) => setCssClasses((prev) => prev.setClass(name, on)),\n addOrRemoveDetailGridCssClass: (name, on) => setGridCssClasses((prev) => prev.setClass(name, on)),\n setDetailGrid: (gridOptions) => setDetailGridOptions(gridOptions),\n setRowData: (rowData) => setDetailRowData(rowData),\n getGui: () => eGuiRef.current\n };\n const ctrl = ctrlsFactory.getInstance(\"detailCellRenderer\");\n if (!ctrl) {\n return;\n }\n context.createBean(ctrl);\n ctrl.init(compProxy, props);\n ctrlRef.current = ctrl;\n if (gos.get(\"detailRowAutoHeight\")) {\n const checkRowSizeFunc = () => {\n if (eGuiRef.current == null) {\n return;\n }\n const clientHeight = eGuiRef.current.clientHeight;\n if (clientHeight != null && clientHeight > 0) {\n const updateRowHeightFunc = () => {\n props.node.setRowHeight(clientHeight);\n if (_isClientSideRowModel(gos) || _isServerSideRowModel(gos)) {\n rowModel.onRowHeightChanged();\n }\n };\n setTimeout(updateRowHeightFunc, 0);\n }\n };\n resizeObserverDestroyFunc.current = resizeObserverService.observeResize(eRef, checkRowSizeFunc);\n checkRowSizeFunc();\n }\n }, []);\n const setGridApi = useCallback15((api) => {\n ctrlRef.current?.registerDetailWithMaster(api);\n }, []);\n return /* @__PURE__ */ React18.createElement(\"div\", { className: topClassName, ref: setRef2 }, detailGridOptions && /* @__PURE__ */ React18.createElement(\n AgGridReactUi,\n {\n className: gridClassName,\n ...detailGridOptions,\n modules: parentModules,\n rowData: detailRowData,\n setGridApi\n }\n ));\n});\nvar ReactFrameworkOverrides = class extends VanillaFrameworkOverrides {\n constructor(processQueuedUpdates) {\n super(\"react\");\n this.processQueuedUpdates = processQueuedUpdates;\n this.queueUpdates = false;\n this.frameworkComponents = {\n agGroupCellRenderer: groupCellRenderer_default,\n agGroupRowRenderer: groupCellRenderer_default,\n agDetailCellRenderer: DetailCellRenderer\n };\n this.wrapIncoming = (callback, source) => {\n if (source === \"ensureVisible\") {\n return runWithoutFlushSync(callback);\n }\n return callback();\n };\n this.renderingEngine = \"react\";\n }\n frameworkComponent(name) {\n return this.frameworkComponents[name];\n }\n isFrameworkComponent(comp) {\n if (!comp) {\n return false;\n }\n const prototype = comp.prototype;\n const isJsComp = prototype && \"getGui\" in prototype;\n return !isJsComp;\n }\n getLockOnRefresh() {\n this.queueUpdates = true;\n }\n releaseLockOnRefresh() {\n this.queueUpdates = false;\n this.processQueuedUpdates();\n }\n shouldQueueUpdates() {\n return this.queueUpdates;\n }\n runWhenReadyAsync() {\n return isReact19();\n }\n};\n\n// packages/ag-grid-react/src/agGridReact.tsx\nvar AgGridReact = class extends Component {\n constructor() {\n super(...arguments);\n this.apiListeners = [];\n this.setGridApi = (api) => {\n this.api = api;\n this.apiListeners.forEach((listener) => listener(api));\n };\n }\n registerApiListener(listener) {\n this.apiListeners.push(listener);\n }\n componentWillUnmount() {\n this.apiListeners.length = 0;\n }\n render() {\n return /* @__PURE__ */ React19.createElement(AgGridReactUi, { ...this.props, setGridApi: this.setGridApi });\n }\n};\n\n// packages/ag-grid-react/src/shared/customComp/interfaces.ts\nimport { useContext as useContext16 } from \"react\";\nfunction useGridCustomComponent(methods) {\n const { setMethods } = useContext16(CustomContext);\n setMethods(methods);\n}\nfunction useGridCellEditor(callbacks) {\n useGridCustomComponent(callbacks);\n}\nfunction useGridDate(callbacks) {\n return useGridCustomComponent(callbacks);\n}\nfunction useGridFilter(callbacks) {\n return useGridCustomComponent(callbacks);\n}\nfunction useGridFloatingFilter(callbacks) {\n useGridCustomComponent(callbacks);\n}\nfunction useGridMenuItem(callbacks) {\n useGridCustomComponent(callbacks);\n}\nexport {\n AgGridReact,\n CustomContext as CustomComponentContext,\n getInstance,\n useGridCellEditor,\n useGridDate,\n useGridFilter,\n useGridFloatingFilter,\n useGridMenuItem,\n warnReactiveCustomComponents\n};\n"],"names":[],"sourceRoot":""}
@@ -0,0 +1,80 @@
1
+ Metadata-Version: 2.4
2
+ Name: variable-explorer
3
+ Version: 0.1.0
4
+ Summary: A Spyder/Stata-grade variable explorer for JupyterLab
5
+ Project-URL: Homepage, https://github.com/variable-explorer/variable-explorer
6
+ License: MIT
7
+ License-File: LICENSE
8
+ Classifier: Framework :: Jupyter
9
+ Classifier: Framework :: Jupyter :: JupyterLab
10
+ Classifier: Framework :: Jupyter :: JupyterLab :: 4
11
+ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
12
+ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: jupyterlab<5,>=4.0.0
22
+ Requires-Dist: numpy
23
+ Requires-Dist: pandas
24
+ Description-Content-Type: text/markdown
25
+
26
+ # Variable Explorer for JupyterLab
27
+
28
+ A Spyder/Stata-grade variable explorer for JupyterLab 4. Opens in its own window so you can put it on a second monitor.
29
+
30
+ ## Install
31
+
32
+ ```bash
33
+ pip install variable-explorer
34
+ ```
35
+
36
+ That's it. Restart JupyterLab if it's running.
37
+
38
+ ## Usage
39
+
40
+ 1. Open a notebook in JupyterLab
41
+ 2. Click the **Variables** button in the notebook toolbar (spreadsheet icon)
42
+ 3. The Variable Explorer opens in a **separate browser window**
43
+ 4. Run cells — the variable list updates automatically
44
+ 5. Click any DataFrame, list, or dict to view its contents
45
+
46
+ ## Features
47
+
48
+ - **Detached window** — lives outside JupyterLab, move it to another monitor
49
+ - **AG Grid** — fast virtual scrolling, handles large DataFrames
50
+ - **Column sorting** — click headers to sort (kernel-side, fast even on millions of rows)
51
+ - **Inline histograms** — distribution charts in every column header with hover tooltips
52
+ - **Conditional formatting** — numeric heatmaps, boolean color-coding
53
+ - **Metadata sidebar** — column types, null counts, stats (like Stata's Variable Manager)
54
+ - **Properties panel** — dataset shape, memory usage, dtypes
55
+ - **Cell editing** — double-click to edit values, synced back to the kernel
56
+ - **Resizable panels** — drag the dividers between panels
57
+ - **Auto-refresh** — variable list updates after every cell execution
58
+ - **Supports many types** — DataFrames, Series, numpy arrays, lists of dicts, dicts of lists, nested structures
59
+
60
+ ## Requirements
61
+
62
+ - JupyterLab 4.x
63
+ - Python 3.10+
64
+ - pandas (for DataFrame viewing)
65
+
66
+ ## Development
67
+
68
+ ```bash
69
+ # Clone and install in development mode
70
+ git clone https://github.com/variable-explorer/variable-explorer.git
71
+ cd variable-explorer
72
+ pip install -e .
73
+
74
+ # Rebuild after making changes
75
+ jlpm install
76
+ jlpm build
77
+ pip install -e .
78
+ ```
79
+
80
+ Requires Node.js 18+ for development builds.
@@ -0,0 +1,49 @@
1
+ variable_explorer/__init__.py,sha256=nYQPBSCQ2OKBKTqn9yZLIn-iIyugXUPMNIgI6NrzEQQ,219
2
+ variable_explorer/_version.py,sha256=CXJl0vWHa-zfZJ_mhGVB60E0diyNNF7RIidcWrfQJOA,175
3
+ variable_explorer/kernel/__init__.py,sha256=TOD76p-BqtH0nnSfjGvTU_ohS85KI70ICL0zyh-jyFU,115
4
+ variable_explorer/kernel/comm_handler.py,sha256=Lrfctg5yUwZnlac03kb0q3UbprVzd88QavbtIe2LNcM,6746
5
+ variable_explorer/kernel/data_provider.py,sha256=koTNEbIYb7jiuCFOY0JLCDhIRNX1ypvxFxleKCksMBQ,7251
6
+ variable_explorer/kernel/editor.py,sha256=Dtg-1rqa2mbwkEjeDvucABGCnhSs_NF5wa9SduvUoEI,2396
7
+ variable_explorer/kernel/introspection.py,sha256=cPhMHlLy6vS7bckWjRT1RuhIV_Udb3nkEfJozVKSn6E,5439
8
+ variable_explorer/kernel/serialization.py,sha256=JReO-8HHH-JWTEQpZIKxQamWnyzFJ7pgxtt_qr8OxVo,1744
9
+ variable_explorer/kernel/sorter.py,sha256=gOp9BEY85firOh6GsjkMs-PYKcL8eTEwgtUjqWEWrYk,866
10
+ variable_explorer/kernel/statistics.py,sha256=1C3DF2b40TGd6_ZMEppAkrRVJT1JnYLS55zgHLVgW0k,2768
11
+ variable_explorer/labextension/build_log.json,sha256=_slk-4_Q_lCcNtaZcqteqfUvvGHk4Z6UN5BwU0KPTQc,22890
12
+ variable_explorer/labextension/package.json,sha256=RfR55wLit-nteVqA9A3SF2mHcgQhbrz5hC7KDjukAKg,3008
13
+ variable_explorer/labextension/schemas/variable-explorer/package.json.orig,sha256=Gs_qyxP4-zqiFkJtPbdg9W_KdKIzVc2yJ_rlRUaMgnw,2865
14
+ variable_explorer/labextension/schemas/variable-explorer/plugin.json,sha256=kcStnXVA3Guv_JabmpQGnH8_qveW0FptrlX20hpG6cI,2028
15
+ variable_explorer/labextension/static/lib_index_js.88a2cd3be0f2bf49f0eb.js,sha256=3X1nY5CUtTnD9pw5TUERqZQz2WQ8t0S7cmO7U9bkjFI,73734
16
+ variable_explorer/labextension/static/lib_index_js.88a2cd3be0f2bf49f0eb.js.map,sha256=15gMnD1PeUde3Mi17CzlLC8VexFBC0lsfZZMjQzkax8,69347
17
+ variable_explorer/labextension/static/remoteEntry.a8ed3dcc7548f0b68f93.js,sha256=jKoqVBHFkYVkgrO8dga_I3o_hKNYPuL19d4_OUfWT0U,31385
18
+ variable_explorer/labextension/static/remoteEntry.a8ed3dcc7548f0b68f93.js.map,sha256=YZmTKn5O3UBdz33HZ4PkM_9hix37ezg0teI6VTLPwDI,30274
19
+ variable_explorer/labextension/static/style.js,sha256=capbEGhWzdwEbY5h6yCuCVi6sUfP8F-kdLL3Fk4ocNc,160
20
+ variable_explorer/labextension/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js,sha256=FJtQ0Fm9ybHyZXdbukha4r6E8knV_6bWeT9pOTnfEhQ,124373
21
+ variable_explorer/labextension/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js.map,sha256=3WgTLFWS4zEvksgooBk3sacb1ZtznnC0Io4yjyZsrwg,43327
22
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js,sha256=Cm641mG2ofgWU4t6YZE6I380genJimt9N-NqtgassaM,1930477
23
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js.map,sha256=8M6ipTS49JB75NK-SoxXwgmI1vkt5VrFNGZEFLAtWFo,2275773
24
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js,sha256=AyFaPNmgoSmkkfRgfBrP6sS7u-tBl-Y92XtEEdJ6nvU,599871
25
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js.map,sha256=3yxg2IB1cewVTOb0DudS62xsfL-WVU9gbfskXeE52D0,691689
26
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js,sha256=V1xTB-xXDMt5ilyf4bevGfu9_3MBw0KIug_hs4g0AI8,126482
27
+ variable_explorer/labextension/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js.map,sha256=KdpRP54Kfx7yLwn0Ksc_XQFkm7SCabkhTTXuljA2stM,138466
28
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/build_log.json,sha256=_slk-4_Q_lCcNtaZcqteqfUvvGHk4Z6UN5BwU0KPTQc,22890
29
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/package.json,sha256=RfR55wLit-nteVqA9A3SF2mHcgQhbrz5hC7KDjukAKg,3008
30
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/schemas/variable-explorer/package.json.orig,sha256=Gs_qyxP4-zqiFkJtPbdg9W_KdKIzVc2yJ_rlRUaMgnw,2865
31
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/schemas/variable-explorer/plugin.json,sha256=kcStnXVA3Guv_JabmpQGnH8_qveW0FptrlX20hpG6cI,2028
32
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/lib_index_js.88a2cd3be0f2bf49f0eb.js,sha256=3X1nY5CUtTnD9pw5TUERqZQz2WQ8t0S7cmO7U9bkjFI,73734
33
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/lib_index_js.88a2cd3be0f2bf49f0eb.js.map,sha256=15gMnD1PeUde3Mi17CzlLC8VexFBC0lsfZZMjQzkax8,69347
34
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/remoteEntry.a8ed3dcc7548f0b68f93.js,sha256=jKoqVBHFkYVkgrO8dga_I3o_hKNYPuL19d4_OUfWT0U,31385
35
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/remoteEntry.a8ed3dcc7548f0b68f93.js.map,sha256=YZmTKn5O3UBdz33HZ4PkM_9hix37ezg0teI6VTLPwDI,30274
36
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style.js,sha256=capbEGhWzdwEbY5h6yCuCVi6sUfP8F-kdLL3Fk4ocNc,160
37
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js,sha256=FJtQ0Fm9ybHyZXdbukha4r6E8knV_6bWeT9pOTnfEhQ,124373
38
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/style_index_js-data_font_woff2_charset_utf-8_base64_d09GMgABAAAAABmsAAsAAAAANbQAABlcAAEAAAAAA-5c9677.c69a59632d259bde8f84.js.map,sha256=3WgTLFWS4zEvksgooBk3sacb1ZtznnC0Io4yjyZsrwg,43327
39
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js,sha256=Cm641mG2ofgWU4t6YZE6I380genJimt9N-NqtgassaM,1930477
40
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_dist_package_main_esm_mjs.c38425b170e91e5db052.js.map,sha256=8M6ipTS49JB75NK-SoxXwgmI1vkt5VrFNGZEFLAtWFo,2275773
41
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js,sha256=AyFaPNmgoSmkkfRgfBrP6sS7u-tBl-Y92XtEEdJ6nvU,599871
42
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-community_styles_ag-grid_css-node_modules_ag-grid-community_styl-7d25f0.7424d30423d9f1c112f6.js.map,sha256=3yxg2IB1cewVTOb0DudS62xsfL-WVU9gbfskXeE52D0,691689
43
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js,sha256=V1xTB-xXDMt5ilyf4bevGfu9_3MBw0KIug_hs4g0AI8,126482
44
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/static/vendors-node_modules_ag-grid-react_dist_package_index_esm_mjs.ca52d36c364e6562240a.js.map,sha256=KdpRP54Kfx7yLwn0Ksc_XQFkm7SCabkhTTXuljA2stM,138466
45
+ variable_explorer-0.1.0.data/data/share/jupyter/labextensions/variable-explorer/install.json,sha256=UJs4sHoS16AHKq3rkv88IKf_3yhfPXOct-rfUZtwvPQ,133
46
+ variable_explorer-0.1.0.dist-info/METADATA,sha256=A0BPodDPn2S0cFUNHXzIt0TpNeh2hrn0q3RgS5UnZAM,2825
47
+ variable_explorer-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
48
+ variable_explorer-0.1.0.dist-info/licenses/LICENSE,sha256=Bx7ma8_t7VPkd_3S0Ti6fnLW2EU-9edLTwk7Dbqr1Sk,1087
49
+ variable_explorer-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Variable Explorer Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.