@linzjs/step-ag-grid 1.4.0 → 1.4.2
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/src/components/Grid.d.ts +3 -2
- package/dist/src/components/gridForm/GridFormPopoutMenu.d.ts +1 -1
- package/dist/step-ag-grid.esm.js +19 -6
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Grid.tsx +20 -12
- package/src/components/GridPopoverHook.tsx +2 -1
- package/src/components/gridForm/GridFormPopoutMenu.tsx +2 -2
- package/src/stories/components/GridReadOnly.stories.tsx +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ag-grid.esm.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 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 = ({ api }: SelectionChangedEvent) => {\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\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\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 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\";\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={true}\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 multiEdit: 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.multiEdit;\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 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, beringDecimalString] = dd.toFixed(5).split(\".\");\n\n let bearingWhole = Math.abs(parseInt(bearingWholeString));\n let minNumeric = parseInt(beringDecimalString?.substring(0, 2));\n let secNumeric = parseInt(beringDecimalString?.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 = beringDecimalString?.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={`${item.value}`}\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":["_jsx","_isEmpty","r","_jsxs","_Fragment","reactIsModule","require$$0","require$$1","ReactPropTypesSecret","has","printWarning","checkPropTypes","ReactIs","require$$2","require$$3","require$$4","propTypesModule","oneOfType","string","func","object","bool","number","oneOf","exact","_excluded","any","node","MenuSeparatorString","uuidv4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"step-ag-grid.esm.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 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, beringDecimalString] = dd.toFixed(5).split(\".\");\n\n let bearingWhole = Math.abs(parseInt(bearingWholeString));\n let minNumeric = parseInt(beringDecimalString?.substring(0, 2));\n let secNumeric = parseInt(beringDecimalString?.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 = beringDecimalString?.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={`${item.value}`}\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":["_jsx","_isEmpty","r","_jsxs","_Fragment","reactIsModule","require$$0","require$$1","ReactPropTypesSecret","has","printWarning","checkPropTypes","ReactIs","require$$2","require$$3","require$$4","propTypesModule","oneOfType","string","func","object","bool","number","oneOf","exact","_excluded","any","node","MenuSeparatorString","uuidv4"],"mappings":"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"}
|