@linzjs/step-ag-grid 1.4.4 → 1.4.5

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 (100) hide show
  1. package/dist/index.js +1602 -3043
  2. package/dist/index.js.map +1 -1
  3. package/dist/src/components/GridLoadableCell.d.ts +2 -0
  4. package/dist/src/components/gridForm/GridFormDropDown.d.ts +1 -1
  5. package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +1 -1
  6. package/dist/src/components/gridPopoverEdit/GridPopoverMenu.d.ts +1 -1
  7. package/dist/src/react-menu3/components/ControlledMenu.d.ts +2 -0
  8. package/dist/src/react-menu3/components/FocusableItem.d.ts +1 -0
  9. package/dist/src/react-menu3/components/Menu.d.ts +2 -0
  10. package/dist/src/react-menu3/components/MenuButton.d.ts +1 -0
  11. package/dist/src/react-menu3/components/MenuDivider.d.ts +2 -0
  12. package/dist/src/react-menu3/components/MenuGroup.d.ts +2 -0
  13. package/dist/src/react-menu3/components/MenuHeader.d.ts +2 -0
  14. package/dist/src/react-menu3/components/MenuItem.d.ts +1 -0
  15. package/dist/src/react-menu3/components/MenuList.d.ts +30 -0
  16. package/dist/src/react-menu3/components/MenuRadioGroup.d.ts +2 -0
  17. package/dist/src/react-menu3/components/SubMenu.d.ts +1 -0
  18. package/dist/src/react-menu3/hooks/index.d.ts +9 -0
  19. package/dist/src/react-menu3/hooks/useBEM.d.ts +9 -0
  20. package/dist/src/react-menu3/hooks/useCombinedRef.d.ts +2 -0
  21. package/dist/src/react-menu3/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  22. package/dist/src/react-menu3/hooks/useItemEffect.d.ts +2 -0
  23. package/dist/src/react-menu3/hooks/useItemState.d.ts +6 -0
  24. package/dist/src/react-menu3/hooks/useItems.d.ts +5 -0
  25. package/dist/src/react-menu3/hooks/useMenuChange.d.ts +1 -0
  26. package/dist/src/react-menu3/hooks/useMenuState.d.ts +11 -0
  27. package/dist/src/react-menu3/hooks/useMenuStateAndFocus.d.ts +10 -0
  28. package/dist/src/react-menu3/index.d.ts +11 -0
  29. package/dist/src/react-menu3/positionUtils/getPositionHelpers.d.ts +10 -0
  30. package/dist/src/react-menu3/positionUtils/index.d.ts +3 -0
  31. package/dist/src/react-menu3/positionUtils/placeArrowHorizontal.d.ts +7 -0
  32. package/dist/src/react-menu3/positionUtils/placeArrowVertical.d.ts +7 -0
  33. package/dist/src/react-menu3/positionUtils/placeLeftorRight.d.ts +21 -0
  34. package/dist/src/react-menu3/positionUtils/placeToporBottom.d.ts +21 -0
  35. package/dist/src/react-menu3/positionUtils/positionContextMenu.d.ts +8 -0
  36. package/dist/src/react-menu3/positionUtils/positionMenu.d.ts +21 -0
  37. package/dist/src/react-menu3/style-utils/index.d.ts +11 -0
  38. package/dist/src/react-menu3/utils/constants.d.ts +50 -0
  39. package/dist/src/react-menu3/utils/index.d.ts +4 -0
  40. package/dist/src/react-menu3/utils/propTypes.d.ts +55 -0
  41. package/dist/src/react-menu3/utils/utils.d.ts +27 -0
  42. package/dist/src/react-menu3/utils/withHovering.d.ts +1 -0
  43. package/dist/step-ag-grid.esm.js +1513 -2953
  44. package/dist/step-ag-grid.esm.js.map +1 -1
  45. package/package.json +18 -9
  46. package/src/components/GridLoadableCell.scss +4 -0
  47. package/src/components/GridLoadableCell.tsx +5 -1
  48. package/src/components/GridPopoverHook.tsx +4 -50
  49. package/src/components/gridForm/GridFormDropDown.tsx +2 -2
  50. package/src/components/gridForm/GridFormMultiSelect.tsx +4 -4
  51. package/src/components/gridForm/GridFormPopoutMenu.tsx +1 -1
  52. package/src/components/gridPopoverEdit/GridPopoverMenu.scss +6 -2
  53. package/src/components/gridPopoverEdit/GridPopoverMenu.tsx +1 -1
  54. package/src/components/gridRender/GridRenderPopoutMenuCell.tsx +7 -9
  55. package/src/react-menu3/components/ControlledMenu.tsx +260 -0
  56. package/src/react-menu3/components/FocusableItem.tsx +70 -0
  57. package/src/react-menu3/components/Menu.tsx +96 -0
  58. package/src/react-menu3/components/MenuButton.tsx +33 -0
  59. package/src/react-menu3/components/MenuDivider.tsx +21 -0
  60. package/src/react-menu3/components/MenuGroup.tsx +38 -0
  61. package/src/react-menu3/components/MenuHeader.tsx +21 -0
  62. package/src/react-menu3/components/MenuItem.tsx +130 -0
  63. package/src/react-menu3/components/MenuList.tsx +434 -0
  64. package/src/react-menu3/components/MenuRadioGroup.tsx +33 -0
  65. package/src/react-menu3/components/SubMenu.tsx +243 -0
  66. package/src/react-menu3/hooks/index.ts +9 -0
  67. package/src/react-menu3/hooks/useBEM.ts +32 -0
  68. package/src/react-menu3/hooks/useCombinedRef.ts +30 -0
  69. package/src/react-menu3/hooks/useIsomorphicLayoutEffect.ts +15 -0
  70. package/src/react-menu3/hooks/useItemEffect.ts +22 -0
  71. package/src/react-menu3/hooks/useItemState.ts +63 -0
  72. package/src/react-menu3/hooks/useItems.ts +110 -0
  73. package/src/react-menu3/hooks/useMenuChange.ts +12 -0
  74. package/src/react-menu3/hooks/useMenuState.ts +24 -0
  75. package/src/react-menu3/hooks/useMenuStateAndFocus.ts +15 -0
  76. package/src/react-menu3/index.d.ts +682 -0
  77. package/src/react-menu3/index.ts +11 -0
  78. package/src/react-menu3/positionUtils/getPositionHelpers.ts +76 -0
  79. package/src/react-menu3/positionUtils/index.ts +3 -0
  80. package/src/react-menu3/positionUtils/placeArrowHorizontal.ts +8 -0
  81. package/src/react-menu3/positionUtils/placeArrowVertical.ts +8 -0
  82. package/src/react-menu3/positionUtils/placeLeftorRight.ts +76 -0
  83. package/src/react-menu3/positionUtils/placeToporBottom.ts +77 -0
  84. package/src/react-menu3/positionUtils/positionContextMenu.ts +49 -0
  85. package/src/react-menu3/positionUtils/positionMenu.ts +73 -0
  86. package/src/react-menu3/style-utils/index.ts +80 -0
  87. package/src/react-menu3/style-utils.d.ts +110 -0
  88. package/src/react-menu3/styles/_mixins.scss +11 -0
  89. package/src/react-menu3/styles/_var.scss +20 -0
  90. package/src/react-menu3/styles/core.scss +80 -0
  91. package/src/react-menu3/styles/index.scss +70 -0
  92. package/src/react-menu3/styles/theme-dark.scss +30 -0
  93. package/src/react-menu3/styles/transitions/slide.scss +47 -0
  94. package/src/react-menu3/utils/constants.ts +63 -0
  95. package/src/react-menu3/utils/index.ts +4 -0
  96. package/src/react-menu3/utils/propTypes.ts +61 -0
  97. package/src/react-menu3/utils/utils.ts +71 -0
  98. package/src/react-menu3/utils/withHovering.tsx +22 -0
  99. package/src/stories/components/GridPopoutEditDropDown.stories.tsx +1 -3
  100. package/src/utils/util.ts +2 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/contexts/UpdatingContext.tsx","../src/contexts/UpdatingContextProvider.tsx","../src/contexts/GridContext.tsx","../src/utils/util.ts","../src/contexts/GridContextProvider.tsx","../node_modules/style-inject/dist/style-inject.es.js","../node_modules/clsx/dist/clsx.m.js","../src/components/PostSortRowsHook.ts","../src/components/gridHeader/GridHeaderSelect.tsx","../src/components/Grid.tsx","../src/components/GenericCellClass.tsx","../src/components/GridLoadableCell.tsx","../src/components/GridIcon.tsx","../src/components/gridRender/GridRenderGenericCell.tsx","../src/components/GridCell.tsx","../src/components/ComponentLoadingWrapper.tsx","../node_modules/@szhsin/react-menu/dist/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@szhsin/react-menu/dist/es/utils/utils.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useBEM.js","../node_modules/@szhsin/react-menu/dist/es/utils/constants.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useFlatStyles.js","../node_modules/@szhsin/react-menu/dist/es/utils/propTypes.js","../node_modules/@szhsin/react-menu/dist/es/utils/cloneChildren.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/getPositionHelpers.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/positionContextMenu.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeArrowVertical.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeLeftorRight.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeArrowHorizontal.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeToporBottom.js","../node_modules/@szhsin/react-menu/dist/es/positionUtils/positionMenu.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useCombinedRef.js","../node_modules/@szhsin/react-menu/dist/es/components/MenuList.js","../node_modules/@szhsin/react-menu/dist/es/components/ControlledMenu.js","../node_modules/@szhsin/react-menu/dist/es/utils/withHovering.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useActiveState.js","../node_modules/@szhsin/react-menu/dist/es/hooks/useItemState.js","../node_modules/@szhsin/react-menu/dist/es/components/MenuItem.js","../node_modules/@szhsin/react-menu/dist/es/components/FocusableItem.js","../node_modules/@szhsin/react-menu/dist/es/components/MenuDivider.js","../src/components/GridPopoverHook.tsx","../src/components/gridRender/GridRenderPopoutMenuCell.tsx","../src/components/gridForm/GridFormMultiSelect.tsx","../src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts","../src/components/gridForm/GridFormPopoutMenu.tsx","../src/components/gridPopoverEdit/GridPopoverMenu.tsx","../src/utils/bearing.ts","../src/lui/TextInputFormatted.tsx","../src/components/gridForm/GridFormEditBearing.tsx","../src/components/gridPopoverEdit/GridPopoverEditBearing.ts","../src/components/gridForm/GridFormDropDown.tsx","../src/components/gridPopoverEdit/GridPopoverEditDropDown.ts","../src/components/gridForm/GridFormMessage.tsx","../src/components/gridPopoverEdit/GridPopoverMessage.ts","../src/lui/TextAreaInput.tsx","../src/components/gridForm/GridFormTextArea.tsx","../src/components/gridPopoverEdit/GridPopoverTextArea.ts","../src/components/gridForm/GridFormTextInput.tsx","../src/components/gridPopoverEdit/GridPopoverTextInput.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { createContext } from \"react\";\n\nexport type UpdatingContextType = {\n checkUpdating: (fields: string | string[], id: number | string) => boolean;\n modifyUpdating: (field: string, ids: (number | string)[], fn: () => void | Promise<void>) => Promise<void>;\n};\n\nexport const UpdatingContext = createContext<UpdatingContextType>({\n checkUpdating: () => {\n console.error(\"Missing UpdatingContext\");\n return false;\n },\n modifyUpdating: async () => {\n console.error(\"Missing UpdatingContext\");\n },\n});\n","import { ReactNode, useRef } from \"react\";\nimport { castArray, flatten, remove } from \"lodash-es\";\nimport { UpdatingContext } from \"./UpdatingContext\";\n\ninterface UpdatingContextProviderProps {\n children: ReactNode;\n}\n\nexport type UpdatingContextStatus = Record<string, (number | string)[] | undefined>;\n\ntype FieldName = string;\ntype IdList = (number | string)[];\ntype UpdatingBlock = Record<FieldName, IdList[]>;\n\nexport const UpdatingContextProvider = (props: UpdatingContextProviderProps) => {\n const updatingBlocks = useRef<UpdatingBlock>({});\n const updating = useRef<UpdatingContextStatus>({});\n\n const resetUpdating = () => {\n const mergedUpdatingBlocks: UpdatingContextStatus = {};\n for (const key in updatingBlocks.current) {\n mergedUpdatingBlocks[key] = flatten(updatingBlocks.current[key]);\n }\n updating.current = mergedUpdatingBlocks;\n };\n\n const modifyUpdating = async (field: string, ids: (number | string)[], fn: () => void | Promise<void>) => {\n const fieldUpdatingIds = updatingBlocks.current[field] ?? (updatingBlocks.current[field] = []);\n const idRef = [...ids];\n fieldUpdatingIds.push(idRef);\n resetUpdating();\n await fn();\n remove(fieldUpdatingIds, (idList) => idList === idRef);\n resetUpdating();\n };\n\n const checkUpdating = (fields: string | string[], id: number | string): boolean =>\n castArray(fields).some((f) => updating.current[f]?.includes(id));\n\n return (\n <UpdatingContext.Provider value={{ modifyUpdating, checkUpdating }}>{props.children}</UpdatingContext.Provider>\n );\n};\n","import { createContext } from \"react\";\nimport { GridApi } from \"ag-grid-community\";\nimport { GridBaseRow } from \"@components/Grid\";\n\nexport interface GridContextType {\n gridReady: () => boolean;\n setGridApi: (gridApi: GridApi | undefined) => void;\n setQuickFilter: (quickFilter: string) => void;\n editingCells: () => boolean;\n getSelectedRows: <T extends unknown>() => T[];\n getSelectedRowIds: () => number[];\n selectRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;\n selectRowsWithFlashDiff: (updateFn: () => Promise<any>) => Promise<void>;\n selectRowsById: (rowIds?: number[]) => void;\n selectRowsByIdWithFlash: (rowIds?: number[]) => void;\n flashRows: (rowIds?: number[]) => void;\n flashRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;\n ensureRowVisible: (id: number) => void;\n ensureSelectedRowIsVisible: () => void;\n stopEditing: () => void;\n updatingCells: (\n props: { selectedRows: GridBaseRow[]; field?: string },\n fnUpdate: (selectedRows: any[]) => Promise<boolean>,\n setSaving?: (saving: boolean) => void,\n ) => Promise<boolean>;\n}\n\nexport const GridContext = createContext<GridContextType>({\n gridReady: () => {\n console.error(\"no context provider for gridReady\");\n return false;\n },\n setGridApi: () => {\n console.error(\"no context provider for setGridApi\");\n },\n setQuickFilter: () => {\n console.error(\"no context provider for setQuickFilter\");\n },\n selectRowsById: () => {\n console.error(\"no context provider for selectRows\");\n },\n getSelectedRows: <T extends unknown>(): T[] => {\n console.error(\"no context provider for getSelectedRows\");\n return [];\n },\n getSelectedRowIds: () => {\n console.error(\"no context provider for getSelectedRowIds\");\n return [];\n },\n selectRowsDiff: async () => {\n console.error(\"no context provider for selectRowsDiff\");\n },\n selectRowsByIdWithFlash: () => {\n console.error(\"no context provider for selectRowsWithFlash\");\n },\n selectRowsWithFlashDiff: async () => {\n console.error(\"no context provider for selectRowsWithFlashDiff\");\n },\n flashRows: () => {\n console.error(\"no context provider for flashRows\");\n },\n flashRowsDiff: async () => {\n console.error(\"no context provider for flashRows\");\n },\n ensureRowVisible: () => {\n console.error(\"no context provider for ensureRowVisible\");\n },\n ensureSelectedRowIsVisible: () => {\n console.error(\"no context provider for ensureSelectedRowIsVisible\");\n },\n editingCells: () => {\n console.error(\"no context provider for editingCells\");\n return false;\n },\n stopEditing: () => {\n console.error(\"no context provider for stopEditing\");\n },\n updatingCells: async () => {\n console.error(\"no context provider for modifyUpdating\");\n return false;\n },\n});\n","import { isEmpty as _isEmpty } from \"lodash-es\";\n\n// Typed version of lodash !isEmpty\nexport const isNotEmpty = (obj: Set<any> | Map<any, any> | Record<any, any> | any[] | undefined): boolean =>\n !_isEmpty(obj);\n\nexport const wait = (timeoutMs: number) =>\n new Promise<(string | null)[]>((resolve) => {\n setTimeout(resolve, timeoutMs);\n });\n\nexport const isFloat = (value: string) => {\n const regexp = /^-?\\d+(\\.\\d+)?$/;\n return regexp.test(value);\n};\n\nexport const hasParentClass = function (className: string, child: Node) {\n let node: Node | null = child;\n while (node) {\n if (node instanceof Node && node instanceof HTMLElement && node.classList.contains(className)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n};\n","import { ReactElement, ReactNode, useContext, useRef } from \"react\";\nimport { GridApi, RowNode } from \"ag-grid-community\";\nimport { GridContext } from \"./GridContext\";\nimport { delay, difference, isEmpty, last, sortBy } from \"lodash-es\";\nimport { isNotEmpty } from \"@utils/util\";\nimport { UpdatingContext } from \"./UpdatingContext\";\nimport { GridBaseRow } from \"@components/Grid\";\n\ninterface GridContextProps {\n children: ReactNode;\n}\n\n/**\n * Context for AgGrid operations.\n * Make sure you wrap AgGrid in this.\n * Also, make sure the provider is created in a separate component, otherwise it won't be found.\n */\nexport const GridContextProvider = (props: GridContextProps): ReactElement => {\n const { modifyUpdating } = useContext(UpdatingContext);\n const gridApiRef = useRef<GridApi>();\n const idsBeforeUpdate = useRef<number[]>([]);\n\n /**\n * Has Grid api has been set?\n * Some ops in components may occur before onGridReady has been called,\n * and thus will need to check grid is ready before calling.\n */\n const gridReady = () => gridApiRef.current != null;\n\n /**\n * Set current ref to grid api.\n */\n const setGridApi = (_gridApi: GridApi | undefined) => {\n gridApiRef.current = _gridApi;\n };\n\n /**\n * Wraps things that require gridApi in common handling, for when gridApi not present.\n *\n * @param hasApiFn Execute when api is ready.\n * @param noApiFn Execute if api is not ready.\n */\n const gridApiOp = <T extends unknown, R extends unknown>(\n hasApiFn: (gridApi: GridApi) => T,\n noApiFn?: () => R,\n ): T | R => {\n if (!noApiFn) {\n noApiFn = (() => {}) as () => R;\n }\n const gridApi = gridApiRef.current;\n if (gridApi) return hasApiFn(gridApi);\n console.error(\"GridApi not ready\");\n return noApiFn();\n };\n\n /**\n * Set the quick filter value to grid.\n */\n const setQuickFilter = (quickFilter: string) => {\n gridApiOp((gridApi) => gridApi.setQuickFilter(quickFilter));\n };\n\n /**\n * Get all row id's in grid.\n */\n const _getAllRowIds = () => {\n const result: number[] = [];\n return gridApiOp(\n (gridApi) => {\n gridApi.forEachNode((node) => result.push(node.data.id));\n return result;\n },\n () => result,\n );\n };\n\n /**\n * Record all row id's before update so that we can select/flash the new rows after update.\n */\n const beforeUpdate = () => {\n idsBeforeUpdate.current = _getAllRowIds();\n };\n\n /**\n * Find new row ids\n * Uses beforeUpdate ids to find new nodes.\n */\n const _getNewNodes = (): RowNode[] => {\n return gridApiOp(\n (gridApi) =>\n difference(_getAllRowIds(), idsBeforeUpdate.current)\n .map((rowId) => gridApi.getRowNode(\"\" + rowId)) //\n .filter((r) => r) as RowNode[],\n () => [],\n );\n };\n\n /**\n * Get grid nodes via rowIds. If rowIds has no matching node the result may be smaller than expected.\n * This can happen if the grid has not re-rendered yet.\n *\n * @param rowIds Row ids to get from grid.\n */\n const _rowIdsToNodes = (rowIds: number[]): RowNode[] => {\n return gridApiOp(\n (gridApi) =>\n rowIds\n .map((rowId) => gridApi.getRowNode(\"\" + rowId)) //\n .filter((r) => r) as RowNode[],\n () => [] as RowNode[],\n );\n };\n\n /**\n * Internal method for selecting and flashing rows.\n *\n * @param rowIds RowIds to select and flash. If undefined a diff is done with beforeUpdate and current state to select\n * @param select Whether to select rows\n * @param flash Whether to flash rows\n * @param retryCount Table updates may not be present when this is called, so retry is needed.\n */\n const _selectRowsWithOptionalFlash = (\n rowIds: number[] | undefined,\n select: boolean,\n flash: boolean,\n retryCount = 5, // We retry for approximately 5x200ms=1s\n ) => {\n return gridApiOp((gridApi) => {\n const rowNodes = rowIds ? _rowIdsToNodes(rowIds) : _getNewNodes();\n const gridRowIdsNotUpdatedYet = rowIds && rowNodes.length !== rowIds.length; // rowIds are specified\n const gridRowIdsNotChangedYet = !rowIds && isEmpty(rowNodes); // rowIds are from beforeUpdate\n const gridHasNotUpdated = gridRowIdsNotUpdatedYet || gridRowIdsNotChangedYet;\n // After retry count expires we give-up and deselect all rows, then select any subset of rows that have updated\n if (gridHasNotUpdated && retryCount > 0) {\n delay(() => _selectRowsWithOptionalFlash(rowIds, select, flash, retryCount - 1), 250);\n return;\n }\n\n const rowsThatNeedSelecting = sortBy(\n rowNodes.filter((node) => !node.isSelected()),\n (node) => node.data.id,\n );\n const firstNode = rowsThatNeedSelecting[0];\n firstNode && gridApi.ensureNodeVisible(firstNode);\n if (select) {\n // Select rows that shouldn't be selected\n rowsThatNeedSelecting.forEach((node) => node.setSelected(true));\n // Unselect rows that shouldn't be selected\n gridApi.getSelectedNodes()?.forEach((node) => {\n if (node && !rowNodes.includes(node)) {\n node.setSelected(false);\n }\n });\n }\n if (flash) {\n delay(() => {\n try {\n gridApi.flashCells({ rowNodes });\n } catch {\n // ignore, flash cells sometimes throws errors as nodes have gone out of scope\n }\n }, 250);\n }\n });\n };\n\n const selectRowsById = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, true, false);\n const selectRowsByIdWithFlash = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, true, true);\n const flashRows = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, false, true);\n\n const selectRowsDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, true, false);\n };\n\n const selectRowsWithFlashDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, true, true);\n };\n\n const flashRowsDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, false, true);\n };\n\n const getSelectedRows = <T extends unknown>(): T[] => {\n return gridApiOp(\n (gridApi) => gridApi.getSelectedRows(),\n () => [],\n );\n };\n\n const getSelectedRowIds = (): number[] => getSelectedRows().map((row) => (row as any).id as number);\n\n const editingCells = (): boolean => {\n return gridApiOp(\n (gridApi) => isNotEmpty(gridApi.getEditingCells()),\n () => false,\n );\n };\n\n const ensureRowVisible = (id: number): void => {\n gridApiOp((gridApi) => {\n const node = gridApi.getRowNode(`${id}`);\n node && gridApi.ensureNodeVisible(node);\n });\n };\n\n /**\n * Scroll last selected row into view on grid sort change\n */\n const ensureSelectedRowIsVisible = (): void => {\n gridApiOp((gridApi) => {\n const selectedNodes = gridApi.getSelectedNodes();\n if (isEmpty(selectedNodes)) return;\n gridApi.ensureNodeVisible(last(selectedNodes));\n });\n };\n\n const stopEditing = (): void => gridApiOp((gridApi) => gridApi.stopEditing());\n\n const updatingCells = async (\n props: { selectedRows: GridBaseRow[]; field?: string },\n fnUpdate: (selectedRows: any[]) => Promise<boolean>,\n setSaving?: (saving: boolean) => void,\n ): Promise<boolean> => {\n setSaving && setSaving(true);\n\n return await gridApiOp(async (gridApi) => {\n const selectedRows = props.selectedRows;\n //TODO do I need to do this for all rows?\n /*if (!props.multiEdit) {\n // You can't use data as it could be an orphaned reference due to updates\n selectedRows = selectedRows.filter((row) => row.id === props.data.id);\n }\n*/\n let ok = false;\n await modifyUpdating(\n props.field ?? \"\",\n selectedRows.map((data) => data.id),\n async () => {\n // Need to refresh to get spinners to work on all rows\n gridApi.refreshCells({ rowNodes: props.selectedRows as RowNode[], force: true });\n ok = await fnUpdate(selectedRows);\n },\n );\n\n // async processes need to refresh their own rows\n gridApi.refreshCells({ rowNodes: selectedRows as RowNode[], force: true });\n\n if (ok) {\n const cell = gridApi.getFocusedCell();\n if (cell && gridApi.getFocusedCell() == null) {\n gridApi.setFocusedCell(cell.rowIndex, cell.column);\n }\n // This is needed to trigger postSortRowsHook\n gridApi.refreshClientSideRowModel();\n stopEditing();\n }\n setSaving && setSaving(false);\n return ok;\n });\n };\n\n return (\n <GridContext.Provider\n value={{\n gridReady,\n setGridApi,\n setQuickFilter,\n selectRowsById,\n selectRowsDiff,\n selectRowsByIdWithFlash,\n selectRowsWithFlashDiff,\n flashRows,\n flashRowsDiff,\n getSelectedRows,\n getSelectedRowIds,\n editingCells,\n ensureRowVisible,\n ensureSelectedRowIsVisible,\n stopEditing,\n updatingCells,\n }}\n >\n {props.children}\n </GridContext.Provider>\n );\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { useCallback, useRef } from \"react\";\nimport { PostSortRowsParams } from \"ag-grid-community/dist/lib/entities/iCallbackParams\";\nimport { ColumnState } from \"ag-grid-community/dist/lib/columns/columnModel\";\n\ninterface PostSortRowsHookProps {\n setStaleGrid: (stale: boolean) => void;\n}\n\n/**\n * Retains last sort order from via <AgGrid postRowSort>.\n * Then applies this sort until next sort column change.\n * Handles stale sort, when you edit a row but don't want to re-sort.\n */\nexport const usePostSortRowsHook = ({ setStaleGrid }: PostSortRowsHookProps) => {\n // On first run we need to init the first backed up sort order\n const initialised = useRef(false);\n\n // Used to detect sort order has changed since last run\n const lastSortOrderHash = useRef<string>(\"\");\n\n // Used to detect if sort order was the same, has the direction changed\n const previousRowSortIndexRef = useRef<Record<number, number | undefined>>({});\n\n // stale sort is when there's a sort and user edits a row\n // this applies a class to the div wrapping the grid which in turn adds a * beside the sort arrow\n const sortWasStale = useRef(false);\n\n // Previous col sort is stored and reapplied if the sort direction changes on the same column and the sort was stale\n // As a sort on a stale row should just resort, not change sort direction\n const previousColSort = useRef<ColumnState[]>([]);\n\n const previousQuickFilter = useRef(\"\");\n\n return useCallback(\n ({ api, columnApi, nodes }: PostSortRowsParams) => {\n const previousRowSortIndex = previousRowSortIndexRef.current;\n\n const copyCurrentSortSettings = (): ColumnState[] =>\n columnApi.getColumnState().map((row) => ({ colId: row.colId, sort: row.sort, sortIndex: row.sortIndex }));\n\n const backupSortOrder = () => {\n for (const x in previousRowSortIndex) delete previousRowSortIndex[x];\n nodes.forEach((row, index) => (previousRowSortIndex[row.data.id] = index));\n };\n\n // Check if column is the first sorted column. Note: column is preconfigured to sort its sortIndex is null not 1\n const isFirstSortColumn = (row: ColumnState) => row.sort && [0, null].includes(row.sortIndex ?? null);\n\n const isSameColumnAndDifferentSort = (col1: ColumnState | undefined, col2: ColumnState | undefined) =>\n col1 && col2 && col1.colId === col2.colId && col1.sort != col2.sort;\n\n const restorePreviousSortColumnState = () => columnApi.applyColumnState({ state: previousColSort.current });\n\n const hasNewRows = () => nodes.some((row) => previousRowSortIndex[row.data.id] == null);\n\n const sortIsStale = () =>\n !hasNewRows() && nodes.some((row, index) => ![null, index].includes(previousRowSortIndex[row.data.id] ?? null));\n\n const sortNodesByPreviousSort = () =>\n nodes.sort(\n (a, b) =>\n (previousRowSortIndex[a.data.id] ?? Number.MAX_SAFE_INTEGER) -\n (previousRowSortIndex[b.data.id] ?? Number.MAX_SAFE_INTEGER),\n );\n\n // On first load copy the current sort\n if (!initialised.current) {\n initialised.current = true;\n previousColSort.current = copyCurrentSortSettings();\n }\n\n const newSortOrder = JSON.stringify(copyCurrentSortSettings());\n let sortOrderChanged = newSortOrder != lastSortOrderHash.current;\n\n const quickFilter = (api as any).filterManager.quickFilter;\n if (previousQuickFilter.current != quickFilter) {\n previousQuickFilter.current = quickFilter;\n sortOrderChanged = true;\n }\n\n if (sortOrderChanged) {\n const thisFirstCol = copyCurrentSortSettings().find(isFirstSortColumn);\n const previousFirstCol = previousColSort.current.find(isFirstSortColumn);\n\n // Change to sort can be: (in the context of stale sort do...)\n // - no sort to sorted (do nothing)\n // - asc to desc (resort as asc, and remove stale sort)\n // - desc to no sort (resort as desc, and remove stale sort)\n const wasSortChangedOnSameColumn =\n previousFirstCol && (!thisFirstCol || isSameColumnAndDifferentSort(previousFirstCol, thisFirstCol));\n\n // if sort was stale, and we're here, someone has clicked a stale sort order (^*) in the column header\n if (sortWasStale.current && wasSortChangedOnSameColumn) {\n // Sort was an existing priority 1 column\n // We want to re-sort with the old sort direction and clear stale sort\n sortWasStale.current = false;\n setStaleGrid(false);\n\n // trigger a recapture of sort order\n lastSortOrderHash.current = \"\";\n restorePreviousSortColumnState();\n } else {\n // Sort was on a different column so clear sort and sort like normal\n if (sortWasStale.current) {\n sortWasStale.current = false;\n setStaleGrid(false);\n }\n // Columns were sorted so retain the sort\n backupSortOrder();\n lastSortOrderHash.current = newSortOrder;\n }\n } else {\n if (sortIsStale()) {\n // If we haven't already processed a stale sort then...\n if (!sortWasStale.current) {\n // backup sort state, so we can restore it when sort is clicked on a stale column\n previousColSort.current = copyCurrentSortSettings();\n sortWasStale.current = true;\n setStaleGrid(true);\n }\n\n sortNodesByPreviousSort();\n }\n // secondary sort backup as there may be new nodes that didn't have their sort registered\n // which would cause two new rows to sort out of sequence\n backupSortOrder();\n }\n },\n [setStaleGrid],\n );\n};\n","import clsx from \"clsx\";\nimport { IHeaderParams } from \"ag-grid-community\";\nimport { useCallback, useEffect, useState } from \"react\";\n\n/**\n * AgGrid's existing select header doesn't work the way we want.\n * If you have partial select then clicking the header checkbox will select all,\n * but we want to deselect all on partial select.\n */\nexport const GridHeaderSelect = ({ api }: IHeaderParams) => {\n // This is used to force an update on selection change\n const [updateCounter, setUpdateCounter] = useState(0);\n const selectedNodeCount = api.getSelectedRows().length;\n\n const clickHandler = useCallback(() => {\n setUpdateCounter(updateCounter + 1);\n }, [updateCounter]);\n\n useEffect(() => {\n api.addEventListener(\"selectionChanged\", clickHandler);\n return () => api.removeEventListener(\"selectionChanged\", clickHandler);\n }, [api, clickHandler]);\n\n const handleMultiSelect = () => {\n if (selectedNodeCount == 0) {\n api.selectAllFiltered();\n } else {\n api.deselectAll();\n }\n };\n\n const totalNodeCount = api.getModel().getRowCount();\n const partialSelect = selectedNodeCount != 0 && selectedNodeCount != totalNodeCount;\n const allSelected = selectedNodeCount != 0 && selectedNodeCount == totalNodeCount;\n\n return (\n <div\n className={clsx(\n \"ag-wrapper ag-input-wrapper ag-checkbox-input-wrapper\",\n partialSelect && \"ag-indeterminate\",\n allSelected && \"ag-checked\",\n )}\n onClick={handleMultiSelect}\n >\n <input\n type=\"checkbox\"\n className={\"ag-checkbox-input-wrapper\"}\n onChange={() => {\n /* do nothing */\n }}\n />\n </div>\n );\n};\n","import \"./Grid.scss\";\nimport \"./GridTheme.scss\";\n\nimport clsx from \"clsx\";\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport { AgGridEvent, CellClickedEvent, ColDef } from \"ag-grid-community\";\nimport { CellEvent, GridReadyEvent, SelectionChangedEvent } from \"ag-grid-community/dist/lib/events\";\nimport { GridOptions } from \"ag-grid-community/dist/lib/entities/gridOptions\";\nimport { difference, last, xorBy } from \"lodash-es\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { usePostSortRowsHook } from \"./PostSortRowsHook\";\nimport { isNotEmpty } from \"@utils/util\";\nimport { GridHeaderSelect } from \"./gridHeader/GridHeaderSelect\";\nimport { UpdatingContext } from \"@contexts/UpdatingContext\";\n\nexport interface GridBaseRow {\n id: string | number;\n}\n\nexport interface GridProps {\n selectable?: boolean;\n dataTestId?: string;\n quickFilter?: boolean;\n quickFilterPlaceholder?: string;\n quickFilterValue?: string;\n domLayout?: GridOptions[\"domLayout\"];\n externalSelectedItems?: any[];\n setExternalSelectedItems?: (items: any[]) => void;\n onGridReady?: GridOptions[\"onGridReady\"];\n defaultColDef: GridOptions[\"defaultColDef\"];\n columnDefs: GridOptions[\"columnDefs\"];\n rowData: GridOptions[\"rowData\"];\n noRowsOverlayText?: string;\n}\n\n/**\n * Wrapper for AgGrid to add commonly used functionality.\n */\nexport const Grid = (params: GridProps): JSX.Element => {\n const { gridReady, setGridApi, setQuickFilter, ensureRowVisible, selectRowsById, ensureSelectedRowIsVisible } =\n useContext(GridContext);\n const { checkUpdating } = useContext(UpdatingContext);\n\n const [internalQuickFilter, setInternalQuickFilter] = useState(\"\");\n const lastSelectedIds = useRef<number[]>([]);\n const [staleGrid, setStaleGrid] = useState(false);\n const postSortRows = usePostSortRowsHook({ setStaleGrid });\n\n /**\n * AgGrid checkbox select does not pass clicks within cell but not on the checkbox to checkbox.\n * This passes the event to the checkbox when you click anywhere in the cell.\n */\n const clickSelectorCheckboxWhenContainingCellClicked = useCallback(({ event }: CellClickedEvent) => {\n if (!event) return;\n const input = (event.target as Element).querySelector(\"input\");\n input?.dispatchEvent(event);\n }, []);\n\n /**\n * Ensure external selected items list is in sync with panel.\n */\n const synchroniseExternalStateToGridSelection = useCallback(\n ({ api }: SelectionChangedEvent) => {\n if (!params.externalSelectedItems || !params.setExternalSelectedItems) return;\n\n const selectedRows = api.getSelectedRows();\n // We don't want to update selected Items if it hasn't changed to prevent excess renders\n if (\n params.externalSelectedItems.length != selectedRows.length ||\n isNotEmpty(xorBy(selectedRows, params.externalSelectedItems, (row) => row.id))\n ) {\n params.setExternalSelectedItems([...selectedRows]);\n }\n },\n [params],\n );\n\n /**\n * Synchronise externally selected items to grid.\n * If new ids are selected scroll them into view.\n */\n const synchroniseExternallySelectedItemsToGrid = useCallback(() => {\n if (!gridReady()) return;\n if (!params.externalSelectedItems) return;\n\n const selectedIds = params.externalSelectedItems.map((row) => row.id) as number[];\n const lastNewId = last(difference(selectedIds, lastSelectedIds.current));\n if (lastNewId != null) ensureRowVisible(lastNewId);\n lastSelectedIds.current = selectedIds;\n selectRowsById(selectedIds);\n }, [params.externalSelectedItems, ensureRowVisible, gridReady, selectRowsById]);\n\n /**\n * Synchronise quick filter to grid\n */\n const updateQuickFilter = useCallback(() => {\n if (!gridReady()) return;\n if (params.quickFilter) {\n setQuickFilter(internalQuickFilter);\n return;\n }\n if (params.quickFilterValue == null) return;\n setQuickFilter(params.quickFilterValue);\n }, [gridReady, internalQuickFilter, params.quickFilter, params.quickFilterValue, setQuickFilter]);\n\n /**\n * Synchronise quick filter to grid\n */\n useEffect(() => {\n updateQuickFilter();\n }, [updateQuickFilter]);\n\n /**\n * Synchronise externally selected items to grid on externalSelectedItems change\n */\n useEffect(() => {\n synchroniseExternallySelectedItemsToGrid();\n }, [synchroniseExternallySelectedItemsToGrid]);\n\n const columnDefs = useMemo(\n (): GridOptions[\"columnDefs\"] =>\n params.selectable\n ? [\n {\n colId: \"selection\",\n editable: false,\n initialWidth: 35,\n minWidth: 35,\n maxWidth: 35,\n suppressSizeToFit: true,\n checkboxSelection: true,\n headerComponent: GridHeaderSelect,\n onCellClicked: clickSelectorCheckboxWhenContainingCellClicked,\n },\n ...(params.columnDefs as ColDef[]),\n ]\n : [...(params.columnDefs as ColDef[])],\n [clickSelectorCheckboxWhenContainingCellClicked, params.columnDefs, params.selectable],\n );\n\n const onGridReady = useCallback(\n (event: GridReadyEvent) => {\n setGridApi(event.api);\n params.onGridReady && params.onGridReady(event);\n synchroniseExternallySelectedItemsToGrid();\n updateQuickFilter();\n },\n [params, setGridApi, synchroniseExternallySelectedItemsToGrid, updateQuickFilter],\n );\n\n const noRowsOverlayComponent = useCallback(\n () => (\n <span className=\"ag-overlay-no-rows-center\">{params.noRowsOverlayText ?? \"There are currently no rows\"}</span>\n ),\n [params.noRowsOverlayText],\n );\n\n const sizeColumnsToFit = useCallback((event: AgGridEvent) => {\n // @ts-ignore (gridBodyCtrl is private)\n if (event.api.gridBodyCtrl == undefined) {\n return;\n // this is here because ag grid was throwing api undefined error when closing POPPED OUT panel\n }\n event.api.sizeColumnsToFit();\n }, []);\n\n const refreshSelectedRows = useCallback((event: CellEvent): void => {\n // Force-refresh all selected rows to re-run class function, to update selection highlighting\n event.api.refreshCells({\n force: true,\n rowNodes: event.api.getSelectedNodes(),\n });\n }, []);\n\n const startCellEditing = useCallback(\n (event: CellEvent) => {\n if (!event.node.isSelected()) {\n event.node.setSelected(true, true);\n }\n // Cell already being edited, so don't re-edit until finished\n if (checkUpdating([event.colDef.field ?? \"\"], event.data.id)) {\n return;\n }\n if (event.rowIndex !== null) {\n event.api.startEditingCell({\n rowIndex: event.rowIndex,\n colKey: event.column.getColId(),\n });\n }\n },\n [checkUpdating],\n );\n\n const onCellDoubleClick = useCallback(\n (event: CellEvent) => {\n if (!event.colDef?.cellRendererParams?.singleClickEdit) {\n startCellEditing(event);\n }\n },\n [startCellEditing],\n );\n\n const onCellClicked = useCallback(\n (event: CellEvent) => {\n if (event.colDef?.cellRendererParams?.singleClickEdit) {\n startCellEditing(event);\n }\n },\n [startCellEditing],\n );\n\n const onCellKeyDown = useCallback(\n (e: CellEvent) => {\n if ((e.event as KeyboardEvent).key === \"Enter\") startCellEditing(e);\n },\n [startCellEditing],\n );\n\n const onCellEditingStopped = useCallback(\n (event: CellEvent) => {\n refreshSelectedRows(event);\n // The grid loses cell focus after editing\n const cell = event.api.getFocusedCell();\n cell && event.api.setFocusedCell(cell.rowIndex, cell.column);\n },\n [refreshSelectedRows],\n );\n\n return (\n <div\n data-testid={params.dataTestId}\n className={clsx(\"Grid-container\", \"ag-theme-alpine\", staleGrid && \"Grid-sortIsStale\")}\n >\n {params.quickFilter && (\n <div className=\"Grid-quickFilter\">\n <input\n aria-label=\"Search\"\n className=\"lui-margin-top-xxs lui-margin-bottom-xxs Grid-quickFilterBox\"\n type=\"text\"\n placeholder={params.quickFilterPlaceholder ?? \"Search...\"}\n value={internalQuickFilter}\n onChange={(event): void => {\n setInternalQuickFilter(event.target.value);\n }}\n />\n </div>\n )}\n <AgGridReact\n getRowId={(params) => `${params.data.id}`}\n suppressRowClickSelection={true}\n rowSelection={\"multiple\"}\n suppressBrowserResizeObserver={true}\n colResizeDefault={\"shift\"}\n onFirstDataRendered={sizeColumnsToFit}\n onGridSizeChanged={sizeColumnsToFit}\n suppressClickEdit={true}\n onCellKeyDown={onCellKeyDown}\n onCellClicked={onCellClicked}\n onCellDoubleClicked={onCellDoubleClick}\n onCellEditingStarted={refreshSelectedRows}\n onCellEditingStopped={onCellEditingStopped}\n domLayout={params.domLayout}\n columnDefs={columnDefs}\n rowData={params.rowData}\n noRowsOverlayComponent={noRowsOverlayComponent}\n onGridReady={onGridReady}\n onSortChanged={ensureSelectedRowIsVisible}\n postSortRows={postSortRows}\n onSelectionChanged={synchroniseExternalStateToGridSelection}\n />\n </div>\n );\n};\n","import { CellClassFunc } from \"ag-grid-community\";\n\nexport const GenericMultiEditCellClass: CellClassFunc = (props): string => {\n const api = props.api;\n if (api == null) return \"\";\n\n const rowSelected = api\n .getSelectedNodes()\n .map((row) => row.id)\n .includes(props.node.id);\n\n return rowSelected && api.getEditingCells().some((cell) => cell.column.getColDef() === props.colDef)\n ? \"ag-selected-for-edit\"\n : \"\";\n};\n","import { LuiMiniSpinner } from \"@linzjs/lui\";\n\nexport const GridLoadableCell = (props: {\n isLoading: boolean;\n dataTestId?: string;\n children: JSX.Element | string;\n}): JSX.Element => {\n // console.log(`Rendering LoadableCell - loading: ${props.isLoading}`);\n if (props.isLoading) {\n return (\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n <LuiMiniSpinner size={22} divProps={{ role: \"status\", \"aria-label\": \"Loading\", style: { marginBottom: 4 } }} />\n </div>\n );\n }\n // only add test id into ONE of the columns in a grid. this way each row will have one unique id :)\n return (\n <div data-testid={props.dataTestId} style={{ display: \"flex\", alignItems: \"center\" }}>\n {props.children}\n </div>\n );\n};\n","import { IconName } from \"@linzjs/lui/dist/components/LuiIcon/LuiIcon\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport const GridIcon = (props: { icon: IconName; title: string }): JSX.Element => (\n <LuiIcon\n name={props.icon}\n title={props.title}\n alt={props.title}\n size={\"md\"}\n className={`AgGridGenericCellRenderer-${props.icon}Icon`}\n />\n);\n","import \"./GridRenderGenericCell.scss\";\n\nimport { useContext } from \"react\";\nimport { UpdatingContext } from \"../../contexts/UpdatingContext\";\nimport { GridLoadableCell } from \"../GridLoadableCell\";\nimport { GridIcon } from \"../GridIcon\";\nimport { ColDef, ICellRendererParams } from \"ag-grid-community\";\nimport { ValueFormatterParams } from \"ag-grid-community/dist/lib/entities/colDef\";\nimport { GenericCellEditorParams } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GenericCellColDef<RowType extends GridBaseRow, FormProps extends Record<string, any>> extends ColDef {\n cellRendererParams?: GenericCellRendererParams;\n cellEditorParams?: GenericCellEditorParams<RowType> & FormProps;\n}\n\nexport interface GenericCellRendererParams {\n singleClickEdit?: boolean;\n warning?: (props: ICellRendererParams) => string | boolean | undefined;\n info?: (props: ICellRendererParams) => string | boolean | undefined;\n}\n\nexport const GridRendererGenericCell = (props: ICellRendererParams): JSX.Element => {\n const { checkUpdating } = useContext(UpdatingContext);\n\n const cellRendererParams = props.colDef?.cellRendererParams as GenericCellRendererParams | undefined;\n const warningFn = cellRendererParams?.warning;\n const warningText = warningFn ? warningFn(props) : undefined;\n const infoFn = cellRendererParams?.info;\n const infoText = infoFn ? infoFn(props) : undefined;\n\n const defaultFormatter = (props: ValueFormatterParams): string => props.value;\n const formatter = props.colDef?.valueFormatter ?? defaultFormatter;\n if (typeof formatter === \"string\") {\n console.error(\"valueFormatter must be a function\");\n return <span>valueFormatter must be a function</span>;\n }\n const formatted = formatter(props as ValueFormatterParams);\n\n return (\n <GridLoadableCell isLoading={checkUpdating(props.colDef?.field ?? props.colDef?.colId ?? \"\", props.data.id)}>\n <>\n {typeof warningText === \"string\" && <GridIcon icon={\"ic_warning\"} title={warningText} />}\n {typeof infoText === \"string\" && <GridIcon icon={\"ic_info\"} title={infoText} />}\n <span title={formatted}>{formatted}</span>\n </>\n </GridLoadableCell>\n );\n};\n","import { useCallback, useContext, useMemo, useState } from \"react\";\nimport { GridBaseRow } from \"./Grid\";\nimport { UpdatingContext } from \"@contexts/UpdatingContext\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { GenericMultiEditCellClass } from \"./GenericCellClass\";\nimport { GenericCellRendererParams, GridRendererGenericCell } from \"./gridRender/GridRenderGenericCell\";\nimport { ColDef, ICellEditorParams, ICellRendererParams } from \"ag-grid-community\";\nimport { GridLoadableCell } from \"./GridLoadableCell\";\n\nexport interface GridFormProps<RowType extends GridBaseRow> {\n cellEditorParams: ICellEditorParams;\n updateValue: (saveFn: (selectedRows: RowType[]) => Promise<boolean>) => Promise<boolean>;\n saving: boolean;\n value: any;\n field: string | undefined;\n selectedRows: RowType[];\n formProps: Record<string, any>;\n}\n\nexport interface GenericCellEditorParams<RowType extends GridBaseRow> {\n multiEdit?: boolean;\n form?: (props: GridFormProps<RowType>) => JSX.Element;\n}\n\nexport interface GenericCellEditorColDef<\n RowType extends GridBaseRow,\n FormProps extends GenericCellEditorParams<RowType>,\n> extends ColDef {\n cellEditorParams?: FormProps;\n cellRendererParams?: GenericCellRendererParams;\n}\n\nexport const GridCellRenderer = (cellRendererParams: ICellRendererParams) => {\n const { checkUpdating } = useContext(UpdatingContext);\n const colDef = cellRendererParams.colDef;\n\n return colDef?.cellRendererParams?.oldCellRenderer ? (\n <GridLoadableCell\n isLoading={checkUpdating(\n cellRendererParams.colDef?.field ?? cellRendererParams.colDef?.colId ?? \"\",\n cellRendererParams.data.id,\n )}\n >\n <colDef.cellRendererParams.oldCellRenderer {...cellRendererParams} />\n </GridLoadableCell>\n ) : (\n <GridRendererGenericCell {...cellRendererParams} />\n );\n};\n\n/**\n * For editing a text area.\n */\nexport const GridCell = <RowType extends GridBaseRow, FormProps extends GenericCellEditorParams<RowType>>(\n props: GenericCellEditorColDef<RowType, FormProps>,\n): ColDef => {\n return {\n cellRenderer: GridCellRenderer,\n sortable: !!(props?.field || props?.valueGetter),\n resizable: true,\n ...(props.cellEditorParams && {\n cellClass: props?.cellEditorParams?.multiEdit ? GenericMultiEditCellClass : undefined,\n editable: true,\n cellEditor: GenericCellEditorComponent,\n }),\n ...props,\n cellRendererParams: {\n originalCellRender: props.cellRenderer,\n ...props.cellRendererParams,\n },\n };\n};\n\ninterface GenericCellEditorICellEditorParams<RowType extends GridBaseRow, FormProps extends Record<string, any>>\n extends ICellEditorParams {\n data: RowType;\n colDef: GenericCellEditorColDef<RowType, FormProps>;\n}\n\nexport const GenericCellEditorComponent = <RowType extends GridBaseRow, FormProps extends Record<string, any>>(\n props: GenericCellEditorICellEditorParams<RowType, FormProps>,\n) => {\n const { updatingCells, getSelectedRows } = useContext(GridContext);\n\n const { colDef, data } = props;\n const { cellEditorParams } = props.colDef;\n const multiEdit = cellEditorParams?.multiEdit ?? false;\n const field = props.colDef.field ?? \"\";\n\n const formProps = colDef.cellEditorParams ?? {};\n const value = props.value;\n\n const selectedRows = useMemo(\n () => (multiEdit ? getSelectedRows<RowType>() : [data]),\n [data, getSelectedRows, multiEdit],\n );\n\n const [saving, setSaving] = useState(false);\n\n const updateValue = useCallback(\n async (saveFn: (selectedRows: any[]) => Promise<boolean>): Promise<boolean> => {\n return !saving && (await updatingCells({ selectedRows, field }, saveFn, setSaving));\n },\n [field, saving, selectedRows, updatingCells],\n );\n\n if (cellEditorParams == null) return <></>;\n\n return (\n <>\n <div>{colDef.cellRenderer ? <colDef.cellRenderer {...props} saving={saving} /> : props.value}</div>\n {cellEditorParams?.form && (\n <cellEditorParams.form\n cellEditorParams={props}\n updateValue={updateValue}\n saving={saving}\n formProps={formProps}\n value={value}\n field={field}\n selectedRows={selectedRows}\n />\n )}\n </>\n );\n};\n","import { LuiMiniSpinner } from \"@linzjs/lui\";\n\n/**\n * If loading is true this returns a loading spinner, otherwise it returns its children.\n */\nexport const ComponentLoadingWrapper = (props: {\n loading?: boolean;\n saving?: boolean;\n children: JSX.Element | undefined;\n}): JSX.Element => {\n return props.loading ? (\n <LuiMiniSpinner size={22} divProps={{ role: \"status\", [\"aria-label\"]: \"Loading\", style: { padding: 16 } }} />\n ) : (\n <div style={{ maxHeight: 400, overflowY: \"auto\", pointerEvents: props.saving ? \"none\" : \"inherit\" }}>\n {props.saving && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"rgba(64,64,64,0.1)\",\n zIndex: 1000,\n }}\n />\n )}\n {props.children}\n </div>\n );\n};\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nexport { _extends as extends, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { unstable_batchedUpdates } from 'react-dom';\n\nvar isMenuOpen = function isMenuOpen(state) {\n return !!state && state[0] === 'o';\n};\nvar batchedUpdates = unstable_batchedUpdates || function (callback) {\n return callback();\n};\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\nvar floatEqual = function floatEqual(a, b, diff) {\n if (diff === void 0) {\n diff = 0.0001;\n }\n\n return Math.abs(a - b) < diff;\n};\nvar getTransition = function getTransition(transition, name) {\n return !!(transition && transition[name]) || transition === true;\n};\nvar safeCall = function safeCall(fn, arg) {\n return typeof fn === 'function' ? fn(arg) : fn;\n};\nvar getName = function getName(component) {\n return component && component['_szhsinMenu'];\n};\nvar defineName = function defineName(component, name) {\n return name ? Object.defineProperty(component, '_szhsinMenu', {\n value: name\n }) : component;\n};\nvar applyHOC = function applyHOC(HOC) {\n return function () {\n return defineName(HOC.apply(void 0, arguments), getName(arguments.length <= 0 ? undefined : arguments[0]));\n };\n};\nvar applyStatics = function applyStatics(sourceComponent) {\n return function (wrappedComponent) {\n return defineName(wrappedComponent, getName(sourceComponent));\n };\n};\nvar attachHandlerProps = function attachHandlerProps(handlers, props) {\n if (!props) return handlers;\n var result = {};\n\n var _loop = function _loop(_i2, _Object$keys2) {\n var handlerName = _Object$keys2[_i2];\n var handler = handlers[handlerName];\n var propHandler = props[handlerName];\n var attachedHandler = void 0;\n\n if (typeof propHandler === 'function') {\n attachedHandler = function attachedHandler(e) {\n propHandler(e);\n handler(e);\n };\n } else {\n attachedHandler = handler;\n }\n\n result[handlerName] = attachedHandler;\n };\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(handlers); _i2 < _Object$keys2.length; _i2++) {\n _loop(_i2, _Object$keys2);\n }\n\n return result;\n};\nvar parsePadding = function parsePadding(paddingStr) {\n if (typeof paddingStr !== 'string') return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n var padding = paddingStr.trim().split(/\\s+/, 4).map(parseFloat);\n var top = !isNaN(padding[0]) ? padding[0] : 0;\n var right = !isNaN(padding[1]) ? padding[1] : top;\n return {\n top: top,\n right: right,\n bottom: !isNaN(padding[2]) ? padding[2] : top,\n left: !isNaN(padding[3]) ? padding[3] : right\n };\n};\nvar getScrollAncestor = function getScrollAncestor(node) {\n while (node && node !== document.body) {\n var _getComputedStyle = getComputedStyle(node),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n if (/auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX)) return node;\n node = node.parentNode;\n }\n\n return window;\n};\nvar validateIndex = function validateIndex(index, isDisabled, node) {\n if (process.env.NODE_ENV !== 'production' && index === undefined && !isDisabled) {\n var error = \"[React-Menu] Validate item '\" + (node && node.toString()) + \"' failed.\\nYou're probably creating wrapping components or HOC over MenuItem, SubMenu or FocusableItem.\\nTo create wrapping components, see: https://codesandbox.io/s/react-menu-wrapping-q0b59\\nTo create HOCs, see: https://codesandbox.io/s/react-menu-hoc-0bipn\";\n throw new Error(error);\n }\n};\nfunction commonProps(isDisabled, isHovering) {\n return {\n 'aria-disabled': isDisabled || undefined,\n tabIndex: isDisabled ? undefined : isHovering ? 0 : -1\n };\n}\n\nexport { applyHOC, applyStatics, attachHandlerProps, batchedUpdates, commonProps, defineName, floatEqual, getName, getScrollAncestor, getTransition, isMenuOpen, parsePadding, safeCall, validateIndex, values };\n","import { useMemo } from 'react';\n\nvar useBEM = function useBEM(_ref) {\n var block = _ref.block,\n element = _ref.element,\n modifiers = _ref.modifiers,\n className = _ref.className;\n return useMemo(function () {\n var blockElement = element ? block + \"__\" + element : block;\n var classString = blockElement;\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(modifiers || {}); _i2 < _Object$keys2.length; _i2++) {\n var name = _Object$keys2[_i2];\n var value = modifiers[name];\n\n if (value) {\n classString += \" \" + blockElement + \"--\";\n classString += value === true ? name : name + \"-\" + value;\n }\n }\n\n var expandedClassName = typeof className === 'function' ? className(modifiers) : className;\n\n if (typeof expandedClassName === 'string') {\n expandedClassName = expandedClassName.trim();\n if (expandedClassName) classString += \" \" + expandedClassName;\n }\n\n return classString;\n }, [block, element, modifiers, className]);\n};\n\nexport { useBEM };\n","import { createContext } from 'react';\n\nvar menuContainerClass = 'szh-menu-container';\nvar menuClass = 'szh-menu';\nvar menuButtonClass = 'szh-menu-button';\nvar menuArrowClass = 'arrow';\nvar menuItemClass = 'item';\nvar menuDividerClass = 'divider';\nvar menuHeaderClass = 'header';\nvar menuGroupClass = 'group';\nvar subMenuClass = 'submenu';\nvar radioGroupClass = 'radio-group';\nvar initialHoverIndex = -1;\nvar HoverIndexContext = /*#__PURE__*/createContext(initialHoverIndex);\nvar MenuListItemContext = /*#__PURE__*/createContext({});\nvar MenuListContext = /*#__PURE__*/createContext({});\nvar EventHandlersContext = /*#__PURE__*/createContext({});\nvar RadioGroupContext = /*#__PURE__*/createContext({});\nvar SettingsContext = /*#__PURE__*/createContext({});\nvar ItemSettingsContext = /*#__PURE__*/createContext({});\nvar Keys = /*#__PURE__*/Object.freeze({\n ENTER: 'Enter',\n ESC: 'Escape',\n SPACE: ' ',\n HOME: 'Home',\n END: 'End',\n LEFT: 'ArrowLeft',\n RIGHT: 'ArrowRight',\n UP: 'ArrowUp',\n DOWN: 'ArrowDown'\n});\nvar HoverIndexActionTypes = /*#__PURE__*/Object.freeze({\n RESET: 'HOVER_RESET',\n SET: 'HOVER_SET',\n UNSET: 'HOVER_UNSET',\n INCREASE: 'HOVER_INCREASE',\n DECREASE: 'HOVER_DECREASE',\n FIRST: 'HOVER_FIRST',\n LAST: 'HOVER_LAST'\n});\nvar SubmenuActionTypes = /*#__PURE__*/Object.freeze({\n OPEN: 'SUBMENU_OPEN',\n CLOSE: 'SUBMENU_CLOSE'\n});\nvar CloseReason = /*#__PURE__*/Object.freeze({\n CLICK: 'click',\n CANCEL: 'cancel',\n BLUR: 'blur',\n SCROLL: 'scroll'\n});\nvar FocusPositions = /*#__PURE__*/Object.freeze({\n INITIAL: 'initial',\n FIRST: 'first',\n LAST: 'last'\n});\nvar MenuStateMap = /*#__PURE__*/Object.freeze({\n entering: 'opening',\n entered: 'open',\n exiting: 'closing',\n exited: 'closed'\n});\n\nexport { CloseReason, EventHandlersContext, FocusPositions, HoverIndexActionTypes, HoverIndexContext, ItemSettingsContext, Keys, MenuListContext, MenuListItemContext, MenuStateMap, RadioGroupContext, SettingsContext, SubmenuActionTypes, initialHoverIndex, menuArrowClass, menuButtonClass, menuClass, menuContainerClass, menuDividerClass, menuGroupClass, menuHeaderClass, menuItemClass, radioGroupClass, subMenuClass };\n","import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport { useMemo } from 'react';\n\nvar isObject = function isObject(obj) {\n return obj && typeof obj === 'object';\n};\n\nvar sanitiseKey = function sanitiseKey(key) {\n return key[0] === '$' ? key.slice(1) : key;\n};\n\nvar useFlatStyles = function useFlatStyles(styles, modifiers) {\n return useMemo(function () {\n if (typeof styles === 'function') return styles(modifiers);\n if (!isObject(styles)) return undefined;\n if (!modifiers) return styles;\n var style = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(styles); _i2 < _Object$keys2.length; _i2++) {\n var prop = _Object$keys2[_i2];\n var value = styles[prop];\n\n if (isObject(value)) {\n var modifierValue = modifiers[sanitiseKey(prop)];\n\n if (typeof modifierValue === 'string') {\n for (var _i4 = 0, _Object$keys4 = Object.keys(value); _i4 < _Object$keys4.length; _i4++) {\n var nestedProp = _Object$keys4[_i4];\n var nestedValue = value[nestedProp];\n\n if (isObject(nestedValue)) {\n if (sanitiseKey(nestedProp) === modifierValue) {\n style = _extends({}, style, nestedValue);\n }\n } else {\n style[nestedProp] = nestedValue;\n }\n }\n } else if (modifierValue) {\n style = _extends({}, style, value);\n }\n } else {\n style[prop] = value;\n }\n }\n\n return style;\n }, [styles, modifiers]);\n};\n\nexport { useFlatStyles };\n","import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport { oneOfType, string, func, object, bool, number, oneOf, exact } from 'prop-types';\n\nvar stylePropTypes = function stylePropTypes(name) {\n var _ref;\n\n return _ref = {}, _ref[name ? name + \"ClassName\" : 'className'] = oneOfType([string, func]), _ref[name ? name + \"Styles\" : 'styles'] = oneOfType([object, func]), _ref;\n};\nvar menuPropTypes = /*#__PURE__*/_extends({\n className: string\n}, /*#__PURE__*/stylePropTypes('menu'), /*#__PURE__*/stylePropTypes('arrow'), {\n arrow: bool,\n offsetX: number,\n offsetY: number,\n align: /*#__PURE__*/oneOf(['start', 'center', 'end']),\n direction: /*#__PURE__*/oneOf(['left', 'right', 'top', 'bottom']),\n position: /*#__PURE__*/oneOf(['auto', 'anchor', 'initial']),\n overflow: /*#__PURE__*/oneOf(['auto', 'visible', 'hidden'])\n});\nvar rootMenuPropTypes = /*#__PURE__*/_extends({}, menuPropTypes, {\n containerProps: object,\n initialMounted: bool,\n unmountOnClose: bool,\n transition: /*#__PURE__*/oneOfType([bool, /*#__PURE__*/exact({\n open: bool,\n close: bool,\n item: bool\n })]),\n transitionTimeout: number,\n boundingBoxRef: object,\n boundingBoxPadding: string,\n reposition: /*#__PURE__*/oneOf(['auto', 'initial']),\n repositionFlag: /*#__PURE__*/oneOfType([string, number]),\n viewScroll: /*#__PURE__*/oneOf(['auto', 'close', 'initial']),\n submenuOpenDelay: number,\n submenuCloseDelay: number,\n portal: bool,\n theming: string,\n onItemClick: func\n});\nvar uncontrolledMenuPropTypes = {\n instanceRef: /*#__PURE__*/oneOfType([object, func]),\n onMenuChange: func\n};\nvar menuDefaultProps = {\n offsetX: 0,\n offsetY: 0,\n align: 'start',\n direction: 'bottom',\n position: 'auto',\n overflow: 'visible'\n};\nvar rootMenuDefaultProps = /*#__PURE__*/_extends({}, menuDefaultProps, {\n reposition: 'auto',\n viewScroll: 'initial',\n transitionTimeout: 500,\n submenuOpenDelay: 300,\n submenuCloseDelay: 150\n});\n\nexport { menuDefaultProps, menuPropTypes, rootMenuDefaultProps, rootMenuPropTypes, stylePropTypes, uncontrolledMenuPropTypes };\n","import { Children, cloneElement } from 'react';\nimport { getName } from './utils.js';\n\nvar cloneChildren = function cloneChildren(children, startIndex, inRadioGroup) {\n if (startIndex === void 0) {\n startIndex = 0;\n }\n\n var index = startIndex;\n var descendOverflow = false;\n var items = Children.map(children, function (child) {\n if (child == null) return null;\n if (!child.type) return child;\n var name = getName(child.type);\n\n switch (name) {\n case 'MenuItem':\n {\n if (inRadioGroup) {\n var props = {\n type: 'radio'\n };\n if (!child.props.disabled) props.index = index++;\n return /*#__PURE__*/cloneElement(child, props);\n }\n }\n\n case 'SubMenu':\n case 'FocusableItem':\n return child.props.disabled ? child : /*#__PURE__*/cloneElement(child, {\n index: index++\n });\n\n default:\n {\n var innerChildren = child.props.children;\n if (innerChildren === null || typeof innerChildren !== 'object') return child;\n var desc = cloneChildren(innerChildren, index, inRadioGroup || name === 'MenuRadioGroup');\n index = desc.index;\n\n if (name === 'MenuGroup') {\n var takeOverflow = !!child.props.takeOverflow;\n var descOverflow = desc.descendOverflow;\n\n if (process.env.NODE_ENV !== 'production' && (descendOverflow === descOverflow ? descOverflow : takeOverflow)) {\n throw new Error('[React-Menu] Only one MenuGroup in a menu is allowed to have takeOverflow prop.');\n }\n\n descendOverflow = descendOverflow || descOverflow || takeOverflow;\n }\n\n return /*#__PURE__*/cloneElement(child, {\n children: desc.items\n });\n }\n }\n });\n return {\n items: items,\n index: index,\n descendOverflow: descendOverflow\n };\n};\n\nexport { cloneChildren };\n","import { parsePadding } from '../utils/utils.js';\n\nvar getPositionHelpers = function getPositionHelpers(_ref) {\n var menuRef = _ref.menuRef,\n containerRef = _ref.containerRef,\n scrollingRef = _ref.scrollingRef,\n boundingBoxPadding = _ref.boundingBoxPadding;\n var menuRect = menuRef.current.getBoundingClientRect();\n var containerRect = containerRef.current.getBoundingClientRect();\n var boundingRect = scrollingRef.current === window ? {\n left: 0,\n top: 0,\n right: document.documentElement.clientWidth,\n bottom: window.innerHeight\n } : scrollingRef.current.getBoundingClientRect();\n var padding = parsePadding(boundingBoxPadding);\n\n var getLeftOverflow = function getLeftOverflow(x) {\n return x + containerRect.left - boundingRect.left - padding.left;\n };\n\n var getRightOverflow = function getRightOverflow(x) {\n return x + containerRect.left + menuRect.width - boundingRect.right + padding.right;\n };\n\n var getTopOverflow = function getTopOverflow(y) {\n return y + containerRect.top - boundingRect.top - padding.top;\n };\n\n var getBottomOverflow = function getBottomOverflow(y) {\n return y + containerRect.top + menuRect.height - boundingRect.bottom + padding.bottom;\n };\n\n var confineHorizontally = function confineHorizontally(x) {\n var leftOverflow = getLeftOverflow(x);\n\n if (leftOverflow < 0) {\n x -= leftOverflow;\n } else {\n var rightOverflow = getRightOverflow(x);\n\n if (rightOverflow > 0) {\n x -= rightOverflow;\n leftOverflow = getLeftOverflow(x);\n if (leftOverflow < 0) x -= leftOverflow;\n }\n }\n\n return x;\n };\n\n var confineVertically = function confineVertically(y) {\n var topOverflow = getTopOverflow(y);\n\n if (topOverflow < 0) {\n y -= topOverflow;\n } else {\n var bottomOverflow = getBottomOverflow(y);\n\n if (bottomOverflow > 0) {\n y -= bottomOverflow;\n topOverflow = getTopOverflow(y);\n if (topOverflow < 0) y -= topOverflow;\n }\n }\n\n return y;\n };\n\n return {\n menuRect: menuRect,\n containerRect: containerRect,\n getLeftOverflow: getLeftOverflow,\n getRightOverflow: getRightOverflow,\n getTopOverflow: getTopOverflow,\n getBottomOverflow: getBottomOverflow,\n confineHorizontally: confineHorizontally,\n confineVertically: confineVertically\n };\n};\n\nexport { getPositionHelpers };\n","var positionContextMenu = function positionContextMenu(_ref) {\n var positionHelpers = _ref.positionHelpers,\n anchorPoint = _ref.anchorPoint;\n var menuRect = positionHelpers.menuRect,\n containerRect = positionHelpers.containerRect,\n getLeftOverflow = positionHelpers.getLeftOverflow,\n getRightOverflow = positionHelpers.getRightOverflow,\n getTopOverflow = positionHelpers.getTopOverflow,\n getBottomOverflow = positionHelpers.getBottomOverflow,\n confineHorizontally = positionHelpers.confineHorizontally,\n confineVertically = positionHelpers.confineVertically;\n var x, y;\n x = anchorPoint.x - containerRect.left;\n y = anchorPoint.y - containerRect.top;\n var rightOverflow = getRightOverflow(x);\n\n if (rightOverflow > 0) {\n var adjustedX = x - menuRect.width;\n var leftOverflow = getLeftOverflow(adjustedX);\n\n if (leftOverflow >= 0 || -leftOverflow < rightOverflow) {\n x = adjustedX;\n }\n\n x = confineHorizontally(x);\n }\n\n var computedDirection = 'bottom';\n var bottomOverflow = getBottomOverflow(y);\n\n if (bottomOverflow > 0) {\n var adjustedY = y - menuRect.height;\n var topOverflow = getTopOverflow(adjustedY);\n\n if (topOverflow >= 0 || -topOverflow < bottomOverflow) {\n y = adjustedY;\n computedDirection = 'top';\n }\n\n y = confineVertically(y);\n }\n\n return {\n x: x,\n y: y,\n computedDirection: computedDirection\n };\n};\n\nexport { positionContextMenu };\n","var placeArrowVertical = function placeArrowVertical(_ref) {\n var arrowRef = _ref.arrowRef,\n menuY = _ref.menuY,\n anchorRect = _ref.anchorRect,\n containerRect = _ref.containerRect,\n menuRect = _ref.menuRect;\n var y = anchorRect.top - containerRect.top - menuY + anchorRect.height / 2;\n var offset = arrowRef.current.offsetHeight * 1.25;\n y = Math.max(offset, y);\n y = Math.min(y, menuRect.height - offset);\n return y;\n};\n\nexport { placeArrowVertical };\n","import { placeArrowVertical } from './placeArrowVertical.js';\n\nvar placeLeftorRight = function placeLeftorRight(_ref) {\n var anchorRect = _ref.anchorRect,\n containerRect = _ref.containerRect,\n menuRect = _ref.menuRect,\n placeLeftorRightY = _ref.placeLeftorRightY,\n placeLeftX = _ref.placeLeftX,\n placeRightX = _ref.placeRightX,\n getLeftOverflow = _ref.getLeftOverflow,\n getRightOverflow = _ref.getRightOverflow,\n confineHorizontally = _ref.confineHorizontally,\n confineVertically = _ref.confineVertically,\n arrowRef = _ref.arrowRef,\n arrow = _ref.arrow,\n direction = _ref.direction,\n position = _ref.position;\n var computedDirection = direction;\n var y = placeLeftorRightY;\n\n if (position !== 'initial') {\n y = confineVertically(y);\n\n if (position === 'anchor') {\n y = Math.min(y, anchorRect.bottom - containerRect.top);\n y = Math.max(y, anchorRect.top - containerRect.top - menuRect.height);\n }\n }\n\n var x, leftOverflow, rightOverflow;\n\n if (computedDirection === 'left') {\n x = placeLeftX;\n\n if (position !== 'initial') {\n leftOverflow = getLeftOverflow(x);\n\n if (leftOverflow < 0) {\n rightOverflow = getRightOverflow(placeRightX);\n\n if (rightOverflow <= 0 || -leftOverflow > rightOverflow) {\n x = placeRightX;\n computedDirection = 'right';\n }\n }\n }\n } else {\n x = placeRightX;\n\n if (position !== 'initial') {\n rightOverflow = getRightOverflow(x);\n\n if (rightOverflow > 0) {\n leftOverflow = getLeftOverflow(placeLeftX);\n\n if (leftOverflow >= 0 || -leftOverflow < rightOverflow) {\n x = placeLeftX;\n computedDirection = 'left';\n }\n }\n }\n }\n\n if (position === 'auto') x = confineHorizontally(x);\n var arrowY = arrow ? placeArrowVertical({\n menuY: y,\n arrowRef: arrowRef,\n anchorRect: anchorRect,\n containerRect: containerRect,\n menuRect: menuRect\n }) : undefined;\n return {\n arrowY: arrowY,\n x: x,\n y: y,\n computedDirection: computedDirection\n };\n};\n\nexport { placeLeftorRight };\n","var placeArrowHorizontal = function placeArrowHorizontal(_ref) {\n var arrowRef = _ref.arrowRef,\n menuX = _ref.menuX,\n anchorRect = _ref.anchorRect,\n containerRect = _ref.containerRect,\n menuRect = _ref.menuRect;\n var x = anchorRect.left - containerRect.left - menuX + anchorRect.width / 2;\n var offset = arrowRef.current.offsetWidth * 1.25;\n x = Math.max(offset, x);\n x = Math.min(x, menuRect.width - offset);\n return x;\n};\n\nexport { placeArrowHorizontal };\n","import { placeArrowHorizontal } from './placeArrowHorizontal.js';\n\nvar placeToporBottom = function placeToporBottom(_ref) {\n var anchorRect = _ref.anchorRect,\n containerRect = _ref.containerRect,\n menuRect = _ref.menuRect,\n placeToporBottomX = _ref.placeToporBottomX,\n placeTopY = _ref.placeTopY,\n placeBottomY = _ref.placeBottomY,\n getTopOverflow = _ref.getTopOverflow,\n getBottomOverflow = _ref.getBottomOverflow,\n confineHorizontally = _ref.confineHorizontally,\n confineVertically = _ref.confineVertically,\n arrowRef = _ref.arrowRef,\n arrow = _ref.arrow,\n direction = _ref.direction,\n position = _ref.position;\n var computedDirection = direction === 'top' ? 'top' : 'bottom';\n var x = placeToporBottomX;\n\n if (position !== 'initial') {\n x = confineHorizontally(x);\n\n if (position === 'anchor') {\n x = Math.min(x, anchorRect.right - containerRect.left);\n x = Math.max(x, anchorRect.left - containerRect.left - menuRect.width);\n }\n }\n\n var y, topOverflow, bottomOverflow;\n\n if (computedDirection === 'top') {\n y = placeTopY;\n\n if (position !== 'initial') {\n topOverflow = getTopOverflow(y);\n\n if (topOverflow < 0) {\n bottomOverflow = getBottomOverflow(placeBottomY);\n\n if (bottomOverflow <= 0 || -topOverflow > bottomOverflow) {\n y = placeBottomY;\n computedDirection = 'bottom';\n }\n }\n }\n } else {\n y = placeBottomY;\n\n if (position !== 'initial') {\n bottomOverflow = getBottomOverflow(y);\n\n if (bottomOverflow > 0) {\n topOverflow = getTopOverflow(placeTopY);\n\n if (topOverflow >= 0 || -topOverflow < bottomOverflow) {\n y = placeTopY;\n computedDirection = 'top';\n }\n }\n }\n }\n\n if (position === 'auto') y = confineVertically(y);\n var arrowX = arrow ? placeArrowHorizontal({\n menuX: x,\n arrowRef: arrowRef,\n anchorRect: anchorRect,\n containerRect: containerRect,\n menuRect: menuRect\n }) : undefined;\n return {\n arrowX: arrowX,\n x: x,\n y: y,\n computedDirection: computedDirection\n };\n};\n\nexport { placeToporBottom };\n","import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport { placeLeftorRight } from './placeLeftorRight.js';\nimport { placeToporBottom } from './placeToporBottom.js';\n\nvar positionMenu = function positionMenu(_ref) {\n var arrow = _ref.arrow,\n align = _ref.align,\n direction = _ref.direction,\n offsetX = _ref.offsetX,\n offsetY = _ref.offsetY,\n position = _ref.position,\n anchorRef = _ref.anchorRef,\n arrowRef = _ref.arrowRef,\n positionHelpers = _ref.positionHelpers;\n var menuRect = positionHelpers.menuRect,\n containerRect = positionHelpers.containerRect;\n var horizontalOffset = offsetX;\n var verticalOffset = offsetY;\n\n if (arrow) {\n if (direction === 'left' || direction === 'right') {\n horizontalOffset += arrowRef.current.offsetWidth;\n } else {\n verticalOffset += arrowRef.current.offsetHeight;\n }\n }\n\n var anchorRect = anchorRef.current.getBoundingClientRect();\n var placeLeftX = anchorRect.left - containerRect.left - menuRect.width - horizontalOffset;\n var placeRightX = anchorRect.right - containerRect.left + horizontalOffset;\n var placeTopY = anchorRect.top - containerRect.top - menuRect.height - verticalOffset;\n var placeBottomY = anchorRect.bottom - containerRect.top + verticalOffset;\n var placeToporBottomX, placeLeftorRightY;\n\n if (align === 'end') {\n placeToporBottomX = anchorRect.right - containerRect.left - menuRect.width;\n placeLeftorRightY = anchorRect.bottom - containerRect.top - menuRect.height;\n } else if (align === 'center') {\n placeToporBottomX = anchorRect.left - containerRect.left - (menuRect.width - anchorRect.width) / 2;\n placeLeftorRightY = anchorRect.top - containerRect.top - (menuRect.height - anchorRect.height) / 2;\n } else {\n placeToporBottomX = anchorRect.left - containerRect.left;\n placeLeftorRightY = anchorRect.top - containerRect.top;\n }\n\n placeToporBottomX += horizontalOffset;\n placeLeftorRightY += verticalOffset;\n\n var options = _extends({}, positionHelpers, {\n anchorRect: anchorRect,\n placeLeftX: placeLeftX,\n placeRightX: placeRightX,\n placeLeftorRightY: placeLeftorRightY,\n placeTopY: placeTopY,\n placeBottomY: placeBottomY,\n placeToporBottomX: placeToporBottomX,\n arrowRef: arrowRef,\n arrow: arrow,\n direction: direction,\n position: position\n });\n\n switch (direction) {\n case 'left':\n case 'right':\n return placeLeftorRight(options);\n\n case 'top':\n case 'bottom':\n default:\n return placeToporBottom(options);\n }\n};\n\nexport { positionMenu };\n","import { useLayoutEffect, useEffect } from 'react';\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect as useLayoutEffect };\n","import { useMemo } from 'react';\n\nvar setRef = function setRef(ref, element) {\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n};\n\nvar useCombinedRef = function useCombinedRef(refA, refB) {\n return useMemo(function () {\n if (!refA) return refB;\n if (!refB) return refA;\n return function (element) {\n setRef(refA, element);\n setRef(refB, element);\n };\n }, [refA, refB]);\n};\n\nexport { useCombinedRef };\n","import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { useState, useContext, useRef, useMemo, useReducer, useCallback, useEffect } from 'react';\nimport { flushSync } from 'react-dom';\nimport { SettingsContext, MenuListContext, initialHoverIndex, HoverIndexActionTypes, MenuListItemContext, HoverIndexContext, Keys, menuClass, CloseReason, FocusPositions, menuArrowClass, SubmenuActionTypes } from '../utils/constants.js';\nimport { cloneChildren } from '../utils/cloneChildren.js';\nimport { getScrollAncestor, floatEqual, attachHandlerProps, commonProps, isMenuOpen, getTransition, safeCall, batchedUpdates } from '../utils/utils.js';\nimport { getPositionHelpers } from '../positionUtils/getPositionHelpers.js';\nimport { positionContextMenu } from '../positionUtils/positionContextMenu.js';\nimport { positionMenu } from '../positionUtils/positionMenu.js';\nimport { useLayoutEffect as useIsomorphicLayoutEffect } from '../hooks/useIsomorphicLayoutEffect.js';\nimport { useBEM } from '../hooks/useBEM.js';\nimport { useFlatStyles } from '../hooks/useFlatStyles.js';\nimport { useCombinedRef } from '../hooks/useCombinedRef.js';\n\nvar _excluded = [\"ariaLabel\", \"menuClassName\", \"menuStyles\", \"arrowClassName\", \"arrowStyles\", \"anchorPoint\", \"anchorRef\", \"containerRef\", \"externalRef\", \"parentScrollingRef\", \"arrow\", \"align\", \"direction\", \"position\", \"overflow\", \"repositionFlag\", \"captureFocus\", \"state\", \"endTransition\", \"isDisabled\", \"menuItemFocus\", \"offsetX\", \"offsetY\", \"children\", \"onClose\"];\nvar MenuList = function MenuList(_ref) {\n var ariaLabel = _ref.ariaLabel,\n menuClassName = _ref.menuClassName,\n menuStyles = _ref.menuStyles,\n arrowClassName = _ref.arrowClassName,\n arrowStyles = _ref.arrowStyles,\n anchorPoint = _ref.anchorPoint,\n anchorRef = _ref.anchorRef,\n containerRef = _ref.containerRef,\n externalRef = _ref.externalRef,\n parentScrollingRef = _ref.parentScrollingRef,\n arrow = _ref.arrow,\n align = _ref.align,\n direction = _ref.direction,\n position = _ref.position,\n overflow = _ref.overflow,\n repositionFlag = _ref.repositionFlag,\n _ref$captureFocus = _ref.captureFocus,\n captureFocus = _ref$captureFocus === void 0 ? true : _ref$captureFocus,\n state = _ref.state,\n endTransition = _ref.endTransition,\n isDisabled = _ref.isDisabled,\n menuItemFocus = _ref.menuItemFocus,\n offsetX = _ref.offsetX,\n offsetY = _ref.offsetY,\n children = _ref.children,\n onClose = _ref.onClose,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useState = useState({\n x: 0,\n y: 0\n }),\n menuPosition = _useState[0],\n setMenuPosition = _useState[1];\n\n var _useState2 = useState({}),\n arrowPosition = _useState2[0],\n setArrowPosition = _useState2[1];\n\n var _useState3 = useState(),\n overflowData = _useState3[0],\n setOverflowData = _useState3[1];\n\n var _useState4 = useState(direction),\n expandedDirection = _useState4[0],\n setExpandedDirection = _useState4[1];\n\n var _useContext = useContext(SettingsContext),\n transition = _useContext.transition,\n boundingBoxRef = _useContext.boundingBoxRef,\n boundingBoxPadding = _useContext.boundingBoxPadding,\n rootMenuRef = _useContext.rootMenuRef,\n rootAnchorRef = _useContext.rootAnchorRef,\n scrollingRef = _useContext.scrollingRef,\n anchorScrollingRef = _useContext.anchorScrollingRef,\n reposition = _useContext.reposition,\n viewScroll = _useContext.viewScroll;\n\n var reposFlag = useContext(MenuListContext).reposSubmenu || repositionFlag;\n var menuRef = useRef(null);\n var arrowRef = useRef(null);\n var prevOpen = useRef(false);\n var latestMenuSize = useRef({\n width: 0,\n height: 0\n });\n var latestHandlePosition = useRef(function () {});\n var isOpen = isMenuOpen(state);\n var openTransition = getTransition(transition, 'open');\n var closeTransition = getTransition(transition, 'close');\n\n var _useMemo = useMemo(function () {\n return cloneChildren(children);\n }, [children]),\n menuItems = _useMemo.items,\n menuItemsCount = _useMemo.index,\n descendOverflow = _useMemo.descendOverflow;\n\n var reducer = function reducer(_ref2, action) {\n var hoverIndex = _ref2.hoverIndex,\n openSubmenuCount = _ref2.openSubmenuCount;\n return {\n hoverIndex: hoverIndexReducer(hoverIndex, action, menuItemsCount),\n openSubmenuCount: submenuCountReducer(openSubmenuCount, action)\n };\n };\n\n var _useReducer = useReducer(reducer, {\n hoverIndex: initialHoverIndex,\n openSubmenuCount: 0\n }),\n _useReducer$ = _useReducer[0],\n hoverIndex = _useReducer$.hoverIndex,\n openSubmenuCount = _useReducer$.openSubmenuCount,\n dispatch = _useReducer[1];\n\n var _useReducer2 = useReducer(function (c) {\n return c + 1;\n }, 1),\n reposSubmenu = _useReducer2[0],\n forceReposSubmenu = _useReducer2[1];\n\n var handleKeyDown = function handleKeyDown(e) {\n var handled = false;\n\n switch (e.key) {\n case Keys.HOME:\n dispatch({\n type: HoverIndexActionTypes.FIRST\n });\n handled = true;\n break;\n\n case Keys.END:\n dispatch({\n type: HoverIndexActionTypes.LAST\n });\n handled = true;\n break;\n\n case Keys.UP:\n dispatch({\n type: HoverIndexActionTypes.DECREASE\n });\n handled = true;\n break;\n\n case Keys.DOWN:\n dispatch({\n type: HoverIndexActionTypes.INCREASE\n });\n handled = true;\n break;\n\n case Keys.SPACE:\n if (e.target && e.target.className.indexOf(menuClass) !== -1) {\n e.preventDefault();\n }\n\n break;\n }\n\n if (handled) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n var handleAnimationEnd = function handleAnimationEnd() {\n if (state === 'closing') {\n setOverflowData();\n }\n\n safeCall(endTransition);\n };\n\n var handlePosition = useCallback(function () {\n if (!containerRef.current) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('[React-Menu] Menu cannot be positioned properly as container ref is null. If you initialise isOpen prop to true for ControlledMenu, please see this link for a solution: https://github.com/szhsin/react-menu/issues/2#issuecomment-719166062');\n }\n\n return;\n }\n\n if (!scrollingRef.current) {\n scrollingRef.current = boundingBoxRef ? boundingBoxRef.current : getScrollAncestor(rootMenuRef.current);\n }\n\n var positionHelpers = getPositionHelpers({\n menuRef: menuRef,\n containerRef: containerRef,\n scrollingRef: scrollingRef,\n boundingBoxPadding: boundingBoxPadding\n });\n var menuRect = positionHelpers.menuRect;\n var results = {\n computedDirection: 'bottom'\n };\n\n if (anchorPoint) {\n results = positionContextMenu({\n positionHelpers: positionHelpers,\n anchorPoint: anchorPoint\n });\n } else if (anchorRef) {\n results = positionMenu({\n arrow: arrow,\n align: align,\n direction: direction,\n offsetX: offsetX,\n offsetY: offsetY,\n position: position,\n anchorRef: anchorRef,\n arrowRef: arrowRef,\n positionHelpers: positionHelpers\n });\n }\n\n var _results = results,\n arrowX = _results.arrowX,\n arrowY = _results.arrowY,\n x = _results.x,\n y = _results.y,\n computedDirection = _results.computedDirection;\n var menuHeight = menuRect.height;\n\n if (overflow !== 'visible') {\n var getTopOverflow = positionHelpers.getTopOverflow,\n getBottomOverflow = positionHelpers.getBottomOverflow;\n\n var height, _overflowAmt;\n\n var prevHeight = latestMenuSize.current.height;\n var bottomOverflow = getBottomOverflow(y);\n\n if (bottomOverflow > 0 || floatEqual(bottomOverflow, 0) && floatEqual(menuHeight, prevHeight)) {\n height = menuHeight - bottomOverflow;\n _overflowAmt = bottomOverflow;\n } else {\n var topOverflow = getTopOverflow(y);\n\n if (topOverflow < 0 || floatEqual(topOverflow, 0) && floatEqual(menuHeight, prevHeight)) {\n height = menuHeight + topOverflow;\n _overflowAmt = 0 - topOverflow;\n if (height >= 0) y -= topOverflow;\n }\n }\n\n if (height >= 0) {\n menuHeight = height;\n setOverflowData({\n height: height,\n overflowAmt: _overflowAmt\n });\n } else {\n setOverflowData();\n }\n }\n\n if (arrow) setArrowPosition({\n x: arrowX,\n y: arrowY\n });\n setMenuPosition({\n x: x,\n y: y\n });\n setExpandedDirection(computedDirection);\n latestMenuSize.current = {\n width: menuRect.width,\n height: menuHeight\n };\n }, [arrow, align, boundingBoxPadding, direction, offsetX, offsetY, position, overflow, anchorPoint, anchorRef, containerRef, boundingBoxRef, rootMenuRef, scrollingRef]);\n useIsomorphicLayoutEffect(function () {\n if (isOpen) {\n handlePosition();\n if (prevOpen.current) forceReposSubmenu();\n }\n\n prevOpen.current = isOpen;\n latestHandlePosition.current = handlePosition;\n }, [isOpen, handlePosition, reposFlag]);\n useIsomorphicLayoutEffect(function () {\n if (overflowData && !descendOverflow) menuRef.current.scrollTop = 0;\n }, [overflowData, descendOverflow]);\n useEffect(function () {\n if (!isOpen) return;\n\n if (!anchorScrollingRef.current && rootAnchorRef && rootAnchorRef.current.tagName) {\n anchorScrollingRef.current = getScrollAncestor(rootAnchorRef.current);\n }\n\n var scrollCurrent = scrollingRef.current;\n var menuScroll = scrollCurrent && scrollCurrent.addEventListener ? scrollCurrent : window;\n var anchorScroll = anchorScrollingRef.current || menuScroll;\n var scroll = viewScroll;\n if (anchorScroll !== menuScroll && scroll === 'initial') scroll = 'auto';\n if (scroll === 'initial') return;\n if (scroll === 'auto' && overflow !== 'visible') scroll = 'close';\n\n var handleScroll = function handleScroll() {\n if (scroll === 'auto') {\n batchedUpdates(handlePosition);\n } else {\n safeCall(onClose, {\n reason: CloseReason.SCROLL\n });\n }\n };\n\n var scrollObservers = anchorScroll !== menuScroll && viewScroll !== 'initial' ? [anchorScroll, menuScroll] : [anchorScroll];\n scrollObservers.forEach(function (o) {\n return o.addEventListener('scroll', handleScroll);\n });\n return function () {\n return scrollObservers.forEach(function (o) {\n return o.removeEventListener('scroll', handleScroll);\n });\n };\n }, [rootAnchorRef, anchorScrollingRef, scrollingRef, isOpen, overflow, onClose, viewScroll, handlePosition]);\n var hasOverflow = !!overflowData && overflowData.overflowAmt > 0;\n useEffect(function () {\n if (hasOverflow || !isOpen || !parentScrollingRef) return;\n\n var handleScroll = function handleScroll() {\n return batchedUpdates(handlePosition);\n };\n\n var parentScroll = parentScrollingRef.current;\n parentScroll.addEventListener('scroll', handleScroll);\n return function () {\n return parentScroll.removeEventListener('scroll', handleScroll);\n };\n }, [isOpen, hasOverflow, parentScrollingRef, handlePosition]);\n useEffect(function () {\n if (typeof ResizeObserver !== 'function' || reposition === 'initial') return;\n var resizeObserver = new ResizeObserver(function (_ref3) {\n var entry = _ref3[0];\n var borderBoxSize = entry.borderBoxSize,\n target = entry.target;\n var width, height;\n\n if (borderBoxSize) {\n var _ref4 = borderBoxSize[0] || borderBoxSize,\n inlineSize = _ref4.inlineSize,\n blockSize = _ref4.blockSize;\n\n width = inlineSize;\n height = blockSize;\n } else {\n var borderRect = target.getBoundingClientRect();\n width = borderRect.width;\n height = borderRect.height;\n }\n\n if (width === 0 || height === 0) return;\n if (floatEqual(width, latestMenuSize.current.width, 1) && floatEqual(height, latestMenuSize.current.height, 1)) return;\n flushSync(function () {\n latestHandlePosition.current();\n forceReposSubmenu();\n });\n });\n var observeTarget = menuRef.current;\n resizeObserver.observe(observeTarget, {\n box: 'border-box'\n });\n return function () {\n return resizeObserver.unobserve(observeTarget);\n };\n }, [reposition]);\n useEffect(function () {\n if (!isOpen) {\n dispatch({\n type: HoverIndexActionTypes.RESET\n });\n if (!closeTransition) setOverflowData();\n return;\n }\n\n var _ref5 = menuItemFocus || {},\n position = _ref5.position,\n alwaysUpdate = _ref5.alwaysUpdate;\n\n var setItemFocus = function setItemFocus() {\n if (position === FocusPositions.FIRST) {\n dispatch({\n type: HoverIndexActionTypes.FIRST\n });\n } else if (position === FocusPositions.LAST) {\n dispatch({\n type: HoverIndexActionTypes.LAST\n });\n } else if (position >= 0 && position < menuItemsCount) {\n dispatch({\n type: HoverIndexActionTypes.SET,\n index: position\n });\n }\n };\n\n if (alwaysUpdate) {\n setItemFocus();\n } else if (captureFocus) {\n var id = setTimeout(function () {\n if (menuRef.current && !menuRef.current.contains(document.activeElement)) {\n menuRef.current.focus();\n setItemFocus();\n }\n }, openTransition ? 170 : 100);\n return function () {\n return clearTimeout(id);\n };\n }\n }, [openTransition, closeTransition, captureFocus, isOpen, menuItemFocus, menuItemsCount]);\n var isSubmenuOpen = openSubmenuCount > 0;\n var itemContext = useMemo(function () {\n return {\n parentMenuRef: menuRef,\n parentOverflow: overflow,\n isParentOpen: isOpen,\n isSubmenuOpen: isSubmenuOpen,\n dispatch: dispatch\n };\n }, [isOpen, isSubmenuOpen, overflow]);\n var maxHeight, overflowAmt;\n\n if (overflowData) {\n descendOverflow ? overflowAmt = overflowData.overflowAmt : maxHeight = overflowData.height;\n }\n\n var listContext = useMemo(function () {\n return {\n reposSubmenu: reposSubmenu,\n overflow: overflow,\n overflowAmt: overflowAmt\n };\n }, [reposSubmenu, overflow, overflowAmt]);\n var overflowStyles = maxHeight >= 0 ? {\n maxHeight: maxHeight,\n overflow: overflow\n } : undefined;\n var modifiers = useMemo(function () {\n return {\n state: state,\n dir: expandedDirection\n };\n }, [state, expandedDirection]);\n var arrowModifiers = useMemo(function () {\n return Object.freeze({\n dir: expandedDirection\n });\n }, [expandedDirection]);\n\n var _arrowClass = useBEM({\n block: menuClass,\n element: menuArrowClass,\n modifiers: arrowModifiers,\n className: arrowClassName\n });\n\n var _arrowStyles = useFlatStyles(arrowStyles, arrowModifiers);\n\n var handlers = attachHandlerProps({\n onKeyDown: handleKeyDown,\n onAnimationEnd: handleAnimationEnd\n }, restProps);\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n role: \"menu\",\n \"aria-label\": ariaLabel\n }, commonProps(isDisabled), restProps, handlers, {\n ref: useCombinedRef(externalRef, menuRef),\n className: useBEM({\n block: menuClass,\n modifiers: modifiers,\n className: menuClassName\n }),\n style: _extends({}, useFlatStyles(menuStyles, modifiers), overflowStyles, {\n left: menuPosition.x,\n top: menuPosition.y\n })\n }), arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: _arrowClass,\n style: _extends({}, _arrowStyles, {\n left: arrowPosition.x,\n top: arrowPosition.y\n }),\n ref: arrowRef\n }), /*#__PURE__*/React.createElement(MenuListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(MenuListItemContext.Provider, {\n value: itemContext\n }, /*#__PURE__*/React.createElement(HoverIndexContext.Provider, {\n value: hoverIndex\n }, menuItems))));\n};\n\nfunction hoverIndexReducer(state, _ref6, menuItemsCount) {\n var type = _ref6.type,\n index = _ref6.index;\n\n switch (type) {\n case HoverIndexActionTypes.RESET:\n return initialHoverIndex;\n\n case HoverIndexActionTypes.SET:\n return index;\n\n case HoverIndexActionTypes.UNSET:\n return state === index ? initialHoverIndex : state;\n\n case HoverIndexActionTypes.DECREASE:\n {\n var i = state;\n i--;\n if (i < 0) i = menuItemsCount - 1;\n return i;\n }\n\n case HoverIndexActionTypes.INCREASE:\n {\n var _i = state;\n _i++;\n if (_i >= menuItemsCount) _i = 0;\n return _i;\n }\n\n case HoverIndexActionTypes.FIRST:\n return menuItemsCount > 0 ? 0 : initialHoverIndex;\n\n case HoverIndexActionTypes.LAST:\n return menuItemsCount > 0 ? menuItemsCount - 1 : initialHoverIndex;\n\n default:\n return state;\n }\n}\n\nfunction submenuCountReducer(state, _ref7) {\n var type = _ref7.type;\n\n switch (type) {\n case SubmenuActionTypes.OPEN:\n return state + 1;\n\n case SubmenuActionTypes.CLOSE:\n return Math.max(state - 1, 0);\n\n default:\n return state;\n }\n}\n\nexport { MenuList };\n","import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { forwardRef, useRef, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport { oneOf, exact, number, object, bool, oneOfType, string, func } from 'prop-types';\nimport { MenuList } from './MenuList.js';\nimport { useBEM } from '../hooks/useBEM.js';\nimport { CloseReason, menuContainerClass, SettingsContext, ItemSettingsContext, EventHandlersContext, MenuStateMap, Keys } from '../utils/constants.js';\nimport { rootMenuPropTypes, rootMenuDefaultProps } from '../utils/propTypes.js';\nimport { safeCall, attachHandlerProps, values, getTransition, isMenuOpen } from '../utils/utils.js';\n\nvar _excluded = [\"aria-label\", \"className\", \"containerProps\", \"initialMounted\", \"unmountOnClose\", \"transition\", \"transitionTimeout\", \"boundingBoxRef\", \"boundingBoxPadding\", \"reposition\", \"submenuOpenDelay\", \"submenuCloseDelay\", \"skipOpen\", \"viewScroll\", \"portal\", \"theming\", \"onItemClick\", \"onClose\"];\nvar ControlledMenu = /*#__PURE__*/forwardRef(function ControlledMenu(_ref, externalRef) {\n var ariaLabel = _ref['aria-label'],\n className = _ref.className,\n containerProps = _ref.containerProps,\n initialMounted = _ref.initialMounted,\n unmountOnClose = _ref.unmountOnClose,\n transition = _ref.transition,\n transitionTimeout = _ref.transitionTimeout,\n boundingBoxRef = _ref.boundingBoxRef,\n boundingBoxPadding = _ref.boundingBoxPadding,\n reposition = _ref.reposition,\n submenuOpenDelay = _ref.submenuOpenDelay,\n submenuCloseDelay = _ref.submenuCloseDelay,\n skipOpen = _ref.skipOpen,\n viewScroll = _ref.viewScroll,\n portal = _ref.portal,\n theming = _ref.theming,\n onItemClick = _ref.onItemClick,\n onClose = _ref.onClose,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var containerRef = useRef(null);\n var scrollingRef = useRef(null);\n var anchorScrollingRef = useRef(null);\n var anchorRef = restProps.anchorRef,\n state = restProps.state;\n var settings = useMemo(function () {\n return {\n initialMounted: initialMounted,\n unmountOnClose: unmountOnClose,\n transition: transition,\n transitionTimeout: transitionTimeout,\n boundingBoxRef: boundingBoxRef,\n boundingBoxPadding: boundingBoxPadding,\n rootMenuRef: containerRef,\n rootAnchorRef: anchorRef,\n scrollingRef: scrollingRef,\n anchorScrollingRef: anchorScrollingRef,\n reposition: reposition,\n viewScroll: viewScroll\n };\n }, [initialMounted, unmountOnClose, transition, transitionTimeout, anchorRef, boundingBoxRef, boundingBoxPadding, reposition, viewScroll]);\n var itemSettings = useMemo(function () {\n return {\n submenuOpenDelay: submenuOpenDelay,\n submenuCloseDelay: submenuCloseDelay\n };\n }, [submenuOpenDelay, submenuCloseDelay]);\n var eventHandlers = useMemo(function () {\n return {\n handleClick: function handleClick(event, isCheckorRadio) {\n if (!event.stopPropagation) safeCall(onItemClick, event);\n var keepOpen = event.keepOpen;\n\n if (keepOpen === undefined) {\n keepOpen = isCheckorRadio && event.key === Keys.SPACE;\n }\n\n if (!keepOpen) {\n safeCall(onClose, {\n value: event.value,\n key: event.key,\n reason: CloseReason.CLICK\n });\n }\n },\n handleClose: function handleClose(key) {\n safeCall(onClose, {\n key: key,\n reason: CloseReason.CLICK\n });\n }\n };\n }, [onItemClick, onClose]);\n\n var handleKeyDown = function handleKeyDown(_ref2) {\n var key = _ref2.key;\n\n switch (key) {\n case Keys.ESC:\n safeCall(onClose, {\n key: key,\n reason: CloseReason.CANCEL\n });\n break;\n }\n };\n\n var handleBlur = function handleBlur(e) {\n if (isMenuOpen(state) && !e.currentTarget.contains(e.relatedTarget || document.activeElement)) {\n safeCall(onClose, {\n reason: CloseReason.BLUR\n });\n\n if (skipOpen) {\n skipOpen.current = true;\n setTimeout(function () {\n return skipOpen.current = false;\n }, 300);\n }\n }\n };\n\n var itemTransition = getTransition(transition, 'item');\n var modifiers = useMemo(function () {\n return {\n theme: theming,\n itemTransition: itemTransition\n };\n }, [theming, itemTransition]);\n var handlers = attachHandlerProps({\n onKeyDown: handleKeyDown,\n onBlur: handleBlur\n }, containerProps);\n var menuList = /*#__PURE__*/React.createElement(\"div\", _extends({}, containerProps, handlers, {\n className: useBEM({\n block: menuContainerClass,\n modifiers: modifiers,\n className: className\n }),\n ref: containerRef\n }), state && /*#__PURE__*/React.createElement(SettingsContext.Provider, {\n value: settings\n }, /*#__PURE__*/React.createElement(ItemSettingsContext.Provider, {\n value: itemSettings\n }, /*#__PURE__*/React.createElement(EventHandlersContext.Provider, {\n value: eventHandlers\n }, /*#__PURE__*/React.createElement(MenuList, _extends({}, restProps, {\n ariaLabel: ariaLabel || 'Menu',\n externalRef: externalRef,\n containerRef: containerRef,\n onClose: onClose\n }))))));\n\n if (portal) {\n return /*#__PURE__*/createPortal(menuList, document.body);\n } else {\n return menuList;\n }\n});\nprocess.env.NODE_ENV !== \"production\" ? ControlledMenu.propTypes = /*#__PURE__*/_extends({}, rootMenuPropTypes, {\n state: /*#__PURE__*/oneOf( /*#__PURE__*/values(MenuStateMap)),\n anchorPoint: /*#__PURE__*/exact({\n x: number,\n y: number\n }),\n anchorRef: object,\n skipOpen: object,\n captureFocus: bool,\n menuItemFocus: /*#__PURE__*/exact({\n position: /*#__PURE__*/oneOfType([string, number]),\n alwaysUpdate: bool\n }),\n onClose: func\n}) : void 0;\nControlledMenu.defaultProps = /*#__PURE__*/_extends({}, rootMenuDefaultProps, {\n menuItemFocus: {}\n});\n\nexport { ControlledMenu };\n","import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { forwardRef, useContext } from 'react';\nimport { HoverIndexContext } from './constants.js';\nimport { defineName } from './utils.js';\n\nvar withHovering = function withHovering(WrapppedComponent, name) {\n var WithHovering = defineName( /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(WrapppedComponent, _extends({}, props, {\n externalRef: ref,\n isHovering: useContext(HoverIndexContext) === props.index\n }));\n }), name);\n WithHovering.displayName = \"WithHovering(\" + name + \")\";\n return WithHovering;\n};\n\nexport { withHovering };\n","import { useState } from 'react';\nimport { Keys } from '../utils/constants.js';\n\nvar useActiveState = function useActiveState(isHovering, isDisabled, moreKeys) {\n var _useState = useState(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var activeKeys = [Keys.ENTER, Keys.SPACE].concat(moreKeys);\n\n var cancelActive = function cancelActive() {\n return active && setActive(false);\n };\n\n return {\n isActive: active,\n onPointerDown: function onPointerDown() {\n if (!isDisabled) setActive(true);\n },\n onPointerUp: cancelActive,\n onPointerLeave: cancelActive,\n onKeyDown: function onKeyDown(e) {\n if (!active && isHovering && !isDisabled && activeKeys.indexOf(e.key) !== -1) {\n setActive(true);\n }\n },\n onKeyUp: function onKeyUp(e) {\n if (activeKeys.indexOf(e.key) !== -1) {\n setActive(false);\n }\n },\n onBlur: function onBlur(e) {\n if (active && !e.currentTarget.contains(e.relatedTarget)) {\n setActive(false);\n }\n }\n };\n};\n\nexport { useActiveState };\n","import { useContext, useRef, useEffect } from 'react';\nimport { ItemSettingsContext, MenuListItemContext, HoverIndexActionTypes } from '../utils/constants.js';\n\nvar useItemState = function useItemState(ref, index, isHovering, isDisabled) {\n var _useContext = useContext(ItemSettingsContext),\n submenuCloseDelay = _useContext.submenuCloseDelay;\n\n var _useContext2 = useContext(MenuListItemContext),\n isParentOpen = _useContext2.isParentOpen,\n isSubmenuOpen = _useContext2.isSubmenuOpen,\n dispatch = _useContext2.dispatch;\n\n var timeoutId = useRef(0);\n\n var setHover = function setHover() {\n if (!isHovering && !isDisabled) dispatch({\n type: HoverIndexActionTypes.SET,\n index: index\n });\n };\n\n var onBlur = function onBlur(e) {\n if (isHovering && !e.currentTarget.contains(e.relatedTarget)) {\n dispatch({\n type: HoverIndexActionTypes.UNSET,\n index: index\n });\n }\n };\n\n var onMouseMove = function onMouseMove() {\n if (isSubmenuOpen) {\n if (!timeoutId.current) timeoutId.current = setTimeout(function () {\n timeoutId.current = 0;\n setHover();\n }, submenuCloseDelay);\n } else {\n setHover();\n }\n };\n\n var onMouseLeave = function onMouseLeave(_, keepHover) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n\n if (!keepHover) dispatch({\n type: HoverIndexActionTypes.UNSET,\n index: index\n });\n };\n\n useEffect(function () {\n return function () {\n return clearTimeout(timeoutId.current);\n };\n }, []);\n useEffect(function () {\n if (isHovering && isParentOpen) {\n ref.current && ref.current.focus();\n }\n }, [ref, isHovering, isParentOpen]);\n return {\n setHover: setHover,\n onBlur: onBlur,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave\n };\n};\n\nexport { useItemState };\n","import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { memo, useRef, useContext, useMemo } from 'react';\nimport { any, string, oneOf, bool, oneOfType, node, func } from 'prop-types';\nimport { withHovering } from '../utils/withHovering.js';\nimport { useItemState } from '../hooks/useItemState.js';\nimport { EventHandlersContext, RadioGroupContext, menuClass, menuItemClass, Keys } from '../utils/constants.js';\nimport { useActiveState } from '../hooks/useActiveState.js';\nimport { useCombinedRef } from '../hooks/useCombinedRef.js';\nimport { useBEM } from '../hooks/useBEM.js';\nimport { useFlatStyles } from '../hooks/useFlatStyles.js';\nimport { validateIndex, attachHandlerProps, commonProps, safeCall } from '../utils/utils.js';\nimport { stylePropTypes } from '../utils/propTypes.js';\n\nvar _excluded = [\"className\", \"styles\", \"value\", \"href\", \"type\", \"checked\", \"disabled\", \"index\", \"children\", \"onClick\", \"isHovering\", \"externalRef\"],\n _excluded2 = [\"isActive\", \"onKeyUp\", \"onBlur\"];\nvar MenuItem = /*#__PURE__*/withHovering( /*#__PURE__*/memo(function MenuItem(_ref) {\n var className = _ref.className,\n styles = _ref.styles,\n value = _ref.value,\n href = _ref.href,\n type = _ref.type,\n checked = _ref.checked,\n disabled = _ref.disabled,\n index = _ref.index,\n children = _ref.children,\n onClick = _ref.onClick,\n isHovering = _ref.isHovering,\n externalRef = _ref.externalRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var isDisabled = !!disabled;\n validateIndex(index, isDisabled, children);\n var ref = useRef();\n\n var _useItemState = useItemState(ref, index, isHovering, isDisabled),\n setHover = _useItemState.setHover,\n onBlur = _useItemState.onBlur,\n onMouseMove = _useItemState.onMouseMove,\n onMouseLeave = _useItemState.onMouseLeave;\n\n var eventHandlers = useContext(EventHandlersContext);\n var radioGroup = useContext(RadioGroupContext);\n\n var _useActiveState = useActiveState(isHovering, isDisabled),\n isActive = _useActiveState.isActive,\n onKeyUp = _useActiveState.onKeyUp,\n activeStateBlur = _useActiveState.onBlur,\n activeStateHandlers = _objectWithoutPropertiesLoose(_useActiveState, _excluded2);\n\n var isRadio = type === 'radio';\n var isCheckBox = type === 'checkbox';\n var isAnchor = !!href && !isDisabled && !isRadio && !isCheckBox;\n var isChecked = isRadio ? radioGroup.value === value : isCheckBox ? !!checked : false;\n\n var handleClick = function handleClick(e) {\n if (isDisabled) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n var event = {\n value: value,\n syntheticEvent: e\n };\n if (e.key !== undefined) event.key = e.key;\n if (isCheckBox) event.checked = !isChecked;\n if (isRadio) event.name = radioGroup.name;\n safeCall(onClick, event);\n if (isRadio) safeCall(radioGroup.onRadioChange, event);\n eventHandlers.handleClick(event, isCheckBox || isRadio);\n };\n\n var handleKeyUp = function handleKeyUp(e) {\n if (!isActive) return;\n onKeyUp(e);\n\n switch (e.key) {\n case Keys.ENTER:\n case Keys.SPACE:\n if (isAnchor) {\n ref.current.click();\n } else {\n handleClick(e);\n }\n\n break;\n }\n };\n\n var handleBlur = function handleBlur(e) {\n activeStateBlur(e);\n onBlur(e);\n };\n\n var modifiers = useMemo(function () {\n return Object.freeze({\n type: type,\n disabled: isDisabled,\n hover: isHovering,\n active: isActive,\n checked: isChecked,\n anchor: isAnchor\n });\n }, [type, isDisabled, isHovering, isActive, isChecked, isAnchor]);\n var handlers = attachHandlerProps(_extends({}, activeStateHandlers, {\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onMouseDown: setHover,\n onKeyUp: handleKeyUp,\n onBlur: handleBlur,\n onClick: handleClick\n }), restProps);\n\n var menuItemProps = _extends({\n role: isRadio ? 'menuitemradio' : isCheckBox ? 'menuitemcheckbox' : 'menuitem',\n 'aria-checked': isRadio || isCheckBox ? isChecked : undefined\n }, commonProps(isDisabled, isHovering), restProps, handlers, {\n ref: useCombinedRef(externalRef, ref),\n className: useBEM({\n block: menuClass,\n element: menuItemClass,\n modifiers: modifiers,\n className: className\n }),\n style: useFlatStyles(styles, modifiers)\n });\n\n var renderChildren = useMemo(function () {\n return safeCall(children, modifiers);\n }, [children, modifiers]);\n\n if (isAnchor) {\n return /*#__PURE__*/React.createElement(\"li\", {\n role: \"presentation\"\n }, /*#__PURE__*/React.createElement(\"a\", _extends({}, menuItemProps, {\n href: href\n }), renderChildren));\n } else {\n return /*#__PURE__*/React.createElement(\"li\", menuItemProps, renderChildren);\n }\n}), 'MenuItem');\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.propTypes = /*#__PURE__*/_extends({}, /*#__PURE__*/stylePropTypes(), {\n value: any,\n href: string,\n type: /*#__PURE__*/oneOf(['checkbox', 'radio']),\n checked: bool,\n disabled: bool,\n children: /*#__PURE__*/oneOfType([node, func]),\n onClick: func\n}) : void 0;\n\nexport { MenuItem };\n","import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { memo, useRef, useContext, useMemo } from 'react';\nimport { bool, func } from 'prop-types';\nimport { withHovering } from '../utils/withHovering.js';\nimport { useItemState } from '../hooks/useItemState.js';\nimport { useBEM } from '../hooks/useBEM.js';\nimport { useFlatStyles } from '../hooks/useFlatStyles.js';\nimport { validateIndex, safeCall, attachHandlerProps, commonProps } from '../utils/utils.js';\nimport { EventHandlersContext, menuClass, menuItemClass } from '../utils/constants.js';\nimport { stylePropTypes } from '../utils/propTypes.js';\n\nvar _excluded = [\"className\", \"styles\", \"disabled\", \"index\", \"children\", \"isHovering\", \"externalRef\"];\nvar FocusableItem = /*#__PURE__*/withHovering( /*#__PURE__*/memo(function FocusableItem(_ref) {\n var className = _ref.className,\n styles = _ref.styles,\n disabled = _ref.disabled,\n index = _ref.index,\n children = _ref.children,\n isHovering = _ref.isHovering,\n externalRef = _ref.externalRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var isDisabled = !!disabled;\n validateIndex(index, isDisabled, children);\n var ref = useRef(null);\n\n var _useItemState = useItemState(ref, index, isHovering, isDisabled),\n setHover = _useItemState.setHover,\n onBlur = _useItemState.onBlur,\n onMouseMove = _useItemState.onMouseMove,\n _onMouseLeave = _useItemState.onMouseLeave;\n\n var _useContext = useContext(EventHandlersContext),\n handleClose = _useContext.handleClose;\n\n var modifiers = useMemo(function () {\n return Object.freeze({\n disabled: isDisabled,\n hover: isHovering,\n focusable: true\n });\n }, [isDisabled, isHovering]);\n var renderChildren = useMemo(function () {\n return safeCall(children, _extends({}, modifiers, {\n ref: ref,\n closeMenu: handleClose\n }));\n }, [children, modifiers, handleClose]);\n var handlers = attachHandlerProps({\n onMouseMove: onMouseMove,\n onMouseLeave: function onMouseLeave(e) {\n return _onMouseLeave(e, true);\n },\n onFocus: setHover,\n onBlur: onBlur\n }, restProps);\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"menuitem\"\n }, commonProps(isDisabled), restProps, handlers, {\n ref: externalRef,\n className: useBEM({\n block: menuClass,\n element: menuItemClass,\n modifiers: modifiers,\n className: className\n }),\n style: useFlatStyles(styles, modifiers)\n }), renderChildren);\n}), 'FocusableItem');\nprocess.env.NODE_ENV !== \"production\" ? FocusableItem.propTypes = /*#__PURE__*/_extends({}, /*#__PURE__*/stylePropTypes(), {\n disabled: bool,\n children: func\n}) : void 0;\n\nexport { FocusableItem };\n","import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport React, { memo, forwardRef } from 'react';\nimport { useBEM } from '../hooks/useBEM.js';\nimport { menuClass, menuDividerClass } from '../utils/constants.js';\nimport { useFlatStyles } from '../hooks/useFlatStyles.js';\nimport { stylePropTypes } from '../utils/propTypes.js';\n\nvar _excluded = [\"className\", \"styles\"];\nvar MenuDivider = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function MenuDivider(_ref, externalRef) {\n var className = _ref.className,\n styles = _ref.styles,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"separator\"\n }, restProps, {\n ref: externalRef,\n className: useBEM({\n block: menuClass,\n element: menuDividerClass,\n className: className\n }),\n style: useFlatStyles(styles)\n }));\n}));\nprocess.env.NODE_ENV !== \"production\" ? MenuDivider.propTypes = /*#__PURE__*/_extends({}, /*#__PURE__*/stylePropTypes()) : void 0;\n\nexport { MenuDivider };\n","import { ICellEditorParams } from \"ag-grid-community\";\nimport { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { ControlledMenu } from \"@szhsin/react-menu\";\nimport { GridFormProps } from \"./GridCell\";\nimport { hasParentClass } from \"@utils/util\";\nimport { GridBaseRow } from \"./Grid\";\nimport { isEmpty } from \"lodash-es\";\n\nexport const useGridPopoverHook = <RowType extends GridBaseRow>(\n props: GridFormProps<RowType>,\n save?: (selectedRows: any[]) => Promise<boolean>,\n) => {\n const { cellEditorParams, saving, updateValue } = props;\n const { eGridCell } = cellEditorParams as ICellEditorParams;\n const { stopEditing } = useContext(GridContext);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const anchorRef = useRef(eGridCell);\n anchorRef.current = eGridCell;\n const [isOpen, setOpen] = useState(false);\n\n useEffect(() => {\n setOpen(true);\n }, []);\n\n const triggerSave = useCallback(\n async (reason?: string) => {\n if (reason == \"cancel\" || !save || (await updateValue(save))) {\n setOpen(false);\n stopEditing();\n }\n },\n [save, stopEditing, updateValue],\n );\n\n const clickIsWithinMenu = useCallback((ev: MouseEvent) => {\n return hasParentClass(\"szh-menu--state-open\", ev.target as Node);\n }, []);\n\n const handleScreenMouseDown = useCallback(\n (ev: MouseEvent) => {\n if (!clickIsWithinMenu(ev)) {\n ev.preventDefault();\n ev.stopPropagation();\n // There's an issue in React17\n // the cell doesn't refresh during update if save is invoked from a native event\n // This doesn't happen in React18\n // To work around it, I invoke the save by clicking on an invisible button in the dropdown\n saveButtonRef.current?.click();\n }\n },\n [clickIsWithinMenu],\n );\n\n const handleScreenMouseEvent = useCallback(\n (ev: MouseEvent) => {\n if (!clickIsWithinMenu(ev)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n },\n [clickIsWithinMenu],\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleScreenMouseDown, true);\n document.addEventListener(\"mouseup\", handleScreenMouseEvent, true);\n document.addEventListener(\"click\", handleScreenMouseEvent, true);\n document.addEventListener(\"dblclick\", handleScreenMouseEvent, true);\n return () => {\n document.removeEventListener(\"mousedown\", handleScreenMouseDown, true);\n document.removeEventListener(\"mouseup\", handleScreenMouseEvent, true);\n document.removeEventListener(\"click\", handleScreenMouseEvent, true);\n document.removeEventListener(\"dblclick\", handleScreenMouseEvent, true);\n };\n }\n return () => {};\n }, [handleScreenMouseDown, handleScreenMouseEvent, isOpen]);\n\n const popoverWrapper = useCallback(\n (children: JSX.Element) => {\n return (\n <>\n {anchorRef.current && (\n <ControlledMenu\n state={isOpen ? \"open\" : \"closed\"}\n portal={isEmpty(document.querySelectorAll(\".PopoutWindowContainer\"))}\n unmountOnClose={true}\n anchorRef={anchorRef}\n menuClassName={\"lui-menu\"}\n onClose={(event) => triggerSave(event.reason).then()}\n >\n {saving && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"rgba(64,64,64,0.1)\",\n zIndex: 1000,\n }}\n />\n )}\n {children}\n <button ref={saveButtonRef} onClick={() => triggerSave().then()} style={{ display: \"none\" }} />\n </ControlledMenu>\n )}\n </>\n );\n },\n [isOpen, saving, triggerSave],\n );\n\n return {\n popoverWrapper,\n triggerSave,\n };\n};\n","import { ICellRendererParams } from \"ag-grid-community\";\nimport { useContext } from \"react\";\nimport { UpdatingContext } from \"../../contexts/UpdatingContext\";\nimport { GridLoadableCell } from \"../GridLoadableCell\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport const GridRenderPopoutMenuCell = (props: ICellRendererParams) => {\n const { checkUpdating } = useContext(UpdatingContext);\n const isLoading = checkUpdating(props.colDef?.field ?? \"\", props.data.id);\n const disabled = !props.colDef?.editable;\n\n return (\n <GridLoadableCell isLoading={isLoading}>\n <LuiIcon\n name={\"ic_more_vert\"}\n alt={\"More actions\"}\n size={\"md\"}\n className={disabled ? `GridPopoutMenu-burgerDisabled` : `GridPopoutMenu-burger`}\n />\n </GridLoadableCell>\n );\n};\n","import \"@szhsin/react-menu/dist/index.css\";\n\nimport { MenuItem, MenuDivider, FocusableItem } from \"@szhsin/react-menu\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { delay } from \"lodash-es\";\nimport { LuiCheckboxInput } from \"@linzjs/lui\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\ninterface FinalSelectOption<ValueType> {\n value: ValueType;\n label?: JSX.Element | string;\n subComponent?: (props: any, ref: any) => any;\n}\n\nexport const MenuSeparatorString = \"_____MENU_SEPARATOR_____\";\nexport const MenuSeparator = Object.freeze({ value: MenuSeparatorString });\n\nexport type SelectOption<ValueType> = ValueType | FinalSelectOption<ValueType>;\n\nexport interface MultiSelectResult<RowType> {\n selectedRows: RowType[];\n values: Record<string, any>;\n}\n\nexport interface GridFormMultiSelectProps<RowType extends GridBaseRow, ValueType>\n extends GenericCellEditorParams<RowType> {\n filtered?: boolean;\n filterPlaceholder?: string;\n onSave?: (props: MultiSelectResult<RowType>) => Promise<boolean>;\n options:\n | SelectOption<ValueType>[]\n | ((selectedRows: RowType[]) => Promise<SelectOption<ValueType>[]> | SelectOption<ValueType>[]);\n}\n\nexport const GridFormMultiSelect = <RowType extends GridBaseRow, ValueType>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormMultiSelectProps<RowType, ValueType>;\n\n const [filter, setFilter] = useState(\"\");\n const [filteredValues, setFilteredValues] = useState<any[]>([]);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<FinalSelectOption<ValueType>[]>();\n const subSelectedValues = useRef<Record<string, any>>({});\n const [selectedValues, setSelectedValues] = useState<any[]>([]);\n\n const save = useCallback(\n async (selectedRows: RowType[]): Promise<boolean> => {\n const values: Record<string, any> = {};\n selectedValues.forEach((value) => {\n values[value] = subSelectedValues.current[value] ?? true;\n });\n if (formProps.onSave) {\n return await formProps.onSave({ selectedRows, values: selectedValues });\n }\n return true;\n },\n [formProps, selectedValues],\n );\n const { popoverWrapper } = useGridPopoverHook(props, save);\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n let optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n optionsConf = await optionsConf(props.selectedRows);\n }\n\n const optionsList = optionsConf?.map((item) => {\n if (item == null || typeof item == \"string\" || typeof item == \"number\") {\n item = { value: item as ValueType, label: item } as FinalSelectOption<ValueType>;\n }\n return item;\n }) as any as FinalSelectOption<ValueType>[];\n\n if (formProps.filtered) {\n // This is needed otherwise when filter input is rendered and sets autofocus\n // the mouse up of the double click edit triggers the cell to cancel editing\n delay(() => setOptions(optionsList), 100);\n } else {\n setOptions(optionsList);\n }\n optionsInitialising.current = false;\n })();\n }, [formProps.filtered, formProps.options, options, props.selectedRows]);\n\n useEffect(() => {\n if (!formProps.filtered || options == null) return;\n setFilteredValues(\n options\n .map((option) => {\n if (option.label != null && typeof option.label !== \"string\") {\n console.error(\"Cannot filter non-string labels\", option);\n return undefined;\n }\n const str = (option.label as string) || \"\";\n return str.toLowerCase().indexOf(filter) === -1 ? option.value : undefined;\n })\n .filter((r) => r !== undefined),\n );\n }, [formProps.filtered, filter, options]);\n\n return popoverWrapper(\n <ComponentLoadingWrapper loading={!options}>\n <div className={\"Grid-popoverContainerList\"}>\n {options && formProps.filtered && (\n <>\n <FocusableItem className={\"filter-item\"}>\n {({ ref }: any) => (\n <div style={{ display: \"flex\", width: \"100%\" }}>\n <input\n autoFocus\n className={\"free-text-input\"}\n style={{ border: \"0px\" }}\n ref={ref}\n type=\"text\"\n placeholder={formProps.filterPlaceholder ?? \"Placeholder\"}\n data-testid={\"filteredMenu-free-text-input\"}\n defaultValue={\"\"}\n onChange={(e) => setFilter(e.target.value.toLowerCase())}\n />\n </div>\n )}\n </FocusableItem>\n <MenuDivider key={`$$divider_filter`} />\n </>\n )}\n {options?.map((item, index) =>\n item.value === MenuSeparatorString ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : filteredValues.includes(item.value) ? null : (\n <>\n <MenuItem\n key={`${item.value}`}\n onClick={(e) => {\n e.keepOpen = true;\n // onSelectMenuOption(itemIndex, e.value);\n return false;\n }}\n >\n <LuiCheckboxInput\n isChecked={selectedValues.includes(item.value)}\n value={`${item.value}`}\n label={item.label ?? (item.value == null ? `<${item.value}>` : `${item.value}`)}\n onChange={(e) => {\n if (e.target.checked) {\n setSelectedValues([...selectedValues, item.value as string]);\n } else {\n setSelectedValues(selectedValues.filter((value) => value != item.value));\n }\n }}\n />\n </MenuItem>\n {selectedValues.includes(item.value) && item.subComponent && (\n <FocusableItem className={\"LuiDeprecatedForms\"} key={`${item.value}_subcomponent`}>\n {(ref) =>\n item.subComponent &&\n item.subComponent(\n {\n setValue: (value: any) => {\n subSelectedValues.current[item.value as string] = value;\n },\n },\n ref,\n )\n }\n </FocusableItem>\n )}\n </>\n ),\n )}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridFormMultiSelect, GridFormMultiSelectProps } from \"../gridForm/GridFormMultiSelect\";\n\nexport const GridPopoutEditMultiSelect = <RowType extends GridBaseRow, ValueType>(\n colDef: GenericCellColDef<RowType, GridFormMultiSelectProps<RowType, ValueType>>,\n) =>\n GridCell<RowType, GridFormMultiSelectProps<RowType, ValueType>>({\n initialWidth: 65,\n maxWidth: 150,\n cellClass: colDef.cellEditor?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormMultiSelect,\n },\n }),\n });\n","import { GridBaseRow } from \"../Grid\";\nimport { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { MenuDivider, MenuItem } from \"@szhsin/react-menu\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormPopoutMenuProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n options: (selectedRows: RowType[]) => Promise<MenuOption<RowType>[]>;\n}\n\n/** Menu configuration types **/\nexport const MenuSeparator = Object.freeze({ __isMenuSeparator__: true });\n\ninterface MenuSeparatorType {\n __isMenuSeparator__: boolean;\n}\n\nexport interface MenuOption<RowType> {\n label: JSX.Element | string | MenuSeparatorType;\n action?: (selectedRows: RowType[]) => Promise<boolean>;\n disabled?: string | boolean;\n supportsMultiEdit: boolean;\n}\n\n/**\n * NOTE: If the popout menu doesn't appear on single click when also selecting row it's because\n * you need a useMemo around your columnDefs\n */\nexport const GridFormPopoutMenu = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormPopoutMenuProps<RowType>;\n\n const { updatingCells } = useContext(GridContext);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<MenuOption<RowType>[]>();\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n const optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n setOptions(await optionsConf(props.selectedRows));\n } else {\n setOptions(optionsConf);\n }\n\n optionsInitialising.current = false;\n })();\n }, [options, formProps.options, props.selectedRows]);\n\n const actionClick = useCallback(\n async (menuOption: MenuOption<any>) => {\n return await updatingCells({ selectedRows: props.selectedRows, field: props.field }, async (selectedRows) => {\n menuOption.action && (await menuOption.action(selectedRows));\n return true;\n });\n },\n [props.field, props.selectedRows, updatingCells],\n );\n\n const selectedRowCount = props.selectedRows.length;\n\n const filteredOptions = options?.filter((menuOption) => {\n return menuOption.label === MenuSeparator || selectedRowCount === 1 || menuOption.supportsMultiEdit;\n });\n\n const { popoverWrapper } = useGridPopoverHook(props);\n return popoverWrapper(\n <ComponentLoadingWrapper loading={!filteredOptions}>\n <div className={\"Grid-popoverContainerList\"}>\n {options?.map((item, index) =>\n item.label === MenuSeparator ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : (\n <MenuItem\n key={`${item.label}`}\n onClick={() => actionClick(item)}\n disabled={!!item.disabled || !filteredOptions?.includes(item)}\n title={item.disabled && typeof item.disabled !== \"boolean\" ? item.disabled : \"\"}\n >\n {item.label as JSX.Element | string}\n </MenuItem>\n ),\n )}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import \"./GridPopoverMenu.scss\";\nimport \"@szhsin/react-menu/dist/index.css\";\n\nimport { ColDef } from \"ag-grid-community\";\nimport { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridCell } from \"../GridCell\";\nimport { GridFormPopoutMenu, GridFormPopoutMenuProps } from \"../gridForm/GridFormPopoutMenu\";\nimport { GridRenderPopoutMenuCell } from \"../gridRender/GridRenderPopoutMenuCell\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\n\n/**\n * Popout burger menu\n */\nexport const GridPopoverMenu = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormPopoutMenuProps<RowType>>,\n): ColDef =>\n GridCell<RowType, GridFormPopoutMenuProps<RowType>>({\n maxWidth: 64,\n editable: colDef.editable != null ? colDef.editable : true,\n cellRenderer: GridRenderPopoutMenuCell,\n cellClass: colDef?.cellEditorParams?.multiEdit !== false ? GenericMultiEditCellClass : undefined,\n ...colDef,\n cellRendererParams: {\n // Menus open on single click, this parameter is picked up in Grid.tsx\n singleClickEdit: true,\n },\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n multiEdit: true,\n ...colDef.cellEditorParams,\n form: GridFormPopoutMenu,\n },\n }),\n });\n","import { ValueFormatterParams } from \"ag-grid-community/dist/lib/entities/colDef\";\n\nexport const bearingValueFormatter = (params: ValueFormatterParams): string => {\n const value = params.value;\n if (value == null) {\n return \"-\";\n }\n return convertDDToDMS(value, false, false);\n};\n\nexport const bearingCorrectionValueFormatter = (params: ValueFormatterParams): string => {\n const value = params.value;\n if (value == null) {\n return \"-\";\n }\n if (typeof value === \"string\") {\n return convertDDToDMS(bearingNumberParser(value), true, true);\n }\n return convertDDToDMS(value, true, true);\n};\n\nexport const bearingNumberParser = (value: string): number | null => {\n if (value === \"\") return null;\n return parseFloat(value);\n};\n\nconst validMaskForDmsBearing = /^((-)?\\d+)?(\\.([0-5](\\d([0-5](\\d(\\d+)?)?)?)?)?)?$/;\nexport const bearingStringValidator = (\n value: string,\n customValidate?: (value: number | null) => string | null,\n): string | null => {\n value = value.trim();\n if (value === \"\") return null;\n const match = value.match(validMaskForDmsBearing);\n if (!match) return \"Bearing must be a positive number in D.MMSSS format\";\n const decimalPart = match[4];\n if (decimalPart != null && decimalPart.length > 5) {\n return \"Bearing has a maximum of 5 decimal places\";\n }\n\n const bearing = parseFloat(value);\n\n return customValidate ? customValidate(bearing) : null;\n};\n\n// Decimal-ish degrees to Degrees Minutes Seconds converter\nexport const convertDDToDMS = (dd: number | null, showPositiveSymbol = true, addTrailingZeros = true): string => {\n if (dd == null) return \"–\";\n\n if (dd === 0) addTrailingZeros = false;\n\n // toFixed rounds parts up greater than 60, which has to be corrected below\n const [bearingWholeString, bearingDecimalString] = dd.toFixed(5).split(\".\");\n\n let bearingWhole = Math.abs(parseInt(bearingWholeString));\n let minNumeric = parseInt(bearingDecimalString?.substring(0, 2));\n let secNumeric = parseInt(bearingDecimalString?.substring(2, 4));\n\n // If the toFixed caused rounding beyond 60 minutes/seconds then apply the carry\n if (secNumeric >= 60) {\n minNumeric++;\n secNumeric -= 60;\n }\n if (minNumeric >= 60) {\n bearingWhole++;\n minNumeric -= 60;\n }\n if (bearingWhole >= 360) {\n bearingWhole -= 360;\n }\n\n const minString = minNumeric.toString().padStart(2, \"0\");\n const secString = secNumeric.toString().padStart(2, \"0\");\n const deciSecString = bearingDecimalString?.substring(4, 5);\n\n let dmsString = `${showPositiveSymbol && dd > 0 ? \"+\" : \"\"}${dd < 0 ? \"-\" : \"\"}${bearingWhole}°`;\n if (addTrailingZeros || deciSecString != \"0\") {\n dmsString += `\\xa0${minString}'\\xa0${secString}.${deciSecString}\"`; // \"\\xa0\" is here for non-breaking space\n } else if (secNumeric != 0) {\n dmsString += `\\xa0${minString}'\\xa0${secString}\"`;\n } else {\n dmsString += `\\xa0${minString}'`;\n }\n\n return dmsString;\n};\n","import \"./TextInputFormatted.scss\";\n\nimport { ChangeEventHandler, DetailedHTMLProps, InputHTMLAttributes } from \"react\";\n\nimport clsx from \"clsx\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport interface LuiTextInputProps {\n onChange?: ChangeEventHandler<HTMLInputElement>;\n inputProps?: DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;\n error?: string | boolean | null;\n warning?: string | boolean | null;\n\n className?: string;\n value: string;\n\n icon?: JSX.Element;\n placeholder?: string;\n formatted: string;\n}\n\nexport const TextInputFormatted = (props: LuiTextInputProps): JSX.Element => {\n return (\n <div\n className={clsx(\n \"LuiTextInput Grid-popoverContainer\",\n props.error && \"hasError\",\n props.warning && \"hasWarning\",\n props.className,\n )}\n >\n <span className=\"LuiTextInput-inputWrapper\">\n <input\n type={\"text\"}\n className={\"LuiTextInput-input\"}\n min=\"0\"\n value={props.value}\n onChange={props.onChange}\n {...props.inputProps}\n />\n <span className={\"LuiTextInput-formatted\"}>{props.formatted}</span>\n {props.icon}\n </span>\n\n {props.error && (\n <span className=\"LuiTextInput-error\">\n <LuiIcon alt=\"error\" name=\"ic_error\" className=\"LuiTextInput-error-icon\" size=\"sm\" status=\"error\" />\n {props.error}\n </span>\n )}\n\n {props.warning && (\n <span className=\"LuiTextInput-warning\">\n <LuiIcon alt=\"warning\" name=\"ic_warning\" className=\"LuiTextInput-warning-icon\" size=\"sm\" status=\"warning\" />\n {props.warning}\n </span>\n )}\n </div>\n );\n};\n","import \"./GridFormEditBearing.scss\";\n\nimport { useCallback, useState } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { TextInputFormatted } from \"../../lui/TextInputFormatted\";\nimport { bearingNumberParser, bearingStringValidator, convertDDToDMS } from \"@utils/bearing\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormEditBearingProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeHolder: string;\n range?: (value: number | null) => string | null;\n onSave?: (selectedRows: RowType[], value: number | null) => Promise<boolean>;\n}\n\nexport const GridFormEditBearing = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormEditBearingProps<RowType>;\n const [value, setValue] = useState<string>(`${props.value ?? \"\"}`);\n\n const save = useCallback(\n async (selectedRows: RowType[]): Promise<boolean> => {\n if (bearingStringValidator(value)) return false;\n const parsedValue = bearingNumberParser(value);\n // Value didn't change so don't save just cancel\n if (parsedValue === props.value) {\n return true;\n }\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, parsedValue);\n } else {\n const field = props.field;\n if (field == null) {\n console.error(\"field is not defined in ColDef\");\n } else {\n selectedRows.forEach((row) => ((row as Record<string, any>)[field] = parsedValue));\n }\n }\n return true;\n },\n [formProps, props.field, props.value, value],\n );\n const { popoverWrapper, triggerSave } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div className={\"GridFormEditBearing-input Grid-popoverContainer\"}>\n <TextInputFormatted\n value={value ?? \"\"}\n onChange={(e) => {\n setValue(e.target.value.trim());\n }}\n inputProps={{\n autoFocus: true,\n placeholder: formProps.placeHolder,\n disabled: false,\n maxLength: 16,\n onKeyDown: async (e) => e.key === \"Enter\" && triggerSave().then(),\n }}\n formatted={bearingStringValidator(value) ? \"?\" : convertDDToDMS(bearingNumberParser(value))}\n error={bearingStringValidator(value, formProps.range)}\n />\n </div>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { bearingCorrectionValueFormatter, bearingValueFormatter } from \"@utils/bearing\";\nimport { GridCell } from \"../GridCell\";\nimport { GridFormEditBearing, GridFormEditBearingProps } from \"../gridForm/GridFormEditBearing\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport const GridPopoverEditBearingLike = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) =>\n GridCell<RowType, GridFormEditBearingProps<RowType>>({\n initialWidth: 65,\n maxWidth: 150,\n valueFormatter: bearingValueFormatter,\n cellClass: colDef.cellEditorParams?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormEditBearing,\n },\n }),\n });\n\nexport const GridPopoverEditBearing = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) => ({\n ...GridPopoverEditBearingLike(colDef),\n valueFormatter: bearingValueFormatter,\n range: (value: number | null) => {\n if (value === null) return \"Bearing is required\";\n if (value >= 360) return \"Bearing must be less than 360 degrees\";\n if (value < 0) return \"Bearing must not be negative\";\n return null;\n },\n});\n\nexport const GridPopoverEditBearingCorrection = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) => ({\n ...GridPopoverEditBearingLike(colDef),\n valueFormatter: bearingCorrectionValueFormatter,\n range: (value: number | null) => {\n if (value === null) return \"Bearing is required\";\n if (value >= 360) return \"Bearing must be less than 360 degrees\";\n if (value <= -180) return \"Bearing must be greater then -180 degrees\";\n return null;\n },\n});\n","import \"@szhsin/react-menu/dist/index.css\";\n\nimport { MenuItem, MenuDivider, FocusableItem } from \"@szhsin/react-menu\";\nimport { useCallback, useContext, useEffect, useRef, useState, KeyboardEvent } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { delay } from \"lodash-es\";\nimport debounce from \"debounce-promise\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridPopoutEditDropDownSelectedItem<RowType, ValueType> {\n selectedRows: RowType[];\n value: ValueType;\n}\n\ninterface FinalSelectOption<ValueType> {\n value: ValueType;\n label?: JSX.Element | string;\n disabled?: boolean | string;\n}\n\nexport const MenuSeparatorString = \"_____MENU_SEPARATOR_____\";\nexport const MenuSeparator = Object.freeze({ value: MenuSeparatorString });\n\nexport type SelectOption<ValueType> = ValueType | FinalSelectOption<ValueType>;\n\nexport interface GridFormPopoutDropDownProps<RowType extends GridBaseRow, ValueType>\n extends GenericCellEditorParams<RowType> {\n filtered?: \"local\" | \"reload\";\n filterPlaceholder?: string;\n onSelectedItem?: (props: GridPopoutEditDropDownSelectedItem<RowType, ValueType>) => Promise<void>;\n options:\n | SelectOption<ValueType>[]\n | ((selectedRows: RowType[], filter?: string) => Promise<SelectOption<ValueType>[]> | SelectOption<ValueType>[]);\n optionsRequestCancel?: () => void;\n}\n\nexport const GridFormDropDown = <RowType extends GridBaseRow, ValueType>(props: GridFormProps<RowType>) => {\n const { popoverWrapper } = useGridPopoverHook(props);\n const formProps = props.formProps as GridFormPopoutDropDownProps<RowType, ValueType>;\n\n const { updatingCells, stopEditing } = useContext(GridContext);\n\n const [filter, setFilter] = useState(\"\");\n const [filteredValues, setFilteredValues] = useState<any[]>([]);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<FinalSelectOption<ValueType>[] | null>(null);\n\n const selectItemHandler = useCallback(\n async (value: ValueType): Promise<boolean> => {\n const field = props.field;\n return await updatingCells({ selectedRows: props.selectedRows, field }, async (selectedRows) => {\n const hasChanged = selectedRows.some((row) => row[field as keyof RowType] !== value);\n if (hasChanged) {\n if (formProps.onSelectedItem) {\n await formProps.onSelectedItem({ selectedRows, value });\n } else {\n selectedRows.forEach((row) => (row[field as keyof RowType] = value));\n }\n }\n return true;\n });\n },\n [formProps, props.field, props.selectedRows, updatingCells],\n );\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n let optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n optionsConf = await optionsConf(props.selectedRows, filter);\n }\n\n const optionsList = optionsConf?.map((item) => {\n if (item == null || typeof item == \"string\" || typeof item == \"number\") {\n item = { value: item as ValueType, label: item, disabled: false } as FinalSelectOption<ValueType>;\n }\n return item;\n }) as any as FinalSelectOption<ValueType>[];\n\n if (formProps.filtered) {\n // This is needed otherwise when filter input is rendered and sets autofocus\n // the mouse up of the double click edit triggers the cell to cancel editing\n delay(() => setOptions(optionsList), 100);\n } else {\n setOptions(optionsList);\n }\n optionsInitialising.current = false;\n })();\n }, [filter, options, formProps.filtered, formProps.options, props.selectedRows]);\n\n // Local filtering\n useEffect(() => {\n if (formProps.filtered == \"local\") {\n if (options == null) return;\n setFilteredValues(\n options\n .map((option) => {\n if (option.label != null && typeof option.label !== \"string\") {\n console.error(\"Cannot filter non-string labels\", option);\n return undefined;\n }\n const str = (option.label as string) || \"\";\n return str.toLowerCase().indexOf(filter) === -1 ? option.value : undefined;\n })\n .filter((r) => r !== undefined),\n );\n }\n }, [formProps.filtered, filter, options]);\n\n const researchOnFilterChange = debounce(\n useCallback(() => {\n setOptions(null);\n }, []),\n 500,\n );\n\n const previousFilter = useRef<string>(filter);\n\n // Reload filtering\n useEffect(() => {\n if (previousFilter.current != filter && formProps.filtered == \"reload\") {\n previousFilter.current = filter;\n formProps.optionsRequestCancel && formProps.optionsRequestCancel();\n researchOnFilterChange().then();\n }\n }, [filter, formProps, props, researchOnFilterChange]);\n\n const onFilterKeyDown = useCallback(\n async (e: KeyboardEvent) => {\n if (!options) return;\n if (e.key == \"Enter\" || e.key == \"Tab\") {\n const activeOptions = options.filter((option) => !filteredValues.includes(option.value));\n if (activeOptions.length == 1) {\n await selectItemHandler(activeOptions[0].value);\n stopEditing();\n } else {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n },\n [filteredValues, options, selectItemHandler, stopEditing],\n );\n\n return popoverWrapper(\n <>\n {formProps.filtered && (\n <>\n <FocusableItem className={\"filter-item\"} index={-1}>\n {({ ref }: any) => (\n <div style={{ display: \"flex\", width: \"100%\" }}>\n <input\n autoFocus\n className={\"free-text-input\"}\n style={{ border: \"0px\" }}\n ref={ref}\n type=\"text\"\n placeholder={formProps.filterPlaceholder ?? \"Placeholder\"}\n data-testid={\"filteredMenu-free-text-input\"}\n defaultValue={filter}\n onChange={(e) => setFilter(e.target.value.toLowerCase())}\n onKeyDown={(e) => onFilterKeyDown(e)}\n />\n </div>\n )}\n </FocusableItem>\n <MenuDivider key={`$$divider_filter`} />\n </>\n )}\n <ComponentLoadingWrapper loading={!options}>\n <>\n {options && options.length == filteredValues?.length && <MenuItem>[Empty]</MenuItem>}\n {options?.map((item, index) =>\n item.value === MenuSeparatorString ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : filteredValues.includes(item.value) ? null : (\n <MenuItem\n key={`${props.field}-${index}`}\n disabled={!!item.disabled}\n title={item.disabled && typeof item.disabled !== \"boolean\" ? item.disabled : \"\"}\n value={item.value}\n onClick={() => selectItemHandler(item.value)}\n >\n {item.label ?? (item.value == null ? `<${item.value}>` : `${item.value}`)}\n </MenuItem>\n ),\n )}\n </>\n </ComponentLoadingWrapper>\n </>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridFormDropDown, GridFormPopoutDropDownProps } from \"../gridForm/GridFormDropDown\";\n\nexport const GridPopoverEditDropDown = <RowType extends GridBaseRow, ValueType>(\n colDef: GenericCellColDef<RowType, GridFormPopoutDropDownProps<RowType, ValueType>>,\n) =>\n GridCell<RowType, GridFormPopoutDropDownProps<RowType, ValueType>>({\n initialWidth: 65,\n maxWidth: 150,\n cellClass: colDef.cellEditor?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormDropDown,\n },\n }),\n });\n","import { useEffect, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { ICellEditorParams } from \"ag-grid-community\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { GridBaseRow } from \"../Grid\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormMessageProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n message: (\n selectedRows: RowType[],\n cellEditorParams: ICellEditorParams,\n ) => Promise<string | JSX.Element> | string | JSX.Element;\n}\n\nexport const GridFormMessage = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormMessageProps<RowType>;\n\n const [message, setMessage] = useState<string | JSX.Element | null>(null);\n const { popoverWrapper } = useGridPopoverHook(props);\n\n useEffect(() => {\n (async () => {\n setMessage(await formProps.message(props.selectedRows, props.cellEditorParams));\n })().then();\n }, [formProps, props.selectedRows, props]);\n\n return popoverWrapper(\n <ComponentLoadingWrapper loading={message === null}>\n <div style={{ maxWidth: 400 }} className={\"Grid-popoverContainer\"}>\n {message}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridFormMessage, GridFormMessageProps } from \"../gridForm/GridFormMessage\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\n\nexport const GridPopoverMessage = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormMessageProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormMessageProps<RowType>>({\n maxWidth: 140,\n ...colDef,\n cellRendererParams: colDef.cellRendererParams ?? {\n singleClickEdit: true,\n },\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormMessage,\n },\n }),\n });\n};\n","import { ChangeEventHandler, InputHTMLAttributes, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { LuiIcon } from \"@linzjs/lui\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport const useGenerateOrDefaultId = (idFromProps?: string) => {\n const [id] = useState(idFromProps ? idFromProps : uuidv4());\n return id;\n};\n\nexport interface LuiTextAreaInputProps {\n label?: JSX.Element | string;\n mandatory?: boolean;\n inputProps?: InputHTMLAttributes<HTMLTextAreaElement>;\n onChange?: ChangeEventHandler<HTMLTextAreaElement>;\n value: string;\n error?: string | boolean | null;\n}\n\nexport const TextAreaInput = (props: LuiTextAreaInputProps) => {\n const id = useGenerateOrDefaultId(props.inputProps?.id);\n\n return (\n <div\n className={clsx(\n \"LuiTextAreaInput Grid-popoverContainer\",\n props.inputProps?.disabled ? \"isDisabled\" : \"\",\n props?.error ? \"hasError\" : \"\",\n )}\n >\n <label htmlFor={id}>\n {props.mandatory && <span className=\"LuiTextAreaInput-mandatory\">*</span>}\n {props.label && <span className=\"LuiTextAreaInput-label\">{props.label}</span>}\n <div className=\"LuiTextAreaInput-wrapper\">\n {\" \"}\n {/* wrapper div used for error styling */}\n <textarea id={id} value={props.value} onChange={props.onChange} rows={5} {...props.inputProps} />\n </div>\n </label>\n\n {/* Error message */}\n {props.error && (\n <span className=\"LuiTextAreaInput-error\">\n <LuiIcon alt=\"error\" name=\"ic_error\" className=\"LuiTextAreaInput-error-icon\" size=\"sm\" status=\"error\" />\n {props.error}\n </span>\n )}\n </div>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { TextAreaInput } from \"../../lui/TextAreaInput\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GridFormTextAreaProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeholder?: string;\n required?: boolean;\n maxlength?: number;\n width?: string | number;\n validate?: (value: string) => string | null;\n onSave?: (selectedRows: RowType[], value: string) => Promise<boolean>;\n}\n\nexport const GridFormTextArea = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormTextAreaProps<RowType>;\n const [value, setValue] = useState(props.value ?? \"\");\n\n const invalid = useCallback(() => {\n if (formProps.required && value.length == 0) {\n return `Some text is required`;\n }\n if (formProps.maxlength && value.length > formProps.maxlength) {\n return `Text must be no longer than ${formProps.maxlength} characters`;\n }\n if (formProps.validate) {\n return formProps.validate(value);\n }\n return null;\n }, [formProps, value]);\n\n const save = useCallback(\n async (selectedRows: any[]): Promise<boolean> => {\n if (invalid()) return false;\n\n if (props.value === (value ?? \"\")) return true;\n\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, value);\n }\n\n const field = props.field;\n if (field == null) {\n console.error(\"ColDef has no field set\");\n return false;\n }\n selectedRows.forEach((row) => (row[field] = value));\n return true;\n },\n [formProps, invalid, props.field, props.value, value],\n );\n const { popoverWrapper } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div style={{ display: \"flex\", flexDirection: \"row\", width: formProps.width ?? 240 }} className={\"FormTest\"}>\n <TextAreaInput\n value={value}\n onChange={(e) => setValue(e.target.value)}\n error={invalid()}\n inputProps={{ placeholder: formProps.placeholder }}\n />\n </div>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridFormTextArea, GridFormTextAreaProps } from \"../gridForm/GridFormTextArea\";\n\nexport const GridPopoverTextArea = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormTextAreaProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormTextAreaProps<RowType>>({\n maxWidth: 260,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n width: 260,\n ...colDef.cellEditorParams,\n form: GridFormTextArea,\n },\n }),\n });\n};\n","import { useCallback, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { TextInputFormatted } from \"../../lui/TextInputFormatted\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GridFormTextInputProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeholder?: string;\n required?: boolean;\n maxlength?: number;\n width?: string | number;\n validate?: (value: string) => string | null;\n onSave?: (selectedRows: RowType[], value: string) => Promise<boolean>;\n}\n\nexport const GridFormTextInput = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormTextInputProps<RowType>;\n const [value, setValue] = useState(props.value ?? \"\");\n\n const invalid = useCallback(() => {\n if (formProps.required && value.length == 0) {\n return `Some text is required`;\n }\n if (formProps.maxlength && value.length > formProps.maxlength) {\n return `Text must be no longer than ${formProps.maxlength} characters`;\n }\n if (formProps.validate) {\n return formProps.validate(value);\n }\n return null;\n }, [formProps, value]);\n\n const save = useCallback(\n async (selectedRows: any[]): Promise<boolean> => {\n if (invalid()) return false;\n\n if (props.value === (value ?? \"\")) return true;\n\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, value);\n }\n\n const field = props.field;\n if (field == null) {\n console.error(\"ColDef has no field set\");\n return false;\n }\n selectedRows.forEach((row) => (row[field] = value));\n return true;\n },\n [invalid, props.value, props.field, value, formProps],\n );\n const { popoverWrapper, triggerSave } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div style={{ display: \"flex\", flexDirection: \"row\", width: formProps.width ?? 240 }} className={\"FormTest\"}>\n <TextInputFormatted\n value={value}\n onChange={(e) => setValue(e.target.value)}\n error={invalid()}\n formatted={\"\"}\n inputProps={{\n style: { width: \"100%\" },\n placeholder: formProps.placeholder,\n onKeyDown: async (e) => e.key === \"Enter\" && triggerSave().then(),\n }}\n />\n </div>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridFormTextInput, GridFormTextInputProps } from \"../gridForm/GridFormTextInput\";\n\nexport const GridPopoverTextInput = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormTextInputProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormTextInputProps<RowType>>({\n maxWidth: 140,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n width: 240,\n ...colDef.cellEditorParams,\n form: GridFormTextInput,\n },\n }),\n });\n};\n"],"names":["createContext","useRef","flatten","remove","castArray","_jsx","_isEmpty","useContext","difference","isEmpty","delay","sortBy","last","r","useCallback","useState","useEffect","xorBy","useMemo","_jsxs","AgGridReact","LuiMiniSpinner","LuiIcon","_Fragment","reactIsModule","require$$0","require$$1","ReactPropTypesSecret","has","printWarning","checkPropTypes","ReactIs","require$$2","require$$3","require$$4","propTypesModule","unstable_batchedUpdates","oneOfType","string","func","object","bool","number","oneOf","exact","Children","cloneElement","useLayoutEffect","_excluded","useReducer","flushSync","React","forwardRef","createPortal","memo","any","node","MenuSeparatorString","LuiCheckboxInput","debounce","uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/contexts/UpdatingContext.tsx","../src/contexts/UpdatingContextProvider.tsx","../src/contexts/GridContext.tsx","../src/utils/util.ts","../src/contexts/GridContextProvider.tsx","../node_modules/style-inject/dist/style-inject.es.js","../node_modules/clsx/dist/clsx.m.js","../src/components/PostSortRowsHook.ts","../src/components/gridHeader/GridHeaderSelect.tsx","../src/components/Grid.tsx","../src/components/GenericCellClass.tsx","../src/components/GridLoadableCell.tsx","../src/components/GridIcon.tsx","../src/components/gridRender/GridRenderGenericCell.tsx","../src/components/GridCell.tsx","../src/components/ComponentLoadingWrapper.tsx","../src/react-menu3/hooks/useBEM.ts","../src/react-menu3/hooks/useCombinedRef.ts","../src/react-menu3/hooks/useIsomorphicLayoutEffect.ts","../src/react-menu3/utils/constants.ts","../src/react-menu3/utils/utils.ts","../src/react-menu3/utils/propTypes.ts","../src/react-menu3/utils/withHovering.tsx","../src/react-menu3/hooks/useItems.ts","../src/react-menu3/hooks/useItemEffect.ts","../src/react-menu3/hooks/useItemState.ts","../src/react-menu3/hooks/useMenuChange.ts","../src/react-menu3/hooks/useMenuState.ts","../src/react-menu3/hooks/useMenuStateAndFocus.ts","../src/react-menu3/components/MenuButton.tsx","../src/react-menu3/positionUtils/getPositionHelpers.ts","../src/react-menu3/positionUtils/positionContextMenu.ts","../src/react-menu3/positionUtils/placeArrowVertical.ts","../src/react-menu3/positionUtils/placeLeftorRight.ts","../src/react-menu3/positionUtils/placeArrowHorizontal.ts","../src/react-menu3/positionUtils/placeToporBottom.ts","../src/react-menu3/positionUtils/positionMenu.ts","../src/react-menu3/components/MenuList.tsx","../src/react-menu3/components/ControlledMenu.tsx","../src/react-menu3/components/Menu.tsx","../src/react-menu3/components/SubMenu.tsx","../src/react-menu3/components/MenuItem.tsx","../src/react-menu3/components/FocusableItem.tsx","../src/react-menu3/components/MenuDivider.tsx","../src/react-menu3/components/MenuHeader.tsx","../src/react-menu3/components/MenuGroup.tsx","../src/react-menu3/components/MenuRadioGroup.tsx","../src/components/GridPopoverHook.tsx","../src/components/gridRender/GridRenderPopoutMenuCell.tsx","../src/components/gridForm/GridFormMultiSelect.tsx","../src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts","../src/components/gridForm/GridFormPopoutMenu.tsx","../src/components/gridPopoverEdit/GridPopoverMenu.tsx","../src/utils/bearing.ts","../src/lui/TextInputFormatted.tsx","../src/components/gridForm/GridFormEditBearing.tsx","../src/components/gridPopoverEdit/GridPopoverEditBearing.ts","../src/components/gridForm/GridFormDropDown.tsx","../src/components/gridPopoverEdit/GridPopoverEditDropDown.ts","../src/components/gridForm/GridFormMessage.tsx","../src/components/gridPopoverEdit/GridPopoverMessage.ts","../src/lui/TextAreaInput.tsx","../src/components/gridForm/GridFormTextArea.tsx","../src/components/gridPopoverEdit/GridPopoverTextArea.ts","../src/components/gridForm/GridFormTextInput.tsx","../src/components/gridPopoverEdit/GridPopoverTextInput.ts"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type UpdatingContextType = {\n checkUpdating: (fields: string | string[], id: number | string) => boolean;\n modifyUpdating: (field: string, ids: (number | string)[], fn: () => void | Promise<void>) => Promise<void>;\n};\n\nexport const UpdatingContext = createContext<UpdatingContextType>({\n checkUpdating: () => {\n console.error(\"Missing UpdatingContext\");\n return false;\n },\n modifyUpdating: async () => {\n console.error(\"Missing UpdatingContext\");\n },\n});\n","import { ReactNode, useRef } from \"react\";\nimport { castArray, flatten, remove } from \"lodash-es\";\nimport { UpdatingContext } from \"./UpdatingContext\";\n\ninterface UpdatingContextProviderProps {\n children: ReactNode;\n}\n\nexport type UpdatingContextStatus = Record<string, (number | string)[] | undefined>;\n\ntype FieldName = string;\ntype IdList = (number | string)[];\ntype UpdatingBlock = Record<FieldName, IdList[]>;\n\nexport const UpdatingContextProvider = (props: UpdatingContextProviderProps) => {\n const updatingBlocks = useRef<UpdatingBlock>({});\n const updating = useRef<UpdatingContextStatus>({});\n\n const resetUpdating = () => {\n const mergedUpdatingBlocks: UpdatingContextStatus = {};\n for (const key in updatingBlocks.current) {\n mergedUpdatingBlocks[key] = flatten(updatingBlocks.current[key]);\n }\n updating.current = mergedUpdatingBlocks;\n };\n\n const modifyUpdating = async (field: string, ids: (number | string)[], fn: () => void | Promise<void>) => {\n const fieldUpdatingIds = updatingBlocks.current[field] ?? (updatingBlocks.current[field] = []);\n const idRef = [...ids];\n fieldUpdatingIds.push(idRef);\n resetUpdating();\n await fn();\n remove(fieldUpdatingIds, (idList) => idList === idRef);\n resetUpdating();\n };\n\n const checkUpdating = (fields: string | string[], id: number | string): boolean =>\n castArray(fields).some((f) => updating.current[f]?.includes(id));\n\n return (\n <UpdatingContext.Provider value={{ modifyUpdating, checkUpdating }}>{props.children}</UpdatingContext.Provider>\n );\n};\n","import { createContext } from \"react\";\nimport { GridApi } from \"ag-grid-community\";\nimport { GridBaseRow } from \"@components/Grid\";\n\nexport interface GridContextType {\n gridReady: () => boolean;\n setGridApi: (gridApi: GridApi | undefined) => void;\n setQuickFilter: (quickFilter: string) => void;\n editingCells: () => boolean;\n getSelectedRows: <T extends unknown>() => T[];\n getSelectedRowIds: () => number[];\n selectRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;\n selectRowsWithFlashDiff: (updateFn: () => Promise<any>) => Promise<void>;\n selectRowsById: (rowIds?: number[]) => void;\n selectRowsByIdWithFlash: (rowIds?: number[]) => void;\n flashRows: (rowIds?: number[]) => void;\n flashRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;\n ensureRowVisible: (id: number) => void;\n ensureSelectedRowIsVisible: () => void;\n stopEditing: () => void;\n updatingCells: (\n props: { selectedRows: GridBaseRow[]; field?: string },\n fnUpdate: (selectedRows: any[]) => Promise<boolean>,\n setSaving?: (saving: boolean) => void,\n ) => Promise<boolean>;\n}\n\nexport const GridContext = createContext<GridContextType>({\n gridReady: () => {\n console.error(\"no context provider for gridReady\");\n return false;\n },\n setGridApi: () => {\n console.error(\"no context provider for setGridApi\");\n },\n setQuickFilter: () => {\n console.error(\"no context provider for setQuickFilter\");\n },\n selectRowsById: () => {\n console.error(\"no context provider for selectRows\");\n },\n getSelectedRows: <T extends unknown>(): T[] => {\n console.error(\"no context provider for getSelectedRows\");\n return [];\n },\n getSelectedRowIds: () => {\n console.error(\"no context provider for getSelectedRowIds\");\n return [];\n },\n selectRowsDiff: async () => {\n console.error(\"no context provider for selectRowsDiff\");\n },\n selectRowsByIdWithFlash: () => {\n console.error(\"no context provider for selectRowsWithFlash\");\n },\n selectRowsWithFlashDiff: async () => {\n console.error(\"no context provider for selectRowsWithFlashDiff\");\n },\n flashRows: () => {\n console.error(\"no context provider for flashRows\");\n },\n flashRowsDiff: async () => {\n console.error(\"no context provider for flashRows\");\n },\n ensureRowVisible: () => {\n console.error(\"no context provider for ensureRowVisible\");\n },\n ensureSelectedRowIsVisible: () => {\n console.error(\"no context provider for ensureSelectedRowIsVisible\");\n },\n editingCells: () => {\n console.error(\"no context provider for editingCells\");\n return false;\n },\n stopEditing: () => {\n console.error(\"no context provider for stopEditing\");\n },\n updatingCells: async () => {\n console.error(\"no context provider for modifyUpdating\");\n return false;\n },\n});\n","import { isEmpty as _isEmpty } from \"lodash-es\";\n\n// Typed version of lodash !isEmpty\nexport const isNotEmpty = (obj: Set<any> | Map<any, any> | Record<any, any> | any[] | undefined): boolean =>\n !_isEmpty(obj);\n\nexport const wait = (timeoutMs: number) =>\n new Promise<(string | null)[]>((resolve) => {\n setTimeout(resolve, timeoutMs);\n });\n\nexport const isFloat = (value: string) => {\n const regexp = /^-?\\d+(\\.\\d+)?$/;\n return regexp.test(value);\n};\n\nexport const hasParentClass = function (className: string, child: Node) {\n let node: Node | null = child;\n while (node) {\n // When nodes are in portals they aren't type node anymore hence treating it as any here\n if ((node as any).classList && (node as any).classList.contains(className)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n};\n","import { ReactElement, ReactNode, useContext, useRef } from \"react\";\nimport { GridApi, RowNode } from \"ag-grid-community\";\nimport { GridContext } from \"./GridContext\";\nimport { delay, difference, isEmpty, last, sortBy } from \"lodash-es\";\nimport { isNotEmpty } from \"@utils/util\";\nimport { UpdatingContext } from \"./UpdatingContext\";\nimport { GridBaseRow } from \"@components/Grid\";\n\ninterface GridContextProps {\n children: ReactNode;\n}\n\n/**\n * Context for AgGrid operations.\n * Make sure you wrap AgGrid in this.\n * Also, make sure the provider is created in a separate component, otherwise it won't be found.\n */\nexport const GridContextProvider = (props: GridContextProps): ReactElement => {\n const { modifyUpdating } = useContext(UpdatingContext);\n const gridApiRef = useRef<GridApi>();\n const idsBeforeUpdate = useRef<number[]>([]);\n\n /**\n * Has Grid api has been set?\n * Some ops in components may occur before onGridReady has been called,\n * and thus will need to check grid is ready before calling.\n */\n const gridReady = () => gridApiRef.current != null;\n\n /**\n * Set current ref to grid api.\n */\n const setGridApi = (_gridApi: GridApi | undefined) => {\n gridApiRef.current = _gridApi;\n };\n\n /**\n * Wraps things that require gridApi in common handling, for when gridApi not present.\n *\n * @param hasApiFn Execute when api is ready.\n * @param noApiFn Execute if api is not ready.\n */\n const gridApiOp = <T extends unknown, R extends unknown>(\n hasApiFn: (gridApi: GridApi) => T,\n noApiFn?: () => R,\n ): T | R => {\n if (!noApiFn) {\n noApiFn = (() => {}) as () => R;\n }\n const gridApi = gridApiRef.current;\n if (gridApi) return hasApiFn(gridApi);\n console.error(\"GridApi not ready\");\n return noApiFn();\n };\n\n /**\n * Set the quick filter value to grid.\n */\n const setQuickFilter = (quickFilter: string) => {\n gridApiOp((gridApi) => gridApi.setQuickFilter(quickFilter));\n };\n\n /**\n * Get all row id's in grid.\n */\n const _getAllRowIds = () => {\n const result: number[] = [];\n return gridApiOp(\n (gridApi) => {\n gridApi.forEachNode((node) => result.push(node.data.id));\n return result;\n },\n () => result,\n );\n };\n\n /**\n * Record all row id's before update so that we can select/flash the new rows after update.\n */\n const beforeUpdate = () => {\n idsBeforeUpdate.current = _getAllRowIds();\n };\n\n /**\n * Find new row ids\n * Uses beforeUpdate ids to find new nodes.\n */\n const _getNewNodes = (): RowNode[] => {\n return gridApiOp(\n (gridApi) =>\n difference(_getAllRowIds(), idsBeforeUpdate.current)\n .map((rowId) => gridApi.getRowNode(\"\" + rowId)) //\n .filter((r) => r) as RowNode[],\n () => [],\n );\n };\n\n /**\n * Get grid nodes via rowIds. If rowIds has no matching node the result may be smaller than expected.\n * This can happen if the grid has not re-rendered yet.\n *\n * @param rowIds Row ids to get from grid.\n */\n const _rowIdsToNodes = (rowIds: number[]): RowNode[] => {\n return gridApiOp(\n (gridApi) =>\n rowIds\n .map((rowId) => gridApi.getRowNode(\"\" + rowId)) //\n .filter((r) => r) as RowNode[],\n () => [] as RowNode[],\n );\n };\n\n /**\n * Internal method for selecting and flashing rows.\n *\n * @param rowIds RowIds to select and flash. If undefined a diff is done with beforeUpdate and current state to select\n * @param select Whether to select rows\n * @param flash Whether to flash rows\n * @param retryCount Table updates may not be present when this is called, so retry is needed.\n */\n const _selectRowsWithOptionalFlash = (\n rowIds: number[] | undefined,\n select: boolean,\n flash: boolean,\n retryCount = 5, // We retry for approximately 5x200ms=1s\n ) => {\n return gridApiOp((gridApi) => {\n const rowNodes = rowIds ? _rowIdsToNodes(rowIds) : _getNewNodes();\n const gridRowIdsNotUpdatedYet = rowIds && rowNodes.length !== rowIds.length; // rowIds are specified\n const gridRowIdsNotChangedYet = !rowIds && isEmpty(rowNodes); // rowIds are from beforeUpdate\n const gridHasNotUpdated = gridRowIdsNotUpdatedYet || gridRowIdsNotChangedYet;\n // After retry count expires we give-up and deselect all rows, then select any subset of rows that have updated\n if (gridHasNotUpdated && retryCount > 0) {\n delay(() => _selectRowsWithOptionalFlash(rowIds, select, flash, retryCount - 1), 250);\n return;\n }\n\n const rowsThatNeedSelecting = sortBy(\n rowNodes.filter((node) => !node.isSelected()),\n (node) => node.data.id,\n );\n const firstNode = rowsThatNeedSelecting[0];\n firstNode && gridApi.ensureNodeVisible(firstNode);\n if (select) {\n // Select rows that shouldn't be selected\n rowsThatNeedSelecting.forEach((node) => node.setSelected(true));\n // Unselect rows that shouldn't be selected\n gridApi.getSelectedNodes()?.forEach((node) => {\n if (node && !rowNodes.includes(node)) {\n node.setSelected(false);\n }\n });\n }\n if (flash) {\n delay(() => {\n try {\n gridApi.flashCells({ rowNodes });\n } catch {\n // ignore, flash cells sometimes throws errors as nodes have gone out of scope\n }\n }, 250);\n }\n });\n };\n\n const selectRowsById = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, true, false);\n const selectRowsByIdWithFlash = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, true, true);\n const flashRows = (rowIds?: number[]) => _selectRowsWithOptionalFlash(rowIds, false, true);\n\n const selectRowsDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, true, false);\n };\n\n const selectRowsWithFlashDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, true, true);\n };\n\n const flashRowsDiff = async (fn: () => Promise<any>) => {\n beforeUpdate();\n await fn();\n _selectRowsWithOptionalFlash(undefined, false, true);\n };\n\n const getSelectedRows = <T extends unknown>(): T[] => {\n return gridApiOp(\n (gridApi) => gridApi.getSelectedRows(),\n () => [],\n );\n };\n\n const getSelectedRowIds = (): number[] => getSelectedRows().map((row) => (row as any).id as number);\n\n const editingCells = (): boolean => {\n return gridApiOp(\n (gridApi) => isNotEmpty(gridApi.getEditingCells()),\n () => false,\n );\n };\n\n const ensureRowVisible = (id: number): void => {\n gridApiOp((gridApi) => {\n const node = gridApi.getRowNode(`${id}`);\n node && gridApi.ensureNodeVisible(node);\n });\n };\n\n /**\n * Scroll last selected row into view on grid sort change\n */\n const ensureSelectedRowIsVisible = (): void => {\n gridApiOp((gridApi) => {\n const selectedNodes = gridApi.getSelectedNodes();\n if (isEmpty(selectedNodes)) return;\n gridApi.ensureNodeVisible(last(selectedNodes));\n });\n };\n\n const stopEditing = (): void => gridApiOp((gridApi) => gridApi.stopEditing());\n\n const updatingCells = async (\n props: { selectedRows: GridBaseRow[]; field?: string },\n fnUpdate: (selectedRows: any[]) => Promise<boolean>,\n setSaving?: (saving: boolean) => void,\n ): Promise<boolean> => {\n setSaving && setSaving(true);\n\n return await gridApiOp(async (gridApi) => {\n const selectedRows = props.selectedRows;\n //TODO do I need to do this for all rows?\n /*if (!props.multiEdit) {\n // You can't use data as it could be an orphaned reference due to updates\n selectedRows = selectedRows.filter((row) => row.id === props.data.id);\n }\n*/\n let ok = false;\n await modifyUpdating(\n props.field ?? \"\",\n selectedRows.map((data) => data.id),\n async () => {\n // Need to refresh to get spinners to work on all rows\n gridApi.refreshCells({ rowNodes: props.selectedRows as RowNode[], force: true });\n ok = await fnUpdate(selectedRows);\n },\n );\n\n // async processes need to refresh their own rows\n gridApi.refreshCells({ rowNodes: selectedRows as RowNode[], force: true });\n\n if (ok) {\n const cell = gridApi.getFocusedCell();\n if (cell && gridApi.getFocusedCell() == null) {\n gridApi.setFocusedCell(cell.rowIndex, cell.column);\n }\n // This is needed to trigger postSortRowsHook\n gridApi.refreshClientSideRowModel();\n stopEditing();\n }\n setSaving && setSaving(false);\n return ok;\n });\n };\n\n return (\n <GridContext.Provider\n value={{\n gridReady,\n setGridApi,\n setQuickFilter,\n selectRowsById,\n selectRowsDiff,\n selectRowsByIdWithFlash,\n selectRowsWithFlashDiff,\n flashRows,\n flashRowsDiff,\n getSelectedRows,\n getSelectedRowIds,\n editingCells,\n ensureRowVisible,\n ensureSelectedRowIsVisible,\n stopEditing,\n updatingCells,\n }}\n >\n {props.children}\n </GridContext.Provider>\n );\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { useCallback, useRef } from \"react\";\nimport { PostSortRowsParams } from \"ag-grid-community/dist/lib/entities/iCallbackParams\";\nimport { ColumnState } from \"ag-grid-community/dist/lib/columns/columnModel\";\n\ninterface PostSortRowsHookProps {\n setStaleGrid: (stale: boolean) => void;\n}\n\n/**\n * Retains last sort order from via <AgGrid postRowSort>.\n * Then applies this sort until next sort column change.\n * Handles stale sort, when you edit a row but don't want to re-sort.\n */\nexport const usePostSortRowsHook = ({ setStaleGrid }: PostSortRowsHookProps) => {\n // On first run we need to init the first backed up sort order\n const initialised = useRef(false);\n\n // Used to detect sort order has changed since last run\n const lastSortOrderHash = useRef<string>(\"\");\n\n // Used to detect if sort order was the same, has the direction changed\n const previousRowSortIndexRef = useRef<Record<number, number | undefined>>({});\n\n // stale sort is when there's a sort and user edits a row\n // this applies a class to the div wrapping the grid which in turn adds a * beside the sort arrow\n const sortWasStale = useRef(false);\n\n // Previous col sort is stored and reapplied if the sort direction changes on the same column and the sort was stale\n // As a sort on a stale row should just resort, not change sort direction\n const previousColSort = useRef<ColumnState[]>([]);\n\n const previousQuickFilter = useRef(\"\");\n\n return useCallback(\n ({ api, columnApi, nodes }: PostSortRowsParams) => {\n const previousRowSortIndex = previousRowSortIndexRef.current;\n\n const copyCurrentSortSettings = (): ColumnState[] =>\n columnApi.getColumnState().map((row) => ({ colId: row.colId, sort: row.sort, sortIndex: row.sortIndex }));\n\n const backupSortOrder = () => {\n for (const x in previousRowSortIndex) delete previousRowSortIndex[x];\n nodes.forEach((row, index) => (previousRowSortIndex[row.data.id] = index));\n };\n\n // Check if column is the first sorted column. Note: column is preconfigured to sort its sortIndex is null not 1\n const isFirstSortColumn = (row: ColumnState) => row.sort && [0, null].includes(row.sortIndex ?? null);\n\n const isSameColumnAndDifferentSort = (col1: ColumnState | undefined, col2: ColumnState | undefined) =>\n col1 && col2 && col1.colId === col2.colId && col1.sort != col2.sort;\n\n const restorePreviousSortColumnState = () => columnApi.applyColumnState({ state: previousColSort.current });\n\n const hasNewRows = () => nodes.some((row) => previousRowSortIndex[row.data.id] == null);\n\n const sortIsStale = () =>\n !hasNewRows() && nodes.some((row, index) => ![null, index].includes(previousRowSortIndex[row.data.id] ?? null));\n\n const sortNodesByPreviousSort = () =>\n nodes.sort(\n (a, b) =>\n (previousRowSortIndex[a.data.id] ?? Number.MAX_SAFE_INTEGER) -\n (previousRowSortIndex[b.data.id] ?? Number.MAX_SAFE_INTEGER),\n );\n\n // On first load copy the current sort\n if (!initialised.current) {\n initialised.current = true;\n previousColSort.current = copyCurrentSortSettings();\n }\n\n const newSortOrder = JSON.stringify(copyCurrentSortSettings());\n let sortOrderChanged = newSortOrder != lastSortOrderHash.current;\n\n const quickFilter = (api as any).filterManager.quickFilter;\n if (previousQuickFilter.current != quickFilter) {\n previousQuickFilter.current = quickFilter;\n sortOrderChanged = true;\n }\n\n if (sortOrderChanged) {\n const thisFirstCol = copyCurrentSortSettings().find(isFirstSortColumn);\n const previousFirstCol = previousColSort.current.find(isFirstSortColumn);\n\n // Change to sort can be: (in the context of stale sort do...)\n // - no sort to sorted (do nothing)\n // - asc to desc (resort as asc, and remove stale sort)\n // - desc to no sort (resort as desc, and remove stale sort)\n const wasSortChangedOnSameColumn =\n previousFirstCol && (!thisFirstCol || isSameColumnAndDifferentSort(previousFirstCol, thisFirstCol));\n\n // if sort was stale, and we're here, someone has clicked a stale sort order (^*) in the column header\n if (sortWasStale.current && wasSortChangedOnSameColumn) {\n // Sort was an existing priority 1 column\n // We want to re-sort with the old sort direction and clear stale sort\n sortWasStale.current = false;\n setStaleGrid(false);\n\n // trigger a recapture of sort order\n lastSortOrderHash.current = \"\";\n restorePreviousSortColumnState();\n } else {\n // Sort was on a different column so clear sort and sort like normal\n if (sortWasStale.current) {\n sortWasStale.current = false;\n setStaleGrid(false);\n }\n // Columns were sorted so retain the sort\n backupSortOrder();\n lastSortOrderHash.current = newSortOrder;\n }\n } else {\n if (sortIsStale()) {\n // If we haven't already processed a stale sort then...\n if (!sortWasStale.current) {\n // backup sort state, so we can restore it when sort is clicked on a stale column\n previousColSort.current = copyCurrentSortSettings();\n sortWasStale.current = true;\n setStaleGrid(true);\n }\n\n sortNodesByPreviousSort();\n }\n // secondary sort backup as there may be new nodes that didn't have their sort registered\n // which would cause two new rows to sort out of sequence\n backupSortOrder();\n }\n },\n [setStaleGrid],\n );\n};\n","import clsx from \"clsx\";\nimport { IHeaderParams } from \"ag-grid-community\";\nimport { useCallback, useEffect, useState } from \"react\";\n\n/**\n * AgGrid's existing select header doesn't work the way we want.\n * If you have partial select then clicking the header checkbox will select all,\n * but we want to deselect all on partial select.\n */\nexport const GridHeaderSelect = ({ api }: IHeaderParams) => {\n // This is used to force an update on selection change\n const [updateCounter, setUpdateCounter] = useState(0);\n const selectedNodeCount = api.getSelectedRows().length;\n\n const clickHandler = useCallback(() => {\n setUpdateCounter(updateCounter + 1);\n }, [updateCounter]);\n\n useEffect(() => {\n api.addEventListener(\"selectionChanged\", clickHandler);\n return () => api.removeEventListener(\"selectionChanged\", clickHandler);\n }, [api, clickHandler]);\n\n const handleMultiSelect = () => {\n if (selectedNodeCount == 0) {\n api.selectAllFiltered();\n } else {\n api.deselectAll();\n }\n };\n\n const totalNodeCount = api.getModel().getRowCount();\n const partialSelect = selectedNodeCount != 0 && selectedNodeCount != totalNodeCount;\n const allSelected = selectedNodeCount != 0 && selectedNodeCount == totalNodeCount;\n\n return (\n <div\n className={clsx(\n \"ag-wrapper ag-input-wrapper ag-checkbox-input-wrapper\",\n partialSelect && \"ag-indeterminate\",\n allSelected && \"ag-checked\",\n )}\n onClick={handleMultiSelect}\n >\n <input\n type=\"checkbox\"\n className={\"ag-checkbox-input-wrapper\"}\n onChange={() => {\n /* do nothing */\n }}\n />\n </div>\n );\n};\n","import \"./Grid.scss\";\nimport \"./GridTheme.scss\";\n\nimport clsx from \"clsx\";\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport { AgGridEvent, CellClickedEvent, ColDef } from \"ag-grid-community\";\nimport { CellEvent, GridReadyEvent, SelectionChangedEvent } from \"ag-grid-community/dist/lib/events\";\nimport { GridOptions } from \"ag-grid-community/dist/lib/entities/gridOptions\";\nimport { difference, last, xorBy } from \"lodash-es\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { usePostSortRowsHook } from \"./PostSortRowsHook\";\nimport { isNotEmpty } from \"@utils/util\";\nimport { GridHeaderSelect } from \"./gridHeader/GridHeaderSelect\";\nimport { UpdatingContext } from \"@contexts/UpdatingContext\";\n\nexport interface GridBaseRow {\n id: string | number;\n}\n\nexport interface GridProps {\n selectable?: boolean;\n dataTestId?: string;\n quickFilter?: boolean;\n quickFilterPlaceholder?: string;\n quickFilterValue?: string;\n domLayout?: GridOptions[\"domLayout\"];\n externalSelectedItems?: any[];\n setExternalSelectedItems?: (items: any[]) => void;\n onGridReady?: GridOptions[\"onGridReady\"];\n defaultColDef: GridOptions[\"defaultColDef\"];\n columnDefs: GridOptions[\"columnDefs\"];\n rowData: GridOptions[\"rowData\"];\n noRowsOverlayText?: string;\n}\n\n/**\n * Wrapper for AgGrid to add commonly used functionality.\n */\nexport const Grid = (params: GridProps): JSX.Element => {\n const { gridReady, setGridApi, setQuickFilter, ensureRowVisible, selectRowsById, ensureSelectedRowIsVisible } =\n useContext(GridContext);\n const { checkUpdating } = useContext(UpdatingContext);\n\n const [internalQuickFilter, setInternalQuickFilter] = useState(\"\");\n const lastSelectedIds = useRef<number[]>([]);\n const [staleGrid, setStaleGrid] = useState(false);\n const postSortRows = usePostSortRowsHook({ setStaleGrid });\n\n /**\n * AgGrid checkbox select does not pass clicks within cell but not on the checkbox to checkbox.\n * This passes the event to the checkbox when you click anywhere in the cell.\n */\n const clickSelectorCheckboxWhenContainingCellClicked = useCallback(({ event }: CellClickedEvent) => {\n if (!event) return;\n const input = (event.target as Element).querySelector(\"input\");\n input?.dispatchEvent(event);\n }, []);\n\n /**\n * Ensure external selected items list is in sync with panel.\n */\n const synchroniseExternalStateToGridSelection = useCallback(\n ({ api }: SelectionChangedEvent) => {\n if (!params.externalSelectedItems || !params.setExternalSelectedItems) return;\n\n const selectedRows = api.getSelectedRows();\n // We don't want to update selected Items if it hasn't changed to prevent excess renders\n if (\n params.externalSelectedItems.length != selectedRows.length ||\n isNotEmpty(xorBy(selectedRows, params.externalSelectedItems, (row) => row.id))\n ) {\n params.setExternalSelectedItems([...selectedRows]);\n }\n },\n [params],\n );\n\n /**\n * Synchronise externally selected items to grid.\n * If new ids are selected scroll them into view.\n */\n const synchroniseExternallySelectedItemsToGrid = useCallback(() => {\n if (!gridReady()) return;\n if (!params.externalSelectedItems) return;\n\n const selectedIds = params.externalSelectedItems.map((row) => row.id) as number[];\n const lastNewId = last(difference(selectedIds, lastSelectedIds.current));\n if (lastNewId != null) ensureRowVisible(lastNewId);\n lastSelectedIds.current = selectedIds;\n selectRowsById(selectedIds);\n }, [params.externalSelectedItems, ensureRowVisible, gridReady, selectRowsById]);\n\n /**\n * Synchronise quick filter to grid\n */\n const updateQuickFilter = useCallback(() => {\n if (!gridReady()) return;\n if (params.quickFilter) {\n setQuickFilter(internalQuickFilter);\n return;\n }\n if (params.quickFilterValue == null) return;\n setQuickFilter(params.quickFilterValue);\n }, [gridReady, internalQuickFilter, params.quickFilter, params.quickFilterValue, setQuickFilter]);\n\n /**\n * Synchronise quick filter to grid\n */\n useEffect(() => {\n updateQuickFilter();\n }, [updateQuickFilter]);\n\n /**\n * Synchronise externally selected items to grid on externalSelectedItems change\n */\n useEffect(() => {\n synchroniseExternallySelectedItemsToGrid();\n }, [synchroniseExternallySelectedItemsToGrid]);\n\n const columnDefs = useMemo(\n (): GridOptions[\"columnDefs\"] =>\n params.selectable\n ? [\n {\n colId: \"selection\",\n editable: false,\n initialWidth: 35,\n minWidth: 35,\n maxWidth: 35,\n suppressSizeToFit: true,\n checkboxSelection: true,\n headerComponent: GridHeaderSelect,\n onCellClicked: clickSelectorCheckboxWhenContainingCellClicked,\n },\n ...(params.columnDefs as ColDef[]),\n ]\n : [...(params.columnDefs as ColDef[])],\n [clickSelectorCheckboxWhenContainingCellClicked, params.columnDefs, params.selectable],\n );\n\n const onGridReady = useCallback(\n (event: GridReadyEvent) => {\n setGridApi(event.api);\n params.onGridReady && params.onGridReady(event);\n synchroniseExternallySelectedItemsToGrid();\n updateQuickFilter();\n },\n [params, setGridApi, synchroniseExternallySelectedItemsToGrid, updateQuickFilter],\n );\n\n const noRowsOverlayComponent = useCallback(\n () => (\n <span className=\"ag-overlay-no-rows-center\">{params.noRowsOverlayText ?? \"There are currently no rows\"}</span>\n ),\n [params.noRowsOverlayText],\n );\n\n const sizeColumnsToFit = useCallback((event: AgGridEvent) => {\n // @ts-ignore (gridBodyCtrl is private)\n if (event.api.gridBodyCtrl == undefined) {\n return;\n // this is here because ag grid was throwing api undefined error when closing POPPED OUT panel\n }\n event.api.sizeColumnsToFit();\n }, []);\n\n const refreshSelectedRows = useCallback((event: CellEvent): void => {\n // Force-refresh all selected rows to re-run class function, to update selection highlighting\n event.api.refreshCells({\n force: true,\n rowNodes: event.api.getSelectedNodes(),\n });\n }, []);\n\n const startCellEditing = useCallback(\n (event: CellEvent) => {\n if (!event.node.isSelected()) {\n event.node.setSelected(true, true);\n }\n // Cell already being edited, so don't re-edit until finished\n if (checkUpdating([event.colDef.field ?? \"\"], event.data.id)) {\n return;\n }\n if (event.rowIndex !== null) {\n event.api.startEditingCell({\n rowIndex: event.rowIndex,\n colKey: event.column.getColId(),\n });\n }\n },\n [checkUpdating],\n );\n\n const onCellDoubleClick = useCallback(\n (event: CellEvent) => {\n if (!event.colDef?.cellRendererParams?.singleClickEdit) {\n startCellEditing(event);\n }\n },\n [startCellEditing],\n );\n\n const onCellClicked = useCallback(\n (event: CellEvent) => {\n if (event.colDef?.cellRendererParams?.singleClickEdit) {\n startCellEditing(event);\n }\n },\n [startCellEditing],\n );\n\n const onCellKeyDown = useCallback(\n (e: CellEvent) => {\n if ((e.event as KeyboardEvent).key === \"Enter\") startCellEditing(e);\n },\n [startCellEditing],\n );\n\n const onCellEditingStopped = useCallback(\n (event: CellEvent) => {\n refreshSelectedRows(event);\n // The grid loses cell focus after editing\n const cell = event.api.getFocusedCell();\n cell && event.api.setFocusedCell(cell.rowIndex, cell.column);\n },\n [refreshSelectedRows],\n );\n\n return (\n <div\n data-testid={params.dataTestId}\n className={clsx(\"Grid-container\", \"ag-theme-alpine\", staleGrid && \"Grid-sortIsStale\")}\n >\n {params.quickFilter && (\n <div className=\"Grid-quickFilter\">\n <input\n aria-label=\"Search\"\n className=\"lui-margin-top-xxs lui-margin-bottom-xxs Grid-quickFilterBox\"\n type=\"text\"\n placeholder={params.quickFilterPlaceholder ?? \"Search...\"}\n value={internalQuickFilter}\n onChange={(event): void => {\n setInternalQuickFilter(event.target.value);\n }}\n />\n </div>\n )}\n <AgGridReact\n getRowId={(params) => `${params.data.id}`}\n suppressRowClickSelection={true}\n rowSelection={\"multiple\"}\n suppressBrowserResizeObserver={true}\n colResizeDefault={\"shift\"}\n onFirstDataRendered={sizeColumnsToFit}\n onGridSizeChanged={sizeColumnsToFit}\n suppressClickEdit={true}\n onCellKeyDown={onCellKeyDown}\n onCellClicked={onCellClicked}\n onCellDoubleClicked={onCellDoubleClick}\n onCellEditingStarted={refreshSelectedRows}\n onCellEditingStopped={onCellEditingStopped}\n domLayout={params.domLayout}\n columnDefs={columnDefs}\n rowData={params.rowData}\n noRowsOverlayComponent={noRowsOverlayComponent}\n onGridReady={onGridReady}\n onSortChanged={ensureSelectedRowIsVisible}\n postSortRows={postSortRows}\n onSelectionChanged={synchroniseExternalStateToGridSelection}\n />\n </div>\n );\n};\n","import { CellClassFunc } from \"ag-grid-community\";\n\nexport const GenericMultiEditCellClass: CellClassFunc = (props): string => {\n const api = props.api;\n if (api == null) return \"\";\n\n const rowSelected = api\n .getSelectedNodes()\n .map((row) => row.id)\n .includes(props.node.id);\n\n return rowSelected && api.getEditingCells().some((cell) => cell.column.getColDef() === props.colDef)\n ? \"ag-selected-for-edit\"\n : \"\";\n};\n","import \"./GridLoadableCell.scss\";\n\nimport { LuiMiniSpinner } from \"@linzjs/lui\";\nimport clsx from \"clsx\";\n\nexport const GridLoadableCell = (props: {\n isLoading: boolean;\n dataTestId?: string;\n children: JSX.Element | string;\n className?: string;\n}): JSX.Element => {\n // console.log(`Rendering LoadableCell - loading: ${props.isLoading}`);\n if (props.isLoading) {\n return (\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n <LuiMiniSpinner size={22} divProps={{ role: \"status\", \"aria-label\": \"Loading\", style: { marginBottom: 4 } }} />\n </div>\n );\n }\n // only add test id into ONE of the columns in a grid. this way each row will have one unique id :)\n return (\n <div data-testid={props.dataTestId} className={clsx(\"GridLoadableCell-container\", props.className)}>\n {props.children}\n </div>\n );\n};\n","import { IconName } from \"@linzjs/lui/dist/components/LuiIcon/LuiIcon\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport const GridIcon = (props: { icon: IconName; title: string }): JSX.Element => (\n <LuiIcon\n name={props.icon}\n title={props.title}\n alt={props.title}\n size={\"md\"}\n className={`AgGridGenericCellRenderer-${props.icon}Icon`}\n />\n);\n","import \"./GridRenderGenericCell.scss\";\n\nimport { useContext } from \"react\";\nimport { UpdatingContext } from \"../../contexts/UpdatingContext\";\nimport { GridLoadableCell } from \"../GridLoadableCell\";\nimport { GridIcon } from \"../GridIcon\";\nimport { ColDef, ICellRendererParams } from \"ag-grid-community\";\nimport { ValueFormatterParams } from \"ag-grid-community/dist/lib/entities/colDef\";\nimport { GenericCellEditorParams } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GenericCellColDef<RowType extends GridBaseRow, FormProps extends Record<string, any>> extends ColDef {\n cellRendererParams?: GenericCellRendererParams;\n cellEditorParams?: GenericCellEditorParams<RowType> & FormProps;\n}\n\nexport interface GenericCellRendererParams {\n singleClickEdit?: boolean;\n warning?: (props: ICellRendererParams) => string | boolean | undefined;\n info?: (props: ICellRendererParams) => string | boolean | undefined;\n}\n\nexport const GridRendererGenericCell = (props: ICellRendererParams): JSX.Element => {\n const { checkUpdating } = useContext(UpdatingContext);\n\n const cellRendererParams = props.colDef?.cellRendererParams as GenericCellRendererParams | undefined;\n const warningFn = cellRendererParams?.warning;\n const warningText = warningFn ? warningFn(props) : undefined;\n const infoFn = cellRendererParams?.info;\n const infoText = infoFn ? infoFn(props) : undefined;\n\n const defaultFormatter = (props: ValueFormatterParams): string => props.value;\n const formatter = props.colDef?.valueFormatter ?? defaultFormatter;\n if (typeof formatter === \"string\") {\n console.error(\"valueFormatter must be a function\");\n return <span>valueFormatter must be a function</span>;\n }\n const formatted = formatter(props as ValueFormatterParams);\n\n return (\n <GridLoadableCell isLoading={checkUpdating(props.colDef?.field ?? props.colDef?.colId ?? \"\", props.data.id)}>\n <>\n {typeof warningText === \"string\" && <GridIcon icon={\"ic_warning\"} title={warningText} />}\n {typeof infoText === \"string\" && <GridIcon icon={\"ic_info\"} title={infoText} />}\n <span title={formatted}>{formatted}</span>\n </>\n </GridLoadableCell>\n );\n};\n","import { useCallback, useContext, useMemo, useState } from \"react\";\nimport { GridBaseRow } from \"./Grid\";\nimport { UpdatingContext } from \"@contexts/UpdatingContext\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { GenericMultiEditCellClass } from \"./GenericCellClass\";\nimport { GenericCellRendererParams, GridRendererGenericCell } from \"./gridRender/GridRenderGenericCell\";\nimport { ColDef, ICellEditorParams, ICellRendererParams } from \"ag-grid-community\";\nimport { GridLoadableCell } from \"./GridLoadableCell\";\n\nexport interface GridFormProps<RowType extends GridBaseRow> {\n cellEditorParams: ICellEditorParams;\n updateValue: (saveFn: (selectedRows: RowType[]) => Promise<boolean>) => Promise<boolean>;\n saving: boolean;\n value: any;\n field: string | undefined;\n selectedRows: RowType[];\n formProps: Record<string, any>;\n}\n\nexport interface GenericCellEditorParams<RowType extends GridBaseRow> {\n multiEdit?: boolean;\n form?: (props: GridFormProps<RowType>) => JSX.Element;\n}\n\nexport interface GenericCellEditorColDef<\n RowType extends GridBaseRow,\n FormProps extends GenericCellEditorParams<RowType>,\n> extends ColDef {\n cellEditorParams?: FormProps;\n cellRendererParams?: GenericCellRendererParams;\n}\n\nexport const GridCellRenderer = (cellRendererParams: ICellRendererParams) => {\n const { checkUpdating } = useContext(UpdatingContext);\n const colDef = cellRendererParams.colDef;\n\n return colDef?.cellRendererParams?.oldCellRenderer ? (\n <GridLoadableCell\n isLoading={checkUpdating(\n cellRendererParams.colDef?.field ?? cellRendererParams.colDef?.colId ?? \"\",\n cellRendererParams.data.id,\n )}\n >\n <colDef.cellRendererParams.oldCellRenderer {...cellRendererParams} />\n </GridLoadableCell>\n ) : (\n <GridRendererGenericCell {...cellRendererParams} />\n );\n};\n\n/**\n * For editing a text area.\n */\nexport const GridCell = <RowType extends GridBaseRow, FormProps extends GenericCellEditorParams<RowType>>(\n props: GenericCellEditorColDef<RowType, FormProps>,\n): ColDef => {\n return {\n cellRenderer: GridCellRenderer,\n sortable: !!(props?.field || props?.valueGetter),\n resizable: true,\n ...(props.cellEditorParams && {\n cellClass: props?.cellEditorParams?.multiEdit ? GenericMultiEditCellClass : undefined,\n editable: true,\n cellEditor: GenericCellEditorComponent,\n }),\n ...props,\n cellRendererParams: {\n originalCellRender: props.cellRenderer,\n ...props.cellRendererParams,\n },\n };\n};\n\ninterface GenericCellEditorICellEditorParams<RowType extends GridBaseRow, FormProps extends Record<string, any>>\n extends ICellEditorParams {\n data: RowType;\n colDef: GenericCellEditorColDef<RowType, FormProps>;\n}\n\nexport const GenericCellEditorComponent = <RowType extends GridBaseRow, FormProps extends Record<string, any>>(\n props: GenericCellEditorICellEditorParams<RowType, FormProps>,\n) => {\n const { updatingCells, getSelectedRows } = useContext(GridContext);\n\n const { colDef, data } = props;\n const { cellEditorParams } = props.colDef;\n const multiEdit = cellEditorParams?.multiEdit ?? false;\n const field = props.colDef.field ?? \"\";\n\n const formProps = colDef.cellEditorParams ?? {};\n const value = props.value;\n\n const selectedRows = useMemo(\n () => (multiEdit ? getSelectedRows<RowType>() : [data]),\n [data, getSelectedRows, multiEdit],\n );\n\n const [saving, setSaving] = useState(false);\n\n const updateValue = useCallback(\n async (saveFn: (selectedRows: any[]) => Promise<boolean>): Promise<boolean> => {\n return !saving && (await updatingCells({ selectedRows, field }, saveFn, setSaving));\n },\n [field, saving, selectedRows, updatingCells],\n );\n\n if (cellEditorParams == null) return <></>;\n\n return (\n <>\n <div>{colDef.cellRenderer ? <colDef.cellRenderer {...props} saving={saving} /> : props.value}</div>\n {cellEditorParams?.form && (\n <cellEditorParams.form\n cellEditorParams={props}\n updateValue={updateValue}\n saving={saving}\n formProps={formProps}\n value={value}\n field={field}\n selectedRows={selectedRows}\n />\n )}\n </>\n );\n};\n","import { LuiMiniSpinner } from \"@linzjs/lui\";\n\n/**\n * If loading is true this returns a loading spinner, otherwise it returns its children.\n */\nexport const ComponentLoadingWrapper = (props: {\n loading?: boolean;\n saving?: boolean;\n children: JSX.Element | undefined;\n}): JSX.Element => {\n return props.loading ? (\n <LuiMiniSpinner size={22} divProps={{ role: \"status\", [\"aria-label\"]: \"Loading\", style: { padding: 16 } }} />\n ) : (\n <div style={{ maxHeight: 400, overflowY: \"auto\", pointerEvents: props.saving ? \"none\" : \"inherit\" }}>\n {props.saving && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"rgba(64,64,64,0.1)\",\n zIndex: 1000,\n }}\n />\n )}\n {props.children}\n </div>\n );\n};\n","import { useMemo } from \"react\";\n\ntype useBemModifiers = Record<string, boolean | string | undefined>;\n\ninterface useBemProps {\n block: string;\n element: string;\n modifiers: useBemModifiers;\n className: string | ((modifiers: useBemModifiers) => string | undefined);\n}\n\n// Generate className following BEM methodology: http://getbem.com/naming/\n// Modifier value can be one of the following types: boolean, string, undefined\nexport const useBEM = ({ block, element, modifiers, className }: useBemProps) =>\n useMemo(() => {\n const blockElement = element ? `${block}__${element}` : block;\n\n let classString = blockElement;\n modifiers &&\n Object.keys(modifiers).forEach((name) => {\n const value = modifiers[name];\n if (value) classString += ` ${blockElement}--${value === true ? name : `${name}-${value}`}`;\n });\n\n let expandedClassName = typeof className === \"function\" ? className(modifiers) : className;\n if (typeof expandedClassName === \"string\") {\n expandedClassName = expandedClassName.trim();\n if (expandedClassName) classString += ` ${expandedClassName}`;\n }\n\n return classString;\n }, [block, element, modifiers, className]);\n","import { Ref, MutableRefObject, useMemo } from \"react\";\n\n// Adapted from material-ui\n// https://github.com/mui-org/material-ui/blob/f996027d00e7e4bff3fc040786c1706f9c6c3f82/packages/material-ui-utils/src/useForkRef.ts\n\nconst setRef = <T>(\n ref: MutableRefObject<T | null> | ((instance: T | null) => void) | null | undefined,\n instance: T | null,\n) => {\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref) {\n ref.current = instance;\n }\n};\n\nexport const useCombinedRef = <Instance>(\n refA: Ref<Instance> | null | undefined,\n refB: Ref<Instance> | null | undefined,\n): Ref<Instance> | null | undefined => {\n return useMemo(() => {\n if (!refA) return refB;\n if (!refB) return refA;\n\n return (instance) => {\n setRef(refA, instance);\n setRef(refB, instance);\n };\n }, [refA, refB]);\n};\n","import { useEffect, useLayoutEffect } from \"react\";\n\n// Get around a warning when using useLayoutEffect on the server.\n// https://github.com/reduxjs/react-redux/blob/b48d087d76f666e1c6c5a9713bbec112a1631841/src/utils/useIsomorphicLayoutEffect.js#L12\n// https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n// https://github.com/facebook/react/issues/14927#issuecomment-549457471\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n ? useLayoutEffect\n : useEffect;\n\nexport { useIsomorphicLayoutEffect as useLayoutEffect };\n","// @ts-nocheck\nimport { createContext } from \"react\";\n\nexport const menuContainerClass = \"szh-menu-container\";\nexport const menuClass = \"szh-menu\";\nexport const menuButtonClass = \"szh-menu-button\";\nexport const menuArrowClass = \"arrow\";\nexport const menuItemClass = \"item\";\nexport const menuDividerClass = \"divider\";\nexport const menuHeaderClass = \"header\";\nexport const menuGroupClass = \"group\";\nexport const subMenuClass = \"submenu\";\nexport const radioGroupClass = \"radio-group\";\n\nexport const HoverItemContext = createContext();\nexport const MenuListItemContext = createContext({});\nexport const MenuListContext = createContext({});\nexport const EventHandlersContext = createContext({});\nexport const RadioGroupContext = createContext({});\nexport const SettingsContext = createContext({});\nexport const ItemSettingsContext = createContext({});\n\nexport const Keys = Object.freeze({\n ENTER: \"Enter\",\n ESC: \"Escape\",\n SPACE: \" \",\n HOME: \"Home\",\n END: \"End\",\n LEFT: \"ArrowLeft\",\n RIGHT: \"ArrowRight\",\n UP: \"ArrowUp\",\n DOWN: \"ArrowDown\",\n});\n\nexport const HoverActionTypes = Object.freeze({\n RESET: 0,\n SET: 1,\n UNSET: 2,\n INCREASE: 3,\n DECREASE: 4,\n FIRST: 5,\n LAST: 6,\n SET_INDEX: 7,\n});\n\nexport const CloseReason = Object.freeze({\n CLICK: \"click\",\n CANCEL: \"cancel\",\n BLUR: \"blur\",\n SCROLL: \"scroll\",\n});\n\nexport const FocusPositions = Object.freeze({\n FIRST: \"first\",\n LAST: \"last\",\n});\n\nexport const MenuStateMap: Record<string, string | undefined> = Object.freeze({\n entering: \"opening\",\n entered: \"open\",\n exiting: \"closing\",\n exited: \"closed\",\n});\n","// @ts-nocheck\nimport { unstable_batchedUpdates } from \"react-dom\";\n\nexport const isMenuOpen = (state) => !!state && state[0] === \"o\";\nexport const batchedUpdates = unstable_batchedUpdates || ((callback) => callback());\nexport const values = Object.values || ((obj) => Object.keys(obj).map((key) => obj[key]));\nexport const floatEqual = (a: number, b: number, diff = 0.0001) => Math.abs(a - b) < diff;\nexport const getTransition = (transition: boolean | Record<string, string>, name: string) =>\n transition === true || !!(transition && transition[name]);\nexport const safeCall = (fn, arg) => (typeof fn === \"function\" ? fn(arg) : fn);\n\nconst internalKey = \"_szhsinMenu\";\nexport const getName = (component) => component[internalKey];\nexport const defineName = (name, component) => Object.defineProperty(component, internalKey, { value: name });\n\nexport const mergeProps = (target: Record<string, any>, source: Record<string, any>) => {\n source &&\n Object.keys(source).forEach((key) => {\n const targetProp = target[key];\n const sourceProp = source[key];\n if (typeof sourceProp === \"function\" && targetProp) {\n target[key] = (...arg) => {\n sourceProp(...arg);\n targetProp(...arg);\n };\n } else {\n target[key] = sourceProp;\n }\n });\n\n return target;\n};\n\nexport const parsePadding = (paddingStr) => {\n if (typeof paddingStr !== \"string\") return { top: 0, right: 0, bottom: 0, left: 0 };\n\n const padding = paddingStr.trim().split(/\\s+/, 4).map(parseFloat);\n const top = !isNaN(padding[0]) ? padding[0] : 0;\n const right = !isNaN(padding[1]) ? padding[1] : top;\n return {\n top,\n right,\n bottom: !isNaN(padding[2]) ? padding[2] : top,\n left: !isNaN(padding[3]) ? padding[3] : right,\n };\n};\n\n// Adapted from https://github.com/popperjs/popper-core/tree/v2.9.1/src/dom-utils\nexport const getScrollAncestor = (node) => {\n const thisWindow = node.ownerDocument.defaultView;\n while (node) {\n node = node.parentNode;\n if (!node || node === thisWindow.document.body) return;\n const { overflow, overflowX, overflowY } = thisWindow.getComputedStyle(node);\n if (/auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX)) return node;\n }\n};\n\nexport function commonProps(isDisabled, isHovering) {\n return {\n \"aria-disabled\": isDisabled || undefined,\n tabIndex: isHovering ? 0 : -1,\n };\n}\n\nexport function indexOfNode(nodeList, node) {\n for (let i = 0; i < nodeList.length; i++) {\n if (nodeList[i] === node) return i;\n }\n return -1;\n}\n","import { string, number, bool, func, object, oneOf, oneOfType, exact } from \"prop-types\";\n\nexport const stylePropTypes = (name?: string) => ({\n [name ? `${name}ClassName` : \"className\"]: oneOfType([string, func]),\n});\n\n// Menu, SubMenu and ControlledMenu\nexport const menuPropTypes = {\n className: string,\n ...stylePropTypes(\"menu\"),\n ...stylePropTypes(\"arrow\"),\n menuStyle: object,\n arrowStyle: object,\n arrow: bool,\n setDownOverflow: bool,\n offsetX: number,\n offsetY: number,\n align: oneOf([\"start\", \"center\", \"end\"]),\n direction: oneOf([\"left\", \"right\", \"top\", \"bottom\"]),\n position: oneOf([\"auto\", \"anchor\", \"initial\"]),\n overflow: oneOf([\"auto\", \"visible\", \"hidden\"]),\n};\n\n// Menu and ControlledMenu\nexport const rootMenuPropTypes = {\n ...menuPropTypes,\n containerProps: object,\n initialMounted: bool,\n unmountOnClose: bool,\n transition: oneOfType([\n bool,\n exact({\n open: bool,\n close: bool,\n item: bool,\n }),\n ]),\n transitionTimeout: number,\n boundingBoxRef: object,\n boundingBoxPadding: string,\n reposition: oneOf([\"auto\", \"initial\"]),\n repositionFlag: oneOfType([string, number]),\n viewScroll: oneOf([\"auto\", \"close\", \"initial\"]),\n submenuOpenDelay: number,\n submenuCloseDelay: number,\n portal: oneOfType([\n bool,\n exact({\n target: object,\n stablePosition: bool,\n }),\n ]),\n theming: string,\n onItemClick: func,\n};\n\n// Menu and SubMenu\nexport const uncontrolledMenuPropTypes = {\n instanceRef: oneOfType([object, func]),\n onMenuChange: func,\n};\n","// @ts-nocheck\nimport { memo, forwardRef, useContext, useRef } from \"react\";\nimport { HoverItemContext } from \"./constants\";\n\nexport const withHovering = (name: string, WrappedComponent: any): any => {\n const Component = memo(WrappedComponent);\n const WithHovering = forwardRef<any>((props: any, ref) => {\n const itemRef = useRef(null);\n return (\n <Component\n {...props}\n itemRef={itemRef}\n externalRef={ref}\n isHovering={useContext(HoverItemContext) === itemRef.current}\n />\n );\n });\n\n WithHovering.displayName = `WithHovering(${name})`;\n\n return WithHovering;\n};\n","// @ts-nocheck\nimport { useState, useCallback, useRef } from \"react\";\nimport { HoverActionTypes, indexOfNode } from \"../utils\";\n\nexport const useItems = (menuRef, focusRef) => {\n const [hoverItem, setHoverItem] = useState();\n const stateRef = useRef({\n items: [],\n hoverIndex: -1,\n sorted: false,\n });\n const mutableState = stateRef.current;\n\n const updateItems = useCallback(\n (item, isMounted) => {\n const { items } = mutableState;\n if (!item) {\n mutableState.items = [];\n } else if (isMounted) {\n items.push(item);\n } else {\n const index = items.indexOf(item);\n if (index > -1) {\n items.splice(index, 1);\n if (item.contains(document.activeElement)) {\n focusRef.current.focus();\n setHoverItem();\n }\n }\n }\n mutableState.hoverIndex = -1;\n mutableState.sorted = false;\n },\n [mutableState, focusRef],\n );\n\n const dispatch = useCallback(\n (actionType, item, nextIndex) => {\n const { items, hoverIndex } = mutableState;\n const sortItems = () => {\n if (mutableState.sorted) return;\n const orderedNodes = menuRef.current.querySelectorAll(\".szh-menu__item\");\n items.sort((a, b) => indexOfNode(orderedNodes, a) - indexOfNode(orderedNodes, b));\n mutableState.sorted = true;\n };\n\n let index = -1,\n newItem = undefined;\n switch (actionType) {\n case HoverActionTypes.RESET:\n break;\n\n case HoverActionTypes.SET:\n newItem = item;\n break;\n\n case HoverActionTypes.UNSET:\n newItem = (prevItem) => (prevItem === item ? undefined : prevItem);\n break;\n\n case HoverActionTypes.FIRST:\n sortItems();\n index = 0;\n newItem = items[index];\n break;\n\n case HoverActionTypes.LAST:\n sortItems();\n index = items.length - 1;\n newItem = items[index];\n break;\n\n case HoverActionTypes.SET_INDEX:\n sortItems();\n index = nextIndex;\n newItem = items[index];\n break;\n\n case HoverActionTypes.INCREASE:\n sortItems();\n index = hoverIndex;\n if (index < 0) index = items.indexOf(item);\n index++;\n if (index >= items.length) index = 0;\n newItem = items[index];\n break;\n\n case HoverActionTypes.DECREASE:\n sortItems();\n index = hoverIndex;\n if (index < 0) index = items.indexOf(item);\n index--;\n if (index < 0) index = items.length - 1;\n newItem = items[index];\n break;\n\n default:\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(`[React-Menu] Unknown hover action type: ${actionType}`);\n }\n\n if (!newItem) index = -1;\n setHoverItem(newItem);\n mutableState.hoverIndex = index;\n },\n [menuRef, mutableState],\n );\n\n return { hoverItem, dispatch, updateItems };\n};\n","import { MutableRefObject } from \"react\";\nimport { useLayoutEffect } from \"./useIsomorphicLayoutEffect\";\n\nexport const useItemEffect = (\n isDisabled: boolean,\n itemRef: MutableRefObject<any>,\n updateItems: (item: any, isMounted?: boolean) => void,\n) => {\n useLayoutEffect(() => {\n if (process.env.NODE_ENV !== \"production\" && !updateItems) {\n throw new Error(\n `[React-Menu] This menu item or submenu should be rendered under a menu: ${itemRef.current.outerHTML}`,\n );\n }\n if (isDisabled) return;\n const item = itemRef.current;\n updateItems(item, true);\n return () => {\n updateItems(item);\n };\n }, [isDisabled, itemRef, updateItems]);\n};\n","// @ts-nocheck\nimport { useRef, useContext, useEffect } from \"react\";\nimport { ItemSettingsContext, MenuListItemContext, HoverActionTypes } from \"../utils\";\nimport { useItemEffect } from \"./useItemEffect\";\n\n// This hook includes some common stateful logic in MenuItem and FocusableItem\nexport const useItemState = (itemRef, focusRef, isHovering, isDisabled) => {\n const { submenuCloseDelay } = useContext(ItemSettingsContext);\n const { isParentOpen, isSubmenuOpen, dispatch, updateItems } = useContext(MenuListItemContext);\n const timeoutId = useRef(0);\n\n const setHover = () => {\n !isHovering && !isDisabled && dispatch(HoverActionTypes.SET, itemRef.current);\n };\n\n const unsetHover = () => {\n !isDisabled && dispatch(HoverActionTypes.UNSET, itemRef.current);\n };\n\n const onBlur = (e) => {\n // Focus has moved out of the entire item\n // It handles situation such as clicking on a sibling disabled menu item\n if (isHovering && !e.currentTarget.contains(e.relatedTarget)) unsetHover();\n };\n\n const onPointerMove = () => {\n if (isSubmenuOpen) {\n if (!timeoutId.current)\n timeoutId.current = setTimeout(() => {\n timeoutId.current = 0;\n setHover();\n }, submenuCloseDelay);\n } else {\n setHover();\n }\n };\n\n const onPointerLeave = (_, keepHover) => {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n\n !keepHover && unsetHover();\n };\n\n useItemEffect(isDisabled, itemRef, updateItems);\n useEffect(() => () => clearTimeout(timeoutId.current), []);\n useEffect(() => {\n // Don't set focus when parent menu is closed, otherwise focus will be lost\n // and onBlur event will be fired with relatedTarget setting as null.\n if (isHovering && isParentOpen) {\n focusRef.current && focusRef.current.focus();\n }\n }, [focusRef, isHovering, isParentOpen]);\n\n return {\n setHover,\n onBlur,\n onPointerMove,\n onPointerLeave,\n };\n};\n","// @ts-nocheck\nimport { useRef, useEffect } from \"react\";\nimport { safeCall } from \"../utils\";\n\nexport const useMenuChange = (onMenuChange, isOpen) => {\n const prevOpen = useRef(isOpen);\n\n useEffect(() => {\n if (prevOpen.current !== isOpen) safeCall(onMenuChange, { open: isOpen });\n prevOpen.current = isOpen;\n }, [onMenuChange, isOpen]);\n};\n","import { useTransition } from \"react-transition-state\";\nimport { MenuStateMap, getTransition } from \"../utils\";\n\ninterface useMenuStateProps {\n initialMounted?: boolean;\n unmountOnClose?: boolean;\n transition: boolean | Record<string, string>;\n transitionTimeout?: number;\n}\n\nexport const useMenuState = (props?: useMenuStateProps) => {\n const { initialMounted, unmountOnClose, transition, transitionTimeout } = props ?? {\n transition: false,\n };\n const [state, toggleMenu, endTransition] = useTransition({\n mountOnEnter: !initialMounted,\n unmountOnExit: unmountOnClose,\n timeout: transitionTimeout ?? 500,\n enter: getTransition(transition, \"open\"),\n exit: getTransition(transition, \"close\"),\n });\n\n return [{ state: MenuStateMap[state], endTransition }, toggleMenu];\n};\n","// @ts-nocheck\nimport { useState } from \"react\";\nimport { useMenuState } from \"./useMenuState\";\n\nexport const useMenuStateAndFocus = (options) => {\n const [menuProps, toggleMenu] = useMenuState(options);\n const [menuItemFocus, setMenuItemFocus] = useState();\n\n const openMenu = (position, alwaysUpdate) => {\n setMenuItemFocus({ position, alwaysUpdate });\n toggleMenu(true);\n };\n\n return [{ menuItemFocus, ...menuProps }, toggleMenu, openMenu];\n};\n","// @ts-nocheck\nimport { forwardRef, useMemo } from \"react\";\nimport { bool } from \"prop-types\";\nimport { useBEM } from \"../hooks\";\nimport { defineName, menuButtonClass, stylePropTypes } from \"../utils\";\n\nexport const MenuButton = defineName(\n \"MenuButton\",\n forwardRef(function MenuButton({ className, isOpen, disabled, children, ...restProps }, ref) {\n const modifiers = useMemo(() => ({ open: isOpen }), [isOpen]);\n\n return (\n <button\n aria-haspopup\n aria-expanded={isOpen}\n aria-disabled={disabled || undefined}\n type=\"button\"\n disabled={disabled}\n {...restProps}\n ref={ref}\n className={useBEM({ block: menuButtonClass, modifiers, className })}\n >\n {children}\n </button>\n );\n }),\n);\n\nMenuButton.propTypes = {\n ...stylePropTypes(),\n isOpen: bool,\n disabled: bool,\n};\n","// @ts-nocheck\nimport { parsePadding } from \"../utils\";\n\nexport const getPositionHelpers = (containerRef, menuRef, menuScroll, boundingBoxPadding) => {\n const menuRect = menuRef.current.getBoundingClientRect();\n const containerRect = containerRef.current.getBoundingClientRect();\n const thisWindow = containerRef.current.ownerDocument.defaultView;\n const boundingRect =\n menuScroll === window || menuScroll === thisWindow\n ? {\n left: 0,\n top: 0,\n right: thisWindow.document.documentElement.clientWidth,\n bottom: thisWindow.innerHeight,\n }\n : menuScroll.getBoundingClientRect();\n const padding = parsePadding(boundingBoxPadding);\n\n // For left and top, overflows are negative value.\n // For right and bottom, overflows are positive value.\n const getLeftOverflow = (x) => x + containerRect.left - boundingRect.left - padding.left;\n const getRightOverflow = (x) => x + containerRect.left + menuRect.width - boundingRect.right + padding.right;\n const getTopOverflow = (y) => y + containerRect.top - boundingRect.top - padding.top;\n const getBottomOverflow = (y) => y + containerRect.top + menuRect.height - boundingRect.bottom + padding.bottom;\n\n const confineHorizontally = (x) => {\n // If menu overflows to the left side, adjust x to have the menu contained within the viewport\n // and there is no need to check the right side;\n // if it doesn't overflow to the left, then check the right side\n let leftOverflow = getLeftOverflow(x);\n if (leftOverflow < 0) {\n x -= leftOverflow;\n } else {\n const rightOverflow = getRightOverflow(x);\n if (rightOverflow > 0) {\n x -= rightOverflow;\n // Check again to make sure menu doesn't overflow to the left\n // because it may go off screen and cannot be scroll into view.\n leftOverflow = getLeftOverflow(x);\n if (leftOverflow < 0) x -= leftOverflow;\n }\n }\n\n return x;\n };\n\n const confineVertically = (y) => {\n // Similar logic to confineHorizontally above\n let topOverflow = getTopOverflow(y);\n if (topOverflow < 0) {\n y -= topOverflow;\n } else {\n const bottomOverflow = getBottomOverflow(y);\n if (bottomOverflow > 0) {\n y -= bottomOverflow;\n // Check again to make sure menu doesn't overflow to the bottom\n // because it may go off screen and cannot be scroll into view.\n topOverflow = getTopOverflow(y);\n if (topOverflow < 0) y -= topOverflow;\n }\n }\n\n return y;\n };\n\n return {\n menuRect,\n containerRect,\n getLeftOverflow,\n getRightOverflow,\n getTopOverflow,\n getBottomOverflow,\n confineHorizontally,\n confineVertically,\n };\n};\n","// @ts-nocheck\nexport const positionContextMenu = ({ positionHelpers, anchorPoint }) => {\n const {\n menuRect,\n containerRect,\n getLeftOverflow,\n getRightOverflow,\n getTopOverflow,\n getBottomOverflow,\n confineHorizontally,\n confineVertically,\n } = positionHelpers;\n\n let x, y;\n\n // position the menu with cursor pointing to its top-left corner\n x = anchorPoint.x - containerRect.left;\n y = anchorPoint.y - containerRect.top;\n\n // If menu overflows to the right of viewport,\n // try to reposition it on the left side of cursor.\n // If menu overflows to the left of viewport after repositioning,\n // choose a side which has less overflow\n // and adjust x to have it contained within the viewport.\n const rightOverflow = getRightOverflow(x);\n if (rightOverflow > 0) {\n const adjustedX = x - menuRect.width;\n const leftOverflow = getLeftOverflow(adjustedX);\n if (leftOverflow >= 0 || -leftOverflow < rightOverflow) {\n x = adjustedX;\n }\n x = confineHorizontally(x);\n }\n\n // Similar logic to the left and right side above.\n let computedDirection = \"bottom\";\n const bottomOverflow = getBottomOverflow(y);\n if (bottomOverflow > 0) {\n const adjustedY = y - menuRect.height;\n const topOverflow = getTopOverflow(adjustedY);\n if (topOverflow >= 0 || -topOverflow < bottomOverflow) {\n y = adjustedY;\n computedDirection = \"top\";\n }\n y = confineVertically(y);\n }\n\n return { x, y, computedDirection };\n};\n","// @ts-nocheck\nexport const placeArrowVertical = ({ arrowRef, menuY, anchorRect, containerRect, menuRect }) => {\n let y = anchorRect.top - containerRect.top - menuY + anchorRect.height / 2;\n const offset = arrowRef.current.offsetHeight * 1.25;\n y = Math.max(offset, y);\n y = Math.min(y, menuRect.height - offset);\n return y;\n};\n","// @ts-nocheck\nimport { placeArrowVertical } from \"./placeArrowVertical\";\n\nexport const placeLeftorRight = ({\n anchorRect,\n containerRect,\n menuRect,\n placeLeftorRightY,\n placeLeftX,\n placeRightX,\n getLeftOverflow,\n getRightOverflow,\n confineHorizontally,\n confineVertically,\n arrowRef,\n arrow,\n direction,\n position,\n}) => {\n let computedDirection = direction;\n let y = placeLeftorRightY;\n if (position !== \"initial\") {\n y = confineVertically(y);\n if (position === \"anchor\") {\n // restrict menu to the edge of anchor element\n y = Math.min(y, anchorRect.bottom - containerRect.top);\n y = Math.max(y, anchorRect.top - containerRect.top - menuRect.height);\n }\n }\n\n let x, leftOverflow, rightOverflow;\n if (computedDirection === \"left\") {\n x = placeLeftX;\n\n if (position !== \"initial\") {\n // if menu overflows to the left,\n // try to reposition it to the right of the anchor.\n leftOverflow = getLeftOverflow(x);\n if (leftOverflow < 0) {\n // if menu overflows to the right after repositioning,\n // choose a side which has less overflow\n rightOverflow = getRightOverflow(placeRightX);\n if (rightOverflow <= 0 || -leftOverflow > rightOverflow) {\n x = placeRightX;\n computedDirection = \"right\";\n }\n }\n }\n } else {\n // Opposite logic to the 'left' direction above\n x = placeRightX;\n\n if (position !== \"initial\") {\n rightOverflow = getRightOverflow(x);\n if (rightOverflow > 0) {\n leftOverflow = getLeftOverflow(placeLeftX);\n if (leftOverflow >= 0 || -leftOverflow < rightOverflow) {\n x = placeLeftX;\n computedDirection = \"left\";\n }\n }\n }\n }\n\n if (position === \"auto\") x = confineHorizontally(x);\n const arrowY = arrow\n ? placeArrowVertical({\n menuY: y,\n arrowRef,\n anchorRect,\n containerRect,\n menuRect,\n })\n : undefined;\n return { arrowY, x, y, computedDirection };\n};\n","// @ts-nocheck\nexport const placeArrowHorizontal = ({ arrowRef, menuX, anchorRect, containerRect, menuRect }) => {\n let x = anchorRect.left - containerRect.left - menuX + anchorRect.width / 2;\n const offset = arrowRef.current.offsetWidth * 1.25;\n x = Math.max(offset, x);\n x = Math.min(x, menuRect.width - offset);\n return x;\n};\n","// @ts-nocheck\nimport { placeArrowHorizontal } from \"./placeArrowHorizontal\";\n\nexport const placeToporBottom = ({\n anchorRect,\n containerRect,\n menuRect,\n placeToporBottomX,\n placeTopY,\n placeBottomY,\n getTopOverflow,\n getBottomOverflow,\n confineHorizontally,\n confineVertically,\n arrowRef,\n arrow,\n direction,\n position,\n}) => {\n // make sure invalid direction is treated as 'bottom'\n let computedDirection = direction === \"top\" ? \"top\" : \"bottom\";\n let x = placeToporBottomX;\n if (position !== \"initial\") {\n x = confineHorizontally(x);\n if (position === \"anchor\") {\n // restrict menu to the edge of anchor element\n x = Math.min(x, anchorRect.right - containerRect.left);\n x = Math.max(x, anchorRect.left - containerRect.left - menuRect.width);\n }\n }\n\n let y, topOverflow, bottomOverflow;\n if (computedDirection === \"top\") {\n y = placeTopY;\n\n if (position !== \"initial\") {\n // if menu overflows to the top,\n // try to reposition it to the bottom of the anchor.\n topOverflow = getTopOverflow(y);\n if (topOverflow < 0) {\n // if menu overflows to the bottom after repositioning,\n // choose a side which has less overflow\n bottomOverflow = getBottomOverflow(placeBottomY);\n if (bottomOverflow <= 0 || -topOverflow > bottomOverflow) {\n y = placeBottomY;\n computedDirection = \"bottom\";\n }\n }\n }\n } else {\n // Opposite logic to the 'top' direction above\n y = placeBottomY;\n\n if (position !== \"initial\") {\n bottomOverflow = getBottomOverflow(y);\n if (bottomOverflow > 0) {\n topOverflow = getTopOverflow(placeTopY);\n if (topOverflow >= 0 || -topOverflow < bottomOverflow) {\n y = placeTopY;\n computedDirection = \"top\";\n }\n }\n }\n }\n\n if (position === \"auto\") y = confineVertically(y);\n const arrowX = arrow\n ? placeArrowHorizontal({\n menuX: x,\n arrowRef,\n anchorRect,\n containerRect,\n menuRect,\n })\n : undefined;\n return { arrowX, x, y, computedDirection };\n};\n","// @ts-nocheck\nimport { placeLeftorRight } from \"./placeLeftorRight\";\nimport { placeToporBottom } from \"./placeToporBottom\";\n\nexport const positionMenu = ({\n arrow,\n align,\n direction,\n offsetX,\n offsetY,\n position,\n anchorRef,\n arrowRef,\n positionHelpers,\n}) => {\n const { menuRect, containerRect } = positionHelpers;\n\n let horizontalOffset = offsetX;\n let verticalOffset = offsetY;\n if (arrow) {\n if (direction === \"left\" || direction === \"right\") {\n horizontalOffset += arrowRef.current.offsetWidth;\n } else {\n verticalOffset += arrowRef.current.offsetHeight;\n }\n }\n\n const anchorRect = anchorRef.current.getBoundingClientRect();\n const placeLeftX = anchorRect.left - containerRect.left - menuRect.width - horizontalOffset;\n const placeRightX = anchorRect.right - containerRect.left + horizontalOffset;\n const placeTopY = anchorRect.top - containerRect.top - menuRect.height - verticalOffset;\n const placeBottomY = anchorRect.bottom - containerRect.top + verticalOffset;\n\n let placeToporBottomX, placeLeftorRightY;\n if (align === \"end\") {\n placeToporBottomX = anchorRect.right - containerRect.left - menuRect.width;\n placeLeftorRightY = anchorRect.bottom - containerRect.top - menuRect.height;\n } else if (align === \"center\") {\n placeToporBottomX = anchorRect.left - containerRect.left - (menuRect.width - anchorRect.width) / 2;\n placeLeftorRightY = anchorRect.top - containerRect.top - (menuRect.height - anchorRect.height) / 2;\n } else {\n placeToporBottomX = anchorRect.left - containerRect.left;\n placeLeftorRightY = anchorRect.top - containerRect.top;\n }\n placeToporBottomX += horizontalOffset;\n placeLeftorRightY += verticalOffset;\n\n const options = {\n ...positionHelpers,\n anchorRect,\n placeLeftX,\n placeRightX,\n placeLeftorRightY,\n placeTopY,\n placeBottomY,\n placeToporBottomX,\n arrowRef,\n arrow,\n direction,\n position,\n };\n\n switch (direction) {\n case \"left\":\n case \"right\":\n return placeLeftorRight(options);\n\n case \"top\":\n case \"bottom\":\n default:\n return placeToporBottom(options);\n }\n};\n","// @ts-nocheck\nimport { useState, useReducer, useEffect, useRef, useMemo, useCallback, useContext } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useBEM, useCombinedRef, useLayoutEffect, useItems } from \"../hooks\";\nimport { getPositionHelpers, positionMenu, positionContextMenu } from \"../positionUtils\";\nimport {\n mergeProps,\n batchedUpdates,\n commonProps,\n floatEqual,\n getScrollAncestor,\n getTransition,\n safeCall,\n isMenuOpen,\n menuClass,\n menuArrowClass,\n CloseReason,\n Keys,\n FocusPositions,\n HoverActionTypes,\n SettingsContext,\n MenuListContext,\n MenuListItemContext,\n HoverItemContext,\n} from \"../utils\";\n\nexport const MenuList = ({\n ariaLabel,\n menuClassName,\n menuStyle,\n arrowClassName,\n arrowStyle,\n anchorPoint,\n anchorRef,\n containerRef,\n externalRef,\n parentScrollingRef,\n arrow,\n align = \"start\",\n direction = \"bottom\",\n position = \"auto\",\n overflow = \"visible\",\n setDownOverflow,\n repositionFlag,\n captureFocus = true,\n state,\n endTransition,\n isDisabled,\n menuItemFocus,\n offsetX = 0,\n offsetY = 0,\n children,\n onClose,\n ...restProps\n}) => {\n const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 });\n const [arrowPosition, setArrowPosition] = useState({});\n const [overflowData, setOverflowData] = useState();\n const [expandedDirection, setExpandedDirection] = useState(direction);\n const [openSubmenuCount, setOpenSubmenuCount] = useState(0);\n const [reposSubmenu, forceReposSubmenu] = useReducer((c) => c + 1, 1);\n const {\n transition,\n boundingBoxRef,\n boundingBoxPadding,\n rootMenuRef,\n rootAnchorRef,\n scrollNodesRef,\n reposition,\n viewScroll,\n } = useContext(SettingsContext);\n const reposFlag = useContext(MenuListContext).reposSubmenu || repositionFlag;\n const menuRef = useRef(null);\n const focusRef = useRef();\n const arrowRef = useRef();\n const prevOpen = useRef(false);\n const latestMenuSize = useRef({ width: 0, height: 0 });\n const latestHandlePosition = useRef(() => {});\n const { hoverItem, dispatch, updateItems } = useItems(menuRef, focusRef);\n\n const isOpen = isMenuOpen(state);\n const openTransition = getTransition(transition, \"open\");\n const closeTransition = getTransition(transition, \"close\");\n const scrollNodes = scrollNodesRef.current;\n\n const onKeyDown = (e) => {\n const isTextInputTarget =\n e.target.nodeName === \"TEXTAREA\" || (e.target.nodeName === \"INPUT\" && e.target.getAttribute(\"type\") === \"text\");\n switch (e.key) {\n case Keys.HOME:\n // Don't eat home/end events on inputs\n if (isTextInputTarget) return;\n dispatch(HoverActionTypes.FIRST);\n break;\n\n case Keys.END:\n // Don't eat home/end events on inputs\n if (isTextInputTarget) return;\n dispatch(HoverActionTypes.LAST);\n break;\n\n case Keys.UP:\n dispatch(HoverActionTypes.DECREASE, hoverItem);\n break;\n\n case Keys.DOWN:\n dispatch(HoverActionTypes.INCREASE, hoverItem);\n break;\n\n // prevent browser from scrolling the page when SPACE is pressed\n case Keys.SPACE:\n // Don't preventDefault on children of FocusableItem\n if (e.target && e.target.className.indexOf(menuClass) !== -1) {\n e.preventDefault();\n }\n return;\n\n default:\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const onAnimationEnd = () => {\n if (state === \"closing\") {\n setOverflowData(); // reset overflowData after closing\n }\n\n safeCall(endTransition);\n };\n\n const handlePosition = useCallback(\n (noOverflowCheck) => {\n if (!containerRef.current) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n '[React-Menu] Menu cannot be positioned properly as container ref is null. If you need to initialise `state` prop to \"open\" for ControlledMenu, please see this solution: https://codesandbox.io/s/initial-open-sp10wn',\n );\n }\n return;\n }\n\n if (!scrollNodes.menu) {\n scrollNodes.menu =\n (boundingBoxRef\n ? boundingBoxRef.current // user explicitly sets boundingBoxRef\n : getScrollAncestor(rootMenuRef.current)) || window; // try to discover bounding box automatically\n }\n\n const positionHelpers = getPositionHelpers(containerRef, menuRef, scrollNodes.menu, boundingBoxPadding);\n const { menuRect } = positionHelpers;\n let results = { computedDirection: \"bottom\" };\n if (anchorPoint) {\n results = positionContextMenu({ positionHelpers, anchorPoint });\n } else if (anchorRef) {\n results = positionMenu({\n arrow,\n align,\n direction,\n offsetX,\n offsetY,\n position,\n anchorRef,\n arrowRef,\n positionHelpers,\n });\n }\n let { arrowX, arrowY, x, y, computedDirection } = results;\n let menuHeight = menuRect.height;\n\n if (!noOverflowCheck && overflow !== \"visible\") {\n const { getTopOverflow, getBottomOverflow } = positionHelpers;\n\n let height, overflowAmt;\n const prevHeight = latestMenuSize.current.height;\n const bottomOverflow = getBottomOverflow(y);\n // When bottomOverflow is 0, menu is on the bottom edge of viewport\n // This might be the result of a previous maxHeight set on the menu.\n // In this situation, we need to still apply a new maxHeight.\n // Same reason for the top side\n if (bottomOverflow > 0 || (floatEqual(bottomOverflow, 0) && floatEqual(menuHeight, prevHeight))) {\n height = menuHeight - bottomOverflow;\n overflowAmt = bottomOverflow;\n } else {\n const topOverflow = getTopOverflow(y);\n if (topOverflow < 0 || (floatEqual(topOverflow, 0) && floatEqual(menuHeight, prevHeight))) {\n height = menuHeight + topOverflow;\n overflowAmt = 0 - topOverflow; // avoid getting -0\n if (height >= 0) y -= topOverflow;\n }\n }\n\n if (height >= 0) {\n // To avoid triggering reposition in the next ResizeObserver callback\n menuHeight = height;\n setOverflowData({ height, overflowAmt });\n } else {\n setOverflowData();\n }\n }\n\n if (arrow) setArrowPosition({ x: arrowX, y: arrowY });\n setMenuPosition({ x, y });\n setExpandedDirection(computedDirection);\n latestMenuSize.current = { width: menuRect.width, height: menuHeight };\n },\n [\n arrow,\n align,\n boundingBoxPadding,\n direction,\n offsetX,\n offsetY,\n position,\n overflow,\n anchorPoint,\n anchorRef,\n containerRef,\n boundingBoxRef,\n rootMenuRef,\n scrollNodes,\n ],\n );\n\n useLayoutEffect(() => {\n if (isOpen) {\n handlePosition();\n // Reposition submenu whenever deps(except isOpen) have changed\n if (prevOpen.current) forceReposSubmenu();\n }\n prevOpen.current = isOpen;\n latestHandlePosition.current = handlePosition;\n }, [isOpen, handlePosition, /* effect dep */ reposFlag]);\n\n useLayoutEffect(() => {\n if (overflowData && !setDownOverflow) menuRef.current.scrollTop = 0;\n }, [overflowData, setDownOverflow]);\n\n useLayoutEffect(() => updateItems, [updateItems]);\n\n useEffect(() => {\n let { menu: menuScroll } = scrollNodes;\n if (!isOpen || !menuScroll) return;\n\n menuScroll = menuScroll.addEventListener ? menuScroll : window;\n if (!scrollNodes.anchors) {\n scrollNodes.anchors = [];\n let anchorScroll = getScrollAncestor(rootAnchorRef && rootAnchorRef.current);\n while (anchorScroll && anchorScroll !== menuScroll) {\n scrollNodes.anchors.push(anchorScroll);\n anchorScroll = getScrollAncestor(anchorScroll);\n }\n }\n\n let scroll = viewScroll;\n if (scrollNodes.anchors.length && scroll === \"initial\") scroll = \"auto\";\n if (scroll === \"initial\") return;\n\n const handleScroll = () => {\n if (scroll === \"auto\") {\n batchedUpdates(() => handlePosition(true));\n } else {\n safeCall(onClose, { reason: CloseReason.SCROLL });\n }\n };\n\n const scrollObservers = scrollNodes.anchors.concat(viewScroll !== \"initial\" ? menuScroll : []);\n scrollObservers.forEach((o) => o.addEventListener(\"scroll\", handleScroll));\n return () => scrollObservers.forEach((o) => o.removeEventListener(\"scroll\", handleScroll));\n }, [rootAnchorRef, scrollNodes, isOpen, onClose, viewScroll, handlePosition]);\n\n const hasOverflow = !!overflowData && overflowData.overflowAmt > 0;\n useEffect(() => {\n if (hasOverflow || !isOpen || !parentScrollingRef) return;\n\n const handleScroll = () => batchedUpdates(handlePosition);\n const parentScroll = parentScrollingRef.current;\n parentScroll.addEventListener(\"scroll\", handleScroll);\n return () => parentScroll.removeEventListener(\"scroll\", handleScroll);\n }, [isOpen, hasOverflow, parentScrollingRef, handlePosition]);\n\n useEffect(() => {\n if (typeof ResizeObserver !== \"function\" || reposition === \"initial\") return;\n\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { borderBoxSize, target } = entry;\n let width, height;\n if (borderBoxSize) {\n const { inlineSize, blockSize } = borderBoxSize[0] || borderBoxSize;\n width = inlineSize;\n height = blockSize;\n } else {\n const borderRect = target.getBoundingClientRect();\n width = borderRect.width;\n height = borderRect.height;\n }\n\n if (width === 0 || height === 0) return;\n if (floatEqual(width, latestMenuSize.current.width, 1) && floatEqual(height, latestMenuSize.current.height, 1))\n return;\n flushSync(() => {\n latestHandlePosition.current();\n forceReposSubmenu();\n });\n });\n\n const observeTarget = menuRef.current;\n resizeObserver.observe(observeTarget, { box: \"border-box\" });\n return () => resizeObserver.unobserve(observeTarget);\n }, [reposition]);\n\n useEffect(() => {\n if (!isOpen) {\n dispatch(HoverActionTypes.RESET);\n if (!closeTransition) setOverflowData();\n return;\n }\n\n const { position, alwaysUpdate } = menuItemFocus || {};\n const setItemFocus = () => {\n if (position === FocusPositions.FIRST) {\n dispatch(HoverActionTypes.FIRST);\n } else if (position === FocusPositions.LAST) {\n dispatch(HoverActionTypes.LAST);\n } else if (position >= -1) {\n dispatch(HoverActionTypes.SET_INDEX, undefined, position);\n }\n };\n\n if (alwaysUpdate) {\n setItemFocus();\n } else if (captureFocus) {\n // Use a timeout here because if set focus immediately, page might scroll unexpectedly.\n const id = setTimeout(\n () => {\n // If focus has already been set to a children element, don't set focus on menu or item\n if (!menuRef.current.contains(document.activeElement)) {\n focusRef.current.focus();\n setItemFocus();\n }\n },\n openTransition ? 170 : 100,\n );\n\n return () => clearTimeout(id);\n }\n }, [isOpen, openTransition, closeTransition, captureFocus, menuItemFocus, dispatch]);\n\n const isSubmenuOpen = openSubmenuCount > 0;\n const itemContext = useMemo(\n () => ({\n isParentOpen: isOpen,\n isSubmenuOpen,\n setOpenSubmenuCount,\n dispatch,\n updateItems,\n }),\n [isOpen, isSubmenuOpen, dispatch, updateItems],\n );\n\n let maxHeight, overflowAmt;\n if (overflowData) {\n setDownOverflow ? (overflowAmt = overflowData.overflowAmt) : (maxHeight = overflowData.height);\n }\n\n const listContext = useMemo(\n () => ({\n reposSubmenu,\n overflow,\n overflowAmt,\n parentMenuRef: menuRef,\n parentDir: expandedDirection,\n }),\n [reposSubmenu, overflow, overflowAmt, expandedDirection],\n );\n const overflowStyle = maxHeight >= 0 ? { maxHeight, overflow } : undefined;\n\n const modifiers = useMemo(\n () => ({\n state,\n dir: expandedDirection,\n }),\n [state, expandedDirection],\n );\n const arrowModifiers = useMemo(() => ({ dir: expandedDirection }), [expandedDirection]);\n const _arrowClass = useBEM({\n block: menuClass,\n element: menuArrowClass,\n modifiers: arrowModifiers,\n className: arrowClassName,\n });\n\n return (\n <ul\n role=\"menu\"\n aria-label={ariaLabel}\n {...mergeProps({ onKeyDown, onAnimationEnd }, restProps)}\n {...commonProps(isDisabled)}\n ref={useCombinedRef(externalRef, menuRef)}\n className={useBEM({ block: menuClass, modifiers, className: menuClassName })}\n style={{\n ...menuStyle,\n ...overflowStyle,\n margin: 0,\n display: state === \"closed\" ? \"none\" : undefined,\n position: \"absolute\",\n left: menuPosition.x,\n top: menuPosition.y,\n }}\n >\n <div ref={focusRef} tabIndex={-1} style={{ position: \"absolute\", left: 0, top: 0 }} />\n {arrow && (\n <div\n className={_arrowClass}\n style={{\n ...arrowStyle,\n position: \"absolute\",\n left: arrowPosition.x,\n top: arrowPosition.y,\n }}\n ref={arrowRef}\n />\n )}\n\n <MenuListContext.Provider value={listContext}>\n <MenuListItemContext.Provider value={itemContext}>\n <HoverItemContext.Provider value={hoverItem}>{children}</HoverItemContext.Provider>\n </MenuListItemContext.Provider>\n </MenuListContext.Provider>\n </ul>\n );\n};\n","// @ts-nocheck\nimport { forwardRef, useRef, useMemo, useCallback, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { string, number, bool, func, object, oneOf, oneOfType, exact } from \"prop-types\";\nimport { MenuList } from \"./MenuList\";\nimport { useBEM } from \"../hooks\";\nimport {\n rootMenuPropTypes,\n menuContainerClass,\n mergeProps,\n safeCall,\n isMenuOpen,\n getTransition,\n values,\n CloseReason,\n Keys,\n MenuStateMap,\n EventHandlersContext,\n SettingsContext,\n ItemSettingsContext,\n} from \"../utils\";\nimport { hasParentClass } from \"@utils/util\";\n\nexport const ControlledMenu = forwardRef(function ControlledMenu(\n {\n \"aria-label\": ariaLabel,\n className,\n containerProps,\n initialMounted,\n unmountOnClose,\n transition,\n transitionTimeout,\n boundingBoxRef,\n boundingBoxPadding,\n reposition = \"auto\",\n submenuOpenDelay = 300,\n submenuCloseDelay = 150,\n skipOpen,\n viewScroll = \"initial\",\n portal,\n theming,\n onItemClick,\n onClose,\n saveButtonRef,\n ...restProps\n }: any,\n externalRef,\n) {\n const containerRef = useRef(null);\n const scrollNodesRef = useRef({});\n const { anchorRef, state } = restProps;\n\n const settings = useMemo(\n () => ({\n initialMounted,\n unmountOnClose,\n transition,\n transitionTimeout,\n boundingBoxRef,\n boundingBoxPadding,\n rootMenuRef: containerRef,\n rootAnchorRef: anchorRef,\n scrollNodesRef,\n reposition,\n viewScroll,\n }),\n [\n initialMounted,\n unmountOnClose,\n transition,\n transitionTimeout,\n anchorRef,\n boundingBoxRef,\n boundingBoxPadding,\n reposition,\n viewScroll,\n ],\n );\n\n const clickIsWithinMenu = useCallback((ev: MouseEvent) => {\n return hasParentClass(\"szh-menu--state-open\", ev.target as Node);\n }, []);\n\n const handleScreenEventForSave = useCallback(\n (ev: MouseEvent) => {\n if (!clickIsWithinMenu(ev)) {\n //!ev.currentTarget.contains(ev.relatedTarget || document.activeElement)) {\n ev.preventDefault();\n ev.stopPropagation();\n // FIXME There's an issue in React17\n // the cell doesn't refresh during update if save is invoked from a native event\n // This doesn't happen in React18\n // To work around it, I invoke the save by clicking on a passed in invisible button ref\n if (saveButtonRef.current) saveButtonRef.current.click();\n else safeCall(onClose, { reason: CloseReason.BLUR });\n\n // If a user clicks on the menu button when a menu is open, we need to close the menu.\n // However, a blur event will be fired prior to the click event on menu button,\n // which makes the menu first close and then open again.\n // If this happens, e.relatedTarget is incorrectly set to null instead of the button in Safari and Firefox,\n // and makes it difficult to determine whether onBlur is fired because of clicking on menu button.\n // This is a workaround approach which sets a flag to skip a following click event.\n if (skipOpen) {\n skipOpen.current = true;\n setTimeout(() => (skipOpen.current = false), 300);\n }\n }\n },\n [clickIsWithinMenu, onClose],\n );\n\n const handleScreenEventForCancel = useCallback(\n (ev: MouseEvent) => {\n if (!clickIsWithinMenu(ev)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n },\n [clickIsWithinMenu],\n );\n\n useEffect(() => {\n if (isMenuOpen(state)) {\n const thisDocument = anchorRef.current ? anchorRef.current.ownerDocument : document;\n thisDocument.addEventListener(\"mousedown\", handleScreenEventForCancel, true);\n thisDocument.addEventListener(\"mouseup\", handleScreenEventForSave, true);\n thisDocument.addEventListener(\"click\", handleScreenEventForCancel, true);\n thisDocument.addEventListener(\"dblclick\", handleScreenEventForCancel, true);\n return () => {\n thisDocument.removeEventListener(\"mousedown\", handleScreenEventForCancel, true);\n thisDocument.removeEventListener(\"mouseup\", handleScreenEventForSave, true);\n thisDocument.removeEventListener(\"click\", handleScreenEventForCancel, true);\n thisDocument.removeEventListener(\"dblclick\", handleScreenEventForCancel, true);\n };\n }\n return () => {};\n }, [handleScreenEventForSave, handleScreenEventForCancel, state]);\n\n const itemSettings = useMemo(\n () => ({\n submenuOpenDelay,\n submenuCloseDelay,\n }),\n [submenuOpenDelay, submenuCloseDelay],\n );\n\n const eventHandlers = useMemo(\n () => ({\n handleClick(event, isCheckorRadio) {\n if (!event.stopPropagation) safeCall(onItemClick, event);\n\n let keepOpen = event.keepOpen;\n if (keepOpen === undefined) {\n // if event.keepOpen is undefined, the following default behaviour is used\n // According to WAI-ARIA Authoring Practices 1.1\n // Keep menu open when check or radio is invoked by SPACE key\n keepOpen = isCheckorRadio && event.key === Keys.SPACE;\n }\n\n if (!keepOpen) {\n safeCall(onClose, {\n value: event.value,\n key: event.key,\n reason: CloseReason.CLICK,\n });\n }\n },\n\n handleClose(key) {\n safeCall(onClose, { key, reason: CloseReason.CLICK });\n },\n }),\n [onItemClick, onClose],\n );\n\n const onKeyDown = ({ key }) => {\n switch (key) {\n case Keys.ESC:\n safeCall(onClose, { key, reason: CloseReason.CANCEL });\n break;\n }\n };\n\n const onBlur = (e) => {\n if (isMenuOpen(state) && !e.currentTarget.contains(e.relatedTarget || document.activeElement)) {\n safeCall(onClose, { reason: CloseReason.BLUR });\n\n // If a user clicks on the menu button when a menu is open, we need to close the menu.\n // However, a blur event will be fired prior to the click event on menu button,\n // which makes the menu first close and then open again.\n // If this happen, e.relatedTarget is incorrectly set to null instead of the button in Safari and Firefox,\n // and makes it difficult to determine whether onBlur is fired because of clicking on menu button.\n // This is a workaround approach which sets a flag to skip a following click event.\n if (skipOpen) {\n skipOpen.current = true;\n setTimeout(() => (skipOpen.current = false), 300);\n }\n }\n };\n\n const itemTransition = getTransition(transition, \"item\");\n const modifiers = useMemo(() => ({ theme: theming, itemTransition }), [theming, itemTransition]);\n\n const menuList = (\n <div\n {...mergeProps({ onKeyDown, onBlur }, containerProps)}\n className={useBEM({\n block: menuContainerClass,\n modifiers,\n className,\n })}\n style={{ ...containerProps?.style, position: \"relative\" }}\n ref={containerRef}\n >\n {state && (\n <SettingsContext.Provider value={settings}>\n <ItemSettingsContext.Provider value={itemSettings}>\n <EventHandlersContext.Provider value={eventHandlers}>\n <MenuList\n {...restProps}\n ariaLabel={ariaLabel || \"Menu\"}\n externalRef={externalRef}\n containerRef={containerRef}\n onClose={onClose}\n />\n </EventHandlersContext.Provider>\n </ItemSettingsContext.Provider>\n </SettingsContext.Provider>\n )}\n </div>\n );\n\n if (portal === true && anchorRef.current !== undefined) {\n portal = { target: anchorRef.current.ownerDocument.body };\n }\n\n if (portal === true && typeof document !== \"undefined\") {\n return createPortal(menuList, document.body);\n } else if (portal) {\n return portal.target ? createPortal(menuList, portal.target) : portal.stablePosition ? null : menuList;\n }\n return menuList;\n});\n\nControlledMenu.propTypes /* remove-proptypes */ = {\n ...rootMenuPropTypes,\n state: oneOf(values(MenuStateMap)),\n anchorPoint: exact({\n x: number,\n y: number,\n }),\n anchorRef: object,\n skipOpen: object,\n captureFocus: bool,\n menuItemFocus: exact({\n position: oneOfType([string, number]),\n alwaysUpdate: bool,\n }),\n onClose: func,\n};\n","// @ts-nocheck\nimport { cloneElement, Fragment, forwardRef, useRef, useCallback, useImperativeHandle } from \"react\";\nimport { element, func, oneOfType } from \"prop-types\";\nimport { ControlledMenu } from \"./ControlledMenu\";\nimport { useMenuChange, useMenuStateAndFocus, useCombinedRef } from \"../hooks\";\nimport {\n getName,\n mergeProps,\n safeCall,\n isMenuOpen,\n uncontrolledMenuPropTypes,\n rootMenuPropTypes,\n Keys,\n FocusPositions,\n} from \"../utils\";\n\nexport const Menu = forwardRef(function Menu(\n { \"aria-label\": ariaLabel, captureFocus: _, menuButton, instanceRef, onMenuChange, ...restProps },\n externalRef,\n) {\n const [stateProps, toggleMenu, openMenu] = useMenuStateAndFocus(restProps);\n const isOpen = isMenuOpen(stateProps.state);\n const skipOpen = useRef(false);\n const buttonRef = useRef(null);\n\n const handleClose = useCallback(\n (e) => {\n toggleMenu(false);\n if (e.key) buttonRef.current.focus();\n },\n [toggleMenu],\n );\n\n const onClick = (e) => {\n if (skipOpen.current) return;\n // Focus (hover) the first menu item when onClick event is trigger by keyboard\n openMenu(e.detail === 0 ? FocusPositions.FIRST : undefined);\n };\n\n const onKeyDown = (e) => {\n switch (e.key) {\n case Keys.UP:\n openMenu(FocusPositions.LAST);\n break;\n\n case Keys.DOWN:\n openMenu(FocusPositions.FIRST);\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n const button = safeCall(menuButton, { open: isOpen });\n if (!button || !button.type) throw new Error(\"Menu requires a menuButton prop.\");\n\n const buttonProps = {\n ref: useCombinedRef(button.ref, buttonRef),\n ...mergeProps({ onClick, onKeyDown }, button.props),\n };\n if (getName(button.type) === \"MenuButton\") {\n buttonProps.isOpen = isOpen;\n }\n const renderButton = cloneElement(button, buttonProps);\n\n useMenuChange(onMenuChange, isOpen);\n\n useImperativeHandle(instanceRef, () => ({\n openMenu,\n closeMenu: () => toggleMenu(false),\n }));\n\n return (\n <Fragment>\n {renderButton}\n <ControlledMenu\n {...restProps}\n {...stateProps}\n aria-label={ariaLabel || (typeof button.props.children === \"string\" ? button.props.children : \"Menu\")}\n anchorRef={buttonRef}\n ref={externalRef}\n onClose={handleClose}\n skipOpen={skipOpen}\n />\n </Fragment>\n );\n});\n\nMenu.propTypes = {\n ...rootMenuPropTypes,\n ...uncontrolledMenuPropTypes,\n menuButton: oneOfType([element, func]).isRequired,\n};\n","// @ts-nocheck\nimport { useRef, useContext, useEffect, useMemo, useImperativeHandle } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { node, func, bool, shape, oneOf, oneOfType } from \"prop-types\";\nimport { useBEM, useCombinedRef, useMenuChange, useMenuStateAndFocus, useItemEffect } from \"../hooks\";\nimport { MenuList } from \"./MenuList\";\nimport {\n mergeProps,\n batchedUpdates,\n commonProps,\n safeCall,\n stylePropTypes,\n uncontrolledMenuPropTypes,\n menuPropTypes,\n menuClass,\n subMenuClass,\n menuItemClass,\n isMenuOpen,\n withHovering,\n SettingsContext,\n ItemSettingsContext,\n MenuListContext,\n MenuListItemContext,\n Keys,\n HoverActionTypes,\n FocusPositions,\n} from \"../utils\";\n\nexport const SubMenu = withHovering(\n \"SubMenu\",\n function SubMenu({\n \"aria-label\": ariaLabel,\n className,\n disabled,\n direction,\n label,\n openTrigger,\n onMenuChange,\n isHovering,\n instanceRef,\n itemRef,\n captureFocus: _1,\n repositionFlag: _2,\n itemProps = {},\n ...restProps\n }) {\n const settings = useContext(SettingsContext);\n const { rootMenuRef } = settings;\n const { submenuOpenDelay, submenuCloseDelay } = useContext(ItemSettingsContext);\n const { parentMenuRef, parentDir, overflow: parentOverflow } = useContext(MenuListContext);\n const { isParentOpen, isSubmenuOpen, setOpenSubmenuCount, dispatch, updateItems } = useContext(MenuListItemContext);\n const isPortal = parentOverflow !== \"visible\";\n\n const [stateProps, toggleMenu, _openMenu] = useMenuStateAndFocus(settings);\n\n const { state } = stateProps;\n const isDisabled = !!disabled;\n const isOpen = isMenuOpen(state);\n const containerRef = useRef(null);\n const timeoutId = useRef(0);\n\n const stopTimer = () => {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n };\n\n const openMenu = (...args) => {\n stopTimer();\n setHover();\n !isDisabled && _openMenu(...args);\n };\n\n const setHover = () => !isHovering && !isDisabled && dispatch(HoverActionTypes.SET, itemRef.current);\n\n const delayOpen = (delay) => {\n setHover();\n if (!openTrigger) timeoutId.current = setTimeout(() => batchedUpdates(openMenu), Math.max(delay, 0));\n };\n\n const handlePointerMove = () => {\n if (timeoutId.current || isOpen || isDisabled) return;\n\n if (isSubmenuOpen) {\n timeoutId.current = setTimeout(() => delayOpen(submenuOpenDelay - submenuCloseDelay), submenuCloseDelay);\n } else {\n delayOpen(submenuOpenDelay);\n }\n };\n\n const handlePointerLeave = () => {\n stopTimer();\n if (!isOpen) dispatch(HoverActionTypes.UNSET, itemRef.current);\n };\n\n const handleKeyDown = (e) => {\n let handled = false;\n\n switch (e.key) {\n // LEFT key is bubbled up from submenu items\n case Keys.LEFT:\n if (isOpen) {\n itemRef.current.focus();\n toggleMenu(false);\n handled = true;\n }\n break;\n\n // prevent browser from scrolling page to the right\n case Keys.RIGHT:\n if (!isOpen) handled = true;\n break;\n }\n\n if (handled) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const handleItemKeyDown = (e) => {\n if (!isHovering) return;\n\n switch (e.key) {\n case Keys.ENTER:\n case Keys.SPACE:\n case Keys.RIGHT:\n openTrigger !== \"none\" && openMenu(FocusPositions.FIRST);\n break;\n }\n };\n\n useItemEffect(isDisabled, itemRef, updateItems);\n useMenuChange(onMenuChange, isOpen);\n\n useEffect(() => () => clearTimeout(timeoutId.current), []);\n useEffect(() => {\n // Don't set focus when parent menu is closed, otherwise focus will be lost\n // and onBlur event will be fired with relatedTarget setting as null.\n if (isHovering && isParentOpen) {\n itemRef.current.focus();\n } else {\n toggleMenu(false);\n }\n }, [isHovering, isParentOpen, toggleMenu, itemRef]);\n\n useEffect(() => {\n setOpenSubmenuCount((count) => (isOpen ? count + 1 : Math.max(count - 1, 0)));\n }, [setOpenSubmenuCount, isOpen]);\n\n useImperativeHandle(instanceRef, () => ({\n openMenu: (...args) => {\n isParentOpen && openMenu(...args);\n },\n closeMenu: () => {\n if (isOpen) {\n itemRef.current.focus();\n toggleMenu(false);\n }\n },\n }));\n\n const modifiers = useMemo(\n () => ({\n open: isOpen,\n hover: isHovering,\n disabled: isDisabled,\n submenu: true,\n }),\n [isOpen, isHovering, isDisabled],\n );\n\n const { ref: externalItemRef, className: itemClassName, ...restItemProps } = itemProps;\n\n const mergedItemProps = mergeProps(\n {\n onPointerMove: handlePointerMove,\n onPointerLeave: handlePointerLeave,\n onKeyDown: handleItemKeyDown,\n onClick: () => openTrigger !== \"none\" && openMenu(),\n },\n restItemProps,\n );\n\n const getMenuList = () => {\n const menuList = (\n <MenuList\n {...restProps}\n {...stateProps}\n ariaLabel={ariaLabel || (typeof label === \"string\" ? label : \"Submenu\")}\n anchorRef={itemRef}\n containerRef={isPortal ? rootMenuRef : containerRef}\n direction={direction || (parentDir === \"right\" || parentDir === \"left\" ? parentDir : \"right\")}\n parentScrollingRef={isPortal && parentMenuRef}\n isDisabled={isDisabled}\n />\n );\n const container = rootMenuRef.current;\n return isPortal && container ? createPortal(menuList, container) : menuList;\n };\n\n return (\n <li\n className={useBEM({ block: menuClass, element: subMenuClass, className })}\n style={{ position: \"relative\" }}\n role=\"presentation\"\n ref={containerRef}\n onKeyDown={handleKeyDown}\n >\n <div\n role=\"menuitem\"\n aria-haspopup\n aria-expanded={isOpen}\n {...mergedItemProps}\n {...commonProps(isDisabled, isHovering)}\n ref={useCombinedRef(externalItemRef, itemRef)}\n className={useBEM({\n block: menuClass,\n element: menuItemClass,\n modifiers,\n className: itemClassName,\n })}\n >\n {useMemo(() => safeCall(label, modifiers), [label, modifiers])}\n </div>\n\n {state && getMenuList()}\n </li>\n );\n },\n);\n\nSubMenu.propTypes = {\n ...menuPropTypes,\n ...uncontrolledMenuPropTypes,\n disabled: bool,\n openTrigger: oneOf([\"none\", \"clickOnly\"]),\n label: oneOfType([node, func]),\n itemProps: shape({\n ...stylePropTypes(),\n }),\n};\n","// @ts-nocheck\nimport { useContext, useMemo } from \"react\";\nimport { any, string, bool, func, node, oneOf, oneOfType } from \"prop-types\";\nimport { useBEM, useItemState, useCombinedRef } from \"../hooks\";\nimport {\n mergeProps,\n commonProps,\n safeCall,\n stylePropTypes,\n menuClass,\n menuItemClass,\n withHovering,\n EventHandlersContext,\n RadioGroupContext,\n Keys,\n} from \"../utils\";\n\nexport const MenuItem = withHovering(\n \"MenuItem\",\n function MenuItem({\n className,\n value,\n href,\n type,\n checked,\n disabled,\n children,\n onClick,\n isHovering,\n itemRef,\n externalRef,\n ...restProps\n }) {\n const isDisabled = !!disabled;\n const { setHover, ...restStateProps } = useItemState(itemRef, itemRef, isHovering, isDisabled);\n const eventHandlers = useContext(EventHandlersContext);\n const radioGroup = useContext(RadioGroupContext);\n const isRadio = type === \"radio\";\n const isCheckBox = type === \"checkbox\";\n const isAnchor = !!href && !isDisabled && !isRadio && !isCheckBox;\n const isChecked = isRadio ? radioGroup.value === value : isCheckBox ? !!checked : false;\n\n const handleClick = (e) => {\n if (isDisabled) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n const event = { value, syntheticEvent: e };\n if (e.key !== undefined) event.key = e.key;\n if (isCheckBox) event.checked = !isChecked;\n if (isRadio) event.name = radioGroup.name;\n safeCall(onClick, event);\n if (isRadio) safeCall(radioGroup.onRadioChange, event);\n eventHandlers.handleClick(event, isCheckBox || isRadio);\n };\n\n const handleKeyDown = (e) => {\n if (!isHovering) return;\n\n switch (e.key) {\n case Keys.ENTER:\n case Keys.SPACE:\n if (isAnchor) {\n itemRef.current.click();\n } else {\n handleClick(e);\n }\n break;\n }\n };\n\n const modifiers = useMemo(\n () => ({\n type,\n disabled: isDisabled,\n hover: isHovering,\n checked: isChecked,\n anchor: isAnchor,\n }),\n [type, isDisabled, isHovering, isChecked, isAnchor],\n );\n\n const mergedProps = mergeProps(\n {\n ...restStateProps,\n onPointerDown: setHover,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n },\n restProps,\n );\n\n // Order of props overriding (same in all components):\n // 1. Preset props adhering to WAI-ARIA Authoring Practices.\n // 2. Merged outer and local props\n // 3. ref, className\n const menuItemProps = {\n role: isRadio ? \"menuitemradio\" : isCheckBox ? \"menuitemcheckbox\" : \"menuitem\",\n \"aria-checked\": isRadio || isCheckBox ? isChecked : undefined,\n ...mergedProps,\n ...commonProps(isDisabled, isHovering),\n ref: useCombinedRef(externalRef, itemRef),\n className: useBEM({ block: menuClass, element: menuItemClass, modifiers, className }),\n children: useMemo(() => safeCall(children, modifiers), [children, modifiers]),\n };\n\n if (isAnchor) {\n return (\n <li role=\"presentation\">\n <a href={href} {...menuItemProps} />\n </li>\n );\n } else {\n return <li {...menuItemProps} />;\n }\n },\n);\n\nMenuItem.propTypes = {\n ...stylePropTypes(),\n value: any,\n href: string,\n type: oneOf([\"checkbox\", \"radio\"]),\n checked: bool,\n disabled: bool,\n children: oneOfType([node, func]),\n onClick: func,\n};\n","// @ts-nocheck\nimport { useContext, useMemo, useRef } from \"react\";\nimport { bool, func } from \"prop-types\";\nimport { useBEM, useCombinedRef, useItemState } from \"../hooks\";\nimport {\n mergeProps,\n commonProps,\n safeCall,\n menuClass,\n menuItemClass,\n stylePropTypes,\n withHovering,\n EventHandlersContext,\n} from \"../utils\";\n\nexport const FocusableItem = withHovering(\n \"FocusableItem\",\n function FocusableItem({ className, disabled, children, isHovering, itemRef, externalRef, ...restProps }) {\n const isDisabled = !!disabled;\n const ref = useRef(null);\n const { setHover, onPointerLeave, ...restStateProps } = useItemState(itemRef, ref, isHovering, isDisabled);\n const { handleClose } = useContext(EventHandlersContext);\n\n const modifiers = useMemo(\n () => ({\n disabled: isDisabled,\n hover: isHovering,\n focusable: true,\n }),\n [isDisabled, isHovering],\n );\n\n const renderChildren = useMemo(\n () =>\n safeCall(children, {\n ...modifiers,\n ref,\n closeMenu: handleClose,\n }),\n [children, modifiers, handleClose],\n );\n\n const mergedProps = mergeProps(\n {\n ...restStateProps,\n onPointerLeave: (e) => onPointerLeave(e, true),\n onFocus: setHover,\n },\n restProps,\n );\n\n return (\n <li\n role=\"menuitem\"\n {...mergedProps}\n {...commonProps(isDisabled)}\n ref={useCombinedRef(externalRef, itemRef)}\n className={useBEM({ block: menuClass, element: menuItemClass, modifiers, className })}\n >\n {renderChildren}\n </li>\n );\n },\n);\n\nFocusableItem.propTypes = {\n ...stylePropTypes(),\n disabled: bool,\n children: func,\n};\n","// @ts-nocheck\nimport { memo, forwardRef } from \"react\";\nimport { useBEM } from \"../hooks\";\nimport { menuClass, menuDividerClass, stylePropTypes } from \"../utils\";\n\nexport const MenuDivider = memo(\n forwardRef(function MenuDivider({ className, ...restProps }, externalRef) {\n return (\n <li\n role=\"separator\"\n {...restProps}\n ref={externalRef}\n className={useBEM({ block: menuClass, element: menuDividerClass, className })}\n />\n );\n }),\n);\n\nMenuDivider.propTypes = {\n ...stylePropTypes(),\n};\n","// @ts-nocheck\nimport { memo, forwardRef } from \"react\";\nimport { useBEM } from \"../hooks\";\nimport { menuClass, menuHeaderClass, stylePropTypes } from \"../utils\";\n\nexport const MenuHeader = memo(\n forwardRef(function MenuHeader({ className, ...restProps }, externalRef) {\n return (\n <li\n role=\"presentation\"\n {...restProps}\n ref={externalRef}\n className={useBEM({ block: menuClass, element: menuHeaderClass, className })}\n />\n );\n }),\n);\n\nMenuHeader.propTypes = {\n ...stylePropTypes(),\n};\n","// @ts-nocheck\nimport { forwardRef, useContext, useRef, useState } from \"react\";\nimport { bool } from \"prop-types\";\nimport { useBEM, useLayoutEffect, useCombinedRef } from \"../hooks\";\nimport { menuClass, menuGroupClass, stylePropTypes, MenuListContext } from \"../utils\";\n\nexport const MenuGroup = forwardRef(function MenuGroup({ className, style, takeOverflow, ...restProps }, externalRef) {\n const ref = useRef(null);\n const [overflowStyle, setOverflowStyle] = useState();\n const { overflow, overflowAmt } = useContext(MenuListContext);\n\n useLayoutEffect(() => {\n let maxHeight;\n if (takeOverflow && overflowAmt >= 0) {\n maxHeight = ref.current.getBoundingClientRect().height - overflowAmt;\n if (maxHeight < 0) maxHeight = 0;\n }\n setOverflowStyle(maxHeight >= 0 ? { maxHeight, overflow } : undefined);\n }, [takeOverflow, overflow, overflowAmt]);\n\n useLayoutEffect(() => {\n if (overflowStyle) ref.current.scrollTop = 0;\n }, [overflowStyle]);\n\n return (\n <div\n {...restProps}\n ref={useCombinedRef(externalRef, ref)}\n className={useBEM({ block: menuClass, element: menuGroupClass, className })}\n style={{ ...style, ...overflowStyle }}\n />\n );\n});\n\nMenuGroup.propTypes = {\n ...stylePropTypes(),\n takeOverflow: bool,\n};\n","// @ts-nocheck\nimport { forwardRef, useMemo } from \"react\";\nimport { any, string, func } from \"prop-types\";\nimport { useBEM } from \"../hooks\";\nimport { stylePropTypes, menuClass, radioGroupClass, RadioGroupContext } from \"../utils\";\n\nexport const MenuRadioGroup = forwardRef(function MenuRadioGroup(\n { \"aria-label\": ariaLabel, className, name, value, onRadioChange, ...restProps },\n externalRef,\n) {\n const contextValue = useMemo(() => ({ name, value, onRadioChange }), [name, value, onRadioChange]);\n\n return (\n <RadioGroupContext.Provider value={contextValue}>\n <li role=\"presentation\">\n <ul\n role=\"group\"\n aria-label={ariaLabel || name || \"Radio group\"}\n {...restProps}\n ref={externalRef}\n className={useBEM({ block: menuClass, element: radioGroupClass, className })}\n />\n </li>\n </RadioGroupContext.Provider>\n );\n});\n\nMenuRadioGroup.propTypes = {\n ...stylePropTypes(),\n name: string,\n value: any,\n onRadioChange: func,\n};\n","import { ICellEditorParams } from \"ag-grid-community\";\nimport { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { GridFormProps } from \"./GridCell\";\nimport { GridBaseRow } from \"./Grid\";\nimport { ControlledMenu } from \"../react-menu3\";\n\nexport const useGridPopoverHook = <RowType extends GridBaseRow>(\n props: GridFormProps<RowType>,\n save?: (selectedRows: any[]) => Promise<boolean>,\n) => {\n const { cellEditorParams, saving, updateValue } = props;\n const { eGridCell } = cellEditorParams as ICellEditorParams;\n const { stopEditing } = useContext(GridContext);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const anchorRef = useRef(eGridCell);\n anchorRef.current = eGridCell;\n const [isOpen, setOpen] = useState(false);\n\n useEffect(() => {\n setOpen(true);\n }, []);\n\n const triggerSave = useCallback(\n async (reason?: string) => {\n if (reason == \"cancel\" || !save || (await updateValue(save))) {\n setOpen(false);\n stopEditing();\n }\n },\n [save, stopEditing, updateValue],\n );\n\n const popoverWrapper = useCallback(\n (children: JSX.Element) => {\n return (\n <>\n {anchorRef.current && (\n <ControlledMenu\n state={isOpen ? \"open\" : \"closed\"}\n portal={true}\n unmountOnClose={true}\n anchorRef={anchorRef}\n saveButtonRef={saveButtonRef}\n menuClassName={\"lui-menu\"}\n onClose={(event: { reason: string }) => triggerSave(event.reason).then()}\n >\n {saving && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"rgba(64,64,64,0.1)\",\n zIndex: 1000,\n }}\n />\n )}\n {children}\n <button ref={saveButtonRef} onClick={() => triggerSave().then()} style={{ display: \"none\" }} />\n </ControlledMenu>\n )}\n </>\n );\n },\n [isOpen, saving, triggerSave],\n );\n\n return {\n popoverWrapper,\n triggerSave,\n };\n};\n","import { useContext } from \"react\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { UpdatingContext } from \"@contexts/UpdatingContext\";\nimport { GridLoadableCell } from \"../GridLoadableCell\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport const GridRenderPopoutMenuCell = (props: ICellRendererParams) => {\n const { checkUpdating } = useContext(UpdatingContext);\n const isLoading = checkUpdating(props.colDef?.field ?? \"\", props.data.id);\n const disabled = !props.colDef?.editable;\n\n return (\n <GridLoadableCell\n isLoading={isLoading}\n className={disabled ? `GridPopoutMenu-burgerDisabled` : `GridPopoutMenu-burger`}\n >\n <LuiIcon name={\"ic_more_vert\"} alt={\"More actions\"} size={\"md\"} />\n </GridLoadableCell>\n );\n};\n","import \"../../react-menu3/styles/index.scss\";\n\nimport { MenuItem, MenuDivider, FocusableItem } from \"@react-menu3\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { delay } from \"lodash-es\";\nimport { LuiCheckboxInput } from \"@linzjs/lui\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\ninterface FinalSelectOption<ValueType> {\n value: ValueType;\n label?: JSX.Element | string;\n subComponent?: (props: any, ref: any) => any;\n}\n\nexport const MenuSeparatorString = \"_____MENU_SEPARATOR_____\";\nexport const MenuSeparator = Object.freeze({ value: MenuSeparatorString });\n\nexport type SelectOption<ValueType> = ValueType | FinalSelectOption<ValueType>;\n\nexport interface MultiSelectResult<RowType> {\n selectedRows: RowType[];\n values: Record<string, any>;\n}\n\nexport interface GridFormMultiSelectProps<RowType extends GridBaseRow, ValueType>\n extends GenericCellEditorParams<RowType> {\n filtered?: boolean;\n filterPlaceholder?: string;\n onSave?: (props: MultiSelectResult<RowType>) => Promise<boolean>;\n options:\n | SelectOption<ValueType>[]\n | ((selectedRows: RowType[]) => Promise<SelectOption<ValueType>[]> | SelectOption<ValueType>[]);\n}\n\nexport const GridFormMultiSelect = <RowType extends GridBaseRow, ValueType>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormMultiSelectProps<RowType, ValueType>;\n\n const [filter, setFilter] = useState(\"\");\n const [filteredValues, setFilteredValues] = useState<any[]>([]);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<FinalSelectOption<ValueType>[]>();\n const subSelectedValues = useRef<Record<string, any>>({});\n const [selectedValues, setSelectedValues] = useState<any[]>([]);\n\n const save = useCallback(\n async (selectedRows: RowType[]): Promise<boolean> => {\n const values: Record<string, any> = {};\n selectedValues.forEach((value) => {\n values[value] = subSelectedValues.current[value] ?? true;\n });\n if (formProps.onSave) {\n return await formProps.onSave({ selectedRows, values: selectedValues });\n }\n return true;\n },\n [formProps, selectedValues],\n );\n const { popoverWrapper } = useGridPopoverHook(props, save);\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n let optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n optionsConf = await optionsConf(props.selectedRows);\n }\n\n const optionsList = optionsConf?.map((item) => {\n if (item == null || typeof item == \"string\" || typeof item == \"number\") {\n item = { value: item as ValueType, label: item } as FinalSelectOption<ValueType>;\n }\n return item;\n }) as any as FinalSelectOption<ValueType>[];\n\n if (formProps.filtered) {\n // This is needed otherwise when filter input is rendered and sets autofocus\n // the mouse up of the double click edit triggers the cell to cancel editing\n delay(() => setOptions(optionsList), 100);\n } else {\n setOptions(optionsList);\n }\n optionsInitialising.current = false;\n })();\n }, [formProps.filtered, formProps.options, options, props.selectedRows]);\n\n useEffect(() => {\n if (!formProps.filtered || options == null) return;\n setFilteredValues(\n options\n .map((option) => {\n if (option.label != null && typeof option.label !== \"string\") {\n console.error(\"Cannot filter non-string labels\", option);\n return undefined;\n }\n const str = (option.label as string) || \"\";\n return str.toLowerCase().indexOf(filter) === -1 ? option.value : undefined;\n })\n .filter((r) => r !== undefined),\n );\n }, [formProps.filtered, filter, options]);\n\n return popoverWrapper(\n <ComponentLoadingWrapper loading={!options}>\n <div className={\"Grid-popoverContainerList\"}>\n {options && formProps.filtered && (\n <>\n <FocusableItem className={\"filter-item\"}>\n {({ ref }: any) => (\n <div style={{ display: \"flex\", width: \"100%\" }}>\n <input\n autoFocus\n className={\"free-text-input\"}\n style={{ border: \"0px\" }}\n ref={ref}\n type=\"text\"\n placeholder={formProps.filterPlaceholder ?? \"Placeholder\"}\n data-testid={\"filteredMenu-free-text-input\"}\n defaultValue={\"\"}\n onChange={(e) => setFilter(e.target.value.toLowerCase())}\n />\n </div>\n )}\n </FocusableItem>\n <MenuDivider key={`$$divider_filter`} />\n </>\n )}\n {options?.map((item, index) =>\n item.value === MenuSeparatorString ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : filteredValues.includes(item.value) ? null : (\n <>\n <MenuItem\n key={`${item.value}`}\n onClick={(e: { keepOpen: boolean }) => {\n e.keepOpen = true;\n // onSelectMenuOption(itemIndex, e.value);\n return false;\n }}\n >\n <LuiCheckboxInput\n isChecked={selectedValues.includes(item.value)}\n value={`${item.value}`}\n label={item.label ?? (item.value == null ? `<${item.value}>` : `${item.value}`)}\n onChange={(e) => {\n if (e.target.checked) {\n setSelectedValues([...selectedValues, item.value as string]);\n } else {\n setSelectedValues(selectedValues.filter((value) => value != item.value));\n }\n }}\n />\n </MenuItem>\n {selectedValues.includes(item.value) && item.subComponent && (\n <FocusableItem className={\"LuiDeprecatedForms\"} key={`${item.value}_subcomponent`}>\n {(ref: any) =>\n item.subComponent &&\n item.subComponent(\n {\n setValue: (value: any) => {\n subSelectedValues.current[item.value as string] = value;\n },\n },\n ref,\n )\n }\n </FocusableItem>\n )}\n </>\n ),\n )}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridFormMultiSelect, GridFormMultiSelectProps } from \"../gridForm/GridFormMultiSelect\";\n\nexport const GridPopoutEditMultiSelect = <RowType extends GridBaseRow, ValueType>(\n colDef: GenericCellColDef<RowType, GridFormMultiSelectProps<RowType, ValueType>>,\n) =>\n GridCell<RowType, GridFormMultiSelectProps<RowType, ValueType>>({\n initialWidth: 65,\n maxWidth: 150,\n cellClass: colDef.cellEditor?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormMultiSelect,\n },\n }),\n });\n","import { GridBaseRow } from \"../Grid\";\nimport { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { MenuDivider, MenuItem } from \"@react-menu3\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormPopoutMenuProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n options: (selectedRows: RowType[]) => Promise<MenuOption<RowType>[]>;\n}\n\n/** Menu configuration types **/\nexport const MenuSeparator = Object.freeze({ __isMenuSeparator__: true });\n\ninterface MenuSeparatorType {\n __isMenuSeparator__: boolean;\n}\n\nexport interface MenuOption<RowType> {\n label: JSX.Element | string | MenuSeparatorType;\n action?: (selectedRows: RowType[]) => Promise<boolean>;\n disabled?: string | boolean;\n supportsMultiEdit: boolean;\n}\n\n/**\n * NOTE: If the popout menu doesn't appear on single click when also selecting row it's because\n * you need a useMemo around your columnDefs\n */\nexport const GridFormPopoutMenu = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormPopoutMenuProps<RowType>;\n\n const { updatingCells } = useContext(GridContext);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<MenuOption<RowType>[]>();\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n const optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n setOptions(await optionsConf(props.selectedRows));\n } else {\n setOptions(optionsConf);\n }\n\n optionsInitialising.current = false;\n })();\n }, [options, formProps.options, props.selectedRows]);\n\n const actionClick = useCallback(\n async (menuOption: MenuOption<any>) => {\n return await updatingCells({ selectedRows: props.selectedRows, field: props.field }, async (selectedRows) => {\n menuOption.action && (await menuOption.action(selectedRows));\n return true;\n });\n },\n [props.field, props.selectedRows, updatingCells],\n );\n\n const selectedRowCount = props.selectedRows.length;\n\n const filteredOptions = options?.filter((menuOption) => {\n return menuOption.label === MenuSeparator || selectedRowCount === 1 || menuOption.supportsMultiEdit;\n });\n\n const { popoverWrapper } = useGridPopoverHook(props);\n return popoverWrapper(\n <ComponentLoadingWrapper loading={!filteredOptions}>\n <div className={\"Grid-popoverContainerList\"}>\n {options?.map((item, index) =>\n item.label === MenuSeparator ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : (\n <MenuItem\n key={`${item.label}`}\n onClick={() => actionClick(item)}\n disabled={!!item.disabled || !filteredOptions?.includes(item)}\n title={item.disabled && typeof item.disabled !== \"boolean\" ? item.disabled : \"\"}\n >\n {item.label as JSX.Element | string}\n </MenuItem>\n ),\n )}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import \"./GridPopoverMenu.scss\";\nimport \"../../react-menu3/styles/index.scss\";\n\nimport { ColDef } from \"ag-grid-community\";\nimport { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridCell } from \"../GridCell\";\nimport { GridFormPopoutMenu, GridFormPopoutMenuProps } from \"../gridForm/GridFormPopoutMenu\";\nimport { GridRenderPopoutMenuCell } from \"../gridRender/GridRenderPopoutMenuCell\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\n\n/**\n * Popout burger menu\n */\nexport const GridPopoverMenu = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormPopoutMenuProps<RowType>>,\n): ColDef =>\n GridCell<RowType, GridFormPopoutMenuProps<RowType>>({\n maxWidth: 64,\n editable: colDef.editable != null ? colDef.editable : true,\n cellRenderer: GridRenderPopoutMenuCell,\n cellClass: colDef?.cellEditorParams?.multiEdit !== false ? GenericMultiEditCellClass : undefined,\n ...colDef,\n cellRendererParams: {\n // Menus open on single click, this parameter is picked up in Grid.tsx\n singleClickEdit: true,\n },\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n multiEdit: true,\n ...colDef.cellEditorParams,\n form: GridFormPopoutMenu,\n },\n }),\n });\n","import { ValueFormatterParams } from \"ag-grid-community/dist/lib/entities/colDef\";\n\nexport const bearingValueFormatter = (params: ValueFormatterParams): string => {\n const value = params.value;\n if (value == null) {\n return \"-\";\n }\n return convertDDToDMS(value, false, false);\n};\n\nexport const bearingCorrectionValueFormatter = (params: ValueFormatterParams): string => {\n const value = params.value;\n if (value == null) {\n return \"-\";\n }\n if (typeof value === \"string\") {\n return convertDDToDMS(bearingNumberParser(value), true, true);\n }\n return convertDDToDMS(value, true, true);\n};\n\nexport const bearingNumberParser = (value: string): number | null => {\n if (value === \"\") return null;\n return parseFloat(value);\n};\n\nconst validMaskForDmsBearing = /^((-)?\\d+)?(\\.([0-5](\\d([0-5](\\d(\\d+)?)?)?)?)?)?$/;\nexport const bearingStringValidator = (\n value: string,\n customValidate?: (value: number | null) => string | null,\n): string | null => {\n value = value.trim();\n if (value === \"\") return null;\n const match = value.match(validMaskForDmsBearing);\n if (!match) return \"Bearing must be a positive number in D.MMSSS format\";\n const decimalPart = match[4];\n if (decimalPart != null && decimalPart.length > 5) {\n return \"Bearing has a maximum of 5 decimal places\";\n }\n\n const bearing = parseFloat(value);\n\n return customValidate ? customValidate(bearing) : null;\n};\n\n// Decimal-ish degrees to Degrees Minutes Seconds converter\nexport const convertDDToDMS = (dd: number | null, showPositiveSymbol = true, addTrailingZeros = true): string => {\n if (dd == null) return \"–\";\n\n if (dd === 0) addTrailingZeros = false;\n\n // toFixed rounds parts up greater than 60, which has to be corrected below\n const [bearingWholeString, bearingDecimalString] = dd.toFixed(5).split(\".\");\n\n let bearingWhole = Math.abs(parseInt(bearingWholeString));\n let minNumeric = parseInt(bearingDecimalString?.substring(0, 2));\n let secNumeric = parseInt(bearingDecimalString?.substring(2, 4));\n\n // If the toFixed caused rounding beyond 60 minutes/seconds then apply the carry\n if (secNumeric >= 60) {\n minNumeric++;\n secNumeric -= 60;\n }\n if (minNumeric >= 60) {\n bearingWhole++;\n minNumeric -= 60;\n }\n if (bearingWhole >= 360) {\n bearingWhole -= 360;\n }\n\n const minString = minNumeric.toString().padStart(2, \"0\");\n const secString = secNumeric.toString().padStart(2, \"0\");\n const deciSecString = bearingDecimalString?.substring(4, 5);\n\n let dmsString = `${showPositiveSymbol && dd > 0 ? \"+\" : \"\"}${dd < 0 ? \"-\" : \"\"}${bearingWhole}°`;\n if (addTrailingZeros || deciSecString != \"0\") {\n dmsString += `\\xa0${minString}'\\xa0${secString}.${deciSecString}\"`; // \"\\xa0\" is here for non-breaking space\n } else if (secNumeric != 0) {\n dmsString += `\\xa0${minString}'\\xa0${secString}\"`;\n } else {\n dmsString += `\\xa0${minString}'`;\n }\n\n return dmsString;\n};\n","import \"./TextInputFormatted.scss\";\n\nimport { ChangeEventHandler, DetailedHTMLProps, InputHTMLAttributes } from \"react\";\n\nimport clsx from \"clsx\";\nimport { LuiIcon } from \"@linzjs/lui\";\n\nexport interface LuiTextInputProps {\n onChange?: ChangeEventHandler<HTMLInputElement>;\n inputProps?: DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;\n error?: string | boolean | null;\n warning?: string | boolean | null;\n\n className?: string;\n value: string;\n\n icon?: JSX.Element;\n placeholder?: string;\n formatted: string;\n}\n\nexport const TextInputFormatted = (props: LuiTextInputProps): JSX.Element => {\n return (\n <div\n className={clsx(\n \"LuiTextInput Grid-popoverContainer\",\n props.error && \"hasError\",\n props.warning && \"hasWarning\",\n props.className,\n )}\n >\n <span className=\"LuiTextInput-inputWrapper\">\n <input\n type={\"text\"}\n className={\"LuiTextInput-input\"}\n min=\"0\"\n value={props.value}\n onChange={props.onChange}\n {...props.inputProps}\n />\n <span className={\"LuiTextInput-formatted\"}>{props.formatted}</span>\n {props.icon}\n </span>\n\n {props.error && (\n <span className=\"LuiTextInput-error\">\n <LuiIcon alt=\"error\" name=\"ic_error\" className=\"LuiTextInput-error-icon\" size=\"sm\" status=\"error\" />\n {props.error}\n </span>\n )}\n\n {props.warning && (\n <span className=\"LuiTextInput-warning\">\n <LuiIcon alt=\"warning\" name=\"ic_warning\" className=\"LuiTextInput-warning-icon\" size=\"sm\" status=\"warning\" />\n {props.warning}\n </span>\n )}\n </div>\n );\n};\n","import \"./GridFormEditBearing.scss\";\n\nimport { useCallback, useState } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { TextInputFormatted } from \"../../lui/TextInputFormatted\";\nimport { bearingNumberParser, bearingStringValidator, convertDDToDMS } from \"@utils/bearing\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormEditBearingProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeHolder: string;\n range?: (value: number | null) => string | null;\n onSave?: (selectedRows: RowType[], value: number | null) => Promise<boolean>;\n}\n\nexport const GridFormEditBearing = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormEditBearingProps<RowType>;\n const [value, setValue] = useState<string>(`${props.value ?? \"\"}`);\n\n const save = useCallback(\n async (selectedRows: RowType[]): Promise<boolean> => {\n if (bearingStringValidator(value)) return false;\n const parsedValue = bearingNumberParser(value);\n // Value didn't change so don't save just cancel\n if (parsedValue === props.value) {\n return true;\n }\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, parsedValue);\n } else {\n const field = props.field;\n if (field == null) {\n console.error(\"field is not defined in ColDef\");\n } else {\n selectedRows.forEach((row) => ((row as Record<string, any>)[field] = parsedValue));\n }\n }\n return true;\n },\n [formProps, props.field, props.value, value],\n );\n const { popoverWrapper, triggerSave } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div className={\"GridFormEditBearing-input Grid-popoverContainer\"}>\n <TextInputFormatted\n value={value ?? \"\"}\n onChange={(e) => {\n setValue(e.target.value.trim());\n }}\n inputProps={{\n autoFocus: true,\n placeholder: formProps.placeHolder,\n disabled: false,\n maxLength: 16,\n onKeyDown: async (e) => e.key === \"Enter\" && triggerSave().then(),\n }}\n formatted={bearingStringValidator(value) ? \"?\" : convertDDToDMS(bearingNumberParser(value))}\n error={bearingStringValidator(value, formProps.range)}\n />\n </div>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { bearingCorrectionValueFormatter, bearingValueFormatter } from \"@utils/bearing\";\nimport { GridCell } from \"../GridCell\";\nimport { GridFormEditBearing, GridFormEditBearingProps } from \"../gridForm/GridFormEditBearing\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport const GridPopoverEditBearingLike = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) =>\n GridCell<RowType, GridFormEditBearingProps<RowType>>({\n initialWidth: 65,\n maxWidth: 150,\n valueFormatter: bearingValueFormatter,\n cellClass: colDef.cellEditorParams?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormEditBearing,\n },\n }),\n });\n\nexport const GridPopoverEditBearing = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) => ({\n ...GridPopoverEditBearingLike(colDef),\n valueFormatter: bearingValueFormatter,\n range: (value: number | null) => {\n if (value === null) return \"Bearing is required\";\n if (value >= 360) return \"Bearing must be less than 360 degrees\";\n if (value < 0) return \"Bearing must not be negative\";\n return null;\n },\n});\n\nexport const GridPopoverEditBearingCorrection = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormEditBearingProps<RowType>>,\n) => ({\n ...GridPopoverEditBearingLike(colDef),\n valueFormatter: bearingCorrectionValueFormatter,\n range: (value: number | null) => {\n if (value === null) return \"Bearing is required\";\n if (value >= 360) return \"Bearing must be less than 360 degrees\";\n if (value <= -180) return \"Bearing must be greater then -180 degrees\";\n return null;\n },\n});\n","import \"../../react-menu3/styles/index.scss\";\n\nimport { MenuItem, MenuDivider, FocusableItem } from \"@react-menu3\";\nimport { useCallback, useContext, useEffect, useRef, useState, KeyboardEvent } from \"react\";\nimport { GridBaseRow } from \"../Grid\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { GridContext } from \"@contexts/GridContext\";\nimport { delay } from \"lodash-es\";\nimport debounce from \"debounce-promise\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridPopoutEditDropDownSelectedItem<RowType, ValueType> {\n selectedRows: RowType[];\n value: ValueType;\n}\n\ninterface FinalSelectOption<ValueType> {\n value: ValueType;\n label?: JSX.Element | string;\n disabled?: boolean | string;\n}\n\nexport const MenuSeparatorString = \"_____MENU_SEPARATOR_____\";\nexport const MenuSeparator = Object.freeze({ value: MenuSeparatorString });\n\nexport type SelectOption<ValueType> = ValueType | FinalSelectOption<ValueType>;\n\nexport interface GridFormPopoutDropDownProps<RowType extends GridBaseRow, ValueType>\n extends GenericCellEditorParams<RowType> {\n filtered?: \"local\" | \"reload\";\n filterPlaceholder?: string;\n onSelectedItem?: (props: GridPopoutEditDropDownSelectedItem<RowType, ValueType>) => Promise<void>;\n options:\n | SelectOption<ValueType>[]\n | ((selectedRows: RowType[], filter?: string) => Promise<SelectOption<ValueType>[]> | SelectOption<ValueType>[]);\n optionsRequestCancel?: () => void;\n}\n\nexport const GridFormDropDown = <RowType extends GridBaseRow, ValueType>(props: GridFormProps<RowType>) => {\n const { popoverWrapper } = useGridPopoverHook(props);\n const formProps = props.formProps as GridFormPopoutDropDownProps<RowType, ValueType>;\n\n const { updatingCells, stopEditing } = useContext(GridContext);\n\n const [filter, setFilter] = useState(\"\");\n const [filteredValues, setFilteredValues] = useState<any[]>([]);\n const optionsInitialising = useRef(false);\n const [options, setOptions] = useState<FinalSelectOption<ValueType>[] | null>(null);\n\n const selectItemHandler = useCallback(\n async (value: ValueType): Promise<boolean> => {\n const field = props.field;\n return await updatingCells({ selectedRows: props.selectedRows, field }, async (selectedRows) => {\n const hasChanged = selectedRows.some((row) => row[field as keyof RowType] !== value);\n if (hasChanged) {\n if (formProps.onSelectedItem) {\n await formProps.onSelectedItem({ selectedRows, value });\n } else {\n selectedRows.forEach((row) => (row[field as keyof RowType] = value));\n }\n }\n return true;\n });\n },\n [formProps, props.field, props.selectedRows, updatingCells],\n );\n\n // Load up options list if it's async function\n useEffect(() => {\n if (options || optionsInitialising.current) return;\n optionsInitialising.current = true;\n let optionsConf = formProps.options ?? [];\n\n (async () => {\n if (typeof optionsConf == \"function\") {\n optionsConf = await optionsConf(props.selectedRows, filter);\n }\n\n const optionsList = optionsConf?.map((item) => {\n if (item == null || typeof item == \"string\" || typeof item == \"number\") {\n item = { value: item as ValueType, label: item, disabled: false } as FinalSelectOption<ValueType>;\n }\n return item;\n }) as any as FinalSelectOption<ValueType>[];\n\n if (formProps.filtered) {\n // This is needed otherwise when filter input is rendered and sets autofocus\n // the mouse up of the double click edit triggers the cell to cancel editing\n delay(() => setOptions(optionsList), 100);\n } else {\n setOptions(optionsList);\n }\n optionsInitialising.current = false;\n })();\n }, [filter, options, formProps.filtered, formProps.options, props.selectedRows]);\n\n // Local filtering\n useEffect(() => {\n if (formProps.filtered == \"local\") {\n if (options == null) return;\n setFilteredValues(\n options\n .map((option) => {\n if (option.label != null && typeof option.label !== \"string\") {\n console.error(\"Cannot filter non-string labels\", option);\n return undefined;\n }\n const str = (option.label as string) || \"\";\n return str.toLowerCase().indexOf(filter) === -1 ? option.value : undefined;\n })\n .filter((r) => r !== undefined),\n );\n }\n }, [formProps.filtered, filter, options]);\n\n const researchOnFilterChange = debounce(\n useCallback(() => {\n setOptions(null);\n }, []),\n 500,\n );\n\n const previousFilter = useRef<string>(filter);\n\n // Reload filtering\n useEffect(() => {\n if (previousFilter.current != filter && formProps.filtered == \"reload\") {\n previousFilter.current = filter;\n formProps.optionsRequestCancel && formProps.optionsRequestCancel();\n researchOnFilterChange().then();\n }\n }, [filter, formProps, props, researchOnFilterChange]);\n\n const onFilterKeyDown = useCallback(\n async (e: KeyboardEvent) => {\n if (!options) return;\n if (e.key == \"Enter\" || e.key == \"Tab\") {\n const activeOptions = options.filter((option) => !filteredValues.includes(option.value));\n if (activeOptions.length == 1) {\n await selectItemHandler(activeOptions[0].value);\n stopEditing();\n } else {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n },\n [filteredValues, options, selectItemHandler, stopEditing],\n );\n\n return popoverWrapper(\n <>\n {formProps.filtered && (\n <>\n <FocusableItem className={\"filter-item\"} index={-1}>\n {({ ref }: any) => (\n <div style={{ display: \"flex\", width: \"100%\" }}>\n <input\n autoFocus\n className={\"free-text-input\"}\n style={{ border: \"0px\" }}\n ref={ref}\n type=\"text\"\n placeholder={formProps.filterPlaceholder ?? \"Placeholder\"}\n data-testid={\"filteredMenu-free-text-input\"}\n defaultValue={filter}\n onChange={(e) => setFilter(e.target.value.toLowerCase())}\n onKeyDown={(e) => onFilterKeyDown(e)}\n />\n </div>\n )}\n </FocusableItem>\n <MenuDivider key={`$$divider_filter`} />\n </>\n )}\n <ComponentLoadingWrapper loading={!options}>\n <>\n {options && options.length == filteredValues?.length && <MenuItem>[Empty]</MenuItem>}\n {options?.map((item, index) =>\n item.value === MenuSeparatorString ? (\n <MenuDivider key={`$$divider_${index}`} />\n ) : filteredValues.includes(item.value) ? null : (\n <MenuItem\n key={`${props.field}-${index}`}\n disabled={!!item.disabled}\n title={item.disabled && typeof item.disabled !== \"boolean\" ? item.disabled : \"\"}\n value={item.value}\n onClick={() => selectItemHandler(item.value)}\n >\n {item.label ?? (item.value == null ? `<${item.value}>` : `${item.value}`)}\n </MenuItem>\n ),\n )}\n </>\n </ComponentLoadingWrapper>\n </>,\n );\n};\n","import { GenericMultiEditCellClass } from \"../GenericCellClass\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GridFormDropDown, GridFormPopoutDropDownProps } from \"../gridForm/GridFormDropDown\";\n\nexport const GridPopoverEditDropDown = <RowType extends GridBaseRow, ValueType>(\n colDef: GenericCellColDef<RowType, GridFormPopoutDropDownProps<RowType, ValueType>>,\n) =>\n GridCell<RowType, GridFormPopoutDropDownProps<RowType, ValueType>>({\n initialWidth: 65,\n maxWidth: 150,\n cellClass: colDef.cellEditor?.multiEdit ? GenericMultiEditCellClass : undefined,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormDropDown,\n },\n }),\n });\n","import { useEffect, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { ICellEditorParams } from \"ag-grid-community\";\nimport { ComponentLoadingWrapper } from \"../ComponentLoadingWrapper\";\nimport { GridBaseRow } from \"../Grid\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\n\nexport interface GridFormMessageProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n message: (\n selectedRows: RowType[],\n cellEditorParams: ICellEditorParams,\n ) => Promise<string | JSX.Element> | string | JSX.Element;\n}\n\nexport const GridFormMessage = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormMessageProps<RowType>;\n\n const [message, setMessage] = useState<string | JSX.Element | null>(null);\n const { popoverWrapper } = useGridPopoverHook(props);\n\n useEffect(() => {\n (async () => {\n setMessage(await formProps.message(props.selectedRows, props.cellEditorParams));\n })().then();\n }, [formProps, props.selectedRows, props]);\n\n return popoverWrapper(\n <ComponentLoadingWrapper loading={message === null}>\n <div style={{ maxWidth: 400 }} className={\"Grid-popoverContainer\"}>\n {message}\n </div>\n </ComponentLoadingWrapper>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridFormMessage, GridFormMessageProps } from \"../gridForm/GridFormMessage\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\n\nexport const GridPopoverMessage = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormMessageProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormMessageProps<RowType>>({\n maxWidth: 140,\n ...colDef,\n cellRendererParams: colDef.cellRendererParams ?? {\n singleClickEdit: true,\n },\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n ...colDef.cellEditorParams,\n form: GridFormMessage,\n },\n }),\n });\n};\n","import { ChangeEventHandler, InputHTMLAttributes, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { LuiIcon } from \"@linzjs/lui\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport const useGenerateOrDefaultId = (idFromProps?: string) => {\n const [id] = useState(idFromProps ? idFromProps : uuidv4());\n return id;\n};\n\nexport interface LuiTextAreaInputProps {\n label?: JSX.Element | string;\n mandatory?: boolean;\n inputProps?: InputHTMLAttributes<HTMLTextAreaElement>;\n onChange?: ChangeEventHandler<HTMLTextAreaElement>;\n value: string;\n error?: string | boolean | null;\n}\n\nexport const TextAreaInput = (props: LuiTextAreaInputProps) => {\n const id = useGenerateOrDefaultId(props.inputProps?.id);\n\n return (\n <div\n className={clsx(\n \"LuiTextAreaInput Grid-popoverContainer\",\n props.inputProps?.disabled ? \"isDisabled\" : \"\",\n props?.error ? \"hasError\" : \"\",\n )}\n >\n <label htmlFor={id}>\n {props.mandatory && <span className=\"LuiTextAreaInput-mandatory\">*</span>}\n {props.label && <span className=\"LuiTextAreaInput-label\">{props.label}</span>}\n <div className=\"LuiTextAreaInput-wrapper\">\n {\" \"}\n {/* wrapper div used for error styling */}\n <textarea id={id} value={props.value} onChange={props.onChange} rows={5} {...props.inputProps} />\n </div>\n </label>\n\n {/* Error message */}\n {props.error && (\n <span className=\"LuiTextAreaInput-error\">\n <LuiIcon alt=\"error\" name=\"ic_error\" className=\"LuiTextAreaInput-error-icon\" size=\"sm\" status=\"error\" />\n {props.error}\n </span>\n )}\n </div>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { TextAreaInput } from \"../../lui/TextAreaInput\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GridFormTextAreaProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeholder?: string;\n required?: boolean;\n maxlength?: number;\n width?: string | number;\n validate?: (value: string) => string | null;\n onSave?: (selectedRows: RowType[], value: string) => Promise<boolean>;\n}\n\nexport const GridFormTextArea = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormTextAreaProps<RowType>;\n const [value, setValue] = useState(props.value ?? \"\");\n\n const invalid = useCallback(() => {\n if (formProps.required && value.length == 0) {\n return `Some text is required`;\n }\n if (formProps.maxlength && value.length > formProps.maxlength) {\n return `Text must be no longer than ${formProps.maxlength} characters`;\n }\n if (formProps.validate) {\n return formProps.validate(value);\n }\n return null;\n }, [formProps, value]);\n\n const save = useCallback(\n async (selectedRows: any[]): Promise<boolean> => {\n if (invalid()) return false;\n\n if (props.value === (value ?? \"\")) return true;\n\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, value);\n }\n\n const field = props.field;\n if (field == null) {\n console.error(\"ColDef has no field set\");\n return false;\n }\n selectedRows.forEach((row) => (row[field] = value));\n return true;\n },\n [formProps, invalid, props.field, props.value, value],\n );\n const { popoverWrapper } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div style={{ display: \"flex\", flexDirection: \"row\", width: formProps.width ?? 240 }} className={\"FormTest\"}>\n <TextAreaInput\n value={value}\n onChange={(e) => setValue(e.target.value)}\n error={invalid()}\n inputProps={{ placeholder: formProps.placeholder }}\n />\n </div>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridFormTextArea, GridFormTextAreaProps } from \"../gridForm/GridFormTextArea\";\n\nexport const GridPopoverTextArea = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormTextAreaProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormTextAreaProps<RowType>>({\n maxWidth: 260,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n width: 260,\n ...colDef.cellEditorParams,\n form: GridFormTextArea,\n },\n }),\n });\n};\n","import { useCallback, useState } from \"react\";\nimport { GenericCellEditorParams, GridFormProps } from \"../GridCell\";\nimport { TextInputFormatted } from \"../../lui/TextInputFormatted\";\nimport { useGridPopoverHook } from \"../GridPopoverHook\";\nimport { GridBaseRow } from \"../Grid\";\n\nexport interface GridFormTextInputProps<RowType extends GridBaseRow> extends GenericCellEditorParams<RowType> {\n placeholder?: string;\n required?: boolean;\n maxlength?: number;\n width?: string | number;\n validate?: (value: string) => string | null;\n onSave?: (selectedRows: RowType[], value: string) => Promise<boolean>;\n}\n\nexport const GridFormTextInput = <RowType extends GridBaseRow>(props: GridFormProps<RowType>) => {\n const formProps = props.formProps as GridFormTextInputProps<RowType>;\n const [value, setValue] = useState(props.value ?? \"\");\n\n const invalid = useCallback(() => {\n if (formProps.required && value.length == 0) {\n return `Some text is required`;\n }\n if (formProps.maxlength && value.length > formProps.maxlength) {\n return `Text must be no longer than ${formProps.maxlength} characters`;\n }\n if (formProps.validate) {\n return formProps.validate(value);\n }\n return null;\n }, [formProps, value]);\n\n const save = useCallback(\n async (selectedRows: any[]): Promise<boolean> => {\n if (invalid()) return false;\n\n if (props.value === (value ?? \"\")) return true;\n\n if (formProps.onSave) {\n return await formProps.onSave(selectedRows, value);\n }\n\n const field = props.field;\n if (field == null) {\n console.error(\"ColDef has no field set\");\n return false;\n }\n selectedRows.forEach((row) => (row[field] = value));\n return true;\n },\n [invalid, props.value, props.field, value, formProps],\n );\n const { popoverWrapper, triggerSave } = useGridPopoverHook(props, save);\n\n return popoverWrapper(\n <div style={{ display: \"flex\", flexDirection: \"row\", width: formProps.width ?? 240 }} className={\"FormTest\"}>\n <TextInputFormatted\n value={value}\n onChange={(e) => setValue(e.target.value)}\n error={invalid()}\n formatted={\"\"}\n inputProps={{\n style: { width: \"100%\" },\n placeholder: formProps.placeholder,\n onKeyDown: async (e) => e.key === \"Enter\" && triggerSave().then(),\n }}\n />\n </div>,\n );\n};\n","import { GridCell } from \"../GridCell\";\nimport { GridBaseRow } from \"../Grid\";\nimport { GenericCellColDef } from \"../gridRender/GridRenderGenericCell\";\nimport { GridFormTextInput, GridFormTextInputProps } from \"../gridForm/GridFormTextInput\";\n\nexport const GridPopoverTextInput = <RowType extends GridBaseRow>(\n colDef: GenericCellColDef<RowType, GridFormTextInputProps<RowType>>,\n) => {\n return GridCell<RowType, GridFormTextInputProps<RowType>>({\n maxWidth: 140,\n ...colDef,\n ...(colDef?.cellEditorParams && {\n cellEditorParams: {\n width: 240,\n ...colDef.cellEditorParams,\n form: GridFormTextInput,\n },\n }),\n });\n};\n"],"names":["createContext","useRef","flatten","remove","castArray","_jsx","_isEmpty","useContext","difference","isEmpty","delay","sortBy","last","useCallback","useState","useEffect","xorBy","useMemo","_jsxs","AgGridReact","LuiMiniSpinner","LuiIcon","_Fragment","useLayoutEffect","unstable_batchedUpdates","oneOfType","string","func","object","bool","number","oneOf","exact","memo","forwardRef","useTransition","useReducer","flushSync","createPortal","cloneElement","useImperativeHandle","Fragment","element","node","shape","any","MenuSeparatorString","LuiCheckboxInput","debounce","uuidv4"],"mappings":"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"}