@natoora-libs/core 0.2.47 → 0.2.48-dev-doug-1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isObject.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_freeGlobal.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_root.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/now.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseTrim.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Symbol.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getRawTag.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_objectToString.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseGetTag.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isObjectLike.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isSymbol.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/toNumber.js","../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/debounce.js","../../src/components/ActiveFiltersIconButton/ActiveFiltersIconButton.tsx","../../src/components/AddressFormFields/AddressFormFields.tsx","../../src/components/ControlledValidTextInput/ControlledValidTextInput.tsx","../../src/components/GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete.tsx","../../src/components/PhoneInput/PhoneInput.tsx","../../src/components/SmartSelect/SmartSelect.tsx","../../src/components/AlertDialog/AlertDialog.tsx","../../src/components/AlertDialogFullScreen/AlertDialogFullScreen.tsx","../../src/components/AppLabel/AppLabel.tsx","../../src/components/AppliedTableFiltersDisplay/AppliedTableFiltersDisplay.tsx","../../src/components/DynamicOverflowTooltip/DynamicOverflowTooltip.tsx","../../src/hooks/useCheckOverflow/useCheckOverflow.ts","../../src/components/LabeledValueList/LabeledValueList.tsx","../../src/components/AutocompleteFilterMenuContent/AutocompleteFilterMenuContent.tsx","../../src/utils/resolveObjectType/resolveObjectType.ts","../../src/components/Buttons/ExtendedButton/ExtendedButton.tsx","../../src/components/icons/IconCompare.tsx","../../src/components/FilterOptionsCheckboxes/FilterOptionsCheckboxes.tsx","../../src/components/SearchFieldDebounced/SearchFieldDebounced.tsx","../../src/components/BackHeader/BackHeader.tsx","../../src/components/BottomBar/BottomBar.tsx","../../src/components/BoxButton/BoxButton.tsx","../../src/components/Buttons/FilledButton/FilledButton.tsx","../../src/components/Buttons/FilledButton/FilledButtonLg.tsx","../../src/components/Buttons/ImageButton/ImageButton.tsx","../../src/components/Buttons/SquareButton/SquareButton.tsx","../../src/components/Buttons/UploadButton/UploadButton.tsx","../../src/components/Buttons/OutlinedButton/OutlinedButton.tsx","../../src/components/Buttons/OutlinedButton/OutlinedButtonLg.tsx","../../src/components/Buttons/RoundButton/RoundButton.tsx","../../src/components/icons/BallsLogo.tsx","../../src/components/icons/EmptyGlassIcon.tsx","../../src/components/icons/IconAccount.tsx","../../src/components/icons/IconAccounts.tsx","../../src/components/icons/IconAvocado.tsx","../../src/components/icons/IconBanana.tsx","../../src/components/icons/IconBuying.tsx","../../src/components/icons/IconContentManagement.tsx","../../src/components/icons/IconGoodsin.tsx","../../src/components/icons/IconGrape.tsx","../../src/components/icons/IconHome.tsx","../../src/components/icons/IconImport.tsx","../../src/components/icons/IconLocation.tsx","../../src/components/icons/IconLogin.tsx","../../src/components/icons/IconNotification.tsx","../../src/components/icons/IconOpsMetrics.tsx","../../src/components/icons/IconOrders.tsx","../../src/components/icons/IconPhone.tsx","../../src/components/icons/IconPriceList.tsx","../../src/components/icons/IconProducts.tsx","../../src/components/icons/IconPromoCode.tsx","../../src/components/icons/IconQc.tsx","../../src/components/icons/IconReports.tsx","../../src/components/icons/IconRetail.tsx","../../src/components/icons/IconRuns.tsx","../../src/components/icons/IconScales.tsx","../../src/components/icons/IconSearchCategories.tsx","../../src/components/icons/IconSetting.tsx","../../src/components/icons/IconSnail.tsx","../../src/components/icons/IconSpecialPrice.tsx","../../src/components/icons/IconStock.tsx","../../src/components/icons/IconStrawberry.tsx","../../src/components/icons/IconSupplier.tsx","../../src/components/icons/IconSupplierPrices.tsx","../../src/components/icons/IconTableEdit.tsx","../../src/components/icons/IconUserManagement.tsx","../../src/components/icons/IconVkc.tsx","../../src/components/icons/SamsaraLogo.tsx","../../src/components/icons/index.tsx","../../src/components/icons/IconAirplane.tsx","../../src/components/icons/IconBicycle.tsx","../../src/components/icons/IconBus.tsx","../../src/components/icons/IconCar.tsx","../../src/components/icons/IconFork.tsx","../../src/components/icons/IconHeart.tsx","../../src/components/icons/IconKnife.tsx","../../src/components/icons/IconSpoon.tsx","../../src/resources/icons/BulkIcon.tsx","../../src/components/Buttons/Pin.tsx","../../src/components/Buttons/PinnedApp.tsx","../../src/components/CheckboxFilterMenuContent/CheckboxFilterMenuContent.tsx","../../src/components/ClearFiltersConfirmationDialog/ClearFiltersConfirmationDialog.tsx","../../src/components/ConfirmationDialog/ConfirmationDialog.tsx","../../src/components/CompanyLogo/CompanyLogo.tsx","../../src/components/ControlledCheckbox/ControlledCheckbox.tsx","../../src/components/ControlledNumberInput/ControlledNumberInput.tsx","../../src/components/ControlledNumericField/ControlledNumericField.tsx","../../src/components/ControlledSelectWithArray/ControlledSelectWithArray.tsx","../../src/components/ControlledSelectWithObject/ControlledSelectWithObject.tsx","../../src/components/DataGrid/DataGrid.tsx","../../src/lib/moment.js","../../src/resources/styles/themes/default.js","../../src/config/constants.js","../../src/components/Date/Date.tsx","../../src/components/DeleteSubstitutionDialogContent/DeleteSubstitutionDialogContent.tsx","../../src/components/DeleteUserDialogContent/DeleteUserDialogContent.tsx","../../src/components/DeliveryInstructionsFormFields/DeliveryInstructionsFormFields.tsx","../../src/components/FileCard/FileCard.tsx","../../src/components/FilledLabel/FilledLabel.tsx","../../src/components/FilterGroupSelector/FilterGroupSelector.tsx","../../src/components/FilterSimpleSelector/FilterSimpleSelector.tsx","../../src/components/FixedFooter/FixedFooter.tsx","../../src/components/GlobalSearchTrigger/GlobalSearchTrigger.tsx","../../src/components/GlobalSearch/GlobalSearch.tsx","../../src/components/Header/Header.tsx","../../src/components/List/List.tsx","../../src/components/LocationsSectionInfo/LocationsSectionInfo.tsx","../../src/components/Notes/Notes.tsx","../../src/components/Numpad/Numpad.tsx","../../src/components/NumpadInput/NumpadInput.tsx","../../src/components/NumpadPlus/NumpadPlus.tsx","../../src/components/Pagination/Pagination.tsx","../../src/components/PlusMinusInput/PlusMinusInput.tsx","../../src/components/ProductBust/ProductBust.tsx","../../src/components/ProductImage/ProductImage.tsx","../../src/components/RenderAvatar/RenderAvatar.tsx","../../src/components/RenderContentList/RenderContentList.tsx","../../src/utils/useGetActiveSection.ts","../../src/components/RowProductCard/RowProductCard.tsx","../../src/components/ScrollableDialog/ScrollableDialog.tsx","../../src/components/SearchAndFilterHeader/SearchAndFilterHeader.tsx","../../src/components/SearchWithFilters/SearchWithFilters.tsx","../../src/components/SearchAndFilterHeader/SearchAndFilterHeaderForTable.tsx","../../src/components/SearchWithFilters/SearchWithFiltersForTable.tsx","../../src/components/SearchHeader/SearchHeader.tsx","../../src/components/SectionName/SectionName.tsx","../../src/components/SmartMultipleSelect/SmartMultipleSelect.tsx","../../src/components/SquareLabel/SquareLabel.tsx","../../src/components/Switch/Switch.tsx","../../src/components/SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu.tsx","../../src/components/SmartTableHeader/SmartTableHeader.tsx","../../src/components/Table/Table.tsx","../../src/components/TableLoading/TableLoading.tsx","../../src/components/Table/helpers.tsx","../../src/components/TableDesktop/TableDesktop.tsx","../../src/components/TableDesktopLoadingState/TableDesktopLoadingState.tsx","../../src/components/TableDesktopNoColumnsMessage/TableDesktopNoColumnsMessage.tsx","../../src/components/Buttons/BaseButton/BaseIconButton.tsx","../../src/components/TableDesktopRows/TableDesktopRows.tsx","../../src/components/TableDesktopRowSelectionBar/TableDesktopRowSelectionBar.tsx","../../src/components/TableEmptyResult/TableEmptyResult.tsx","../../src/components/TableDesktopEditableField/TableDesktopEditableField.tsx","../../src/components/TableDesktopEditableField/TableDesktopSmartMultipleSelect.tsx","../../src/components/TableDesktopEditableField/TableDesktopSmartSelect.tsx","../../src/components/TableDesktopEditableField/TableDesktopTagsField.tsx","../../src/components/HashtagInput/HashtagInput.tsx","../../src/components/TableDesktopEditableField/TableDesktopTextField.tsx","../../src/components/TableDesktopFooter/TableDesktopFooter.tsx","../../src/components/TableDesktopCell/TableDesktopCell.tsx","../../src/components/TableDesktopToolbar/TableDesktopToolbar.tsx","../../src/components/TableHeader/TableHeader.tsx","../../src/components/TextDivider/TextDivider.tsx","../../src/components/ThemedDateRangePicker/ThemedDateRangePicker.tsx","../../src/components/TheToolbar/TheToolbar.tsx","../../src/components/ToastMessage/ToastMessage.tsx","../../src/components/TwoButtonDialog/TwoButtonDialog.tsx","../../src/components/UserBust/UserBust.tsx","../../src/components/icons/IconChart.tsx"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","import { memo, MouseEvent } from 'react';\n\nimport FilterList from '@mui/icons-material/FilterList';\nimport { Typography, Chip, IconButton } from '@mui/material';\n\ntype ActiveFiltersIconButtonProps = {\n label?: string;\n className?: string;\n enableRipple?: boolean;\n numActiveFilters: number;\n handleClick: (event: MouseEvent<HTMLElement>) => void;\n};\n\nexport const ActiveFiltersIconButton = memo(\n ({\n label,\n className,\n enableRipple = false,\n numActiveFilters,\n handleClick,\n }: ActiveFiltersIconButtonProps) => (\n <IconButton\n disableRipple={!enableRipple}\n onClick={handleClick}\n data-testid=\"filter-menu-button\"\n sx={{ padding: 0, gap: 1 }}\n className={className}\n >\n {label ? (\n <Typography variant=\"button\" fontSize={12} marginTop={0.5}>\n {label}\n </Typography>\n ) : null}\n\n {numActiveFilters > 0 ? (\n <Chip\n sx={{ height: 24 }}\n label={numActiveFilters}\n icon={<FilterList style={{ fontSize: 18 }} color=\"primary\" />}\n />\n ) : (\n <FilterList style={{ fontSize: 18 }} />\n )}\n </IconButton>\n ),\n);\n","import { useCallback, useMemo } from 'react';\nimport { UseFormReturn, Controller } from 'react-hook-form';\n\nimport { Box, Tooltip } from '@mui/material';\n\nimport ControlledValidTextInput from '../ControlledValidTextInput/ControlledValidTextInput';\nimport {\n GooglePlacesAddressAutocomplete,\n GooglePlacesAddressAutocompleteProps,\n ProcessedAddress,\n} from '../GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete';\nimport { PhoneInput } from '../PhoneInput/PhoneInput';\nimport { SmartSelect } from '../SmartSelect/SmartSelect';\n\nexport type AddressCountry = {\n code: string;\n name: string;\n};\n\nexport type AddressState = {\n id: number;\n name: string;\n abbreviation?: string | null;\n country?: string | null;\n};\n\nexport type BaseAddressFormFields = {\n name: string;\n line1: string;\n line2?: string | null;\n primary_phone_number?: string | null;\n city: string;\n county?: string | null;\n postcode: string;\n country: AddressCountry;\n state?: AddressState | null;\n};\n\nexport type AddressFormFieldsProps = {\n form: UseFormReturn<BaseAddressFormFields>;\n hidePrimaryPhoneNumberField?: boolean;\n countriesSelectProps: {\n countries: AddressCountry[];\n isCountriesFetching: boolean;\n refetchCountries: () => void;\n };\n statesSelectProps: {\n addressStates: AddressState[];\n isAddressStatesFetching: boolean;\n };\n googlePlacesAutocompleteProps?: GooglePlacesAddressAutocompleteProps;\n};\n\nconst ADDRESS_FORM_FIELDS = [\n 'line1',\n 'line2',\n 'city',\n 'county',\n 'country',\n 'state',\n 'postcode',\n] as const;\n\nexport const AddressFormFields = ({\n form,\n hidePrimaryPhoneNumberField = false,\n countriesSelectProps: { countries, isCountriesFetching, refetchCountries },\n statesSelectProps: { addressStates, isAddressStatesFetching },\n googlePlacesAutocompleteProps,\n}: AddressFormFieldsProps) => {\n const { control, getValues, setValue, trigger } = form;\n\n const countriesOptions = useMemo(\n () =>\n countries.map((country) => ({\n value: country.code,\n label: country.name,\n })),\n [countries],\n );\n\n const statesOptions = useMemo(\n () =>\n addressStates.map((state) => ({\n value: state.id,\n label: state.name,\n })),\n [addressStates],\n );\n\n const handleOnAddressSelected = useCallback(\n (processedAddress: ProcessedAddress) => {\n ADDRESS_FORM_FIELDS.forEach((field) => {\n setValue(field, processedAddress[field]);\n });\n trigger();\n },\n [setValue, trigger],\n );\n\n const handleClearAddressOption = () => {\n ADDRESS_FORM_FIELDS.forEach((field) => {\n setValue(field, '');\n });\n form.reset();\n googlePlacesAutocompleteProps?.onChangeAddressOption(null);\n };\n\n const countryValues = getValues('country');\n const doesCountryHaveStates = !!(countryValues?.code && addressStates.length);\n\n const stateSelectTooltip = useMemo(() => {\n if (doesCountryHaveStates) return '';\n return countryValues?.code\n ? 'No available states for this country.'\n : 'Select a country to see available states.';\n }, [doesCountryHaveStates, countryValues?.code]);\n\n return (\n <Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'end',\n gap: '32px',\n width: '100%',\n mb: 2.5,\n }}\n >\n <ControlledValidTextInput\n fieldName=\"name\"\n form={form}\n label=\"Address Name *\"\n sx={{ flex: '0 0 calc(70% - 16px)' }}\n maxLength={100}\n helperText=\"Name this address for easier reference (e.g. Office, Home, etc.).\"\n />\n\n {!hidePrimaryPhoneNumberField && (\n <Controller\n control={control}\n name=\"primary_phone_number\"\n render={({ field, fieldState }) => (\n <PhoneInput\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n value={field.value as string}\n onChange={field.onChange}\n label=\"Primary Phone Number\"\n error={!!fieldState.error}\n placeholder={\n fieldState.error?.message ??\n 'Start typing your main phone number.'\n }\n />\n )}\n />\n )}\n </Box>\n\n {googlePlacesAutocompleteProps &&\n !!googlePlacesAutocompleteProps.apiKey && (\n <Box sx={{ width: '100%', display: 'flex', mb: '20px' }}>\n <GooglePlacesAddressAutocomplete\n containerStyles={{ width: '60%' }}\n onAddressSelected={handleOnAddressSelected}\n onClearAddressOption={handleClearAddressOption}\n {...googlePlacesAutocompleteProps}\n />\n </Box>\n )}\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <ControlledValidTextInput\n fieldName=\"line1\"\n form={form}\n label=\"Address Line 1 *\"\n maxLength={100}\n sx={{ flex: '0 0 calc(70% - 16px)' }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"line2\"\n form={form}\n label=\"Address Line 2 (Optional)\"\n maxLength={100}\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n helperText=\" \"\n />\n </Box>\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <Box sx={{ flex: '0 0 calc(70% - 16px)' }}>\n <Controller\n name=\"country\"\n control={control}\n render={({ field, fieldState }) => (\n <SmartSelect\n inputLabel=\"Country *\"\n value={field.value?.code ?? ''}\n menuProps={{ disableRestoreFocus: true }}\n refetch={refetchCountries}\n isFetching={isCountriesFetching}\n options={countriesOptions}\n error={!!fieldState.error}\n helperText={fieldState.error?.message ?? ' '}\n defaultOption={\n field.value\n ? { value: field.value.code, label: field.value.name }\n : undefined\n }\n onChange={({ value, label }) => {\n const newCountryCode = String(value);\n\n field.onChange({ code: newCountryCode, name: label });\n setValue('state', null);\n }}\n />\n )}\n />\n </Box>\n\n <Box component=\"span\" sx={{ flex: '0 0 calc(30% - 16px)', mb: '23px' }}>\n <Tooltip title={stateSelectTooltip}>\n <Box>\n <Controller\n name=\"state\"\n control={control}\n render={({ field }) => (\n <SmartSelect\n allowBlankOption\n inputLabel=\"State (Optional)\"\n variant=\"standard\"\n menuProps={{ disableRestoreFocus: true }}\n disabled={!doesCountryHaveStates}\n value={field.value?.id ?? ''}\n isFetching={isAddressStatesFetching}\n options={statesOptions}\n emptyMessage=\"No states available\"\n defaultOption={\n field.value\n ? { value: field.value.id, label: field.value.name }\n : undefined\n }\n onChange={({ value }) => {\n const selectedOption = addressStates.find(\n (state) => state.id === value,\n );\n field.onChange(value === '' ? null : selectedOption);\n }}\n />\n )}\n />\n </Box>\n </Tooltip>\n </Box>\n </Box>\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <ControlledValidTextInput\n fieldName=\"city\"\n form={form}\n label=\"Town or City *\"\n maxLength={30}\n sx={{ flexGrow: 1 }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"county\"\n form={form}\n label=\"County (Optional)\"\n maxLength={30}\n sx={{ flexGrow: 1 }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"postcode\"\n form={form}\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n label=\"Postcode *\"\n maxLength={10}\n helperText=\" \"\n />\n </Box>\n </Box>\n );\n};\n","import * as React from 'react';\nimport {\n Controller,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n UseFormReturn,\n} from 'react-hook-form';\nimport { UseMutateAsyncFunction } from 'react-query';\n\nimport { Box, BoxProps, TextField } from '@mui/material';\nimport classNames from 'classnames';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n fullWidthWrapper: {\n maxWidth: '100%',\n },\n helperTextWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n helperTextWidth80: {\n maxWidth: '80%',\n },\n}));\n\ninterface ControlledValidTextInputBaseProps {\n label: string;\n fieldName: string;\n helperText?: string;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n className?: string;\n sx?: BoxProps['sx'];\n maxLength?: number;\n 'data-testid'?: string;\n form: UseFormReturn<any>;\n}\n\n/** Ensure AT MOST ONE of 'updateCustomerData' or 'customHandleBlurValidationAndSubmit' can be provided. */\ntype ControlledValidTextInputDefaultProps =\n ControlledValidTextInputBaseProps & {\n updateCustomerData?: UseMutateAsyncFunction<any, unknown, any, unknown>;\n customHandleBlurValidationAndSubmit?: never;\n };\ntype ControlledValidTextInputCustomProps = ControlledValidTextInputBaseProps & {\n updateCustomerData?: never;\n customHandleBlurValidationAndSubmit?: (\n // eslint-disable-next-line no-unused-vars\n controlledField: ControllerRenderProps<FieldValues, string>,\n // eslint-disable-next-line no-unused-vars\n isDirty: boolean,\n ) => void;\n};\ntype ControlledValidTextInputProps =\n | ControlledValidTextInputDefaultProps\n | ControlledValidTextInputCustomProps;\n\nconst convertUnderscoreToHyphen = (str: string) => str.replace(/_/g, '-');\n\nconst ControlledValidTextInput: React.FC<ControlledValidTextInputProps> = ({\n label,\n fieldName,\n helperText,\n disabled,\n variant = 'standard',\n className,\n sx,\n maxLength,\n 'data-testid': dataTestId,\n form: { control, watch, trigger },\n updateCustomerData,\n customHandleBlurValidationAndSubmit,\n}) => {\n const { classes } = useStyles();\n\n const defaultHandleBlurValidationAndSubmit = async (\n { name, value, onChange }: ControllerRenderProps<FieldValues, string>,\n isDirty: boolean,\n ) => {\n const trimmedValue = value?.trim();\n\n if (value !== trimmedValue) {\n onChange(trimmedValue);\n }\n\n const isValid = await trigger(name);\n\n if (isValid && isDirty) {\n updateCustomerData?.({ [name]: trimmedValue });\n }\n };\n\n const handleBlurValidationAndSubmit = (\n controlledField: ControllerRenderProps<FieldValues, string>,\n fieldState: ControllerFieldState,\n ) => {\n if (!updateCustomerData && !customHandleBlurValidationAndSubmit) {\n trigger(controlledField.name);\n }\n\n if (customHandleBlurValidationAndSubmit) {\n customHandleBlurValidationAndSubmit(controlledField, fieldState.isDirty);\n } else {\n defaultHandleBlurValidationAndSubmit(controlledField, fieldState.isDirty);\n }\n };\n\n return (\n <Box\n className={className}\n sx={sx}\n data-testid={dataTestId || `${convertUnderscoreToHyphen(fieldName)}`}\n >\n <Controller\n control={control}\n name={fieldName}\n render={({ field: controlledField, fieldState }) => (\n <Box className={classes.fullWidthWrapper}>\n <TextField\n {...controlledField}\n value={controlledField?.value || ''}\n fullWidth\n id={fieldName}\n data-testid={\n dataTestId\n ? `${dataTestId}-input`\n : `${convertUnderscoreToHyphen(fieldName)}-input`\n }\n label={label}\n error={!!fieldState.error}\n multiline\n autoComplete=\"off\"\n disabled={disabled}\n variant={variant}\n helperText={\n <Box\n component=\"span\"\n sx={{ whiteSpace: 'pre-wrap' }}\n className={classNames({\n [classes.helperTextWrapper]: !!maxLength,\n })}\n data-testid={\n dataTestId\n ? `${dataTestId}-helper-text`\n : `${convertUnderscoreToHyphen(fieldName)}-helper-text`\n }\n >\n <Box\n component=\"span\"\n className={classNames({\n [classes.helperTextWidth80]: !!maxLength,\n })}\n >\n {fieldState.error?.message ?? helperText}\n </Box>\n {!!maxLength && (\n <Box component=\"span\">\n {`${watch(fieldName)?.length ?? 0}/${maxLength}`}\n </Box>\n )}\n </Box>\n }\n onBlur={() =>\n handleBlurValidationAndSubmit(controlledField, fieldState)\n }\n />\n </Box>\n )}\n />\n </Box>\n );\n};\n\nexport default ControlledValidTextInput;\n","import { CSSProperties, useEffect } from 'react';\nimport GooglePlacesAutocomplete from 'react-google-places-autocomplete';\n\nimport Clear from '@mui/icons-material/Clear';\nimport { IconButton, Box } from '@mui/material';\nimport { useTheme, Theme } from '@mui/material/styles';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { AddressState } from '../AddressFormFields/AddressFormFields';\n\nconst getCustomStyles = (\n theme: Theme,\n styles: CSSProperties,\n getBorderColor: () => string,\n) => ({\n container: (provided: any) => ({\n ...provided,\n ...styles,\n fontSize: 16,\n fontFamily: theme.typography.fontFamily,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n paddingTop: '9px',\n paddingBottom: '9px',\n borderRadius: '4px',\n border: `1px solid ${\n state.isFocused ? colors.muiPrimary : getBorderColor()\n }`,\n outline: state.isFocused ? '1px solid' : 'none',\n outlineColor: colors.muiPrimary,\n boxShadow: 'none',\n backgroundColor: 'none',\n '&:hover': null,\n }),\n input: (provided: any) => ({\n ...provided,\n color: theme.palette.text.primary,\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: theme.palette.grey[700],\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: theme.palette.text.primary,\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n backgroundColor: state.isFocused ? theme.palette.action.hover : 'none',\n color: state.isFocused\n ? theme.palette.text.primary\n : theme.palette.text.secondary,\n fontSize: 14,\n cursor: 'pointer',\n }),\n menu: (provided: any) => ({\n ...provided,\n zIndex: 9999,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n }),\n});\n\nconst processAddressComponents = (\n components: GoogleAddressComponent[],\n): ProcessedAddress => {\n const processedAddress: ProcessedAddress = {\n line1: '',\n line2: '',\n city: '',\n county: '',\n state: null,\n country: {\n code: '',\n name: '',\n },\n postcode: '',\n };\n\n components.forEach(({ types, long_name, short_name }) => {\n if (types.includes('street_number')) {\n processedAddress.line1 = `${long_name} `;\n }\n if (types.includes('route')) {\n processedAddress.line1 += long_name;\n }\n if (\n types.includes('sublocality') ||\n types.includes('sublocality_level_1')\n ) {\n processedAddress.line2 = long_name;\n }\n if (types.includes('locality') || types.includes('postal_town')) {\n processedAddress.city = long_name;\n }\n if (types.includes('administrative_area_level_2')) {\n if (!processedAddress.city) {\n processedAddress.city = long_name;\n } else {\n processedAddress.county = long_name;\n }\n }\n if (types.includes('country')) {\n processedAddress.country ??= { code: '', name: '' };\n processedAddress.country.code = short_name;\n processedAddress.country.name = long_name;\n }\n if (types.includes('postal_code')) {\n processedAddress.postcode = long_name;\n }\n });\n\n return processedAddress;\n};\n\nexport type AddressOption = {\n label: string;\n placeId: string;\n};\n\nexport type ProcessedAddress = {\n line1?: string;\n line2?: string;\n city?: string;\n county?: string;\n state?: AddressState | null;\n country?: {\n code: string;\n name: string;\n };\n postcode?: string;\n};\n\ntype GoogleAddressComponent = {\n types: string[];\n long_name: string;\n short_name: string;\n};\n\ntype GooglePlacesRawData = {\n status: string;\n result: {\n address_components: GoogleAddressComponent[];\n };\n};\n\nexport type GooglePlacesAddressAutocompleteProps = {\n apiKey: string;\n googlePlacesRawData?: GooglePlacesRawData;\n isGooglePlacesRawDataFetching?: boolean;\n addressOption: AddressOption | null;\n onChangeAddressOption: (newAddressOption: AddressOption | null) => void;\n onAddressSelected?: (processedAddress: ProcessedAddress) => void;\n onClearAddressOption?: () => void;\n containerStyles?: CSSProperties;\n};\n\nexport const GooglePlacesAddressAutocomplete = ({\n apiKey,\n googlePlacesRawData,\n isGooglePlacesRawDataFetching = false,\n addressOption,\n onChangeAddressOption,\n onAddressSelected,\n onClearAddressOption,\n containerStyles = {},\n}: GooglePlacesAddressAutocompleteProps) => {\n const theme = useTheme();\n\n const getBorderColor = () => theme.palette.grey[400];\n\n useEffect(() => {\n if (googlePlacesRawData && googlePlacesRawData.status === 'OK') {\n const addressComponents = googlePlacesRawData.result.address_components;\n const processedAddress = processAddressComponents(addressComponents);\n\n onAddressSelected?.(processedAddress);\n }\n }, [googlePlacesRawData, onAddressSelected]);\n\n return (\n <Box\n sx={{\n gap: 1,\n display: 'flex',\n width: '100%',\n justifyItems: 'center',\n alignItems: 'center',\n }}\n >\n <GooglePlacesAutocomplete\n debounce={1000}\n apiOptions={{ region: 'uk', language: 'en' }}\n minLengthAutocomplete={5}\n apiKey={apiKey}\n autocompletionRequest={{\n componentRestrictions: {\n country: ['us', 'uk'],\n },\n }}\n selectProps={{\n noOptionsMessage: () => 'No address found',\n placeholder: 'Start typing your address (min 5 characters)',\n styles: getCustomStyles(theme, containerStyles, getBorderColor),\n isLoading: isGooglePlacesRawDataFetching,\n value: addressOption\n ? {\n label: addressOption.label,\n value: { place_id: addressOption.placeId },\n }\n : null,\n onChange: (newAddressOption) => {\n if (!newAddressOption) {\n return;\n }\n onChangeAddressOption({\n label: newAddressOption.label,\n placeId: newAddressOption.value.place_id,\n });\n },\n }}\n />\n\n {!!addressOption && (\n <IconButton\n onClick={onClearAddressOption}\n sx={{\n width: 40,\n height: 40,\n flexShrink: 0,\n }}\n >\n <Clear />\n </IconButton>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport ReactPhoneInput from 'react-phone-input-material-ui';\n\nimport { Box, BoxProps, TextField, Typography } from '@mui/material';\n\ninterface PhoneInputProps {\n value?: string | null;\n // eslint-disable-next-line no-unused-vars\n onChange?: (phone: string | null) => void;\n placeholder?: string;\n sx?: BoxProps['sx'];\n className?: string;\n label?: string;\n error?: boolean;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n value,\n onChange,\n placeholder,\n label = 'Phone',\n sx,\n className,\n error = false,\n}) => (\n <Box\n sx={{\n width: '100%',\n height: '100%',\n ...sx,\n }}\n className={className}\n >\n <ReactPhoneInput\n label={label}\n value={value}\n onChange={onChange}\n component={(props) => <TextField {...props} variant=\"standard\" />}\n containerStyle={{ width: '100%', height: '100%' }}\n placeholder=\" \"\n inputProps={{ error }}\n />\n <Typography\n color={error ? 'error' : 'textSecondary'}\n sx={{\n fontSize: '0.75rem',\n paddingTop: '4px',\n display: 'block',\n }}\n >\n {placeholder ?? ' '}\n </Typography>\n </Box>\n);\n","import { forwardRef, useMemo, KeyboardEvent } from 'react';\n\nimport {\n Box,\n CircularProgress,\n FormControl,\n FormHelperText,\n InputLabel,\n MenuItem,\n MenuProps,\n Select,\n SelectChangeEvent,\n SelectProps,\n} from '@mui/material';\n\nimport { getSelectOptionFromKeyPress } from '@/utils/getSelectOptionFromKeyPress/getSelectOptionFromKeyPress';\n\nexport type Option = {\n value?: string | number;\n label?: string;\n disabled?: boolean;\n};\n\nexport interface SmartSelectProps {\n value?: string | number | null;\n defaultOption?: Option;\n options?: Option[];\n refetch?: () => void;\n isFetching?: boolean;\n onChange: (selectedOption: Option) => void;\n onKeyDownCapture?: (event: KeyboardEvent<HTMLDivElement>) => void;\n inputLabel?: string;\n variant?: SelectProps['variant'];\n size?: SelectProps['size'];\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n allowBlankOption?: boolean;\n 'data-testid'?: string;\n emptyMessage?: string;\n menuProps?: Partial<MenuProps>;\n}\n\nexport const SmartSelect = forwardRef(\n (\n {\n value,\n defaultOption,\n options = [],\n refetch,\n isFetching = false,\n onChange,\n onKeyDownCapture,\n inputLabel,\n variant = 'standard',\n size,\n error,\n helperText,\n disabled,\n allowBlankOption = false,\n 'data-testid': dataTestId,\n emptyMessage = 'No options',\n menuProps,\n }: SmartSelectProps,\n ref,\n ) => {\n const visibleOptions = useMemo(() => {\n const baseOptions = [\n ...(allowBlankOption ? [{ value: '', label: 'None' }] : []),\n ...(options ?? []),\n ];\n const isSelectedInOptions = baseOptions.some((o) => o.value === value);\n\n if (value && !isSelectedInOptions && defaultOption?.value === value) {\n return [...baseOptions, defaultOption];\n }\n\n return baseOptions;\n }, [options, value, defaultOption]);\n\n const handleFetchData = () => {\n if (!options?.length) {\n refetch?.();\n }\n };\n\n const handleChange = (event: SelectChangeEvent<string | number | null>) => {\n const selectedId = event.target.value;\n const selectedOption = visibleOptions.find(\n (option) => option.value === selectedId,\n );\n\n if (selectedOption) {\n onChange(selectedOption);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n // Ignores shortcut keys.\n if (event.ctrlKey || event.altKey || event.metaKey) {\n return;\n }\n\n const nextOption = getSelectOptionFromKeyPress({\n key: event.key,\n options: visibleOptions,\n currentValue: value,\n });\n\n if (nextOption) {\n event.preventDefault();\n onChange(nextOption);\n }\n };\n\n const handleKeyDownCapture = (event: KeyboardEvent<HTMLDivElement>) => {\n onKeyDownCapture?.(event);\n };\n\n const renderMenuContent = () => {\n if (isFetching) {\n return [\n <Box\n key=\"select-loading\"\n data-testid=\"select-loading\"\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n p: 2,\n }}\n >\n <CircularProgress size={24} />\n </Box>,\n // Hidden default item to satisfy MUI validation\n defaultOption ? (\n <MenuItem\n key=\"hidden-default-item\"\n data-testid=\"hidden-default-item\"\n value={defaultOption?.value}\n sx={{ display: 'none' }}\n >\n {defaultOption?.label}\n </MenuItem>\n ) : null,\n ];\n }\n\n if (!visibleOptions.length) {\n return (\n <MenuItem disabled data-testid={`${dataTestId}-empty-message`}>\n {emptyMessage}\n </MenuItem>\n );\n }\n\n return visibleOptions.map((option) => (\n <MenuItem\n key={option.value}\n value={option.value}\n data-testid={`${dataTestId}-option-${option?.value}`}\n disabled={option.disabled}\n >\n {option.label}\n </MenuItem>\n ));\n };\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={error}\n variant={variant}\n data-testid={dataTestId}\n disabled={disabled}\n >\n {inputLabel && (\n <InputLabel\n id=\"smart-select-label\"\n data-testid={`${dataTestId}-label`}\n >\n {inputLabel}\n </InputLabel>\n )}\n <Select\n ref={ref}\n labelId=\"smart-select-label\"\n id={`${dataTestId}-select`}\n data-testid={`${dataTestId}-select`}\n value={value ?? ''}\n onChange={handleChange}\n onOpen={handleFetchData}\n onFocus={handleFetchData}\n onKeyDown={handleKeyDown}\n onKeyDownCapture={handleKeyDownCapture}\n label={inputLabel}\n MenuProps={menuProps}\n >\n {renderMenuContent()}\n </Select>\n {helperText && (\n <FormHelperText data-testid={`${dataTestId}-helper-text`}>\n {helperText}\n </FormHelperText>\n )}\n </FormControl>\n );\n },\n);\n","import { ReactNode } from 'react';\nimport * as React from 'react';\n\nimport { Box, Button, Dialog, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n topSection: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: 8,\n marginBottom: 20,\n paddingInline: theme.spacing(3),\n paddingTop: theme.spacing(3),\n },\n title: {\n color: theme.palette.text.secondary,\n },\n bottomSection: {\n display: 'flex',\n justifyContent: 'center',\n gap: 8,\n },\n}));\n\ninterface AlertDialogProps {\n open: boolean;\n alertTitle?: string;\n description?: string;\n maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n fullWidth?: boolean;\n content?: ReactNode;\n fullScreen?: boolean;\n handleAlertAccept?: () => void;\n handleAlertReject?: () => void;\n rejectCopy?: string;\n acceptCopy?: string;\n disabledContentPadding?: boolean;\n disableEnforceFocus?: boolean;\n disableRestoreFocus?: boolean;\n}\n\nconst AlertDialog: React.FC<AlertDialogProps> = ({\n alertTitle,\n description,\n maxWidth,\n fullWidth,\n handleAlertAccept,\n handleAlertReject,\n fullScreen,\n open,\n rejectCopy,\n acceptCopy,\n content,\n disabledContentPadding,\n disableEnforceFocus,\n disableRestoreFocus,\n}) => {\n const { classes } = useStyles();\n return (\n <Dialog\n open={open}\n onClose={handleAlertReject}\n maxWidth={maxWidth}\n fullScreen={fullScreen}\n fullWidth={fullWidth}\n disableEnforceFocus={disableEnforceFocus}\n disableRestoreFocus={disableRestoreFocus}\n >\n <Box>\n <Box className={classes.topSection}>\n {alertTitle ? (\n <Typography variant=\"h5\" className={classes.title}>\n {alertTitle}\n </Typography>\n ) : null}\n\n {description ? (\n <Typography variant=\"body1\">{description}</Typography>\n ) : null}\n </Box>\n\n <Box padding={disabledContentPadding ? '' : '24px'}>\n {content || null}\n </Box>\n\n {rejectCopy || acceptCopy ? (\n <Box className={classes.bottomSection}>\n <Button onClick={handleAlertReject}>\n {rejectCopy || 'Reject'}\n </Button>\n <Button onClick={handleAlertAccept} color=\"primary\" autoFocus>\n {acceptCopy || 'Accept'}\n </Button>\n </Box>\n ) : null}\n </Box>\n </Dialog>\n );\n};\n\nexport default AlertDialog;\n","import { Button, Dialog, DialogActions, DialogContent } from '@mui/material';\n\ninterface AlertDialogFullScreenProps {\n acceptCopy?: any;\n content?: any;\n fullScreen?: any;\n handleAlertAccept?: any;\n handleAlertReject?: any;\n open?: any;\n rejectCopy?: any;\n}\n\nconst AlertDialogFullScreen = ({\n handleAlertAccept,\n handleAlertReject,\n fullScreen,\n open,\n rejectCopy,\n acceptCopy,\n content,\n}: AlertDialogFullScreenProps) => (\n <Dialog\n aria-describedby=\"alert-dialog-description\"\n aria-labelledby=\"alert-dialog-title\"\n fullScreen={fullScreen}\n open={open || false}\n >\n <div>\n <DialogContent style={{ padding: 0 }}>{content}</DialogContent>\n {(rejectCopy || acceptCopy) && (\n <DialogActions style={{ padding: 24 }}>\n <Button onClick={handleAlertReject}>{rejectCopy || 'Reject'}</Button>\n <Button onClick={handleAlertAccept} color=\"primary\" autoFocus>\n {acceptCopy || 'Accept'}\n </Button>\n </DialogActions>\n )}\n </div>\n </Dialog>\n);\n\nexport default AlertDialogFullScreen;\n","import { Box, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n wrapper: {\n opacity: 0.7,\n },\n asset: {\n color: colors.contrast,\n height: 10,\n },\n name: {\n fontWeight: 600,\n textTransform: 'uppercase',\n maxWidth: 100,\n lineHeight: 1.2,\n },\n}));\n\ninterface IAppLabel {\n appName: string;\n}\n\nconst AppLabel = ({ appName }: IAppLabel) => {\n const { classes } = useStyles();\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 1,\n paddingRight: 2,\n }}\n >\n <div className={classes.wrapper}>\n <Typography className={classes.name} variant=\"subtitle2\">\n {appName}\n </Typography>\n </div>\n </Box>\n );\n};\n\nexport default AppLabel;\n","import { FC, useMemo, useRef } from 'react';\n\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport { Box, Button, Chip, IconButton, Typography } from '@mui/material';\n\nimport { useDynamicScroll } from '@/hooks/useDynamicScroll/useDynamicScroll';\nimport { getFlattenedFiltersLabels } from '@/utils/flattenTableFilters/flattenTableFilters';\n\nimport { LabeledValueList } from '../LabeledValueList/LabeledValueList';\nimport { HeadCell, HeaderFilters } from '../TableDesktop/TableDesktop';\n\ntype AppliedTableFiltersDisplayProps = {\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n hasAnyFiltersApplied: boolean;\n onOpenClearFiltersDialog: () => void;\n};\n\nexport const AppliedTableFiltersDisplay: FC<\n AppliedTableFiltersDisplayProps\n> = ({\n headCells,\n headerFilters,\n hasAnyFiltersApplied,\n onOpenClearFiltersDialog,\n}) => {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const appliedFiltersComponents = useMemo(\n () =>\n headCells.map(({ id, label, fieldName }) => {\n const filterValues = getFlattenedFiltersLabels(\n headerFilters[id] ?? [],\n fieldName ?? '',\n );\n\n return filterValues.length ? (\n <Chip\n key={id}\n sx={{ height: 24 }}\n label={\n <LabeledValueList values={filterValues} label={label ?? ''} />\n }\n />\n ) : null;\n }),\n [headCells],\n );\n\n const { isScrollable, scroll } = useDynamicScroll({\n scrollRef,\n effectDependencies: [appliedFiltersComponents],\n });\n\n return hasAnyFiltersApplied ? (\n <Box\n sx={{\n pt: 2,\n gap: 1,\n display: 'flex',\n alignItems: 'center',\n maxWidth: { xs: '100%', sm: 'calc(100% - 222px)' },\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Typography whiteSpace=\"nowrap\" variant=\"body2\">\n Applied Filters:\n </Typography>\n\n <Box\n sx={{\n display: 'flex',\n maxWidth: '100%',\n }}\n >\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-left\"\n sx={{ padding: 0 }}\n onClick={() => scroll('left')}\n >\n <KeyboardArrowLeft />\n </IconButton>\n )}\n\n <Box\n ref={scrollRef}\n sx={{\n gap: 1,\n display: 'flex',\n overflowX: 'auto',\n whiteSpace: 'nowrap',\n scrollBehavior: 'smooth',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {appliedFiltersComponents}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-right\"\n sx={{ padding: 0 }}\n onClick={() => scroll('right')}\n >\n <KeyboardArrowRight />\n </IconButton>\n )}\n </Box>\n\n <Button\n disableRipple\n variant=\"text\"\n type=\"button\"\n onClick={onOpenClearFiltersDialog}\n sx={{\n textWrap: 'nowrap',\n minWidth: 'min-content',\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'inherit',\n textDecoration: 'underline',\n },\n }}\n >\n Clear Filters\n </Button>\n </Box>\n ) : null;\n};\n","import { FC, ReactElement, useRef } from 'react';\n\nimport { Box, Tooltip } from '@mui/material';\n\nimport { useCheckOverflow } from '@/hooks/useCheckOverflow/useCheckOverflow';\n\nexport type DynamicOverflowTooltipProps = {\n arrow?: boolean;\n maxWidth?: number | string;\n children: ReactElement | string | number | null;\n tooltipDescription: string;\n};\n\nexport const DynamicOverflowTooltip: FC<DynamicOverflowTooltipProps> = ({\n arrow = false,\n maxWidth = 'auto',\n children,\n tooltipDescription,\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const { isOverflowed } = useCheckOverflow({\n targetRef: ref,\n effectDependencies: [children, tooltipDescription],\n });\n\n return (\n <Tooltip arrow={arrow} title={isOverflowed ? tooltipDescription : ''}>\n <Box\n ref={ref}\n sx={{\n maxWidth,\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {children}\n </Box>\n </Tooltip>\n );\n};\n","import { RefObject, useEffect, useState } from 'react';\n\ntype useCheckOverflowParams = {\n targetRef: RefObject<HTMLDivElement | null>;\n effectDependencies?: unknown[];\n};\n\nexport const useCheckOverflow = ({\n targetRef,\n effectDependencies,\n}: useCheckOverflowParams) => {\n const [isOverflowed, setIsOverflowed] = useState(false);\n\n useEffect(() => {\n const ref = targetRef.current;\n\n if (ref) {\n setIsOverflowed(ref.scrollWidth > ref.clientWidth);\n }\n }, effectDependencies);\n\n return { isOverflowed };\n};\n","import { FC } from 'react';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\n\ntype LabeledValueListProps = {\n label: string;\n values: (string | number)[];\n};\n\nexport const LabeledValueList: FC<LabeledValueListProps> = ({\n label,\n values,\n}) => {\n const valuesString = values?.join(', ');\n\n return (\n <DynamicOverflowTooltip tooltipDescription={valuesString}>\n <>\n <span style={{ color: colors.muiPrimaryBlack }}>{label}: </span>\n <span style={{ fontWeight: 'lighter' }}>{valuesString}</span>\n </>\n </DynamicOverflowTooltip>\n );\n};\n","import { FC } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport {\n Box,\n Button,\n Chip,\n Divider,\n Skeleton,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport ExtendedButton from '../Buttons/ExtendedButton/ExtendedButton';\nimport { FilterOptionsCheckboxes } from '../FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nimport { SearchFieldDebounced } from '../SearchFieldDebounced/SearchFieldDebounced';\nimport {\n HeadCell,\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type AutocompleteFilterMenuContentProps = {\n columnId: string;\n labelFieldName: string;\n selectedFilterOptions: HeaderFilterOptions;\n isLoading?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n onApplyFiltersClick: (shouldSave: boolean) => void;\n filterOptions: HeadCell['filterOptions'];\n onAutocompleteSearch: HeadCell['onAutocompleteSearch'];\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const AutocompleteFilterMenuContent: FC<\n AutocompleteFilterMenuContentProps\n> = ({\n columnId,\n labelFieldName,\n selectedFilterOptions,\n isLoading = false,\n maxWidth = 208,\n maxHeight = 500,\n onFilterOptionChange,\n onApplyFiltersClick,\n shouldShowCheckOnFilter,\n onAutocompleteSearch,\n filterOptions,\n}) => {\n const renderLoading = () => (\n <Skeleton variant=\"rounded\" height={26} sx={{ m: 1 }} />\n );\n\n const renderOptions = () =>\n filterOptions?.length ? (\n <FilterOptionsCheckboxes\n columnId={columnId}\n maxWidth={maxWidth}\n labelFieldName={labelFieldName}\n filterOptions={filterOptions}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={onFilterOptionChange}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n sx={{ p: 1, maxWidth: 260 }}\n >\n Start searching (minimum 3 characters) to view the results.\n </Typography>\n );\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <SearchFieldDebounced\n hideSearchIcon\n variant=\"standard\"\n minCharacters={3}\n sx={{ backgroundColor: colors.neutral200 }}\n onSearch={(value) => {\n onAutocompleteSearch?.(value);\n }}\n />\n\n <Box\n sx={{\n maxHeight,\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n {selectedFilterOptions.length ? (\n <>\n <Box\n sx={{\n px: 1,\n pt: 1,\n pb: 0.5,\n gap: 1,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {selectedFilterOptions?.map(\n (option: string | HeaderFilterObject) => {\n const filterId = resolveObjectType(option, 'id');\n const filterLabel = resolveObjectType(option, labelFieldName);\n\n return (\n <Box\n key={filterId}\n sx={{\n pl: 1,\n pr: 1.25,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <Box sx={{ maxWidth }}>\n <Chip\n size=\"small\"\n label={filterLabel}\n onDelete={() => onFilterOptionChange(option)}\n />\n </Box>\n\n {shouldShowCheckOnFilter?.(columnId, option) ? (\n <Tooltip title=\"This filter is saved as default\">\n <CheckIcon fontSize=\"small\" color=\"action\" />\n </Tooltip>\n ) : null}\n </Box>\n );\n },\n )}\n </Box>\n\n <Divider sx={{ my: 0.5 }} />\n </>\n ) : null}\n\n <Box sx={{ p: 1 }}>{isLoading ? renderLoading() : renderOptions()}</Box>\n </Box>\n\n <Divider />\n\n <Box\n sx={{\n px: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n onClick={() => onApplyFiltersClick(false)}\n sx={{\n px: 1,\n minWidth: 'min-content',\n }}\n >\n APPLY\n </Button>\n\n <ExtendedButton\n copy=\"SAVE AS DEFAULT\"\n color=\"primary\"\n buttonType=\"submit\"\n onClick={() => onApplyFiltersClick(true)}\n tooltip=\"Persists those filters for future visits\"\n />\n </Box>\n </Box>\n );\n};\n","export const resolveObjectType = <T extends Record<string, any>>(\n object: string | number | T,\n fieldName: keyof T,\n): string | number | T[keyof T] => {\n if (!object || typeof object !== 'object') {\n return object;\n }\n return object[fieldName] ?? '';\n};\n","import { memo } from 'react';\nimport * as React from 'react';\n\nimport {\n Add,\n ChildCare,\n CloudUpload,\n Delete,\n Edit,\n ImportExport,\n Notes,\n Print,\n Save,\n Refresh,\n GetApp,\n Publish,\n Apps as AppsIcon,\n} from '@mui/icons-material';\nimport { Box, Button, Tooltip } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport SvgIconCompare from '@/components/icons/IconCompare';\nimport { colors, isDarkModeEnabled } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n default: {\n boxShadow: 'none',\n borderRadius: 25,\n border: `1px solid ${colors.neutral400}`,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n },\n noOutline: {\n boxShadow: 'none',\n borderRadius: 25,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n },\n primary: {\n boxShadow: 'none',\n color: isDarkModeEnabled ? 'black' : 'white',\n background: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n '&:hover': {\n background: theme.palette.primary.dark,\n },\n '&:disabled': {\n background: colors.blackOpacity50,\n },\n },\n icon: {\n marginRight: 8,\n color: colors.muiPrimary,\n },\n copy: {\n display: 'flex',\n flexDirection: 'column',\n lineHeight: 'initial',\n textTransform: 'uppercase',\n whiteSpace: 'nowrap',\n '& span': {\n fontSize: '.750rem',\n fontWeight: 200,\n },\n },\n}));\n\ninterface IExtendedButton {\n buttonType?: 'button' | 'submit';\n className?: string;\n color?:\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'warning'\n | 'default'\n | 'noOutline'\n | undefined;\n copy: string;\n disabled?: boolean;\n href?: string;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n subcopy?: string;\n tooltip?: string;\n component?: React.ElementType;\n type?:\n | 'add'\n | 'apps'\n | 'childCare'\n | 'delete'\n | 'edit'\n | 'importExport'\n | 'notes'\n | 'print'\n | 'save'\n | 'upload'\n | 'refresh'\n | 'download'\n | 'publish'\n | 'compare';\n variant?: 'contained' | 'outlined' | 'text';\n copyColor?: string;\n}\n\nconst ExtendedButton = ({\n buttonType = 'button',\n color = 'noOutline',\n disabled = false,\n href,\n tooltip = '',\n component = 'button',\n type,\n className,\n onClick,\n copy,\n subcopy,\n variant = 'outlined',\n copyColor,\n}: IExtendedButton) => {\n const { classes, cx } = useStyles();\n const icons = {\n add: Add,\n apps: AppsIcon,\n childCare: ChildCare,\n delete: Delete,\n edit: Edit,\n importExport: ImportExport,\n notes: Notes,\n print: Print,\n save: Save,\n upload: CloudUpload,\n refresh: Refresh,\n download: GetApp,\n publish: Publish,\n compare: SvgIconCompare,\n };\n\n const IconComponent = icons[type || 'add'];\n\n return (\n <Tooltip title={tooltip}>\n <Box>\n <Button\n className={cx(classes[color], className)}\n color={color === 'noOutline' ? 'default' : (color as any)}\n component={component}\n data-testid={\n copy ? `extended-button-${copy.toLowerCase()}` : 'extended-button'\n }\n disabled={disabled}\n href={href ? href : undefined}\n onClick={onClick}\n type={buttonType}\n variant={variant}\n >\n {type ? (\n <IconComponent\n fontSize=\"small\"\n className={classes.icon}\n fill={colors.muiPrimary}\n />\n ) : null}\n\n <div\n className={classes.copy}\n style={{ color: copyColor || 'inherit' }}\n >\n {copy}\n <span>{subcopy}</span>\n </div>\n </Button>\n </Box>\n </Tooltip>\n );\n};\n\nexport default memo(ExtendedButton);\n","import { SVGProps } from 'react';\n\nconst SvgIconCompare = (props: SVGProps<SVGSVGElement>) => {\n const { fill } = props;\n\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M9.75 17.25H8.25V0.75H9.75V17.25ZM6.75 14.25H3.75V3.75H6.75V2.25H3.75C2.9175 2.25 2.25 2.9175 2.25 3.75V14.25C2.25 15.0825 2.925 15.75 3.75 15.75H6.75V14.25ZM14.25 5.25V6.75H15.75V5.25H14.25ZM14.25 3.75H15.75C15.75 2.9175 15.075 2.25 14.25 2.25V3.75ZM15.75 11.25H14.25V12.75H15.75V11.25ZM14.25 8.25V9.75H15.75V8.25H14.25ZM12.75 2.25H11.25V3.75H12.75V2.25ZM14.25 15.75C15.0825 15.75 15.75 15.0825 15.75 14.25H14.25V15.75ZM12.75 14.25H11.25V15.75H12.75V14.25Z\"\n fill={fill ?? '#1976D2'}\n />\n </svg>\n );\n};\n\nexport default SvgIconCompare;\n","import { FC } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport { Box, Checkbox, Tooltip } from '@mui/material';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type FilterOptionsCheckboxesProps = {\n columnId: string;\n labelFieldName: string;\n maxWidth?: number;\n filterOptions: HeaderFilterOptions;\n selectedFilterOptions: HeaderFilterOptions;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const FilterOptionsCheckboxes: FC<FilterOptionsCheckboxesProps> = ({\n columnId,\n labelFieldName,\n maxWidth = 200,\n filterOptions,\n selectedFilterOptions,\n onFilterOptionChange,\n shouldShowCheckOnFilter,\n}) => {\n const isOptionChecked = (filterId: string | number) =>\n selectedFilterOptions.some(\n (value: string | HeaderFilterObject) =>\n resolveObjectType(value, 'id') === filterId,\n ) ?? false;\n\n return filterOptions?.map((option: string | HeaderFilterObject) => {\n const filterId = resolveObjectType(option, 'id');\n const filterLabel = resolveObjectType(option, labelFieldName);\n\n return (\n <Box\n key={filterId}\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n }}\n >\n <Checkbox\n disableRipple\n onChange={() => onFilterOptionChange(option)}\n checked={isOptionChecked(filterId)}\n />\n\n <Box\n sx={{\n maxWidth,\n gap: 2,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <DynamicOverflowTooltip\n tooltipDescription={String(filterLabel)}\n arrow\n >\n {filterLabel}\n </DynamicOverflowTooltip>\n\n {shouldShowCheckOnFilter?.(columnId, option) ? (\n <Tooltip title=\"This filter is saved as default\">\n <CheckIcon fontSize=\"small\" color=\"action\" />\n </Tooltip>\n ) : null}\n </Box>\n </Box>\n );\n });\n};\n","import React, { useState, useRef, useEffect } from 'react';\n\nimport Search from '@mui/icons-material/Search';\nimport { TextField, InputAdornment, Box, SxProps, Theme } from '@mui/material';\n\nexport type SearchFieldDebouncedProps = {\n onSearch?: (value: string) => void;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n variant?: 'outlined' | 'filled' | 'standard';\n hideSearchIcon?: boolean;\n initialValue?: string;\n debounceDelay?: number;\n minCharacters?: number;\n sx?: SxProps<Theme>;\n width?: number;\n inputProps?: {\n sx: SxProps<Theme>;\n };\n};\n\nexport const SearchFieldDebounced: React.FC<SearchFieldDebouncedProps> = ({\n onSearch,\n value: controlledValue,\n onChange: onChangeControlled,\n onKeyDown,\n variant = 'outlined',\n hideSearchIcon = false,\n initialValue = '',\n debounceDelay = 500,\n minCharacters = 0,\n sx,\n width = 285,\n inputProps,\n}) => {\n const [internalValue, setInternalValue] = useState(initialValue);\n const debounceRef = useRef<number | null>(null);\n\n const inputSx = inputProps?.sx;\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const executeSearch = (inputValue: string) => {\n const trimmedInput = inputValue.trim();\n\n if (trimmedInput.length > 0 && trimmedInput.length < minCharacters) {\n return;\n }\n\n onSearch?.(trimmedInput);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target.value;\n\n if (!isControlled) {\n setInternalValue(input);\n }\n\n onChangeControlled?.(e);\n\n if (debounceRef.current) {\n clearTimeout(debounceRef.current);\n }\n\n debounceRef.current = window.setTimeout(() => {\n executeSearch(input);\n }, debounceDelay);\n };\n\n useEffect(() => {\n return () => {\n if (!debounceRef.current) {\n return;\n }\n clearTimeout(debounceRef.current);\n };\n }, []);\n\n return (\n <Box sx={{ width }}>\n <TextField\n fullWidth\n variant={variant}\n placeholder=\"Search\"\n value={value}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n sx={sx}\n slotProps={{\n input: {\n sx: {\n maxHeight: 5,\n px: 2,\n py: 2.5,\n ...inputSx,\n },\n startAdornment: !hideSearchIcon ? (\n <InputAdornment position=\"start\">\n <Search fontSize=\"small\" />\n </InputAdornment>\n ) : null,\n },\n }}\n />\n </Box>\n );\n};\n","import * as React from 'react';\nimport { useNavigate } from 'react-router';\n\nimport KeyboardBackspace from '@mui/icons-material/KeyboardBackspace';\nimport { Box, Button, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3),\n borderBottom: `1px solid ${colors.neutral400}`,\n backgroundColor: colors.neutral100,\n },\n icon: {\n color: colors.muiPrimary,\n },\n button: {\n padding: 0,\n '&:hover': {\n background: 'inherit',\n },\n },\n text: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n textTransform: 'none',\n },\n}));\n\ninterface BackHeaderProps {\n appName: string;\n onGoBackClick?: () => void;\n sideComponent?: React.ReactElement;\n}\n\nconst BackHeader: React.FC<BackHeaderProps> = ({\n appName,\n onGoBackClick,\n sideComponent = null,\n}) => {\n const { classes } = useStyles();\n const navigate = useNavigate();\n\n const handleBackClick = () => {\n if (onGoBackClick) {\n return onGoBackClick();\n }\n\n return navigate(-1);\n };\n\n return (\n <Box component=\"header\" className={classes.header}>\n <Button className={classes.button} onClick={handleBackClick}>\n <Box component=\"span\" className={classes.text}>\n <KeyboardBackspace className={classes.icon} />\n <Typography variant=\"body1\" color=\"textPrimary\">\n {appName}\n </Typography>\n </Box>\n </Button>\n\n {sideComponent}\n </Box>\n );\n};\n\nexport default BackHeader;\n","import * as React from 'react';\n\nimport { Box, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n footer: {\n backgroundColor: colors.neutral100,\n borderRadius: theme.spacing(0, 0, 0.5, 0.5),\n borderTop: `1px solid ${colors.neutral250}`,\n padding: theme.spacing(2),\n },\n insideWrapper: {\n height: '100%',\n },\n button: {\n margin: 0,\n },\n}));\n\ninterface BottomBarProps {\n className?: string;\n children?: React.ReactNode;\n isLoading?: boolean;\n onRefreshClick?: (() => void) | null;\n}\n\nconst BottomBar = ({\n className = '',\n children = null,\n isLoading = false,\n onRefreshClick = null,\n}: BottomBarProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Paper className={cx(classes.footer, className)} elevation={1}>\n <Box\n className={classes.insideWrapper}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n {onRefreshClick && (\n <ExtendedButton\n className={classes.button}\n copy=\"Refresh\"\n disabled={isLoading}\n onClick={onRefreshClick}\n type=\"refresh\"\n variant=\"outlined\"\n />\n )}\n {children}\n </Box>\n </Paper>\n );\n};\n\nexport default BottomBar;\n","import { memo } from 'react';\n\nimport { Grid, Typography, ButtonBase } from '@mui/material';\nimport { green, orange, red } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n boxTab: {\n minWidth: 130,\n width: '100%',\n textAlign: 'start',\n alignItems: 'normal',\n flexDirection: 'column',\n padding: theme.spacing(1),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(1.5),\n backgroundColor: colors.neutral100,\n borderRadius: theme.spacing(0.5),\n boxShadow: `0px 3px 1px -2px ${colors.blackOpacity20}, 0px 2px 2px 0px ${colors.blackOpacity10}, 0px 1px 5px 0px ${colors.blackOpacity10}`,\n '& .MuiGrid-container': {\n marginTop: theme.spacing(0.5),\n },\n },\n none: {},\n main: {\n borderColor: theme.palette.primary.main,\n borderWidth: 3,\n borderStyle: 'solid',\n },\n green: {\n borderColor: green['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n red: {\n borderColor: red['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n orange: {\n borderColor: orange['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n c_box_button__extra: {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n}));\n\ninterface BoxButtonProps {\n label?: any;\n onClick?: any;\n main?: any;\n extra?: any;\n borderColor?: any;\n}\n\nconst BoxButton = (props: BoxButtonProps) => {\n const { classes } = useStyles();\n\n const { label, onClick, main, extra, borderColor } = props;\n\n return (\n <ButtonBase\n component=\"button\"\n className={[classes.boxTab, classes[borderColor]].join(' ')}\n onClick={onClick}\n >\n <Typography variant=\"button\">{label}</Typography>\n <Grid\n container\n direction=\"row\"\n sx={{\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Grid size={9}>{main}</Grid>\n <Grid className={classes.c_box_button__extra} size={3}>\n {extra}\n </Grid>\n </Grid>\n </ButtonBase>\n );\n};\n\nexport default memo(BoxButton);\n","import React, { memo } from 'react';\n\nimport { CircularProgress, Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n button: {\n background: colors.default,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n margin: theme.spacing(1),\n borderRadius: 25,\n '&:disabled': {\n color: colors.neutral100,\n opacity: '0.32',\n },\n },\n primary: {\n color: colors.neutral100,\n background: colors.muiPrimary,\n '&:disabled': {\n color: colors.neutral100,\n opacity: '0.32',\n },\n },\n secondary: {\n color: theme.palette.primary.light,\n background: `linear-gradient(45deg, ${theme.palette.secondary.main}, ${theme.palette.secondary.dark})`,\n '&:hover': {\n background: `linear-gradient(45deg, ${theme.palette.secondary.main} 40%, ${theme.palette.secondary.dark})`,\n },\n },\n success: {\n color: colors.neutral100,\n background: theme.palette.success.main,\n '&:hover': {\n background: theme.palette.success.main,\n },\n },\n disabled: {\n color: colors.neutral100,\n background: '#A8A8A8',\n '&:disabled': {\n opacity: '1',\n },\n },\n default: {\n background: colors.neutral100,\n color: theme.palette.common.black,\n '&:disabled': {\n opacity: '1',\n },\n },\n loading: {\n paddingRight: theme.spacing(1.5),\n },\n loadingText: {\n marginLeft: theme.spacing(1),\n },\n}));\n\ninterface IFilledButton {\n autoFocus?: boolean;\n className?: string;\n color?:\n | 'default'\n | 'error'\n | 'info'\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning';\n copy: string;\n isLoading?: boolean;\n disabled?: boolean;\n href?: string;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n type?: 'button' | 'submit';\n variant?: 'contained' | 'outlined' | 'text';\n}\n\nconst FilledButton = ({\n autoFocus = false,\n className,\n color = 'primary',\n copy,\n disabled = false,\n href,\n isLoading = false,\n onClick,\n type = 'button',\n variant = 'contained',\n}: IFilledButton) => {\n const { classes, cx } = useStyles();\n\n return (\n <Button\n autoFocus={autoFocus}\n className={cx(classes.button, className, classes[color], {\n [classes.loading]: isLoading,\n })}\n disabled={disabled || isLoading}\n focusRipple={autoFocus}\n href={href || undefined}\n onClick={onClick}\n type={type}\n variant={variant}\n >\n {copy}\n {isLoading && (\n <CircularProgress\n className={classes.loadingText}\n color=\"inherit\"\n size={18}\n />\n )}\n </Button>\n );\n};\n\nexport default memo(FilledButton);\n","import { memo } from 'react';\n\nimport { Box, CircularProgress, Button } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface FilledButtonLgProps {\n classes?: any;\n disabled?: any;\n variant?: string;\n color?: string;\n copy?: any;\n handleClick?: any;\n loading?: boolean;\n loadingProps?: {\n color?: 'primary' | 'secondary' | 'inherit';\n size?: number;\n style?: string;\n };\n}\n\nconst FilledButtonLg = ({\n classes,\n disabled,\n variant,\n color,\n copy,\n handleClick,\n loading = false,\n loadingProps,\n}: FilledButtonLgProps) => (\n <Button\n variant={variant as any}\n className={classes[color as any]}\n onClick={handleClick}\n disabled={disabled || loading}\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {copy}\n {loading && (\n <CircularProgress\n color={loadingProps?.color || 'inherit'}\n size={loadingProps?.size || 22}\n style={{ marginLeft: '15px', ...(loadingProps?.style as any) }}\n />\n )}\n </Box>\n </Button>\n);\n\nconst ActionButtonLg = withStyles(FilledButtonLg, (theme) => ({\n default: {\n backgroundColor: colors.default,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n // boxShadow: `0px 3px 1px -2px ${colors.blackOpacity20}, 0px 2px 2px 0px ${colors.blackOpacity10}, 0px 1px 5px 0px ${colors.blackOpacity10}`,\n // '&:hover': {\n // background: `linear-gradient(45deg, ${colors.whiteOpacity10} 40%, ${colors.whiteOpacity20})`,\n // },\n },\n primary: {\n color: colors.neutral100,\n background: colors.muiPrimary,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n '&:hover': {\n background: colors.muiPrimaryHover,\n },\n '&:disabled': {\n color: 'white',\n opacity: '0.32',\n },\n },\n secondary: {\n color: theme.palette.primary.light,\n background: `linear-gradient(45deg, ${theme.palette.secondary.main}, ${theme.palette.secondary.dark})`,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n '&:hover': {\n background: `linear-gradient(45deg, ${theme.palette.secondary.main} 40%, ${theme.palette.secondary.dark})`,\n },\n '&:disabled': {\n color: 'white',\n opacity: '0.32',\n },\n },\n}));\n\nexport default memo(ActionButtonLg);\n","import { memo } from 'react';\n\nimport { Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n image: {\n position: 'relative',\n height: 50,\n },\n imageSrc: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundSize: 'cover',\n backgroundPosition: 'center 40%',\n height: 50,\n width: 50,\n },\n}));\n\ninterface ImageButtonProps {\n src?: any;\n onClick?: any;\n value?: any;\n}\n\nconst ImageButton = (props: ImageButtonProps) => {\n const { src, onClick, value } = props;\n const { classes } = useStyles();\n\n const handleClick = () => {\n const e = { target: { value } };\n onClick(e);\n };\n\n return (\n <Button onClick={handleClick} className={classes.image}>\n <img className={classes.imageSrc} src={src} alt=\"a_image\" />\n </Button>\n );\n};\n\nexport default memo(ImageButton);\n","import Add from '@mui/icons-material/Add';\nimport ChevronRight from '@mui/icons-material/ChevronRight';\nimport { Typography, Button } from '@mui/material';\nimport { colors } from 'resources/styles/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n add: {\n backgroundColor: colors.neutral100,\n },\n default: {\n width: 88,\n height: 88,\n padding: theme.spacing(1.5),\n },\n forward: {},\n hasContentLeftSide: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n icon: {\n color: 'rgba(7, 129, 206, 1)',\n },\n text: {\n fontWeight: 700,\n },\n textWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n },\n}));\n\ninterface SquareButtonProps {\n children: any;\n disabled?: any;\n hasContentLeftSide?: any;\n onClick: any;\n type: any;\n}\n\nconst SquareButton = ({\n children,\n disabled = false,\n hasContentLeftSide = false,\n onClick,\n type,\n}: SquareButtonProps) => {\n const { classes, cx } = useStyles();\n\n const icon = {\n add: <Add className={classes.icon} />,\n forward: <ChevronRight className={classes.icon} />,\n };\n\n return (\n <Button\n className={cx(\n classes.default,\n classes[type],\n hasContentLeftSide && classes.hasContentLeftSide,\n )}\n disabled={disabled}\n disableElevation={hasContentLeftSide}\n onClick={onClick}\n variant=\"contained\"\n >\n <span className={classes.textWrapper}>\n {icon[type]}\n <Typography className={classes.text} variant=\"button\">\n {children}\n </Typography>\n </span>\n </Button>\n );\n};\n\nexport default SquareButton;\n","import { useRef, useState, forwardRef } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\n\ninterface UploadButtonProps {\n name?: string;\n onChange?(...args: any[]): any;\n onBlur?(...args: any[]): any;\n}\n\nconst UploadButton = forwardRef<HTMLElement, UploadButtonProps>(\n (props, ref) => {\n const [file, setFile] = useState<File | undefined>();\n const sharedRef = useRef<any>(null);\n\n const handleFileInput = (e) => {\n const fileItem = e.target.files[0];\n setFile(fileItem);\n props.onChange?.(e);\n };\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <input\n {...props}\n type=\"file\"\n ref={(e) => {\n (ref as any)(e);\n sharedRef.current = e;\n }}\n onChange={handleFileInput}\n style={{ display: 'none' }}\n />\n <ExtendedButton\n buttonType=\"button\"\n variant=\"outlined\"\n color=\"default\"\n type=\"upload\"\n copy={file?.name ?? 'Upload Document'}\n onClick={() => {\n sharedRef?.current?.click();\n }}\n />\n </Box>\n );\n },\n);\n\nexport default UploadButton;\n","import React, { memo } from 'react';\n\nimport { Button, CircularProgress } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n default: {\n boxShadow: 'none',\n borderRadius: 25,\n border: `1px solid ${colors.neutral400}`,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 500,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.common.black,\n '&:hover': {\n background:\n theme.palette.mode === 'dark'\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.08)',\n },\n },\n primary: {\n color: colors.muiPrimary,\n boxShadow: 'none',\n border: `1px solid ${colors.muiPrimary}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 600,\n '&:hover': {\n background: colors.primaryOpacity30,\n },\n },\n secondary: {\n color: colors.muiSecondaryAlternate,\n boxShadow: 'none',\n border: `1px solid ${colors.muiSecondaryAlternate}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 600,\n '&:hover': {\n background: colors.secondaryAlternateOpacity30,\n },\n },\n copy: {\n display: 'flex',\n flexDirection: 'column',\n lineHeight: 'initial',\n '& span': {\n fontSize: '.750rem',\n fontWeight: 200,\n textTransform: 'capitalize',\n },\n },\n loading: {\n paddingRight: theme.spacing(1.5),\n },\n loadingCopy: {\n flexDirection: 'row',\n },\n loadingIcon: {\n marginLeft: theme.spacing(1),\n },\n}));\n\ninterface OutlinedButtonProps {\n className?: any;\n color?: any;\n copy: any;\n disabled?: any;\n href?: any;\n isLoading?: any;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n startIcon?: any;\n style?: any;\n subcopy?: any;\n type?: any;\n}\n\nconst OutlinedButton = ({\n className,\n color,\n copy,\n disabled,\n href,\n isLoading,\n onClick,\n startIcon,\n style,\n subcopy,\n type = 'button',\n}: OutlinedButtonProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Button\n className={cx(color ? classes[color] : classes.default, className, {\n [classes.loading]: isLoading,\n })}\n disabled={disabled || isLoading}\n href={href || undefined}\n onClick={onClick}\n startIcon={startIcon}\n style={style}\n type={type}\n variant=\"outlined\"\n >\n <div\n className={cx(classes.copy, {\n [classes.loadingCopy]: isLoading,\n })}\n >\n {copy}\n {subcopy && <span>{subcopy}</span>}\n {isLoading && (\n <CircularProgress\n className={classes.loadingIcon}\n color=\"primary\"\n size={18}\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default memo(OutlinedButton);\n","import { memo } from 'react';\n\nimport { Button } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\ninterface AButtonProps {\n classes?: any;\n variant?: string;\n color?: string;\n copy?: any;\n}\n\nconst AButton = ({ classes, variant, color, copy }: AButtonProps) => (\n <Button variant={variant as any} className={classes[color as any]}>\n {copy}\n </Button>\n);\n\nconst FilterButtonLg = withStyles(AButton, (theme) => ({\n default: {\n boxShadow: 'none',\n color: '#555',\n backgroundColor: '#fff',\n borderRadius: 25,\n border: '1px solid #cecece',\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n primary: {\n boxShadow: 'none',\n color: theme.palette.primary.main,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 25,\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '&:hover': {\n background: 'rgba(7, 129, 206, .24)',\n },\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n secondary: {\n boxShadow: 'none',\n color: theme.palette.secondary.dark,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.secondary.dark}`,\n borderRadius: 25,\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '&:hover': {\n background: 'rgba(236, 97, 60, .24)',\n },\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n}));\n\nexport default memo(FilterButtonLg);\n","import React from 'react';\n\nimport {\n Add,\n Apps,\n ArrowBack,\n ArrowForward,\n BackspaceOutlined,\n Block,\n CallSplit,\n ChevronRight,\n Close,\n Comment,\n Done,\n Delete,\n Edit,\n Email,\n GroupAdd,\n History,\n KeyboardArrowUp,\n KeyboardArrowDown,\n Menu,\n MoreHoriz,\n PlayArrowRounded,\n Refresh,\n Remove,\n Search,\n Send,\n ThumbDown,\n ThumbUp,\n Undo,\n SwapHoriz,\n} from '@mui/icons-material';\nimport { Fab, Tooltip } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport customIcons from '@/components/icons';\nimport IconAirplane from '@/components/icons/IconAirplane';\nimport IconAvocado from '@/components/icons/IconAvocado';\nimport IconBanana from '@/components/icons/IconBanana';\nimport SvgBicycle from '@/components/icons/IconBicycle';\nimport IconBus from '@/components/icons/IconBus';\nimport IconCar from '@/components/icons/IconCar';\nimport IconFork from '@/components/icons/IconFork';\nimport IconGrape from '@/components/icons/IconGrape';\nimport IconHeart from '@/components/icons/IconHeart';\nimport IconKnife from '@/components/icons/IconKnife';\nimport IconSpoon from '@/components/icons/IconSpoon';\nimport IconStrawberry from '@/components/icons/IconStrawberry';\nimport BulkIcon from '@/resources/icons/BulkIcon';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n base: {\n backgroundColor: 'transparent',\n zIndex: 'auto',\n },\n default: {\n border: `1px solid ${colors.roundButton.default.border}`,\n color: colors.roundButton.default.color,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n filled: {\n backgroundColor: colors.roundButton.filled.background,\n color: colors.roundButton.filled.color,\n fontWeight: 600,\n '&:hover': {\n background: colors.roundButton.filled.hover.background,\n },\n },\n active: {\n color: colors.roundButton.active.color,\n '&:hover': {\n backgroundColor: colors.roundButton.active.hover.background,\n borderColor: 'transparent',\n },\n },\n focused: {\n backgroundColor: colors.roundButton.focused.background,\n color: colors.roundButton.focused.color,\n borderColor: 'transparent',\n '&:hover': {\n backgroundColor: colors.roundButton.focused.hover.background,\n borderColor: 'transparent',\n },\n },\n constrat: {\n borderColor: colors.roundButton.contrast.border,\n color: colors.roundButton.contrast.color,\n '&:hover': {\n backgroundColor: colors.roundButton.contrast.hover.background,\n },\n },\n tableButton: {\n color: colors.roundButton.tableButton.color,\n },\n noStroke: {\n border: 'none',\n },\n defaultPrimary: {\n border: `1px solid ${colors.roundButton.focused.color}`,\n color: colors.roundButton.focused.color,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n defaultError: {\n border: `1px solid ${colors.roundButton.error}`,\n color: colors.roundButton.error,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n\n /**\n * Overrides the size schema of MUI\n */\n small: {\n maxWidth: 36,\n maxHeight: 36,\n },\n medium: {\n maxWidth: 42,\n maxHeight: 42,\n },\n large: {\n fontSize: '1rem',\n },\n double: {\n width: 125,\n maxHeight: 56,\n fontSize: '1rem',\n borderRadius: 50,\n background: colors.roundButton.filled.hover.background,\n },\n}));\n\ninterface IRoundButton {\n active?: boolean;\n children?: string;\n className?: string;\n disabled?: boolean;\n focused?: boolean;\n icon?:\n | 'add'\n | 'apps'\n | 'arrowBack'\n | 'arrowForward'\n | 'avocado'\n | 'backspaceOutlined'\n | 'banana'\n | 'block'\n | 'bulk'\n | 'callSplit'\n | 'chevronRight'\n | 'chevronUp'\n | 'chevronDown'\n | 'close'\n | 'delete'\n | 'done'\n | 'edit'\n | 'email'\n | 'grape'\n | 'groupAdd'\n | 'history'\n | 'menu'\n | 'notes'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'send'\n | 'strawberry'\n | 'thumbDown'\n | 'threeDots'\n | 'thumbUp'\n | 'undo'\n | 'play'\n | 'snail'\n | 'bus'\n | 'spoon'\n | 'fork'\n | 'car'\n | 'knife'\n | 'bicycle'\n | 'heart'\n | 'airplane'\n | 'threeDots'\n | 'swapHoriz';\n iconColor?:\n | 'inherit'\n | 'disabled'\n | 'primary'\n | 'secondary'\n | 'action'\n | 'error';\n isContrast?: boolean;\n isTableButton?: boolean;\n noStrokes?: boolean;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large' | 'double';\n tooltip?: string;\n variant?:\n | 'default'\n | 'defaultPrimary'\n | 'defaultError'\n | 'filled'\n | 'primary'\n | 'secondary';\n testID?: string;\n}\n\n/**\n * A Rounded button component that is abstracted from MUI Fab component.\n * Can render an icon or a single character.\n * https://v4.mui.com/api/fab/#fab-api.\n */\nconst RoundButton = ({\n active = false,\n children,\n className = '',\n disabled = false,\n focused = false,\n icon = undefined,\n iconColor = 'inherit',\n isContrast = false,\n isTableButton = false,\n noStrokes = false,\n onClick,\n size = 'medium',\n tooltip = '',\n variant = 'default',\n testID,\n}: IRoundButton) => {\n const { classes, cx } = useStyles();\n\n const iconSize = size === 'small' ? 'small' : 'medium';\n\n const iconComponentMap = {\n add: <Add fontSize={iconSize} />,\n apps: <Apps fontSize={iconSize} />,\n arrowBack: <ArrowBack fontSize={iconSize} />,\n arrowForward: <ArrowForward fontSize={iconSize} />,\n avocado: <IconAvocado />,\n backspaceOutlined: <BackspaceOutlined fontSize={iconSize} />,\n banana: <IconBanana />,\n block: <Block fontSize={iconSize} />,\n bulk: <BulkIcon fill={colors.contrast} />,\n callSplit: <CallSplit fontSize={iconSize} />,\n chevronRight: <ChevronRight fontSize={iconSize} />,\n chevronUp: <KeyboardArrowUp fontSize={iconSize} />,\n chevronDown: <KeyboardArrowDown fontSize={iconSize} />,\n close: <Close fontSize={iconSize} />,\n delete: <Delete fontSize={iconSize} fill={colors.neutral800} />,\n done: <Done fontSize={iconSize} />,\n edit: <Edit fontSize={iconSize} />,\n email: <Email fontSize={iconSize} />,\n grape: <IconGrape />,\n groupAdd: <GroupAdd fontSize={iconSize} />,\n history: <History fontSize={iconSize} />,\n menu: <Menu fontSize={iconSize} />,\n threeDots: <MoreHoriz fontSize={iconSize} color={iconColor} />,\n notes: <Comment fontSize={iconSize} />,\n refresh: <Refresh fontSize={iconSize} />,\n remove: <Remove fontSize={iconSize} />,\n search: <Search fontSize={iconSize} />,\n send: <Send fontSize={iconSize} />,\n strawberry: <IconStrawberry />,\n thumbDown: <ThumbDown fontSize={iconSize} />,\n thumbUp: <ThumbUp fontSize={iconSize} />,\n undo: <Undo fontSize={iconSize} />,\n play: <PlayArrowRounded fontSize={iconSize} />,\n snail: (\n <customIcons.SvgIconSnail fontSize={iconSize} fill={colors.muiPrimary} />\n ),\n bus: <IconBus />,\n spoon: <IconSpoon />,\n fork: <IconFork />,\n car: <IconCar />,\n knife: <IconKnife />,\n bicycle: <SvgBicycle />,\n heart: <IconHeart />,\n airplane: <IconAirplane />,\n swapHoriz: <SwapHoriz fontSize={iconSize} />,\n };\n const filteredSize = size === 'double' ? undefined : size;\n\n const handleClick = (e) => {\n if (onClick) {\n onClick(e);\n }\n };\n\n const Button = (\n <Fab\n className={cx(\n classes.base,\n classes[variant],\n classes[size],\n {\n [classes.active]: active,\n [classes.constrat]: isContrast,\n [classes.focused]: focused,\n [classes.noStroke]: noStrokes,\n [classes.tableButton]: isTableButton,\n },\n className,\n )}\n disabled={disabled}\n onClick={handleClick}\n size={filteredSize}\n variant=\"circular\"\n data-testid={testID}\n >\n {icon ? iconComponentMap[icon] : children || ''}\n </Fab>\n );\n\n return tooltip ? <Tooltip title={tooltip}>{Button}</Tooltip> : Button;\n};\n\nexport default RoundButton;\n","const SvgBallsLogo = (props) => (\n <svg viewBox=\"0 0 1024 305.8\" {...props} fill=\"currentColor\">\n <path d=\"M586.9,152.3c0,82.2-66,148.1-148.1,148.1s-148.1-66-148.1-148.1S356.6,4.2,438.8,4.2C520.9,2.9,586.9,70.2,586.9,152.3\" />\n <path d=\"M5.6,4.2c80.9,0,146.9,66,146.9,146.9S86.5,297.9,5.6,297.9C5.6,297.9,5.6,4.2,5.6,4.2z\" />\n <path d=\"M1018.9,152.3c0-82.2-66-148.1-148.1-148.1s-148.1,66-148.1,148.1s66,148.1,148.1,148.1L1018.9,152.3z\" />\n </svg>\n);\n\nexport default SvgBallsLogo;\n","const SvgEmptyGlassIcon = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"140\"\n height=\"140\"\n viewBox=\"0 0 140 140\"\n fill=\"none\"\n {...props}\n >\n <g id=\"Frame\" clipPath=\"url(#clip0_454_24067)\">\n <g id=\"Clip path group\">\n <mask\n id=\"mask0_454_24067\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"140\"\n height=\"140\"\n >\n <g id=\"__lottie_element_11\">\n <path id=\"Vector\" d=\"M140 0H0V140H140V0Z\" fill=\"white\" />\n </g>\n </mask>\n <g mask=\"url(#mask0_454_24067)\">\n <g id=\"Group\">\n <g id=\"Clip path group_2\">\n <mask\n id=\"mask1_454_24067\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"140\"\n height=\"140\"\n >\n <g id=\"__lottie_element_13\">\n <path id=\"Vector_2\" d=\"M0 0H140V140H0V0Z\" fill=\"white\" />\n </g>\n </mask>\n <g mask=\"url(#mask1_454_24067)\">\n <g id=\"Group_2\">\n <g id=\"Group_3\">\n <g id=\"Group_4\">\n <path\n id=\"Vector_3\"\n d=\"M18.3421 33.0791C16.7957 33.0791 15.5421 34.3327 15.5421 35.8791C15.5421 37.4255 16.7957 38.6791 18.3421 38.6791C19.8886 38.6791 21.1421 37.4255 21.1421 35.8791C21.1421 34.3327 19.8886 33.0791 18.3421 33.0791Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_5\">\n <path\n id=\"Vector_4\"\n d=\"M108.08 14C107.307 14 106.68 14.6269 106.68 15.4C106.68 16.1731 107.307 16.8 108.08 16.8C108.853 16.8 109.48 16.1731 109.48 15.4C109.48 14.6269 108.853 14 108.08 14Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_6\">\n <path\n id=\"Vector_5\"\n d=\"M70.28 15.3994C41.6715 15.3994 18.48 38.591 18.48 67.1994C18.48 95.8079 41.6715 118.999 70.28 118.999C98.8884 118.999 122.08 95.8079 122.08 67.1994C122.08 38.591 98.8884 15.3994 70.28 15.3994Z\"\n fill=\"#F1F1F2\"\n />\n </g>\n <g id=\"Group_7\">\n <path\n id=\"Vector_6\"\n d=\"M116.48 12.9854C113.6 12.9854 111.266 15.3199 111.266 18.1999C111.266 21.0798 113.6 23.4144 116.48 23.4144C119.36 23.4144 121.695 21.0798 121.695 18.1999C121.695 15.3199 119.36 12.9854 116.48 12.9854Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_8\">\n <path\n id=\"Vector_7\"\n d=\"M122.927 31.1133C121.381 31.1133 120.127 32.3668 120.127 33.9133C120.127 35.4597 121.381 36.7133 122.927 36.7133C124.473 36.7133 125.727 35.4597 125.727 33.9133C125.727 32.3668 124.473 31.1133 122.927 31.1133Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_9\">\n <path\n id=\"Vector_8\"\n d=\"M110.403 100.27C108.964 100.27 107.796 101.438 107.796 102.877C107.796 104.317 108.964 105.485 110.403 105.485C111.843 105.485 113.011 104.317 113.011 102.877C113.011 101.438 111.843 100.27 110.403 100.27ZM24.3639 80.7158C21.4839 80.7158 19.1494 83.0504 19.1494 85.9303C19.1494 88.8103 21.4839 91.1448 24.3639 91.1448C27.2439 91.1448 29.5784 88.8103 29.5784 85.9303C29.5784 83.0504 27.2439 80.7158 24.3639 80.7158Z\"\n fill=\"#F6D977\"\n />\n </g>\n <g id=\"Group_10\" opacity=\"0.655813\">\n <path\n id=\"Vector_9\"\n d=\"M35.28 116.2C33.7335 116.2 32.48 117.454 32.48 119C32.48 120.546 33.7335 121.8 35.28 121.8C36.8264 121.8 38.08 120.546 38.08 119C38.08 117.454 36.8264 116.2 35.28 116.2Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_11\">\n <path\n id=\"Vector_10\"\n d=\"M26.18 68.5996C24.2472 68.5996 22.68 70.1668 22.68 72.0996C22.68 74.0324 24.2472 75.5996 26.18 75.5996C28.1128 75.5996 29.68 74.0324 29.68 72.0996C29.68 70.1668 28.1128 68.5996 26.18 68.5996Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n <g id=\"Group_12\">\n <path\n id=\"Vector_11\"\n d=\"M32.6867 90.4473C31.9136 90.4473 31.2867 91.0739 31.2867 91.8473C31.2867 92.6206 31.9136 93.2473 32.6867 93.2473C33.4598 93.2473 34.0867 92.6206 34.0867 91.8473C34.0867 91.0739 33.4598 90.4473 32.6867 90.4473Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_13\">\n <path\n id=\"Vector_12\"\n d=\"M112.28 43.3994C111.507 43.3994 110.88 44.0263 110.88 44.7994C110.88 45.5725 111.507 46.1994 112.28 46.1994C113.053 46.1994 113.68 45.5725 113.68 44.7994C113.68 44.0263 113.053 43.3994 112.28 43.3994Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n <g id=\"Group_14\">\n <g id=\"Group_15\">\n <path\n id=\"Vector_13\"\n d=\"M109.38 118.149C108.369 121.418 104.765 123.318 101.497 122.307C99.7765 121.774 98.4414 120.607 97.6098 119.03L84.8399 92.0818C84.365 91.1808 84.6845 90.1484 85.5855 89.6735L91.4423 86.5854C92.343 86.1103 93.3751 86.4295 93.8503 87.3308L108.819 113.264C109.704 114.668 109.86 116.601 109.38 118.149Z\"\n fill=\"#BF7F42\"\n />\n </g>\n <g id=\"Group_16\">\n <path\n id=\"Vector_14\"\n d=\"M90.7249 86.9195L86.2654 89.2707L82.7382 82.5815L87.1975 80.2295L90.7249 86.9195Z\"\n fill=\"#C2D1E0\"\n />\n </g>\n <g id=\"Group_17\">\n <path\n id=\"Vector_15\"\n d=\"M81.0593 33.0454C66.7827 28.6265 51.691 36.5844 47.272 50.861C42.8531 65.1379 50.8107 80.2296 65.0876 84.6489C79.3642 89.0676 94.4565 81.11 98.8752 66.8333C103.294 52.5564 95.3363 37.4644 81.0593 33.0454ZM66.6847 79.4882C55.3321 75.9742 48.9184 63.8113 52.4324 52.4584C55.9461 41.1055 68.1093 34.6916 79.4622 38.2056C90.8151 41.7193 97.2285 53.8833 93.7145 65.2359C90.2008 76.5888 78.0376 83.0022 66.6847 79.4882Z\"\n fill=\"#D2E0EA\"\n />\n </g>\n <g id=\"Group_18\">\n <path\n id=\"Vector_16\"\n d=\"M79.4625 38.2053C90.8624 41.7339 97.2433 53.8355 93.7148 65.2354C90.1865 76.6353 78.0843 83.0165 66.6844 79.4879C55.2845 75.9594 48.9036 63.8575 52.4321 52.4576C55.9604 41.0579 68.0626 34.6767 79.4625 38.2053Z\"\n fill=\"#8EC5EA\"\n />\n </g>\n <g id=\"Group_19\">\n <path\n id=\"Vector_17\"\n d=\"M53.6196 54.7106C57.1336 43.358 69.2971 36.9443 80.6497 40.4583C85.9823 42.1086 89.9877 45.6103 92.8137 49.8778C90.3604 44.406 85.6547 40.1223 79.4622 38.2057C68.1096 34.6917 55.9458 41.1054 52.4321 52.4583C50.5152 58.6505 51.5638 65.0068 54.5206 70.0686C52.5959 65.3262 51.969 60.0429 53.6196 54.7106Z\"\n fill=\"#70AFDE\"\n />\n </g>\n <g id=\"Group_20\">\n <path\n id=\"Vector_18\"\n d=\"M108.7 113.039L107.935 111.859C108.475 113.158 108.565 114.693 108.139 116.069C107.447 118.306 104.428 118.314 103.36 116.287L90.889 92.6353C90.1764 91.2838 88.628 90.8044 87.2767 91.5173L85.0244 92.7048L97.5443 118.633C98.2572 119.985 99.3669 121.271 100.69 121.869C102.529 122.626 104.634 122.524 106.21 121.693C107.787 120.861 109.061 119.182 109.475 117.237C109.9 115.86 109.413 114.39 108.7 113.039Z\"\n fill=\"#B5713E\"\n />\n </g>\n <g id=\"Group_21\" opacity=\"0.2\">\n <path\n id=\"Vector_19\"\n d=\"M72.9785 53.375C69.8053 53.375 67.2329 55.9474 67.2329 59.1206C67.2329 62.2938 69.8053 64.8662 72.9785 64.8662C76.1518 64.8662 78.7244 62.2938 78.7244 59.1206C78.7244 55.9474 76.1518 53.375 72.9785 53.375Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_454_24067\">\n <rect width=\"140\" height=\"140\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default SvgEmptyGlassIcon;\n","const SvgIconAccount = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-account_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-account_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-account_svg__st1\"\n d=\"M27.3 27.8c1.6 0 3.1-.6 4.2-1.7 1.2-1.2 1.7-2.5 1.7-4.2 0-1.5-.6-2.9-1.7-4.2-1.1-1.1-2.5-1.7-4.2-1.7s-3.1.6-4.2 1.7-1.7 2.5-1.7 4.2.6 3.1 1.7 4.2 2.6 1.7 4.2 1.7zm0-9.4c1 0 1.8.3 2.4.9.5.5 1 1.4 1 2.5s-.3 1.8-1 2.5-1.5 1-2.5 1-1.8-.3-2.5-1-1-1.5-1-2.5.3-1.8 1-2.5c.8-.6 1.6-.9 2.6-.9z\"\n />\n <path\n className=\"icon-account_svg__st1\"\n d=\"M37.8 33.4c-.1-.6-.2-1.1-.4-1.6-.1-.5-.4-1-.6-1.6-.3-.6-.5-.9-1-1.4-.1-.1-.2-.1-.3-.2-.3-.2-.6-.5-1.1-.6-.5-.1-1-.3-1.7-.3-.2 0-.3.1-.5.2-.1.1-.2.1-.3.2l-1 .9c-.4.2-1 .5-1.6.7-.6.2-1.3.4-1.9.4-.6 0-1.4-.1-1.9-.4-.6-.2-1.2-.5-1.6-.7l-1.1-.8c-.1-.1-.2-.1-.3-.2-.2-.1-.3-.2-.5-.2-.6 0-1.2 0-1.7.3-.5.1-.9.4-1.4.9-.1.1-.2.3-.3.4-.2.3-.4.5-.6.9-.3.5-.5 1-.6 1.5-.1.5-.3 1-.4 1.6l-.1.3c-.1.5-.2.9-.2 1.4v1.5c0 1.3.4 2.2 1.2 3.1.9.7 1.8 1.1 3 1.1h13c1.4 0 2.3-.3 3.1-1.1.8-.8 1.2-1.8 1.2-3.1.1-1.1-.4-3.1-.4-3.2zm-16.5-3.1l1.2.7c.6.4 1.3.7 2 1 .8.3 1.9.5 2.8.5.9 0 2-.2 2.8-.5.8-.3 1.5-.6 2-1l1.1-.7c.2 0 .3.1.5.1.1 0 .2.1.2.2.1.1.1.1.2.1.1.2.2.3.4.6.2.4.4.8.5 1.1.1.5.2.9.3 1.5v.1c.1.5.4 2 .4 2.6 0 .7-.2 1-.5 1.3-.2.2-.4.4-1.3.4H21c-.7 0-1.1-.2-1.4-.4-.3-.3-.4-.6-.4-1.3v-1.5c0-.2.1-.5.1-.9l.1-.3c.1-.6.2-1 .4-1.5.1-.3.3-.6.5-1.1.1-.1.2-.3.3-.5.1-.1.2-.2.2-.3l.1-.1c.1 0 .3-.1.4-.1z\"\n />\n </svg>\n);\n\nexport default SvgIconAccount;\n","const SvgIconAccounts = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-accounts_svg__st0\"\n d=\"M21.6 27.2h-2.4v8.3h2.4v-8.3zm7.1 0h-2.4v8.3h2.4v-8.3zm10.1 10.6H16.2v2.4h22.5v-2.4zm-3-10.6h-2.4v8.3h2.4v-8.3zm-8.3-8l6.2 3.3H21.3l6.2-3.3m0-2.7l-11.3 5.9v2.4h22.5v-2.4l-11.2-5.9z\"\n />\n </svg>\n);\n\nexport default SvgIconAccounts;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconAvocado = () => (\n <svg\n width=\"20\"\n height=\"24\"\n viewBox=\"0 0 20 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 14.3511C19 20.3582 14.9662 22.875 10 22.875C5.03376 22.875 1 20.3582 1 14.3511C1 8.34393 5.03376 1.125 10 1.125C14.9662 1.125 19 8.34393 19 14.3511Z\"\n stroke={colors.neutral800}\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n <path\n d=\"M10 19.125C12.8995 19.125 15.25 16.7745 15.25 13.875C15.25 10.9755 12.8995 8.625 10 8.625C7.1005 8.625 4.75 10.9755 4.75 13.875C4.75 16.7745 7.1005 19.125 10 19.125Z\"\n stroke={colors.neutral800}\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n);\n\nexport default SvgIconAvocado;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBanana = () => (\n <svg\n width=\"24\"\n height=\"22\"\n viewBox=\"0 0 24 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_0_2321)\">\n <path\n d=\"M23.0247 5.42267C22.7775 5.12356 22.4901 4.88302 22.1652 4.70103V0H18.8424V4.69592C18.6156 4.83467 18.3894 5.00524 18.1656 5.20705C17.4915 5.81607 16.9872 6.58066 16.7601 7.05064C16.4487 7.6948 15.6291 8.61014 15.3399 8.90835L15.3258 8.92337C13.0806 11.3673 9.5079 12.0928 6.9063 12.2709C4.0155 12.4691 1.6404 12.0544 1.617 12.0502L1.0053 11.9406L0 14.7755L0.1854 15.0752C0.633 15.7983 1.3155 16.438 2.2134 16.977C2.5812 17.1978 2.9691 17.3996 3.3732 17.584L3.2196 20.0912L3.4806 20.3279C4.1103 20.8991 4.9428 21.3252 5.9544 21.5949C6.9639 21.864 8.0517 22 9.1911 22C9.261 22 9.3315 21.9994 9.402 21.9985C12.8361 21.9483 16.1847 20.7919 18.831 18.7423C20.19 17.6897 21.3129 16.4416 22.1685 15.0325C23.0745 13.5403 23.6568 11.9039 23.8992 10.1681C24.0639 8.99004 24.1692 6.80679 23.0247 5.42237V5.42267ZM20.3082 1.46701H20.7V4.25027H20.3082V1.46701ZM4.203 15.2238C3.7473 14.9506 3.3876 14.6454 3.1308 14.3145L3.4125 13.5208C4.1535 13.6166 5.6514 13.7586 7.4016 13.6412C8.8503 13.5442 10.1715 13.2877 11.3289 12.8793C12.8013 12.3598 14.0127 11.5916 14.9295 10.5958C14.9484 10.5763 15.0021 10.5201 15.0792 10.4363C15.0783 10.4384 15.0771 10.4408 15.0762 10.4429C15.0687 10.4588 15.0612 10.4745 15.054 10.4898C15.0525 10.4928 15.051 10.4961 15.0495 10.4991C15.0219 10.5567 14.9958 10.6105 14.9715 10.6585C14.9709 10.6597 14.9703 10.661 14.9697 10.6622C14.9625 10.6769 14.9553 10.6907 14.9484 10.7045C14.9475 10.7063 14.9466 10.7081 14.9457 10.7102C14.9391 10.7234 14.9328 10.7357 14.9265 10.7477C14.9256 10.7492 14.925 10.7507 14.9241 10.7522C14.9103 10.779 14.8974 10.8033 14.8863 10.8243L14.8788 10.8387C14.8509 10.8946 14.8224 10.9498 14.793 11.0045C14.7834 11.0225 14.7732 11.0402 14.7633 11.0583C14.7432 11.0946 14.7234 11.1309 14.7027 11.167C14.6901 11.1886 14.6772 11.2099 14.6646 11.2312C14.646 11.2628 14.6274 11.2946 14.6082 11.3258C14.5941 11.3487 14.5797 11.3712 14.5653 11.3937C14.5467 11.4231 14.5284 11.4526 14.5095 11.4814C14.4945 11.5045 14.4786 11.5273 14.4633 11.5505C14.4444 11.5784 14.4261 11.6066 14.4069 11.6343C14.3907 11.6574 14.3742 11.6802 14.358 11.703C14.3388 11.7297 14.3199 11.7568 14.3004 11.7835C14.2836 11.8066 14.2659 11.8292 14.2488 11.8523C14.2293 11.8781 14.2098 11.9042 14.19 11.9298C14.1723 11.9526 14.154 11.9751 14.136 11.9976C14.1162 12.0229 14.0961 12.0481 14.076 12.0727C14.0574 12.0952 14.0388 12.1174 14.0199 12.14C13.9995 12.1643 13.9791 12.1889 13.9584 12.2129C13.9392 12.2352 13.9197 12.2574 13.9002 12.2793C13.8795 12.3027 13.8588 12.3265 13.8378 12.3499C13.818 12.3718 13.7976 12.3934 13.7775 12.4154C13.7562 12.4382 13.7352 12.4613 13.7136 12.4838C13.6932 12.5054 13.6722 12.5268 13.6515 12.5481C13.6299 12.5703 13.6083 12.5928 13.5864 12.6148C13.5654 12.6361 13.5441 12.6568 13.5228 12.6778C13.5009 12.6994 13.4787 12.7214 13.4565 12.7427C13.4349 12.7634 13.413 12.7841 13.3911 12.8049C13.3686 12.8259 13.3464 12.8472 13.3236 12.8679C13.3014 12.8883 13.2792 12.9085 13.2567 12.9286C13.2339 12.9493 13.2111 12.9697 13.1883 12.9901C13.1658 13.0103 13.1427 13.0301 13.1199 13.0499C13.0968 13.07 13.0737 13.0898 13.0506 13.1097C13.0275 13.1295 13.0041 13.1487 12.9807 13.1682C12.9573 13.1877 12.9339 13.207 12.9105 13.2262C12.8868 13.2454 12.8631 13.2643 12.8394 13.2835C12.8157 13.3025 12.792 13.3214 12.768 13.34C12.744 13.3589 12.7197 13.3775 12.6957 13.3959C12.6717 13.4142 12.6477 13.4328 12.6234 13.4508C12.5991 13.4691 12.5745 13.4875 12.5499 13.5055C12.5256 13.5235 12.5013 13.5412 12.477 13.5589C12.4521 13.5769 12.4272 13.595 12.4023 13.6127C12.378 13.6301 12.3534 13.6472 12.3288 13.6646C12.3036 13.6824 12.2781 13.6998 12.2526 13.7172C12.228 13.734 12.2034 13.7508 12.1785 13.7673C12.153 13.7845 12.1272 13.8016 12.1014 13.8187C12.0765 13.8352 12.0516 13.8514 12.0267 13.8676C12.0009 13.8845 11.9748 13.9013 11.9487 13.9178C11.9238 13.9337 11.8986 13.9496 11.8737 13.9652C11.8476 13.9818 11.8212 13.998 11.7948 14.0142C11.7696 14.0295 11.7444 14.0448 11.7192 14.0601C11.6925 14.0761 11.6661 14.0923 11.6394 14.1079C11.6142 14.1229 11.589 14.1376 11.5635 14.1523C11.5368 14.168 11.5098 14.1836 11.4831 14.1989C11.4579 14.2133 11.4324 14.2277 11.4069 14.2421C11.3799 14.2574 11.3529 14.2725 11.3256 14.2878C11.3001 14.3019 11.2749 14.3157 11.2494 14.3298C11.2221 14.3448 11.1948 14.3596 11.1675 14.3743C11.1423 14.3878 11.1168 14.4013 11.0916 14.4148C11.064 14.4295 11.0364 14.4439 11.0088 14.4584C10.9836 14.4716 10.9581 14.4845 10.9329 14.4974C10.9053 14.5115 10.8774 14.5259 10.8495 14.5397C10.8243 14.5526 10.7988 14.565 10.7733 14.5776C10.7454 14.5914 10.7175 14.6052 10.6896 14.6187C10.6644 14.631 10.6389 14.643 10.6137 14.6554C10.5858 14.6689 10.5576 14.6824 10.5297 14.6956C10.5045 14.7076 10.4793 14.7193 10.4541 14.731C10.4259 14.7442 10.3977 14.7572 10.3695 14.7701C10.3446 14.7815 10.3194 14.7926 10.2945 14.804C10.266 14.8169 10.2375 14.8298 10.209 14.8424C10.1841 14.8536 10.1595 14.8641 10.1346 14.8749C10.1061 14.8875 10.0773 14.8998 10.0488 14.9121C10.0239 14.9226 9.9993 14.9331 9.9747 14.9437C9.9462 14.9557 9.9174 14.968 9.8889 14.98C9.8646 14.9902 9.8403 15.0001 9.816 15.01C9.7872 15.022 9.7584 15.0337 9.7293 15.0455C9.705 15.0554 9.681 15.065 9.6567 15.0746C9.6279 15.086 9.5991 15.0977 9.5703 15.1091C9.5466 15.1184 9.5232 15.1274 9.4995 15.1364C9.4701 15.1479 9.441 15.1593 9.4116 15.1704C9.3888 15.1791 9.3663 15.1875 9.3435 15.1959C9.3138 15.207 9.2838 15.2184 9.2541 15.2295C9.2319 15.2377 9.2097 15.2458 9.1878 15.2539C9.1578 15.265 9.1275 15.2761 9.0975 15.2866C9.0765 15.2941 9.0555 15.3016 9.0345 15.3088C9.0036 15.3199 8.9727 15.3307 8.9418 15.3416C8.922 15.3485 8.9025 15.3551 8.883 15.362C8.8512 15.3731 8.8191 15.3839 8.7876 15.3947C8.7702 15.4004 8.7531 15.4061 8.736 15.4121C8.7021 15.4235 8.6682 15.435 8.6346 15.4461C8.6274 15.4485 8.6199 15.4509 8.6127 15.4533C8.4822 15.4962 8.3535 15.5368 8.2266 15.5755C8.2137 15.5794 8.2005 15.5836 8.1876 15.5875C8.1573 15.5965 8.1276 15.6055 8.0976 15.6142C8.0787 15.6199 8.0598 15.6257 8.0409 15.6311C8.0133 15.6392 7.986 15.647 7.9587 15.6548C7.938 15.6608 7.917 15.6671 7.8963 15.6728C7.8696 15.6803 7.8432 15.6878 7.8165 15.6953C7.7958 15.701 7.7748 15.7073 7.7541 15.713C7.728 15.7202 7.7025 15.7272 7.6767 15.7344C7.6557 15.7401 7.6347 15.7461 7.6137 15.7515C7.5888 15.7581 7.5639 15.7647 7.5393 15.7713C7.5183 15.777 7.497 15.7827 7.476 15.7881C7.4517 15.7944 7.4277 15.8007 7.4037 15.807C7.3827 15.8124 7.3614 15.8181 7.3407 15.8233C7.3176 15.8293 7.2948 15.835 7.2717 15.8407C7.2504 15.8461 7.2291 15.8515 7.2078 15.8566C7.1853 15.8623 7.1631 15.8677 7.1409 15.8731C7.1199 15.8782 7.0989 15.8833 7.0782 15.8884C7.0563 15.8938 7.0347 15.8989 7.0128 15.904C6.9921 15.9088 6.9714 15.9139 6.951 15.9188C6.9297 15.9239 6.9087 15.9287 6.8874 15.9335C6.8673 15.938 6.8472 15.9428 6.8274 15.9473C6.8067 15.9521 6.7863 15.9566 6.7656 15.9611C6.7458 15.9656 6.726 15.9701 6.7065 15.9743C6.6867 15.9788 6.6675 15.983 6.648 15.9872C6.6282 15.9914 6.6084 15.9959 6.5889 16.0001C6.5703 16.004 6.552 16.0079 6.5337 16.0118C6.5139 16.0161 6.4941 16.0203 6.4746 16.0245C6.4569 16.0281 6.4395 16.0317 6.4224 16.0353C6.4029 16.0392 6.3834 16.0434 6.3645 16.0473C6.3477 16.0506 6.3312 16.0539 6.3147 16.0575C6.2958 16.0614 6.2769 16.065 6.2583 16.0689C6.2421 16.0722 6.2262 16.0752 6.2106 16.0782C6.1992 16.0803 6.1881 16.0827 6.1767 16.0848C5.4552 15.8656 4.7916 15.5758 4.2021 15.222L4.203 15.2238ZM21.7242 10.2258C20.9643 15.6665 15.8076 19.8363 9.7296 19.9252C8.7369 19.9396 7.7952 19.8303 6.9309 19.5999C6.3408 19.4429 5.847 19.22 5.4582 18.936L5.5173 17.969C5.667 17.9458 5.8437 17.917 6.0429 17.8813H6.0441L6.2007 17.8524C6.2448 17.8443 6.2895 17.8356 6.3348 17.8269C7.1979 17.6608 8.3028 17.4002 9.4947 16.9987C10.2474 16.7449 11.0349 16.4353 11.8182 16.0575C14.3601 14.8319 16.1742 13.2211 17.2134 11.2679C17.247 11.2048 17.2797 11.1414 17.3115 11.0778C17.3808 10.9474 18.063 9.64561 18.2292 8.68012C18.2418 8.60624 18.2598 8.52546 18.282 8.44017C18.4971 7.61582 19.1388 6.35333 19.86 6.35333C19.9008 6.35333 19.9443 6.35453 19.9962 6.35723C20.5296 6.38366 20.9292 6.56594 21.2172 6.9146C21.7362 7.54285 21.9258 8.78042 21.7239 10.2258H21.7242Z\"\n fill={colors.neutral800}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_0_2321\">\n <rect width=\"24\" height=\"22\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default SvgIconBanana;\n","const SvgIconBuying = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-buying_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-buying_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM39 18.7c-.3-.1-.7-.1-.9-.1H21.2c-.5 0-.6-.1-.7-.4-.1-.3-.3-.6-.4-.8-.1-.2-.2-.5-.4-.8l-.1-.1c-.1-.1-.2-.3-.3-.3h-3.9v2.7h2.1c.2 0 .4 0 .5.3.5.9.9 1.9 1.4 2.8.9 1.8 1.9 3.7 2.7 5.7 0 0 .1.1.1.2s0 .2-.1.2c-.2.5-.5 1-.8 1.5-.2.3-.3.5-.5.9-.5.9-.6 2-.1 2.8.5.8 1.3 1.3 2.4 1.3h14.4V32H23.4c-.3 0-.5 0-.5-.1s.1-.3.1-.5c.3-.3.5-.7.7-1.2.2-.3.4-.4.8-.4h8.3c1.1 0 2-.5 2.6-1.7.7-1.3 1.4-2.7 2.3-4.1.6-1.1 1.3-2.3 1.9-3.5.4-.8-.1-1.5-.6-1.8zm-2.2 2.1c-.4.7-.8 1.4-1.1 2-.8 1.4-1.6 2.8-2.3 4.1-.3.5-.4.5-.6.5H24.2c0-.3-.1-.7-.3-.9-.8-2-1.8-3.8-2.7-5.7v-.1h15.6zM22.8 35.5c-1.4 0-2.6 1.2-2.6 2.6s1.2 2.6 2.6 2.6 2.6-1.2 2.6-2.6-1.2-2.6-2.6-2.6z\"\n />\n <circle className=\"icon-buying_svg__st0\" cx={34.7} cy={38.1} r={2.6} />\n </svg>\n);\n\nexport default SvgIconBuying;\n","const IconContentManagement = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props} fill=\"0000\" strokeWidth=\"0px\">\n <path\n className=\"cls-1\"\n d=\"M33,38.1c0,1.2-1.2,2.2-2.8,2.2h-11c-1.6,0-2.8-1.2-2.8-2.8v-18.3c0-1.5,1.1-2.8,2.5-2.9,1.1-.1,3.2-.1,4.4-.1h1.6v2.1h-5.2c-1.2,0-1.3.1-1.3,1.3v16.9c0,1.1.2,1.3,1.3,1.3h9.7c1.2,0,1.3,0,1.3-1.4v-5.9h2.2v2.6c0,1.7.2,3.4,0,5Z\"\n />\n <rect className=\"cls-1\" x=\"21.6\" y=\"34.1\" width=\"3.6\" height=\"5.2\" />\n <path\n className=\"cls-1\"\n d=\"M31.9,23.5c-.5,0-1-.2-1.3-.5-.3-.3-.5-.8-.5-1.3s.2-.9.5-1.3c.3-.3.8-.5,1.3-.5s1,.2,1.3.5c.3.3.5.8.5,1.3s-.2.9-.5,1.3c-.3.3-.8.5-1.3.5ZM35.8,22.2c0-.2,0-.3,0-.5s0-.3,0-.5l1.1-.8c0,0,.1-.2,0-.3l-1.1-1.8c0-.1-.2-.2-.3-.1l-1.3.5c-.3-.2-.6-.4-.9-.5l-.2-1.4c0-.1-.1-.2-.3-.2h-2.1c-.1,0-.2,0-.3.2l-.2,1.4c-.3.1-.6.3-.9.5l-1.3-.5c-.1,0-.3,0-.3.1l-1.1,1.8c0,.1,0,.3,0,.3l1.1.8c0,.2,0,.3,0,.5s0,.3,0,.5l-1.1.8c0,0-.1.2,0,.3l1.1,1.8c0,.1.2.2.3.1l1.3-.5c.3.2.6.4.9.5l.2,1.4c0,.1.1.2.3.2h2.1c.1,0,.2,0,.3-.2l.2-1.4c.3-.1.6-.3.9-.5l1.3.5c.1,0,.3,0,.3-.1l1.1-1.8c0-.1,0-.3,0-.3l-1.1-.8Z\"\n />\n </svg>\n);\n\nexport default IconContentManagement;\n","const SvgIconGoodsin = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM19.5 34.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c0-1.6-1.3-3-2.9-3zM30.4 34.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c-.1-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M19.3 28.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.3 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.1.1.2 0 .3 0m.7-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.2-.8-.7-1.2-1.4-1.2zm-15.6 9.9V19h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2V27c0-.8-.1-.9-.9-.9-.7.1-1.2.1-1.9.1z\"\n />\n </svg>\n);\n\nexport default SvgIconGoodsin;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconGrape = (props) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M21 12C20.9984 10.6744 20.4711 9.40355 19.5338 8.46621C18.5964 7.52888 17.3256 7.00158 16 6.99999C14.9141 7.00504 13.86 7.36695 13 8.02999C13 8.02099 13.005 8.01399 13.005 8.00499C12.9832 7.60549 13.0456 7.20586 13.1882 6.83205C13.3309 6.45824 13.5506 6.11862 13.833 5.83523C14.1154 5.55185 14.4543 5.33104 14.8277 5.18714C15.201 5.04325 15.6004 4.97948 16 4.99999C16.2652 4.99999 16.5196 4.89464 16.7071 4.7071C16.8946 4.51956 17 4.26521 17 3.99999C17 3.73478 16.8946 3.48042 16.7071 3.29289C16.5196 3.10535 16.2652 2.99999 16 2.99999C15.3032 2.96439 14.6071 3.08408 13.9622 3.35041C13.3173 3.61675 12.7396 4.02307 12.271 4.53999C11.8704 3.47457 11.1471 2.56079 10.2022 1.92617C9.25727 1.29156 8.1378 0.967771 6.99999 0.999994C6.73478 0.999994 6.48042 1.10535 6.29289 1.29289C6.10535 1.48042 5.99999 1.73478 5.99999 1.99999C5.99703 3.81487 6.5846 5.58144 7.67399 7.03299C6.45538 7.10841 5.30691 7.62879 4.44673 8.49528C3.58655 9.36177 3.07458 10.514 3.00807 11.7331C2.94156 12.9523 3.32514 14.1534 4.08596 15.1083C4.84677 16.0632 5.93182 16.7055 7.13499 16.913C7.04927 17.2691 7.00398 17.6337 6.99999 18C6.99557 18.7054 7.14048 19.4038 7.4252 20.0493C7.70991 20.6947 8.12799 21.2726 8.65196 21.745C9.17592 22.2174 9.79392 22.5735 10.4653 22.79C11.1367 23.0065 11.8464 23.0785 12.5476 23.0012C13.2488 22.924 13.9257 22.6992 14.5339 22.3417C15.142 21.9841 15.6676 21.502 16.0762 20.9268C16.4847 20.3517 16.7669 19.6967 16.9042 19.0047C17.0416 18.3127 17.0309 17.5995 16.873 16.912C18.0277 16.7072 19.0738 16.1031 19.8282 15.2052C20.5826 14.3073 20.9974 13.1728 21 12ZM10.882 6.85099C8.99399 6.30899 8.34299 4.40599 8.11799 3.15099C10.006 3.69099 10.657 5.59299 10.882 6.85099ZM4.99999 12C4.99999 11.2043 5.31606 10.4413 5.87867 9.87867C6.44128 9.31606 7.20434 8.99999 7.99999 8.99999C8.79564 8.99999 9.55871 9.31606 10.1213 9.87867C10.6839 10.4413 11 11.2043 11 12C11 15.975 4.99999 15.976 4.99999 12ZM12 21C11.2043 21 10.4413 20.6839 9.87867 20.1213C9.31606 19.5587 8.99999 18.7956 8.99999 18C8.9999 17.5953 9.08544 17.1952 9.25099 16.826C10.3394 16.5388 11.3007 15.8961 11.982 15C12.4994 15.0066 13.0067 15.1437 13.457 15.3985C13.9073 15.6534 14.286 16.0178 14.558 16.458C14.8368 16.911 14.9893 17.4304 14.9996 17.9622C15.01 18.494 14.8778 19.0189 14.6167 19.4824C14.3557 19.9459 13.9754 20.331 13.5152 20.5979C13.0551 20.8648 12.5319 21.0036 12 21ZM16 15H15.982C15.3229 14.1283 14.3951 13.4979 13.342 13.206C13.311 13.197 13.282 13.182 13.251 13.174C13.0854 12.8047 12.9999 12.4047 13 12C13 11.4066 13.1759 10.8266 13.5056 10.3333C13.8352 9.83994 14.3038 9.45542 14.8519 9.22835C15.4001 9.00129 16.0033 8.94188 16.5853 9.05764C17.1672 9.17339 17.7018 9.45912 18.1213 9.87867C18.5409 10.2982 18.8266 10.8328 18.9424 11.4147C19.0581 11.9967 18.9987 12.5999 18.7716 13.148C18.5446 13.6962 18.1601 14.1648 17.6667 14.4944C17.1734 14.824 16.5933 15 16 15Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconGrape;\n","const SvgIconHome = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-home_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-home_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-home_svg__st1\"\n d=\"M38 24.3l-9.1-7.6c-.4-.4-.9-.6-1.4-.6-.5 0-1 .2-1.3.5l-9.4 7.9c-.6.5-.8 1.5-.6 2.2.3.9 1.2 1.4 2 1.4h.1v9.2c0 1.9 1.5 3.4 3.4 3.4h2.8c.6 0 1.2-.5 1.2-1.2v-5.7H29v5.7c0 .6.5 1.2 1.2 1.2h3.1c1.9 0 3.4-1.5 3.4-3.4V28h.2c1.1 0 2-1 2-2 0-.7-.4-1.4-.9-1.7zm-4.7 14h-1.9v-4.9c0-1.1-.9-1.9-1.9-1.9h-4.1c-1.1 0-1.9.9-1.9 1.9v4.9h-1.7c-.6 0-1-.5-1-1v-13l6.7-5.7 6.9 5.7v13c-.1.5-.6 1-1.1 1z\"\n />\n </svg>\n);\n\nexport default SvgIconHome;\n","const SvgIconImport = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-8 -8 40 40\" {...props}>\n <path\n className=\"icon-runs_svg__st0\"\n d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6m-.5 14v3h-3v-3H8l4-4 4 4h-2.5M13 9V3.5L18.5 9H13Z\"\n />\n </svg>\n);\n\nexport default SvgIconImport;\n","const SvgIconLocation = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-location_svg__st0\"\n d=\"M36.8 25.4c-.1-2.5-1.1-4.8-2.9-6.5-1.8-1.8-4.1-2.7-6.6-2.7-5.1 0-9.2 4.2-9.2 9.3 0 1.8.5 3.5 1.6 5.1 1.6 2.6 3.4 5.3 5.5 8.5.8 1.1 1.7 1.4 2.3 1.4h.1c.6 0 1.5-.3 2.2-1.4.5-.7.9-1.4 1.4-2.2l.1-.2c1.2-1.9 2.5-3.8 3.7-5.7 1.3-1.7 1.9-3.6 1.8-5.6zm-9.4-6.6h.1c1.7 0 3.4.7 4.6 1.9 1.3 1.3 2.1 3 2.1 4.8.1 1.7-.7 3.1-1.3 4l-.1.1c-1.2 1.9-2.4 3.8-3.7 5.7-.5.8-1 1.5-1.5 2.3-.1.1-.1.2-.2.2l-.2-.2c-2.1-3.1-3.8-5.8-5.5-8.4-.8-1.1-1.1-2.4-1.1-3.7.1-3.7 3.1-6.7 6.8-6.7zm.1 21.3z\"\n />\n <path\n className=\"icon-location_svg__st0\"\n d=\"M27.6 30.2c-2.5 0-4.6-2.1-4.6-4.6 0-2.5 2.1-4.6 4.6-4.6 2.6 0 4.7 2.1 4.6 4.6l-4.6 4.6z\"\n />\n </svg>\n);\n\nexport default SvgIconLocation;\n","const SvgIconLogin = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-login_svg__st0\"\n d=\"M24.4 35.7h-4.1c-1.4 0-2.2-.9-2.2-2.2v-9.9c0-1.4.9-2.2 2.2-2.2h4.2c.6 0 1-.4 1-1v-.5c0-.8-.4-1-1-1H20c-1 0-2 .4-2.9 1.2-.8.7-1.2 1.8-1.4 2.6v11.4c0 .1 0 .2.1.3v.1c.4 1.9 2.1 3.4 3.9 3.4h4.8c.2 0 .6 0 .6-.3.1-.4.2-1 .1-1.3 0-.5-.7-.6-.8-.6z\"\n />\n <path\n className=\"icon-login_svg__st0\"\n d=\"M39.2 28.1c-.2-.2-.2-.3-.3-.4-.1-.1-.1-.2-.2-.2l-7.9-7.9c-.4-.4-1-.6-1.4-.4-.8.3-.8 1-.8 1.3v3.9h-6.1c-1.1 0-1.5.4-1.5 1.5v5.2c0 1.1.4 1.5 1.5 1.5h6.2v3.9c0 .5.3.9.8 1.1.2.1.3.1.5.1.3 0 .5-.1.8-.4l.2-.2c.9-.9 1.7-1.7 2.6-2.5 1.7-1.6 3.4-3.3 5-5 .1-.1.2-.2.3-.4l.3-.3.1-.1v-.1c0-.1 0-.3-.1-.6zm-10.2 2h-5.4v-3.2h5.3c1.2 0 2.2-1 2.2-2.2v-1.2l5.1 5.1-4.3 4.3-.6.6v-1.1c0-1.3-1-2.3-2.3-2.3z\"\n />\n </svg>\n);\n\nexport default SvgIconLogin;\n","const SvgIconNotification = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-notification_svg__st0\"\n d=\"M33 38.1c-.1 1.2-1.2 2.2-2.8 2.2h-11c-1.6 0-2.8-1.2-2.8-2.8V19.2c0-1.5 1.1-2.8 2.5-2.9 1.1-.1 3.2-.1 4.4-.1H24.9v2.1H19.7c-1.2 0-1.3.1-1.3 1.3v16.9c0 1.1.2 1.3 1.3 1.3h9.7c1.2 0 1.3-.1 1.3-1.4v-5.9h2.2v2.6c.1 1.7.2 3.4.1 5z\"\n />\n <path\n className=\"icon-notification_svg__st0\"\n d=\"M21.6 34.1h6.6v2.2h-6.6zM37.2 26.8H26.7v-.5l1.2-1.2v-3.4c0-1.9 1.2-3.5 3.1-3.9v-.4c0-.5.4-.9.9-.9.6 0 .9.4.9.9v.4c1.8.4 3.1 2 3.1 3.9v3.4l1.2 1.2.1.5z\"\n />\n </svg>\n);\n\nexport default SvgIconNotification;\n","const SvgIconOpsMetrics = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\" />\n <path d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3s2.9.9 3.7 2.4c.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM39.5 40.7H29V28.2h10.5v12.5zm-8-2.5H37v-7.5h-5.5v7.5zm-6 2.5H15v-8.5h10.5v8.5zm-8-2.5H23v-3.5h-5.5v3.5zm8-9.5H15V16.2h10.5v12.5zm-8-2.5H23v-7.5h-5.5v7.5zm22-1.5H29v-8.5h10.5v8.5zm-8-2.5H37v-3.5h-5.5v3.5z\" />\n </svg>\n);\n\nexport default SvgIconOpsMetrics;\n","const SvgIconOrders = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-orders_svg__st0\"\n d=\"M36.1 23.3l-6.6-6.6c-.2-.2-.5-.3-.8-.3h-8.8c-1.8 0-3.3 1.5-3.3 3.3v17.7c0 1.8 1.5 3.3 3.3 3.3h13.2c1.8 0 3.3-1.5 3.3-3.3V24.1c0-.3-.1-.6-.3-.8zm-1.9 14.1c0 .6-.5 1.1-1.1 1.1H19.9c-.6 0-1.1-.5-1.1-1.1V19.7c0-.6.5-1.1 1.1-1.1h8.4l6 6-.1 12.8z\"\n />\n <path\n className=\"icon-orders_svg__st0\"\n d=\"M22.1 33h8.8v2.2h-8.8zM22.1 28.6h8.8v2.2h-8.8zM26.8 25.9h6l-6-6.1z\"\n />\n </svg>\n);\n\nexport default SvgIconOrders;\n","const SvgIconPhone = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-phone_svg__st0\"\n d=\"M34 22.9c-3 0-5.5 2.5-5.5 5.5 0 1.3.5 2.6 1.3 3.5h-4.5c.8-.9 1.3-2.2 1.3-3.5 0-3-2.5-5.5-5.5-5.5s-5.5 2.5-5.5 5.5 2.5 5.5 5.5 5.5h13c3 0 5.5-2.5 5.5-5.5S37 22.9 34 22.9zm-13 9c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm13 0c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z\"\n />\n </svg>\n);\n\nexport default SvgIconPhone;\n","const SvgIconPriceList = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-price-list_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-price-list_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-price-list_svg__st1\"\n d=\"M27.3 33c2.6 0 4.8-2.1 4.8-4.7 0-2.5-2.1-4.6-4.8-4.6-2.6 0-4.8 2.1-4.8 4.7 0 1.2.5 2.3 1.4 3.2.9.9 2.1 1.4 3.4 1.4zm-2.4-4.6c0-1.3 1.1-2.3 2.4-2.3 1.3 0 2.4 1 2.4 2.2 0 1.3-1.1 2.3-2.4 2.3-.7 0-1.3-.3-1.7-.7-.5-.4-.7-1-.7-1.5z\"\n />\n <path\n className=\"icon-price-list_svg__st1\"\n d=\"M39.4 33.9l-2-1.8c.5-1.2.7-2.5.7-3.7 0-1.4-.2-2.6-.7-3.9l1.9-1.9c.4-.4.6-.9.6-1.5s-.3-1.1-.7-1.5l-3.2-3c-.8-.8-2.2-.7-2.9.1l-1.7 1.8c-.7-.3-1.3-.5-2-.6-1-.2-1.9-.2-3-.1-1 .1-2 .3-3 .7l-1.3-1.2-.1-.1-.6-.6c-.8-.7-2.1-.6-2.9.1l-3 3.1c-.4.4-.6.9-.6 1.5s.3 1.1.7 1.5l1.7 1.6c-.5 1.2-.7 2.5-.7 3.8 0 1.4.2 2.6.7 3.9l-1.8 1.8c-.4.4-.6.9-.6 1.5v.6c0 .6.2 1.2.7 1.5l3 2.8c.8.7 2.1.7 2.9-.1l1.9-1.9c1.2.5 2.6.8 4 .8s2.8-.3 4-.8l2.1 2c.4.4.9.6 1.4.6.6 0 1.1-.2 1.5-.6l3-3.1c.4-.4.6-1 .6-1.5.1-.9-.2-1.4-.6-1.8zm-22.1 1.5l2.8-2.9-.1-.2c-.7-1.4-1.1-2.7-1.1-4.2s.4-2.9 1.2-4.1l.1-.2-2.8-2.6 2.7-2.8.5.4 2.4 2.3.2-.1c1.1-.6 2.2-1 3.5-1.1.9-.1 1.6-.1 2.3.1.9.2 1.9.5 2.8 1.1l.2.1 2.7-2.8 2.9 2.7-3 2.9.1.2c.7 1.4 1.1 2.7 1.1 4.2 0 1.4-.4 2.8-1.2 4.1l-.1.2 3.1 2.8-2.7 2.8-3.1-2.9-.2.1c-1.3.8-2.7 1.2-4.3 1.2s-3-.4-4.3-1.2v-.2l-3 3-2.8-2.5v-.4z\"\n />\n </svg>\n);\n\nexport default SvgIconPriceList;\n","const SvgIconProducts = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-products_svg__st0\"\n d=\"M23.2 30.2c0-.9-.6-1.5-1.5-1.5-.8 0-1.7.8-1.7 1.5 0 1 .8 1.6 1.6 1.7h.2c.3 0 .6-.1.8-.3.4-.3.6-.8.6-1.4zM23.1 32c-.3-.1-.6 0-.8.1-.3.2-.5.6-.5 1 .1.5.3 1 1.1 1 .7 0 1.1-.4 1.1-1.1 0-.7-.6-.9-.9-1zM22.5 23.4c-1.4 0-2.5 1.1-2.5 2.5s1 2.3 2.5 2.4h.2c.6 0 1.2-.3 1.7-.8.4-.5.6-1.1.5-1.6-.2-1.5-1.1-2.5-2.4-2.5z\"\n />\n <path\n className=\"icon-products_svg__st0\"\n d=\"M38.7 10.5c-2.5-.4-4.3-.4-5.8 0-2.7.7-4.6 2.6-5.1 5.2-.1-.2-.1-.4-.2-.6l-.3-.5c-.4-.6-.7-1.2-1.2-1.8-.1-.1-.6-.3-.8-.2l-.3.1v.1c-.1.2-.1.4-.1.7 0 .3.2.5.3.6h.1c.8 1 1 1.7 1.2 2.8-.4.1-1.2.2-1.4.2-5.6.8-9.9 6.4-9.1 12.1.8 5.8 5.2 9.8 10.9 9.8.7 0 1.4-.1 2.1-.2 2.8-.5 5.3-2.2 7-4.8 1.7-2.5 2.2-5.7 1.5-8.5-1.1-4.7-4.7-7.8-9.5-8.5 0-.3-.1-.6-.2-.9h.2c.6-.1 1.2-.2 1.9-.2 1.2-.1 2.4-.2 3.4-.5 2-.5 3.5-1.3 4.4-2.5.3-.4.5-.7.7-1.1.1-.3.3-.5.5-.8l.2-.3-.4-.2zM35.4 26c.5 2.3.1 4.7-1.2 6.8-1.3 2-3.2 3.3-5.4 3.8-.6.1-1.2.2-1.7.2-4.5 0-8-3.1-8.6-7.8-.6-4.4 2.7-8.8 7-9.5.6 0 1.2-.2 1.6-.3.2.1.3.1.5.2h.3c3.7.4 6.5 2.8 7.5 6.6zm-8.5-8.9z\"\n />\n </svg>\n);\n\nexport default SvgIconProducts;\n","const SvgIconPromoCode = (props) => (\n <svg viewBox=\"0 0 42.5 42.5\" {...props}>\n <path\n className=\"promo_code_svg_st0\"\n d=\"M11.5,15.9c1.2,0,0.8-1,0.8-1.7c0-1.5,0.2-1.5,1.7-1.7c0.7,0,1.7,0.3,1.7-0.8c0,0,0,0,0-0.1\n c0-0.3-0.1-0.4-0.2-0.5c-0.3-0.4-1.1-0.2-1.5-0.2c-2.7,0-3.5,0.8-3.3,3.3c0,0.3,0,0.6,0,0.8C10.7,15.6,10.8,16,11.5,15.9z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M14.9,17.5C14.9,17.6,14.9,17.6,14.9,17.5C14.9,17.6,14.9,17.6,14.9,17.5c0,1.5,1.1,2.5,2.5,2.5c0,0,0,0,0,0\n c0,0,0,0,0,0s0,0,0,0c1.4,0,2.5-1.1,2.5-2.4c0,0,0-0.1,0-0.1c0-1.4-1.1-2.5-2.5-2.5c0,0,0,0,0,0s0,0,0,0c0,0,0,0,0,0\n C16,15.1,14.9,16.2,14.9,17.5z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M26.7,24.4C26.7,24.4,26.7,24.4,26.7,24.4C26.7,24.4,26.7,24.4,26.7,24.4c0-1.4-1.1-2.5-2.5-2.5\n c-0.1,0-0.1,0-0.2,0c-1.4,0-2.5,1.2-2.5,2.7c0,1.4,1.2,2.5,2.7,2.5C25.6,27,26.8,25.9,26.7,24.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M30,18.4c-0.5,0-0.8,0.4-0.8,0.8v0v3.5v0c0,0.5,0.4,0.8,0.8,0.8s0.8-0.4,0.8-0.8v0v-1.7v0v0v-1.8v0\n C30.9,18.8,30.5,18.4,30,18.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M25.9,16.8c0-0.3-0.2-0.5-0.5-0.7c-0.5-0.3-0.8,0-1.2,0.3c0,0-0.1,0.1-0.1,0.1L16,24.6\n c-0.1,0.1-0.2,0.1-0.3,0.2c-0.2,0.3-0.2,0.8,0.1,1c0,0,0,0,0.1,0.1c0.5,0.5,1,0.2,1.3-0.2l0.2-0.2c0,0,0,0,0,0l8-8\n C25.7,17.4,25.9,17.1,25.9,16.8z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M19,12.6L19,12.6C19.1,12.6,19.1,12.6,19,12.6c0.1,0,0.1,0,0.2,0h3.3c0.4,0,0.8-0.3,0.8-0.7c0,0,0-0.1,0-0.1\n c0-0.4-0.3-0.8-0.7-0.8c0,0-0.1,0-0.1,0h-0.2c0,0,0,0,0,0h-1.5h-1.7c-0.7,0-1,0.2-1,0.8c0,0,0,0.1,0,0.1\n C18.2,12.3,18.6,12.6,19,12.6z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M12.4,19.2c0-0.4-0.4-0.8-0.8-0.7c0,0-0.1,0-0.1,0c-0.4,0-0.8,0.4-0.7,0.8v0.2v3.2v0.1v0.1\n c0,0.4,0.3,0.8,0.7,0.8c0,0,0.1,0,0.1,0c0.4,0,0.8-0.3,0.8-0.7c0,0,0-0.1,0-0.1l0-1.7v-1.7c0,0,0,0,0,0V19.2\n C12.4,19.2,12.4,19.2,12.4,19.2z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M22.4,29.4H22h-1.3h-1.2h-0.3c-0.5,0-0.9,0.3-1,0.8c0,0.4,0.3,0.8,0.7,0.8c0,0,0.1,0,0.1,0h0.3h2.8h0.3\n c0,0,0.1,0,0.1,0c0.4,0,0.8-0.4,0.7-0.8C23.3,29.8,22.9,29.4,22.4,29.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M27.5,12.6L27.5,12.6c1.5,0,1.7,0.2,1.7,1.6v0.1c0,0.7-0.3,1.6,0.8,1.6c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0\n c0.2,0,0.3,0,0.4-0.1c0,0,0,0,0,0c0.6-0.2,0.4-1,0.4-1.6l0-0.2c0.1-0.8-0.1-1.6-0.5-2.3c-1.1-0.9-2.6-1.2-4-0.8\n c-0.1,0-0.1,0.1-0.1,0.1c-0.2,0.1-0.4,0.3-0.4,0.7C25.9,12.9,26.9,12.6,27.5,12.6z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M30.1,26.1C30.1,26.1,30.1,26.1,30.1,26.1C30,26.1,30,26.1,30.1,26.1c-1.2,0-0.8,1-0.8,1.7\n c0,0.5,0,0.9-0.1,1.1c0,0.1-0.1,0.2-0.2,0.3c0,0,0,0,0,0c-0.1,0.1-0.2,0.1-0.3,0.2c-0.2,0.1-0.6,0.1-1.1,0.1h-0.1\n c-0.4,0-0.9-0.1-1.2,0c-0.3,0.1-0.6,0.4-0.6,0.7c0,0,0,0.1,0,0.1c0,0.5,0.3,0.7,0.7,0.8c1.6,0.5,2.8,0.2,3.6-0.6\n c0.4-0.4,0.7-0.9,0.8-1.6c0,0,0,0,0,0c0-0.2,0.1-0.5,0.1-0.7c0-0.1,0-0.1,0-0.2v-0.2C30.9,27.1,31.2,26.1,30.1,26.1z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M15.7,30.3c0-1.2-1-0.8-1.7-0.8c-1.5,0-1.7-0.2-1.7-1.7c0-0.7,0.3-1.7-0.8-1.7c-0.8,0-0.9,0.5-0.9,1\n c-0.4,1.2-0.2,2.3,0.5,3.1c0.1,0.1,0.2,0.2,0.2,0.3c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.5,0.3,1.2,0.5,2,0.5h0h0.8\n c0.3,0,0.6-0.1,0.8-0.4c0,0,0,0,0,0c0,0,0-0.1,0.1-0.1c0,0,0-0.1,0-0.2c0,0,0-0.1,0-0.1C15.7,30.4,15.7,30.4,15.7,30.3\n C15.7,30.3,15.7,30.3,15.7,30.3z\"\n />\n </svg>\n);\n\nexport default SvgIconPromoCode;\n","const SvgIconQc = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-qc_svg__st0\"\n d=\"M19.4 24h-4.6v14h4.6V24zM28.6 19.6l-.6 2.9c-.2.8 0 1.5.5 2.1.5.6 1.2.9 2 .9h7.2V27c0 .1-.1.1-.1.2l-3.5 8.1h-10V24l4.5-4.4M29.9 14.7l-7.7 7.7c-.4.4-.6 1-.6 1.7v11.6c0 1.3 1 2.3 2.3 2.3h10.5c.8 0 1.7-.6 2-1.4l3.6-8.3c.1-.4.3-.5.3-.9v-2.2c0-1.2-.9-2.2-2.2-2.2h-7.5l1.2-5.4v-.4c0-.5-.1-.9-.5-1.3l-1.4-1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconQc;\n","const SvgIconReports = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-reports_svg__st0\"\n d=\"M36.3 18.4l-1.8-1.8-1.8 1.8-1.7-1.8-1.8 1.8-1.8-1.8-1.8 1.8-1.6-1.8-1.8 1.8-1.8-1.8-1.8 1.8-1.8-1.8v23.5l1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8V16.6l-2.1 1.8zm-.6 18.3H19.3V20h16.4v16.7zm-15.2-4.8h14.1v2.3H20.5v-2.3zm0-4.7h14.1v2.3H20.5v-2.3zm0-4.7h14.1v2.3H20.5v-2.3z\"\n />\n </svg>\n);\n\nexport default SvgIconReports;\n","const SvgIconRetail = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M38.2 25.5c1 0 1.7-.2 2.5-1 .7-.7 1-1.5 1-2.5s-.4-1.7-1-2.5c-.7-.7-1.6-1-2.5-1-1 0-1.7.2-2.5 1-.6.6-1 1.5-1 2.5s.2 1.7 1 2.5 1.6 1 2.5 1zm-1.1-4.6c.3-.3.5-.4 1.1-.4.4 0 .7.1 1 .4.4.5.5.8.5 1.1 0 .6-.1.8-.4 1.1-.3.3-.5.4-1.1.4-.5 0-.8-.1-1.1-.4-.3-.3-.4-.5-.4-1.1 0-.4.2-.8.4-1.1zM27.5 28.5c1.1 0 2.1-.4 3-1.2.9-.9 1.2-1.7 1.2-3 0-1.1-.5-2.1-1.2-3-.9-.9-1.9-1.2-3-1.2s-2.1.4-3 1.2c-.9.9-1.2 1.9-1.2 3s.4 2.1 1.2 3c.9.8 1.9 1.2 3 1.2zm-1.6-5.8c.5-.5.9-.7 1.6-.7.6 0 1.1.2 1.5.6.5.6.7 1.1.7 1.6 0 .7-.2 1.1-.7 1.6-.5.5-.9.7-1.6.7-.6 0-1.1-.2-1.6-.7-.5-.5-.7-.9-.7-1.6.2-.6.4-1.1.8-1.5zM16.8 25.7c1 0 1.7-.2 2.5-1 .7-.7 1-1.5 1-2.5s-.4-1.7-1-2.5c-.7-.7-1.6-1-2.5-1-1 0-1.7.2-2.5 1-.6.6-1 1.5-1 2.5s.2 1.7 1 2.5 1.6 1 2.5 1zm-1.1-4.5c.3-.3.5-.4 1.1-.4.4 0 .7.1 1 .4.4.5.5.8.5 1.1 0 .6-.1.8-.4 1.1-.3.3-.5.4-1.1.4-.5 0-.8-.1-1.1-.4-.3-.3-.4-.5-.4-1.1 0-.5.2-.8.4-1.1z\"\n />\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M44.4 29.1c-.1-.4-.1-.7-.2-1-.1-.2-.2-.6-.4-.9-.1-.2-.2-.5-.5-.7-.2-.2-.5-.4-.7-.5-.2 0-.6-.1-1-.1-.1 0-.1 0-.4.2-.2.2-.5.2-.7.5s-.6.4-1 .5c-.4.1-.9.2-1.2.2s-.9 0-1.2-.2c-.4-.2-.7-.4-1-.5-.2-.2-.5-.4-.7-.5-.4-.1-.4-.2-.6-.2-.4 0-.7 0-1 .1s-.5.2-.7.5c-.1.2-.4.5-.5.7-.1.2-.2.6-.4.9-.1.2-.1.5-.2.8.2 0 .4.1.6.1.4.1.7.4 1 .6.2.4.4.6.6 1 .2.4.4.7.5 1.1.1.4.2.7.2 1.1 0 0 .1.1.1.4h-.9c-.7 0-1.2-.2-1.7-.6-.5-.4-.7-1-.7-1.7V30c0-.2 0-.6.1-1h-.4c-.1 0-.2 0-.5.2-.2.2-.6.4-.9.6s-.7.4-1.2.6c-.5.1-1 .2-1.5.2s-1 0-1.5-.2-1-.4-1.2-.6c-.2-.2-.6-.4-.9-.6-.2-.1-.4-.2-.5-.2h-.4c.1.1.1.2.1.4 0 0 .2 1.1.2 1.9s-.1 1.2-.6 1.7c-.4.5-1 .6-1.7.7h-1.1c0-.2.1-.4.1-.6 0-.5.1-.9.2-1.2 0-.1.1-.3.1-.4v-.2.2l.3-.6c.1-.4.4-.7.6-1 .4-.4.6-.5 1-.6.2-.1.5-.1.7-.1h-.1c0-.2-.1-.4-.1-.6-.1-.2-.2-.6-.4-.9-.1-.2-.2-.5-.5-.7s-.5-.4-.7-.5c-.2 0-.6-.1-1-.1-.1 0-.1.1-.4.2-.2.2-.5.2-.7.5-.2.2-.6.4-1 .5s-.9.2-1.2.2-.9-.1-1.2-.2c-.4-.2-.7-.4-1-.5-.2-.2-.5-.4-.7-.5s-.2-.2-.4-.2c-.4 0-.7 0-1 .1-.2.1-.5.2-.7.5-.1.2-.4.5-.5.7-.1.2-.2.6-.4.9-.1.2-.1.6-.2 1 0 .4-.1.7-.1 1v.9c0 .7.2 1.2.7 1.7.4.4 1 .6 1.7.6h6.8c-.1.2-.1.4-.1.6v1.1c0 .9.2 1.5.9 2.1.5.5 1.1.7 2.1.7h9.8c.9 0 1.5-.2 2.1-.7.6-.5.9-1.1.9-2.1 0-.6-.1-1.5-.2-2h7.1c.7 0 1.2-.1 1.7-.6s.7-1 .7-1.7c.1-.9-.2-2.1-.2-2.1zm-25.6.5c-.3.3-.6.8-.6 1.3 0 .1-.1.2-.1.3 0 .1-.1.2-.1.4h-5.5c-.2-.2-.2-.2-.2-.3v-.8-.1c0-.2.1-.4.1-.6 0-.2.1-.3.1-.5v-.1c.1-.1.1-.3.2-.5 0-.1.1-.2.1-.2l.1-.1v-.1c.2.2.3.3.5.4.1.1.2.1.4.2s.3.1.4.2c.1.1.3.2.5.2.5.2 1.2.4 1.9.4s1.4-.2 1.9-.4c.2-.1.4-.1.6-.2-.1.1-.2.3-.3.5zm14.5 6.2c-.4.3-.6.4-.9.4h-9.8c-.5 0-.6-.1-.7-.2-.2-.2-.2-.3-.3-.4.8-.2 1.7-.4 2.5-1.3.6-.6.9-1.2 1.1-1.9.9.4 1.6.4 2.2.4.7 0 1.4-.2 2-.3.1 0 .3-.1.4-.2.1 0 .1 0 .2-.1.2.8.7 1.5 1.4 2 .5.4 1.1.8 2.1.9v.2c-.2.4-.2.5-.2.5zm9.2-4.5h-5.8c0-.1-.1-.2-.1-.2-.1-.4-.3-1-.7-1.6-.1-.2-.2-.3-.3-.4-.1-.2-.2-.4-.4-.6 0 0 .1 0 .2.1.2.1.3.1.4.2.9.6 1.8.6 2.4.6.7 0 1.4-.2 1.9-.4s1.1-.4 1.7-.9c.1 0 .1-.1.2-.1 0 0 0 .1.1.1 0 .1.1.2.1.3.1.2.1.3.2.5v.1c0 .2.1.4.1.6.1.5.2 1.1.2 1.4 0 .1 0 .1-.2.3z\"\n />\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M32 28.9h-.2v.1c.1 0 .1 0 .2-.1z\"\n />\n </svg>\n);\n\nexport default SvgIconRetail;\n","const SvgIconRuns = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-runs_svg__st0\"\n d=\"M37.2 23.5h-3.7v-4.9h-17c-1.3 0-2.4 1.1-2.4 2.4v13.4h2.4c0 2 1.6 3.7 3.7 3.7s3.7-1.6 3.7-3.7h7.3c0 2 1.6 3.7 3.7 3.7s3.7-1.6 3.7-3.7H41v-6.1l-3.8-4.8zm-.6 1.8l2.4 3h-5.4v-3h3zM20.2 35.7c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2zm2.7-3.7c-.7-.7-1.6-1.2-2.7-1.2s-2 .5-2.7 1.2h-.9V21h14.6v11h-8.3zm11.9 3.7c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconRuns;\n","const SvgIconScales = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-scales_svg__st0\"\n d=\"M27.7 28.9c-2.7 0-4.9 2.2-4.9 4.9s2.2 4.9 4.9 4.9 4.9-2.2 4.9-4.9-2.2-4.9-4.9-4.9z\"\n />\n <path\n className=\"icon-scales_svg__st0\"\n d=\"M34.1 25.5h-2.5c-.1-.2-.2-.3-.2-.5 0-.3.2-.6.4-.9 3.2-.6 4.6-1.7 4.6-1.7 1.8-1.3 2-2.4 2-2.8 0-.6-.5-1.1-1.1-1.1H18.2c-.6 0-1.1.5-1.1 1.1 0 .5.3 1.5 2 2.8.2.1 1.6 1.1 4.7 1.7.2.3.4.6.4.9 0 .2-.1.4-.2.5h-2.7c-1.4 0-2.6 1.2-2.6 2.5l-1.5 11.4v.1c0 1.4 1.2 2.6 2.6 2.6h15.9c1.4 0 2.6-1.2 2.6-2.7L36.7 28c0-1.4-1.2-2.5-2.6-2.5zm.7-4.8c-.5.3-2.6 1.6-7.1 1.6-.2 0-1.3 0-2.3-.1h-.2c-2.7-.4-4.2-1.1-4.6-1.4h14.2zm.8 19.1H19.7c-.2 0-.4-.2-.4-.3l1.5-11.3v-.1c0-.2.2-.4.4-.4h12.9c.2 0 .4.2.4.4L36 39.4c0 .3-.2.4-.4.4z\"\n />\n <path\n className=\"icon-scales_svg__st1\"\n d=\"M28.2 32.8v-1.1c0-.3-.2-.5-.5-.5s-.5.2-.5.5v1.1c-.3.2-.5.5-.5.9 0 .6.5 1 1 1s1-.5 1-1c0-.3-.2-.7-.5-.9z\"\n />\n </svg>\n);\n\nexport default SvgIconScales;\n","const SvgIconSearchCategories = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-search-categories_svg__st0\"\n d=\"M32.9,31h-1l-0.4-0.4c1.3-1.4,2-3.3,2-5.3c0-4.5-3.7-8.2-8.2-8.2s-8.2,3.7-8.2,8.2s3.7,8.2,8.2,8.2\n\tc2,0,3.9-0.8,5.3-2l0.4,0.4v1l6.3,6.3l1.9-1.9L32.9,31z M25.3,31c-3.1,0-5.7-2.5-5.7-5.7s2.5-5.7,5.7-5.7s5.7,2.5,5.7,5.7\n\tS28.4,31,25.3,31z\"\n />\n </svg>\n);\n\nexport default SvgIconSearchCategories;\n","const SvgIconSetting = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-setting_svg__st0\"\n d=\"M36.3 29.5c0-.4.1-.8.1-1.2 0-.4 0-.8-.1-1.2l2.5-2c.2-.2.3-.5.1-.8l-2.4-4.1c-.1-.2-.3-.3-.5-.3h-.2l-3 1.2c-.6-.5-1.3-.9-2-1.2l-.3-2.9c0-.3-.3-.5-.6-.5h-4.7c-.3 0-.5.2-.6.5l-.5 3.1c-.7.3-1.4.7-2 1.2l-3-1.2h-.2c-.2 0-.4.1-.5.3L16 24.5c-.2.3-.1.6.1.8l2.5 2c0 .4-.1.8-.1 1.2 0 .4 0 .8.1 1.2l-2.5 2c-.1-.1-.2.3-.1.5l2.4 4.1c.1.2.3.3.5.3h.2l3-1.2c.6.5 1.3.9 2 1.2l.5 3.1c0 .3.3.5.6.5h4.7c.3 0 .5-.2.6-.5l.5-3.1c.7-.3 1.4-.7 2-1.2l3 1.2h.2c.2 0 .4-.1.5-.3l2.4-4.1c.1-.3.1-.6-.1-.8l-2.7-1.9zm-2.3-2c0 .4.1.6.1.9 0 .2 0 .5-.1.9l-.2 1.3 1.1.8 1.3 1-.8 1.4-1.5-.6-1.2-.5-1.1.8c-.5.4-1 .7-1.5.9l-1.3.5-.2 1.3-.2 1.6h-1.7l-.2-1.6-.2-1.3-1.3-.5c-.5-.2-1-.5-1.5-.8l-1.1-.8-1.3.5-1.5.6-.8-1.4 1.3-1 1.1-.8-.2-1.5c0-.4-.1-.6-.1-.9 0-.2 0-.5.1-.9l.2-1.3-1.1-.8-1.3-1 .8-1.4 1.5.6 1.2.5 1.1-.8c.5-.4 1-.7 1.5-.9l1.3-.5.2-1.3.2-1.6h1.6l.2 1.6.2 1.3 1.3.5c.5.2 1 .5 1.5.8l1.1.8 1.3-.5 1.5-.6.8 1.4-1.3 1-1.1.8c.1.1.3 1.5.3 1.5zm-6.5-3.9c-2.6 0-4.7 2.1-4.7 4.7s2.1 4.7 4.7 4.7 4.7-2.1 4.7-4.7-2.1-4.7-4.7-4.7zm0 7.1c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4s2.4 1.1 2.4 2.4c0 1.4-1.1 2.4-2.4 2.4z\"\n />\n </svg>\n);\n\nexport default SvgIconSetting;\n","const SvgIconSnail = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M20.31 8.03L21.24 4.95C21.67 4.85 22 4.47 22 4C22 3.45 21.55 3 21 3C20.45 3 20 3.45 20 4C20 4.26 20.11 4.5 20.27 4.68L19.5 7.26L18.73 4.68C18.89 4.5 19 4.26 19 4C19 3.45 18.55 3 18 3C17.45 3 17 3.45 17 4C17 4.47 17.33 4.85 17.76 4.95L18.69 8.03C17.73 8.18 17 9 17 10V12.25C15.65 9.16 12.63 7 9.11 7C5.19 7 2 10.26 2 14.26C2 16.1 2.82 17.75 4.1 18.85L2.88 19C2.38 19.06 2 19.5 2 20C2 20.55 2.45 21 3 21H19.12C20.16 21 21 20.16 21 19.12V11.72C21.6 11.38 22 10.74 22 10C22 9 21.27 8.18 20.31 8.03ZM15.6 17.41L12.07 17.86C12.5 17.1 12.8 16.21 12.8 15.26C12.8 12.94 10.95 11.06 8.67 11.06C8.14 11.06 7.62 11.18 7.14 11.41C6.65 11.66 6.44 12.26 6.69 12.75C6.93 13.25 7.53 13.45 8.03 13.21C8.23 13.11 8.45 13.06 8.67 13.06C9.85 13.06 10.8 14.04 10.8 15.26C10.8 16.92 9.5 18.27 7.89 18.27C5.75 18.27 4 16.47 4 14.26C4 11.36 6.29 9 9.11 9C12.77 9 15.75 12.06 15.75 15.82C15.75 16.36 15.69 16.89 15.6 17.41Z\" />\n </svg>\n);\n\nexport default SvgIconSnail;\n","const SvgIconSpecialPrice = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM28.5 38.1h-.1c-.7-.4-6.9-6.2-8.9-8.7-2.1-2.6-2.6-5.6-2.6-5.6l-.2-1.3-.3 1.3c-.7 3.2 4.9 15.6 5.6 16.3.3.3.8.5 1.3.5.4 0 .7-.1.7-.1 4.7-1.9 4.7-1.9 4.7-2.1l-.2-.3z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M38.5 28.6l-.1-.1.1-.1-10.3-10.3c-2.1-1.2-4.2-1.9-6.3-1.9-2.3 0-3.6.7-3.7.7l-.4.4v.1c-.1.2-2.2 4.2 1.1 10l10.2 10.2c.1.1.4.6 1 .6.4 0 .7-.2 1.1-.6l7.2-7.2c.8-.8.3-1.5.1-1.8zm-2.6.7L30 35.2 20.8 26c-1.9-3.4-1.4-5.9-1.1-7 .4-.1 1.2-.3 2.1-.3 1.6 0 3.2.5 4.8 1.4l9.3 9.2z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M21.4 19.3c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2c.7 0 1.2-.6 1.2-1.2s-.5-1.2-1.2-1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconSpecialPrice;\n","const SvgIconStock = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-stock_svg__st0\"\n d=\"M29.5 16.4v8.8H38v-8.8h-8.5zm6.6 6.8h-4.5v-4.8h4.5v4.8zM29.5 36H38v-8.9h-8.5V36zm2-6.9H36V34h-4.5v-4.9zM18.9 36.2h8.5v-8.9h-8.5v8.9zm2-6.9h4.5v4.9h-4.5v-4.9z\"\n />\n <path\n className=\"icon-stock_svg__st0\"\n d=\"M40.2 40.3H14.8V21.6h2.3v16.5h23.1z\"\n />\n </svg>\n);\n\nexport default SvgIconStock;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconStrawberry = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.4598 4.6821C11.999 4.10603 10.1634 4.03624 8.44724 4.89439C6.74737 5.74439 5.63985 7.23414 4.94838 9.30462C4.24917 11.3983 3.99976 14.0213 3.99976 16.9999C3.99976 17.6747 4.34721 18.4332 4.95687 19.0428C5.56652 19.6525 6.32499 20 6.99976 20C9.8827 20 12.505 19.7575 14.6233 19.06C16.7233 18.3687 18.253 17.258 19.1056 15.5528C19.9679 13.8281 19.9189 11.9841 19.3567 10.5262C19.108 9.88118 18.7767 9.34894 18.4078 8.94001L18.9806 11.8039C19.0889 12.3454 18.7377 12.8723 18.1961 12.9806C17.6546 13.0889 17.1277 12.7377 17.0194 12.1961L16.6363 10.2806L15.9138 11.9061C15.6895 12.4108 15.0985 12.6381 14.5939 12.4138C14.0892 12.1895 13.8619 11.5985 14.0862 11.0939L15.0302 8.96981L12.9061 9.91382C12.4014 10.1381 11.8105 9.91081 11.5862 9.40612C11.3619 8.90143 11.5892 8.31048 12.0939 8.08618L13.7195 7.36372L11.8039 6.98058C11.2623 6.87225 10.9111 6.34542 11.0194 5.80387C11.1277 5.26231 11.6546 4.9111 12.1961 5.01942L14.9778 5.57579C14.5776 5.23353 14.0688 4.92224 13.4598 4.6821ZM18.7737 6.64046C19.8668 7.33898 20.7216 8.50708 21.2227 9.80662C21.9674 11.7378 22.0321 14.1719 20.8944 16.4472C19.7338 18.7684 17.6849 20.1577 15.2488 20.9597C12.8311 21.7557 9.95984 22 6.99976 22C5.67452 22 4.43299 21.3474 3.54265 20.4571C2.6523 19.5667 1.99976 18.3252 1.99976 16.9999C1.99976 13.9461 2.25047 11.0693 3.05138 8.67108C3.86003 6.24973 5.25264 4.25571 7.55276 3.10556C9.83658 1.96357 12.2699 2.06296 14.1936 2.82154C15.4792 3.32855 16.6391 4.17819 17.3412 5.24451L18.2926 4.29301C18.6831 3.90247 19.3163 3.90243 19.7068 4.29293C20.0974 4.68343 20.0974 5.31659 19.7069 5.70714L18.7737 6.64046ZM13 17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17C11 16.4477 11.4477 16 12 16C12.5523 16 13 16.4477 13 17ZM17 16C17.5523 16 18 15.5523 18 15C18 14.4477 17.5523 14 17 14C16.4477 14 16 14.4477 16 15C16 15.5523 16.4477 16 17 16ZM12 13C12 13.5523 11.5523 14 11 14C10.4477 14 10 13.5523 10 13C10 12.4477 10.4477 12 11 12C11.5523 12 12 12.4477 12 13ZM7 13C7.55228 13 8 12.5523 8 12C8 11.4477 7.55228 11 7 11C6.44772 11 6 11.4477 6 12C6 12.5523 6.44772 13 7 13ZM8 17C8 17.5523 7.55228 18 7 18C6.44772 18 6 17.5523 6 17C6 16.4477 6.44772 16 7 16C7.55228 16 8 16.4477 8 17ZM9 7.99999C9.55228 7.99999 10 7.55228 10 6.99999C10 6.44771 9.55228 5.99999 9 5.99999C8.44772 5.99999 8 6.44771 8 6.99999C8 7.55228 8.44772 7.99999 9 7.99999Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconStrawberry;\n","const SvgIconSupplier = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M18.3 27.5c-2.9 0-5.3 2.4-5.3 5.3s2.3 5.3 5.3 5.3 5.4-2.3 5.3-5.2c.1-2.9-2.3-5.4-5.3-5.4zm-.1 7.6c-1.2 0-2.1-1-2.1-2.1 0-1.2 1-2.1 2.1-2.1 1.3 0 2.2 1 2.1 2.1.1 1.1-.9 2.1-2.1 2.1z\"\n />\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M32.9 29.2c1.2-1.2 2.6-1.6 4.2-1.6 0-1.1-.6-1.8-1.8-1.9-.8 0-1.4-.1-2.2-.1-1.4-.1-2.7-.1-4.1-.2-.1-1.6-.2-3.1-.3-4.7 0-.2.1-.4.2-.5.4-.4.3-.8-.1-1.1-.3-.1-.8-.3-1.1-.3-2.3-.1-4.4-.1-6.6-.1-1.4 0-1.7.4-1.8 1.8-.1 1.4-.2 2.8-.4 4.3h-2.4c-1.4.1-1.9 1-1.6 2.3 2.5-1.6 5-1.6 7.4-.2 2.6 1.4 3.2 3.9 2.9 6.8h6.4c-.2-1.8.3-3.4 1.3-4.5zm-10-4.2c-1.2-.1-1.8-.1-3.1-.2.1-1.6.2-3.1.3-4.6h2.8V25zm3.5 4.2c-.1-.1-.3-.2-.4-.4-.6-1.1-1.4-2.2-2-3.3-.1-.2-.2-.4-.2-.6v-4.6h4.4c.1 2.9.3 5.9.5 9.1-.9-.2-1.6-.2-2.3-.2z\"\n />\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M37.4 29.2c-2.4 0-4.5 2-4.5 4.6s2 4.5 4.6 4.5c2.4 0 4.5-2 4.5-4.6 0-2.5-2-4.5-4.6-4.5zm-.1 6.5c-1.1 0-1.9-.9-1.9-1.9 0-1 .9-1.9 1.9-1.9 1.1 0 1.9.9 1.9 1.9.1 1-.8 1.9-1.9 1.9z\"\n />\n </svg>\n);\n\nexport default SvgIconSupplier;\n","const SvgIconSupplierPrices = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M13.9 30.6c.2 0 5.7-2.6 7.7-4 2-1.3 2.9-3.2 2.9-3.2-.2 2.1-6.2 9.1-6.8 9.4-.6.3-1.2-.1-1.2-.1s-2.7-2.2-2.6-2.1z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M20.3 18.8c1.5 0 2.5.5 3 .8 0 .7-.2 2.4-2.1 4.2l-7.8 4.1-1.2-2.2-.2-.3-1.2-2.3 7.8-4.1c.7-.1 1.2-.2 1.7-.2m0-1.6c-.7 0-1.4.1-2.2.3l-8.7 4.6c0 .2-.8.4-.3 1.2.5.9 1.6 2.9 1.6 2.9l.2.3s1.1 2.1 1.6 2.9c.2.4.5.5.7.5.3 0 .5-.2.5-.2l8.7-4.6c3.3-3.1 2.7-6.2 2.7-6.2l-.2-.3c-.1.1-1.7-1.4-4.6-1.4z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M21.5 19.9c-.3 0-.6.2-.6.5-.1.4.1.7.4.8h.2c.3 0 .6-.2.6-.5.1-.4-.1-.7-.4-.8h-.2z\"\n />\n <g>\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M24.2 29.7c-2.7 0-4.9 2.2-4.9 4.9s2.2 4.9 4.9 4.9 5-2.2 4.9-4.8c0-2.8-2.2-5-4.9-5zm-.1 7c-1.1 0-2-.9-2-2s.9-2 2-2c1.2 0 2.1.9 2 2 0 1.1-.9 2-2 2z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M37.7 31.2c1.1-1.1 2.4-1.5 3.9-1.5 0-1-.6-1.7-1.7-1.8-.7 0-1.3-.1-2-.1-1.3-.1-2.5-.1-3.8-.2-.1-1.5-.2-2.9-.3-4.4 0-.2.1-.4.2-.5.4-.4.3-.7-.1-1-.3-.1-.7-.3-1-.3-2.1-.1-4.1-.1-6.1-.1-1.3 0-1.6.4-1.7 1.7-.1 1.3-.2 2.6-.4 4h-2.2c-1.3.1-1.8.9-1.5 2.1 2.3-1.5 4.6-1.5 6.9-.2 2.4 1.3 3 3.6 2.7 6.3h5.9c-.2-1.5.2-2.9 1.2-4zm-9.3-3.9c-1.1-.1-1.7-.1-2.9-.2.1-1.5.2-2.9.3-4.3h2.6v4.5zm3.2 3.9c-.1-.1-.3-.2-.4-.4-.6-1-1.3-2-1.9-3.1-.1-.2-.2-.4-.2-.6v-4.3h4.1c.1 2.7.3 5.5.5 8.4h-2.1z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M41.8 31.2c-2.3 0-4.1 1.9-4.1 4.2 0 2.3 1.9 4.1 4.2 4.1 2.3 0 4.1-1.9 4.1-4.2.1-2.2-1.8-4.1-4.2-4.1zm-.1 6c-1 0-1.8-.8-1.8-1.8 0-.9.8-1.7 1.8-1.7s1.8.8 1.8 1.7c0 1-.8 1.8-1.8 1.8z\"\n />\n </g>\n </svg>\n);\n\nexport default SvgIconSupplierPrices;\n","import React, { SVGProps } from 'react';\n\nconst SvgIconTableEdit = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M21.7 13.35L20.7 14.35L18.65 12.3L19.65 11.3C19.86 11.08 20.21 11.08 20.42 11.3L21.7 12.58C21.92 12.79 21.92 13.14 21.7 13.35ZM12 18.94L18.07 12.88L20.12 14.93L14.06 21H12V18.94ZM4 2H18C18.5304 2 19.0391 2.21071 19.4142 2.58579C19.7893 2.96086 20 3.46957 20 4V8.17L16.17 12H12V16.17L10.17 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V4C2 3.46957 2.21071 2.96086 2.58579 2.58579C2.96086 2.21071 3.46957 2 4 2ZM4 6V10H10V6H4ZM12 6V10H18V6H12ZM4 12V16H10V12H4Z\" />\n </svg>\n);\n\nexport default SvgIconTableEdit;\n","const SvgIconUserManagement = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 55 56.7\">\n <g>\n <g id=\"Layer_1\">\n <path d=\"M672.6,1136.6c-1.6,0-3,1.3-3,2.9s1.4,3,3,3,3-1.4,2.9-2.9c0-1.6-1.3-3-2.9-3h0Z\" />\n <path d=\"M683.4,1136.5c-1.7,0-3,1.4-3,3s1.4,3,3,3,3-1.4,3-3.1-1.4-2.9-3-2.9h0Z\" />\n <path d=\"M672.4,1130.2h.9v1.2c0,1.1.9,2,2,2h6.9c-1.6.3-3,1.3-4,2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7s-2.3.3-3.3.9v-3.7h0c0,0,.2-.2.7-.3M687.2,1133.4v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4,0,.7,0,1.2-.2.2,0,.3,0,.3,0M688,1118.3c-.7,0-1.3.5-1.4,1.1v12.1c-.4,0-.7,0-.9,0-.4,0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1,0-1.6.3-1.6,1.6v8.1c-1.6.2-2.4,1-2.4,2.3v6.8c0,.2.2.7.5.7s.3,0,.5,0,.4,0,.6-.4c.8-1.6,2.1-2.4,3.8-2.4s2.9.8,3.7,2.3c0,.3.3.5.7.5h1.9c.5,0,.6-.2.8-.6.8-1.5,2.1-2.3,3.8-2.3s2.9.9,3.7,2.4c.5.9.5,1.8.2,3h5.4c.7,0,1.1-.6,1.1-1,0-.7-.3-1.1-.9-1.4-.2,0-.6,0-.8,0h-2.9v-18.7c-.3-.8-.7-1.2-1.4-1.2h0ZM672.4,1128.2v-7.2h5.5c0,0,.3,0,.3.3,1.4,3.3,2.9,6.6,4.2,9.9h0c-2.3,0-4.7,0-7.2,0v-2.3c0-.8,0-.9-.9-.9-.7,0-1.3,0-1.9,0h0Z\" />\n <path d=\"M29.3,26.7c1-1.3,1.5-3,1.5-4.6s-.5-3.3-1.5-4.6c.9-.6,2-.9,3.1-.9,1.5,0,2.9.6,3.9,1.6,1,1,1.6,2.5,1.6,3.9s-.6,2.9-1.6,3.9-2.5,1.6-3.9,1.6c-1.1,0-2.2-.3-3.1-.9ZM17.3,22.1c0-1.1.3-2.2.9-3.1.6-.9,1.5-1.6,2.5-2,1-.4,2.1-.5,3.2-.3,1.1.2,2.1.7,2.8,1.5.8.8,1.3,1.8,1.5,2.8.2,1.1.1,2.2-.3,3.2-.4,1-1.1,1.9-2,2.5-.9.6-2,.9-3.1.9s-2.9-.6-3.9-1.6-1.6-2.5-1.6-3.9ZM20.5,22.1c0,.5.1.9.4,1.3.3.4.6.7,1.1.9.4.2.9.2,1.4.1.5,0,.9-.3,1.2-.7.3-.3.6-.8.7-1.2,0-.5,0-.9-.1-1.4-.2-.4-.5-.8-.9-1.1-.4-.3-.9-.4-1.3-.4s-1.2.3-1.7.7c-.4.4-.7,1.1-.7,1.7ZM34,37.1v3.2H11.8v-3.2s0-6.3,11.1-6.3,11.1,6.3,11.1,6.3ZM30.8,37.1c-.2-1.2-2.1-3.2-7.9-3.2s-7.8,2.1-7.9,3.2M33.9,30.8c1,.8,1.8,1.7,2.3,2.8.6,1.1.9,2.3.9,3.5v3.2h6.3v-3.2s0-5.8-9.6-6.3h0Z\" />\n </g>\n </g>\n </svg>\n);\n\nexport default SvgIconUserManagement;\n","const SvgIconVkc = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-vkc_svg__st0\"\n d=\"M32.8 16.6h.9c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.4 1.4h-.9c-.8 0-1.4-.7-1.4-1.4s.6-1.4 1.4-1.4zM17.3 16.6h9.2c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.4 1.4h-9.2c-.8 0-1.4-.7-1.4-1.4s.6-1.4 1.4-1.4zM18.2 40.1h-.9c-.8 0-1.4-.7-1.4-1.4 0-.8.7-1.4 1.4-1.4h.9c.8 0 1.4.7 1.4 1.4s-.6 1.4-1.4 1.4zM26.5 40.1h-.9c-.8 0-1.4-.7-1.4-1.4 0-.8.7-1.4 1.4-1.4h.9c.8 0 1.4.7 1.4 1.4.1.7-.6 1.4-1.4 1.4zM38.6 39.7c-.3.3-.7.4-1 .4-.4 0-.8-.1-1-.4-.3-.3-.4-.7-.4-1 0-.4.1-.8.4-1 .5-.5 1.4-.5 2 0 .3.3.4.7.4 1 0 .3-.1.6-.4 1zM37.6 33.2H17.3c-.8 0-1.4-.7-1.4-1.4s.7-1.4 1.4-1.4h20.4c.8 0 1.4.7 1.4 1.4-.1.7-.7 1.4-1.5 1.4zM37.6 26.4H17.3c-.8 0-1.4-.7-1.4-1.4s.7-1.4 1.4-1.4h20.4c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.5 1.4z\"\n />\n </svg>\n);\n\nexport default SvgIconVkc;\n","const SvgSamsaraLogo = (props) => (\n <svg viewBox=\"0 0 36 52.4\" {...props}>\n <path\n className=\"samsara_logo_svg__st0\"\n d=\"M27.2 17.6c-.4.9-1 1.6-1.8 2.2-.7.5-1.5.7-2.4.7-.4 0-.7-.3-.7-.6 0-.4.3-.7.6-.7.6 0 1.2-.2 1.7-.5.6-.4 1-.9 1.3-1.6.2-.4.1-.8-.1-1.2-.2-.4-.6-.6-1-.6-.9-.1-1.6.2-2.2.8-.9 1-1.3 2.7-1.5 3.4-.1.6-1.7 7.4-2.3 10.1-.1.4-.5.7-.9.7s-.8-.3-.9-.7l-.2-1c-.7-3.1-2-8.6-2.1-9.1-.2-.7-.5-2.4-1.5-3.4-.6-.6-1.3-.9-2.2-.8-.4 0-.8.2-1 .6-.2.4-.3.8-.1 1.2.3.7.7 1.2 1.3 1.6.5.3 1.1.5 1.7.5.4 0 .7.3.6.7 0 .4-.3.7-.7.6-.9 0-1.7-.3-2.4-.7-.8-.5-1.4-1.2-1.8-2.2-.3-.8-.3-1.7.2-2.5.4-.7 1.2-1.2 2.1-1.3 1.3-.1 2.4.3 3.2 1.2 1.2 1.2 1.7 3.2 1.8 4 .1.5 1.2 5.3 2 8.4.7-3.2 1.8-7.9 2-8.4.2-.8.6-2.8 1.8-4 .8-.9 2-1.3 3.2-1.2.8 0 1.6.5 2.1 1.3s.6 1.7.2 2.5M21.3 7c-.9 0-1.8.2-2.7.5-.4.1-.9.1-1.3 0-.8-.4-1.7-.5-2.6-.5-5.1 0-9.4 5.2-9.4 11.3 0 6.8 5.1 12.8 12.5 14.6h.5c7.4-1.8 12.5-7.8 12.5-14.6C30.7 12.1 26.4 7 21.3 7\"\n />\n <path\n className=\"samsara_logo_svg__st0\"\n d=\"M18.5 34.2c-.2 0-.4.1-.5.1-.2 0-.4 0-.5-.1-8-1.9-13.5-8.5-13.5-16C4 11.3 8.9 5.5 14.7 5.5c1 0 2.1.2 3.1.5h.4c1-.3 2.1-.5 3.1-.5 5.8 0 10.7 5.8 10.7 12.7 0 7.5-5.5 14.1-13.5 16zm12.8-1.8c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2 2.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-2.1c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7V40c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.3c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.3-6.4c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-2.1c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7V40c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.3c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-6.4c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zM6 32.4c0 .3-.3.6-.6.6s-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7s.6.4.6.7v1zm0 4.2c0 .4-.3.7-.7.7s-.6-.3-.6-.7v-.9c0-.4.3-.7.7-.7s.6.3.6.7v.9zM18 2.2C8.9 2.2 1.5 9.7 1.5 18.9v14.5c0 9.2 7.4 16.7 16.5 16.7s16.5-7.5 16.5-16.7V18.9c0-9.2-7.4-16.7-16.5-16.7z\"\n />\n </svg>\n);\n\nexport default SvgSamsaraLogo;\n","import SvgBallsLogo from './BallsLogo';\nimport SvgEmptyGlassIcon from './EmptyGlassIcon';\nimport SvgIconAccount from './IconAccount';\nimport SvgIconAccounts from './IconAccounts';\nimport SvgIconAvocado from './IconAvocado';\nimport SvgIconBanana from './IconBanana';\nimport SvgIconBuying from './IconBuying';\nimport SvgIconContentManagement from './IconContentManagement';\nimport SvgIconGoodsin from './IconGoodsin';\nimport SvgIconGrape from './IconGrape';\nimport SvgIconHome from './IconHome';\nimport SvgIconImport from './IconImport';\nimport SvgIconLocation from './IconLocation';\nimport SvgIconLogin from './IconLogin';\nimport SvgIconNotification from './IconNotification';\nimport SvgIconOpsMetrics from './IconOpsMetrics';\nimport SvgIconOrders from './IconOrders';\nimport SvgIconPhone from './IconPhone';\nimport SvgIconPriceList from './IconPriceList';\nimport SvgIconProducts from './IconProducts';\nimport SvgIconPromoCode from './IconPromoCode';\nimport SvgIconQc from './IconQc';\nimport SvgIconReports from './IconReports';\nimport SvgIconRetail from './IconRetail';\nimport SvgIconRuns from './IconRuns';\nimport SvgIconScales from './IconScales';\nimport SvgIconSearchCategories from './IconSearchCategories';\nimport SvgIconSetting from './IconSetting';\nimport SvgIconSnail from './IconSnail';\nimport SvgIconSpecialPrice from './IconSpecialPrice';\nimport SvgIconStock from './IconStock';\nimport SvgIconStrawberry from './IconStrawberry';\nimport SvgIconSupplier from './IconSupplier';\nimport SvgIconSupplierPrices from './IconSupplierPrices';\nimport SvgIconTableEdit from './IconTableEdit';\nimport SvgIconUserManagement from './IconUserManagement';\nimport SvgIconVkc from './IconVkc';\nimport SvgSamsaraLogo from './SamsaraLogo';\n\nconst icons = {\n SvgSamsaraLogo,\n SvgIconHome,\n SvgIconNotification,\n SvgIconPhone,\n SvgIconAccount,\n SvgIconOrders,\n SvgIconPriceList,\n SvgIconSpecialPrice,\n SvgIconBuying,\n SvgIconContentManagement,\n SvgIconProducts,\n SvgIconStock,\n SvgIconSupplier,\n SvgIconSupplierPrices,\n SvgIconGoodsin,\n SvgIconVkc,\n SvgIconLocation,\n SvgIconScales,\n SvgIconQc,\n SvgIconRetail,\n SvgIconRuns,\n SvgIconAccounts,\n SvgIconReports,\n SvgIconSetting,\n SvgIconLogin,\n SvgBallsLogo,\n SvgIconAvocado,\n SvgIconBanana,\n SvgIconGrape,\n SvgIconStrawberry,\n SvgIconPromoCode,\n SvgIconOpsMetrics,\n SvgIconSearchCategories,\n SvgIconImport,\n SvgIconSnail,\n SvgEmptyGlassIcon,\n SvgIconUserManagement,\n SvgIconTableEdit,\n};\n\nexport default icons;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconAirplane = (props) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M20.56 3.90998C21.15 4.49998 21.15 5.44998 20.56 6.02998L16.67 9.91998L18.79 19.11L17.38 20.53L13.5 13.1L9.6 17L9.96 19.47L8.89 20.53L7.13 17.35L3.94 15.58L5 14.5L7.5 14.87L11.37 11L3.94 7.08998L5.36 5.67998L14.55 7.79998L18.44 3.90998C19 3.32998 20 3.32998 20.56 3.90998Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconAirplane;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBicycle = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 10C18.44 10 17.91 10.11 17.41 10.28L14.46 4.5H11V6H13.54L14.42 7.72L12 13.13L10.23 8.95C10.5 8.85 10.74 8.58 10.74 8.25C10.74 7.84 10.41 7.5 10 7.5H8C7.58 7.5 7.24 7.84 7.24 8.25C7.24 8.66 7.58 9 8 9H8.61L10.86 14.25H9.92C9.56 11.85 7.5 10 5 10C2.24 10 0 12.24 0 15C0 17.76 2.24 20 5 20C7.5 20 9.56 18.15 9.92 15.75H12.5L15.29 9.43L16.08 10.96C14.82 11.87 14 13.34 14 15C14 17.76 16.24 20 19 20C21.76 20 24 17.76 24 15C24 12.24 21.76 10 19 10ZM5 18.5C3.07 18.5 1.5 16.93 1.5 15C1.5 13.07 3.07 11.5 5 11.5C6.67 11.5 8.07 12.68 8.41 14.25H4V15.75H8.41C8.07 17.32 6.67 18.5 5 18.5ZM19 18.5C17.07 18.5 15.5 16.93 15.5 15C15.5 13.92 16 12.97 16.77 12.33L18.57 15.85L19.89 15.13L18.1 11.63C18.39 11.56 18.69 11.5 19 11.5C20.93 11.5 22.5 13.07 22.5 15C22.5 16.93 20.93 18.5 19 18.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconBicycle;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBus = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 4C1.89 4 1 4.89 1 6V17H3C3 17.7956 3.31607 18.5587 3.87868 19.1213C4.44129 19.6839 5.20435 20 6 20C6.79565 20 7.55871 19.6839 8.12132 19.1213C8.68393 18.5587 9 17.7956 9 17H15C15 17.7956 15.3161 18.5587 15.8787 19.1213C16.4413 19.6839 17.2044 20 18 20C18.7956 20 19.5587 19.6839 20.1213 19.1213C20.6839 18.5587 21 17.7956 21 17H23V14C23 12.89 22.11 12 21 12H19V9.5H23V6C23 4.89 22.11 4 21 4H3ZM2.5 5.5H6.5V8H2.5V5.5ZM8 5.5H12V8H8V5.5ZM13.5 5.5H17.5V8H13.5V5.5ZM19 5.5H21.5V8H19V5.5ZM13.5 9.5H17.5V12H13.5V9.5ZM2.5 9.5H6.5V12H2.5V9.5ZM8 9.5H12V12H8V9.5ZM6 15.5C6.39782 15.5 6.77936 15.658 7.06066 15.9393C7.34196 16.2206 7.5 16.6022 7.5 17C7.5 17.3978 7.34196 17.7794 7.06066 18.0607C6.77936 18.342 6.39782 18.5 6 18.5C5.60218 18.5 5.22064 18.342 4.93934 18.0607C4.65804 17.7794 4.5 17.3978 4.5 17C4.5 16.6022 4.65804 16.2206 4.93934 15.9393C5.22064 15.658 5.60218 15.5 6 15.5ZM18 15.5C18.3978 15.5 18.7794 15.658 19.0607 15.9393C19.342 16.2206 19.5 16.6022 19.5 17C19.5 17.3978 19.342 17.7794 19.0607 18.0607C18.7794 18.342 18.3978 18.5 18 18.5C17.6022 18.5 17.2206 18.342 16.9393 18.0607C16.658 17.7794 16.5 17.3978 16.5 17C16.5 16.6022 16.658 16.2206 16.9393 15.9393C17.2206 15.658 17.6022 15.5 18 15.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconBus;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconCar = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 6H16L19 10H21C22.11 10 23 10.89 23 12V15H21C21 15.7956 20.6839 16.5587 20.1213 17.1213C19.5587 17.6839 18.7956 18 18 18C17.2044 18 16.4413 17.6839 15.8787 17.1213C15.3161 16.5587 15 15.7956 15 15H9C9 15.7956 8.68393 16.5587 8.12132 17.1213C7.55871 17.6839 6.79565 18 6 18C5.20435 18 4.44129 17.6839 3.87868 17.1213C3.31607 16.5587 3 15.7956 3 15H1V8C1 6.89 1.89 6 3 6ZM2.5 7.5V10H10.5V7.5H2.5ZM12 7.5V10H17.14L15.25 7.5H12ZM6 13.5C5.60218 13.5 5.22064 13.658 4.93934 13.9393C4.65804 14.2206 4.5 14.6022 4.5 15C4.5 15.3978 4.65804 15.7794 4.93934 16.0607C5.22064 16.342 5.60218 16.5 6 16.5C6.39782 16.5 6.77936 16.342 7.06066 16.0607C7.34196 15.7794 7.5 15.3978 7.5 15C7.5 14.6022 7.34196 14.2206 7.06066 13.9393C6.77936 13.658 6.39782 13.5 6 13.5ZM18 13.5C17.6022 13.5 17.2206 13.658 16.9393 13.9393C16.658 14.2206 16.5 14.6022 16.5 15C16.5 15.3978 16.658 15.7794 16.9393 16.0607C17.2206 16.342 17.6022 16.5 18 16.5C18.3978 16.5 18.7794 16.342 19.0607 16.0607C19.342 15.7794 19.5 15.3978 19.5 15C19.5 14.6022 19.342 14.2206 19.0607 13.9393C18.7794 13.658 18.3978 13.5 18 13.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconCar;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconFork = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.17501 19.235L0.765015 17.825L10.415 8.16502L10.215 7.94501C9.43501 7.17501 9.43501 5.91501 10.215 5.13501L14.555 0.765015L15.485 1.68501L12.245 4.94501L13.205 5.88501L16.445 2.63501L17.365 3.55501L14.115 6.79502L15.055 7.75502L18.315 4.50501L19.235 5.44501L14.865 9.78502C14.085 10.565 12.825 10.565 12.055 9.78502L11.835 9.58502L2.17501 19.235Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconFork;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconHeart = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 19.175L8.55 17.855C3.4 13.185 0 10.095 0 6.32501C0 3.23501 2.42 0.825012 5.5 0.825012C7.24 0.825012 8.91 1.63501 10 2.90501C11.09 1.63501 12.76 0.825012 14.5 0.825012C17.58 0.825012 20 3.23501 20 6.32501C20 10.095 16.6 13.185 11.45 17.855L10 19.175Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconHeart;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconKnife = (props) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M18.6191 0C21.9691 5.61 10.4691 18.15 10.4691 18.15L7.5991 15.28L2.9091 20L0.769104 17.86L18.6191 0Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconKnife;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconSpoon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.093 9.31795L2.33303 19.0779L0.923035 17.6679L10.683 7.90795C9.97303 6.37795 10.473 4.22795 12.063 2.63795C13.973 0.717946 16.713 0.357947 18.173 1.81795C19.643 3.28795 19.283 6.02795 17.363 7.93795C15.773 9.52795 13.623 10.0279 12.093 9.31795Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconSpoon;\n","const BulkIcon = (props) => (\n <svg\n height={24}\n viewBox=\"0 0 24 24\"\n width={24}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4 3h14a2 2 0 012 2v7.08a6.01 6.01 0 00-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 01-2-2V5c0-1.1.9-2 2-2zm0 4v4h6V7H4zm8 0v4h6V7h-6zm-8 6v4h6v-4H4zM18 19h-2l3 3 3-3h-2v-4h-2v4z\" />\n </svg>\n);\n\nexport default BulkIcon;\n","import { memo } from 'react';\n\nimport { Pin } from 'mdi-material-ui';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n opacity: 0.5,\n },\n selected: {\n opacity: 0.75,\n },\n}));\n\nconst PinButton = () => {\n const { classes } = useStyles();\n\n return <Pin className={classes.root} />;\n};\n\nexport default memo(PinButton);\n","import { Fab, Icon } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(1),\n },\n },\n extendedIcon: {\n marginRight: theme.spacing(1),\n },\n}));\n\ninterface ActionButtonProps {\n app?: any;\n}\n\nexport default function ActionButton(props: ActionButtonProps) {\n const { app } = props;\n const { classes } = useStyles();\n\n return (\n <div className={classes.root}>\n <Fab color=\"primary\" aria-label=\"add\">\n <Icon>{app.icon}</Icon>\n </Fab>\n </div>\n );\n}\n","import { FC } from 'react';\n\nimport {\n Box,\n Button,\n Checkbox,\n Divider,\n FormControlLabel,\n Skeleton,\n Typography,\n} from '@mui/material';\n\nimport ExtendedButton from '../Buttons/ExtendedButton/ExtendedButton';\nimport { FilterOptionsCheckboxes } from '../FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type CheckboxFilterMenuContentProps = {\n columnId: string;\n labelFieldName: string;\n isLoading?: boolean;\n selectedFilterOptions: HeaderFilterOptions;\n filterOptions: HeaderFilterOptions;\n maxHeight?: number;\n width?: number;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n onSelectAllChange: (checked: boolean) => void;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n onApplyFiltersClick: (shouldSave: boolean) => void;\n};\n\nexport const CheckboxFilterMenuContent: FC<CheckboxFilterMenuContentProps> = ({\n columnId,\n labelFieldName,\n isLoading = false,\n selectedFilterOptions,\n filterOptions,\n maxHeight = 500,\n width = 276,\n shouldShowCheckOnFilter,\n onSelectAllChange,\n onFilterOptionChange,\n onApplyFiltersClick,\n}) => {\n const renderLoading = () => (\n <Box sx={{ width }}>\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Divider />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Divider />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n </Box>\n );\n\n const renderContent = () => (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <Box sx={{ px: 2, pt: 1 }}>\n <FormControlLabel\n label=\"Select All\"\n control={\n <Checkbox\n disableRipple\n checked={selectedFilterOptions.length === filterOptions?.length}\n indeterminate={\n selectedFilterOptions.length > 0 &&\n selectedFilterOptions.length < filterOptions?.length\n }\n onChange={({ target: { checked } }) => {\n onSelectAllChange(checked);\n }}\n />\n }\n />\n </Box>\n\n <Divider sx={{ my: 0.5 }} />\n\n <Box\n sx={{\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n <Box\n sx={{\n pl: 0.5,\n pr: 2,\n maxHeight,\n }}\n >\n {filterOptions?.length ? (\n <FilterOptionsCheckboxes\n columnId={columnId}\n labelFieldName={labelFieldName}\n filterOptions={filterOptions}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={onFilterOptionChange}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n sx={{ py: 1, px: 2 }}\n >\n No options available.\n </Typography>\n )}\n </Box>\n </Box>\n\n <Divider sx={{ mt: 0.5 }} />\n\n <Box\n sx={{\n px: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n onClick={() => onApplyFiltersClick(false)}\n sx={{\n px: 1,\n minWidth: 'min-content',\n }}\n >\n APPLY\n </Button>\n\n <ExtendedButton\n copy=\"SAVE AS DEFAULT\"\n color=\"primary\"\n buttonType=\"submit\"\n onClick={() => onApplyFiltersClick(true)}\n tooltip=\"Persists those filters for future visits\"\n />\n </Box>\n </Box>\n );\n\n if (isLoading) {\n return renderLoading();\n }\n\n return renderContent();\n};\n","import { FC } from 'react';\n\nimport {\n Box,\n Alert,\n AlertTitle,\n RadioGroup,\n FormControlLabel,\n Radio,\n Typography,\n} from '@mui/material';\n\nimport ConfirmationDialog from '../ConfirmationDialog/ConfirmationDialog';\n\nexport type ClearFiltersConfirmationDialogProps = {\n isOpen: boolean;\n clearFiltersMode: 'unsaved' | 'saved';\n hasAnyUnsavedFilters: boolean;\n onClose: () => void;\n onConfirm: () => void;\n onChangeClearFiltersMode: (mode: 'unsaved' | 'saved') => void;\n};\n\nexport const ClearFiltersConfirmationDialog: FC<\n ClearFiltersConfirmationDialogProps\n> = ({\n isOpen,\n clearFiltersMode,\n hasAnyUnsavedFilters,\n onClose,\n onConfirm,\n onChangeClearFiltersMode,\n}) => {\n return (\n <ConfirmationDialog\n title=\"Clear Filters\"\n isOpen={isOpen}\n closeModal={onClose}\n onConfirm={onConfirm}\n content={\n <Box sx={{ gap: 2, display: 'flex', flexDirection: 'column' }}>\n <Alert severity=\"warning\">\n <AlertTitle>\n Do you want to clear all filters or only the ones you&apos;ve\n recently applied?\n </AlertTitle>\n\n {clearFiltersMode === 'unsaved'\n ? 'Only recently applied filters will be cleared. Your saved filters will remain.'\n : \"This will remove all filters, including any you've previously saved.\"}\n </Alert>\n\n <RadioGroup\n row\n value={clearFiltersMode}\n onChange={({ target: { value } }) =>\n onChangeClearFiltersMode(value as 'unsaved' | 'saved')\n }\n >\n <FormControlLabel\n value=\"unsaved\"\n label=\"Only clear unsaved filters\"\n control={<Radio />}\n disabled={!hasAnyUnsavedFilters}\n />\n\n <FormControlLabel\n value=\"saved\"\n label=\"Clear all filters (including saved filters)\"\n control={<Radio />}\n />\n </RadioGroup>\n\n <Typography variant=\"body1\" sx={{ pb: 2 }}>\n Please confirm if you wish to proceed.\n </Typography>\n </Box>\n }\n />\n );\n};\n","import * as React from 'react';\n\nimport { Box, Dialog, DialogActions, Divider, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButton from '@/components/Buttons/FilledButton/FilledButton';\n\nconst useStyles = makeStyles()((theme) => ({\n content: {\n width: '660px',\n },\n title: {\n paddingInline: theme.spacing(3),\n paddingTop: theme.spacing(4),\n marginBottom: theme.spacing(3),\n },\n button: {\n margin: 0,\n },\n footer: {\n padding: theme.spacing(3),\n justifyContent: 'center',\n gap: theme.spacing(3),\n },\n}));\n\ninterface ConfirmationDialogProps {\n ctaText?: string;\n hideCancel?: boolean;\n isLoading?: boolean;\n hideConfirm?: boolean;\n closeModal: () => void;\n content: string | string[] | React.JSX.Element;\n cancelCopy?: string;\n isOpen: boolean;\n onConfirm?: () => void;\n title: string;\n disableContentPadding?: boolean;\n}\n\nconst ConfirmationDialog = ({\n ctaText,\n hideCancel,\n isLoading,\n hideConfirm,\n closeModal,\n content,\n cancelCopy,\n isOpen,\n onConfirm,\n title,\n disableContentPadding,\n}: ConfirmationDialogProps) => {\n const { classes } = useStyles();\n\n const handleConfirm = () => {\n onConfirm?.();\n };\n\n const contentComponent = () => {\n if (typeof content === 'string') {\n return <Typography variant=\"body1\">{content}</Typography>;\n }\n\n return content;\n };\n\n return (\n <Dialog onClose={closeModal} open={isOpen} maxWidth=\"lg\">\n <Box className={classes.content}>\n <Typography className={classes.title} variant=\"h6\">\n {title}\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n paddingInline: disableContentPadding ? '' : '24px',\n }}\n >\n {contentComponent()}\n </Box>\n </Box>\n\n <Divider />\n\n <DialogActions className={classes.footer}>\n {!hideCancel && (\n <FilledButton\n className={classes.button}\n color=\"default\"\n copy={cancelCopy || 'Cancel'}\n disabled={isLoading}\n onClick={closeModal}\n />\n )}\n\n {!hideConfirm && (\n <FilledButton\n className={classes.button}\n color=\"primary\"\n copy={ctaText || 'Confirm'}\n disabled={isLoading}\n onClick={handleConfirm}\n />\n )}\n </DialogActions>\n </Dialog>\n );\n};\n\nConfirmationDialog.defaultProps = {\n ctaText: '',\n hideCancel: false,\n hideConfirm: false,\n cancelCopy: 'Cancel',\n isLoading: false,\n};\n\nexport default ConfirmationDialog;\n","import { makeStyles } from 'tss-react/mui';\n\ninterface ICompanyLogo {\n size: 'small' | 'medium';\n color: 'light' | 'dark';\n imageLogoDarkSmall: string;\n imageLogoLightSmall: string;\n}\n\nconst useStyles = makeStyles<\n Pick<ICompanyLogo, 'imageLogoDarkSmall' | 'imageLogoLightSmall'>\n>()((theme, { imageLogoDarkSmall, imageLogoLightSmall }) => ({\n logoSmall: {\n height: 46,\n width: 112,\n },\n logoMedium: {\n height: 72,\n width: 160,\n },\n logoDark: {\n backgroundImage: `url(${imageLogoDarkSmall})`,\n },\n logoLight: {\n backgroundImage: `url(${imageLogoLightSmall})`,\n },\n}));\n\nconst CompanyLogo = ({\n size,\n color,\n imageLogoDarkSmall,\n imageLogoLightSmall,\n}: ICompanyLogo) => {\n const { classes, cx } = useStyles({\n imageLogoDarkSmall,\n imageLogoLightSmall,\n });\n const className = cx({\n [classes.logoSmall]: size === 'small',\n [classes.logoMedium]: size === 'medium',\n [classes.logoLight]: color === 'light',\n [classes.logoDark]: color === 'dark',\n });\n return <div className={className} />;\n};\n\nexport default CompanyLogo;\n","import * as React from 'react';\nimport { Control, Controller, ControllerRenderProps } from 'react-hook-form';\n\nimport { Checkbox, FormControlLabel, Tooltip } from '@mui/material';\n\nexport interface ControlledCheckboxProps {\n name: string;\n label: string;\n id: string;\n control: Control<any, any>;\n className?: string;\n tooltipDescription?: string;\n 'data-testid'?: string;\n color?: 'primary' | 'secondary' | 'default';\n handleChange: (\n // eslint-disable-next-line no-unused-vars\n checked: boolean,\n // eslint-disable-next-line no-unused-vars\n field: ControllerRenderProps<any, string>,\n ) => void;\n disabled?: boolean;\n}\n\nconst ControlledCheckbox: React.FC<ControlledCheckboxProps> = ({\n name,\n label,\n id,\n control,\n className,\n tooltipDescription,\n 'data-testid': dataTestId,\n color,\n handleChange,\n disabled,\n}) => (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const checkbox = (\n <FormControlLabel\n label={label}\n className={className}\n control={\n <Checkbox\n {...field}\n id={id}\n data-testid={dataTestId ?? `${id.replace(/_/g, '-')}-checkbox`}\n color={color}\n checked={!!field.value}\n onChange={({ target: { checked } }) =>\n handleChange(checked, field)\n }\n disabled={disabled}\n />\n }\n />\n );\n\n return tooltipDescription ? (\n <Tooltip title={tooltipDescription}>\n <span>{checkbox}</span>\n </Tooltip>\n ) : (\n checkbox\n );\n }}\n />\n);\n\nexport default ControlledCheckbox;\n","import { Control, Controller } from 'react-hook-form';\n\nimport { TextField } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledNumberInputProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * mininum number allowed\n * */\n min?: number;\n /**\n * maximum number allowed\n * */\n max?: number;\n /**\n * step to change the number\n * */\n step?: number;\n /**\n * optional error message\n * */\n error?: string;\n /**\n * should shrink the label name\n * */\n shrink?: boolean;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n}\n\nconst ControlledNumberInput = ({\n name,\n control,\n label,\n min = 0,\n max,\n step = 1,\n error,\n shrink = false,\n className,\n}: ControlledNumberInputProps) => {\n const { classes } = useStyles();\n\n const blockInvalidChar = (input) =>\n ![\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'Backspace',\n 'Tab',\n ].includes(input.key) && input.preventDefault();\n\n return (\n <Controller\n control={control}\n name={name}\n render={({ field: { onChange, value }, fieldState }) => (\n <TextField\n variant=\"standard\"\n className={className || classes.selectInput}\n type=\"text\"\n label={label}\n value={value}\n error={!!fieldState.error}\n onKeyDown={blockInvalidChar}\n helperText={fieldState.error?.message || error}\n onChange={(e) => {\n const inputValue = Number(e.target.value);\n if (max === undefined || inputValue <= max) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: { step, min, max },\n inputLabel: {\n shrink,\n },\n }}\n />\n )}\n />\n );\n};\n\nexport default ControlledNumberInput;\n","import { useMemo } from 'react';\nimport * as React from 'react';\nimport {\n Control,\n Controller,\n ControllerFieldState,\n ControllerRenderProps,\n} from 'react-hook-form';\n\nimport {\n KeyboardArrowDown as KeyboardArrowDownIcon,\n KeyboardArrowUp as KeyboardArrowUpIcon,\n} from '@mui/icons-material';\nimport {\n Box,\n IconButton,\n InputAdornment,\n TextField,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst convertUnderscoreToHyphen = (str: string) => str.replace(/_/g, '-');\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n textFieldButtons: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginBottom: theme.spacing(0.5),\n },\n arrowButton: {\n padding: theme.spacing(0),\n },\n}));\n\ninterface ControlledNumericFieldProps {\n control: Control<any>;\n label: string;\n min?: number;\n max?: number;\n step?: number;\n fullWidth?: boolean;\n margin?: 'dense' | 'normal' | 'none';\n helperText?: string;\n variant?: 'standard' | 'outlined' | 'filled';\n onChange?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n ) => void;\n onArrowClick?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n ) => void;\n onBlur?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n fieldState: ControllerFieldState,\n ) => void;\n className?: string;\n fieldName: string;\n 'data-testid'?: string;\n}\n\nconst ControlledNumericField: React.FC<ControlledNumericFieldProps> = ({\n control,\n label,\n min,\n max,\n step = 1,\n fullWidth = false,\n margin,\n helperText,\n variant = 'standard',\n onChange,\n onArrowClick,\n onBlur,\n className,\n 'data-testid': dataTestId,\n fieldName,\n}) => {\n const { classes } = useStyles();\n\n const isLowerThanMinimum = (value: number) =>\n min !== undefined && min > value;\n const isGreaterThanMaximum = (value: number) =>\n max !== undefined && max < value;\n\n const handleChange = (\n field: ControllerRenderProps<any, string>,\n value: number,\n ) => {\n if (onChange) {\n onChange(field, value);\n } else {\n field.onChange(value);\n }\n };\n\n const handleOnArrowClick = (\n field: ControllerRenderProps<any, string>,\n value: number,\n ) => {\n if (onArrowClick) {\n onArrowClick(field, value);\n } else {\n field.onChange(value);\n }\n };\n\n const handleBlur = (\n field: ControllerRenderProps<any, string>,\n value: number,\n fieldState: ControllerFieldState,\n ) => {\n if (onBlur) {\n onBlur(field, value, fieldState);\n }\n };\n\n const incrementValue = (field: ControllerRenderProps<any, string>) => () => {\n const isNumber = /^\\d$/.test(field.value);\n\n if (!isNumber && !field.value) {\n handleOnArrowClick(field, min ?? 0);\n return;\n }\n\n let numericValue = parseInt(field.value);\n numericValue += step;\n\n if (isGreaterThanMaximum(numericValue)) return;\n\n handleOnArrowClick(field, numericValue);\n };\n\n const decrementValue = (field: ControllerRenderProps<any, string>) => () => {\n const isNumber = /^\\d$/.test(field.value);\n\n if (!isNumber && !field.value) {\n handleOnArrowClick(field, min ?? 0);\n return;\n }\n\n let numericValue = parseInt(field.value);\n numericValue -= step;\n\n if (isLowerThanMinimum(numericValue)) return;\n\n handleOnArrowClick(field, numericValue);\n };\n\n const allowedKeys = useMemo(\n () => [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n ...(min === undefined || min < 0 || max === undefined || max < 0\n ? ['-']\n : []),\n ],\n [min, max],\n );\n\n const handleKeyDown =\n (field: ControllerRenderProps<any, string>) =>\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const isNumber = /^\\d$/.test(e.key);\n\n if (!isNumber && !allowedKeys.includes(e.key)) {\n e.preventDefault();\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n incrementValue(field)();\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n decrementValue(field)();\n }\n };\n\n return (\n <Box\n className={className}\n data-testid={dataTestId || `${convertUnderscoreToHyphen(fieldName)}`}\n >\n <Controller\n control={control}\n name={fieldName}\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n type=\"text\"\n value={field?.value ?? ''}\n fullWidth={fullWidth}\n variant={variant}\n label={label}\n autoComplete=\"off\"\n onKeyDown={handleKeyDown(field)}\n error={!!fieldState.error}\n margin={margin}\n helperText={fieldState?.error?.message || helperText}\n onBlur={({ target: { value } }) => {\n const numericValue = parseInt(value);\n\n if (\n isLowerThanMinimum(numericValue) ||\n isGreaterThanMaximum(numericValue)\n ) {\n return;\n }\n\n handleBlur(field, numericValue, fieldState);\n }}\n onChange={({ target: { value } }) => {\n if (value === '' || value === '-') {\n field.onChange(value);\n return;\n }\n\n const numericValue = parseInt(value);\n\n if (\n isLowerThanMinimum(numericValue) ||\n isGreaterThanMaximum(numericValue)\n ) {\n return;\n }\n\n handleChange(field, numericValue);\n }}\n slotProps={{\n htmlInput: { min, max, step },\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box className={classes.textFieldButtons}>\n <IconButton\n disableRipple\n className={classes.arrowButton}\n onClick={incrementValue(field)}\n data-testid=\"arrow-up\"\n >\n <KeyboardArrowUpIcon sx={{ fontSize: 15 }} />\n </IconButton>\n <IconButton\n disableRipple\n className={classes.arrowButton}\n onClick={decrementValue(field)}\n data-testid=\"arrow-down\"\n >\n <KeyboardArrowDownIcon sx={{ fontSize: 15 }} />\n </IconButton>\n </Box>\n </InputAdornment>\n ),\n },\n }}\n />\n )}\n />\n </Box>\n );\n};\n\nexport default ControlledNumericField;\n","import { Control, Controller, UseFormTrigger } from 'react-hook-form';\n\nimport { FormControl, FormHelperText, InputLabel, Select } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledSelectWithArrayProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * options to be rendered in the dropbown\n * */\n options?: (string | number)[];\n /**\n * optional error message\n * */\n error?: string;\n /**\n * optional onChange event\n * */\n onChange?: (value: any) => void;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n /**\n * opcional function to revalidate the form when changing the dropdown value ( trigger function )\n * */\n revalidateFormFunction?: UseFormTrigger<any>;\n}\n\nconst ControlledSelectWithArray = ({\n name,\n control,\n label,\n options,\n error,\n onChange,\n className,\n revalidateFormFunction,\n}: ControlledSelectWithArrayProps) => {\n const { classes } = useStyles();\n return (\n <Controller\n control={control}\n name={name}\n render={({\n field: { onChange: fieldOnChange, ...field },\n fieldState,\n }) => (\n <FormControl\n className={className || classes.selectInput}\n variant=\"standard\"\n >\n <InputLabel shrink error={!!fieldState.error}>\n {label}\n </InputLabel>\n <Select\n variant=\"standard\"\n native\n {...field}\n value={field.value ?? ''}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (onChange) {\n onChange(selectedValue);\n }\n fieldOnChange(e);\n if (revalidateFormFunction) {\n revalidateFormFunction();\n }\n }}\n error={!!fieldState.error}\n >\n <option aria-label=\"None\" />\n {options?.map((item) => (\n <option key={item} value={item}>\n {item}\n </option>\n ))}\n </Select>\n <FormHelperText error={!!fieldState.error}>\n {fieldState.error?.message || error}\n </FormHelperText>\n </FormControl>\n )}\n />\n );\n};\n\nexport default ControlledSelectWithArray;\n","import { Control, Controller, UseFormTrigger } from 'react-hook-form';\n\nimport { FormControl, FormHelperText, InputLabel, Select } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledSelectWithObjectProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * options to be rendered in the dropbown\n * */\n options?: { value: string | number; label: string }[];\n /**\n * optional error message\n * */\n error?: string;\n /**\n * optional onChange event\n * */\n onChange?: (value: any) => void;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n /**\n * opcional boolean to disable the dropdown option (based on the options.value)\n * */\n listToDisableFromOptions?: Array<any>;\n /**\n * opcional function to revalidate the form when changing the dropdown value ( trigger function )\n * */\n revalidateFormFunction?: UseFormTrigger<any>;\n}\n\nconst ControlledSelectWithObject = ({\n name,\n control,\n label,\n options,\n error,\n onChange,\n className,\n listToDisableFromOptions = [],\n revalidateFormFunction,\n}: ControlledSelectWithObjectProps) => {\n const { classes } = useStyles();\n return (\n <Controller\n control={control}\n name={name}\n render={({\n field: { onChange: fieldOnChange, ...field },\n fieldState,\n }) => (\n <FormControl\n className={className || classes.selectInput}\n variant=\"standard\"\n >\n <InputLabel error={!!fieldState.error}>{label}</InputLabel>\n <Select\n variant=\"standard\"\n native\n {...field}\n value={field.value ?? ''}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (onChange) {\n onChange(selectedValue);\n }\n fieldOnChange(e);\n if (revalidateFormFunction) {\n revalidateFormFunction();\n }\n }}\n error={!!fieldState.error}\n >\n <option aria-label=\"None\" />\n {options?.map((option) => (\n <option\n disabled={\n listToDisableFromOptions\n ? listToDisableFromOptions.includes(option.value)\n : false\n }\n key={option.value}\n value={option.value}\n >\n {option.label}\n </option>\n ))}\n </Select>\n <FormHelperText error={!!fieldState.error}>\n {fieldState.error?.message || error}\n </FormHelperText>\n </FormControl>\n )}\n />\n );\n};\n\nexport default ControlledSelectWithObject;\n","import { useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { Paper, Skeleton } from '@mui/material';\nimport { DataGrid as MUIDataGrid } from '@mui/x-data-grid';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n justifyContent: 'space-between',\n display: 'flex',\n justifyItems: 'stretch',\n maxHeight: 'calc(100vh - 245px)',\n },\n paper: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n '& .MuiDataGrid-row': {\n backgroundColor: colors.neutral100,\n },\n '& .MuiDataGrid-row.Mui-odd:not(:hover)': {\n backgroundColor: colors.neutral100,\n },\n '& .MuiDataGrid-columnHeaderTitle': {\n fontWeight: 600,\n fontSize: '.875rem',\n },\n '& .MuiDataGrid-iconSeparator': {\n display: 'none',\n },\n },\n}));\n\ninterface DataGridProps {\n isLoading?: boolean;\n children?: React.ReactElement;\n height: string;\n sortField?: string;\n sortDir?: string;\n columns: any;\n rows: any;\n handleCellEdition?: any;\n}\n\nconst DataGrid = ({\n columns,\n rows,\n handleCellEdition,\n sortField,\n sortDir,\n isLoading,\n height,\n children,\n}: DataGridProps) => {\n const { classes } = useStyles();\n const [sortModel, setSortModel] = useState([\n {\n field: sortField || 'id',\n sort: sortDir || 'desc',\n },\n ]);\n\n const rowHeight = 56;\n const headerAndFooterHeight = 52 + 56;\n\n return (\n <div\n className={classes.root}\n style={{\n height: height || rows.length * rowHeight + headerAndFooterHeight,\n }}\n >\n <Paper className={classes.paper}>\n {isLoading ? (\n <div>\n {[...Array(Math.floor(10))].map((i) => (\n <Skeleton\n animation=\"pulse\"\n style={{ margin: '8px', opacity: 0.4 }}\n variant=\"rectangular\"\n height={rowHeight}\n key={i}\n />\n ))}\n </div>\n ) : (\n <>\n <MUIDataGrid\n rows={rows}\n columns={columns}\n // onCellEditCommit={handleCellEdition as any}\n loading={isLoading}\n sortModel={sortModel as any}\n onSortModelChange={(model) => setSortModel(model as any)}\n />\n {children}\n </>\n )}\n </Paper>\n </div>\n );\n};\n\nexport default DataGrid;\n","import moment from 'moment';\n\nimport constants from '@/config/constants';\n\nimport 'moment/dist/locale/en-gb';\nimport 'moment/dist/locale/fr';\n\nconst localizedMoment = moment;\nlocalizedMoment.locale(constants.locale);\n\nexport default localizedMoment;\n","import { grey } from '@mui/material/colors';\nimport { createTheme } from '@mui/material/styles';\n\nimport { colors, isDarkModeEnabled } from '../colors';\n\nconst defaultTheme = createTheme({\n typography: {\n fontFamily: 'ProximaNova, Arial',\n },\n palette: {\n mode: isDarkModeEnabled ? 'dark' : 'light',\n default: {\n main: colors.neutral800,\n background: colors.neutral100,\n },\n primary: {\n main: colors.muiPrimary,\n alternate: colors.muiPrimaryAlternate,\n light: grey['100'],\n contrastText: grey['50'],\n },\n secondary: {\n main: colors.muiSecondary,\n alternate: colors.muiSecondaryAlternate,\n dark: grey['900'],\n light: grey['50'],\n },\n success: {\n main: colors.muiSuccess,\n alternate: colors.muiSuccessAlternate,\n },\n },\n components: {\n MuiPickersDay: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n color: colors.black,\n backgroundColor: `${colors.muiPrimary} !important`,\n '&:hover': {\n backgroundColor: `${colors.muiPrimaryHover} !important`,\n },\n },\n },\n },\n },\n MuiListItem: {\n styleOverrides: {\n root: {\n cursor: 'pointer',\n transition: 'background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n '&:hover': {\n backgroundColor: isDarkModeEnabled\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.04)',\n },\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n cursor: 'pointer',\n transition: 'background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n '&:hover': {\n backgroundColor: isDarkModeEnabled\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.04)',\n },\n },\n },\n },\n },\n});\n\nexport default defaultTheme;\n","import defaultTheme from '@/resources/styles/themes/default';\n\nexport const WIDTH_TO_SHRINK = defaultTheme.breakpoints.values.md;\n\nconst constants = {\n locale: process.env.REACT_APP_LOCALE,\n};\n\nexport default constants;\n","import * as React from 'react';\n\nimport moment from '@/lib/moment';\n\ninterface DateProps {\n datetime: string | Date;\n format?: string;\n}\n\nconst Date: React.FC<DateProps> = ({ datetime, format = 'L' }) => {\n const formattedDate = moment(datetime).format(format);\n return <span>{formattedDate === 'Invalid date' ? '-' : formattedDate}</span>;\n};\n\nexport default Date;\n","import { memo } from 'react';\n\nimport { Alert, AlertTitle, Typography, Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n alert: { marginBottom: 16 },\n bottomBar: {\n marginTop: '12px',\n display: 'flex',\n justifyContent: 'center',\n borderTop: `1px solid ${colors.neutral400}`,\n padding: '12px 0px 0px',\n gap: '12px',\n },\n}));\n\ninterface IDeleteSubstitutionDialogContent {\n closeDialog: () => void;\n deleteSubstitution: () => void;\n substitutionName: string;\n}\n\nconst DeleteSubstitutionDialogContent = ({\n closeDialog,\n substitutionName,\n deleteSubstitution,\n}: IDeleteSubstitutionDialogContent) => {\n const { classes } = useStyles();\n\n return (\n <>\n <Alert severity=\"warning\" className={classes.alert}>\n <AlertTitle>\n Are you sure you want to delete the substitution “{substitutionName}”?\n </AlertTitle>\n This action will permanently remove all data and history associated with\n this substitution, and it cannot be undone.\n </Alert>\n <Typography variant=\"body1\">\n Please confirm if you wish to proceed.\n </Typography>\n <Box className={classes.bottomBar}>\n <ExtendedButton copy=\"Cancel\" onClick={closeDialog} />\n <ExtendedButton\n copy=\"Confirm\"\n color=\"primary\"\n buttonType=\"button\"\n onClick={deleteSubstitution}\n />\n </Box>\n </>\n );\n};\n\nexport default memo(DeleteSubstitutionDialogContent);\n","import { memo } from 'react';\n\nimport { Alert, AlertTitle, Typography, Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n alert: { marginBottom: 16 },\n bottomBar: {\n marginTop: '12px',\n display: 'flex',\n justifyContent: 'center',\n borderTop: `1px solid ${colors.neutral400}`,\n padding: '12px 0px 0px',\n gap: '12px',\n },\n}));\n\ninterface IDeleteUserDialogContent {\n closeDialog: () => void;\n deleteUser: () => void;\n userName: string;\n}\n\nconst DeleteUserDialogContent = ({\n closeDialog,\n userName,\n deleteUser,\n}: IDeleteUserDialogContent) => {\n const { classes } = useStyles();\n\n return (\n <>\n <Alert severity=\"warning\" className={classes.alert}>\n <AlertTitle>\n Are you sure you want to delete the user {userName}?\n </AlertTitle>\n This action will permanently remove all data and history associated with\n this user, and it cannot be undone.\n </Alert>\n <Typography variant=\"body1\">\n Please confirm if you wish to proceed.\n </Typography>\n <Box className={classes.bottomBar}>\n <ExtendedButton color=\"default\" copy=\"Cancel\" onClick={closeDialog} />\n <ExtendedButton\n copy=\"Confirm\"\n color=\"primary\"\n buttonType=\"button\"\n onClick={deleteUser}\n />\n </Box>\n </>\n );\n};\n\nexport default memo(DeleteUserDialogContent);\n","import { Controller, FieldValues, Path, UseFormReturn } from 'react-hook-form';\n\nimport {\n Box,\n FormControlLabel,\n Checkbox,\n alpha,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport ControlledValidTextInput from '../ControlledValidTextInput/ControlledValidTextInput';\n\ntype BaseDeliveryInstructionsFormFields = {\n alarm_code?: string | null;\n door_code?: string | null;\n keys_code?: string | null;\n preferred_delivery_window?: string | null;\n invoice_signature_required?: boolean;\n delivery_instructions?: string | null;\n};\n\nexport type DeliveryInstructionsFormFieldsProps<\n T extends BaseDeliveryInstructionsFormFields & FieldValues,\n> = {\n form: UseFormReturn<T>;\n onTextFieldsBlur?: (fieldName: Path<T>) => void;\n onInvoiceSignatureCheckboxChange?: (checked: boolean) => void;\n};\n\nconst CODE_FIELDS = [\n { name: 'alarm_code', label: 'Alarm Code', maxLength: 10 },\n { name: 'door_code', label: 'Door Code', maxLength: 20 },\n { name: 'keys_code', label: 'Key Code', maxLength: 10 },\n];\n\nexport const DeliveryInstructionsFormFields = <\n T extends BaseDeliveryInstructionsFormFields & FieldValues,\n>({\n form,\n onTextFieldsBlur,\n onInvoiceSignatureCheckboxChange,\n}: DeliveryInstructionsFormFieldsProps<T>) => {\n const { control } = form;\n\n const handleBlur = (fieldName: Path<T>) => {\n onTextFieldsBlur?.(fieldName);\n };\n\n return (\n <Box>\n <Typography variant=\"subtitle1\" fontWeight={500} fontSize={18}>\n Delivery Instructions\n </Typography>\n\n <Box\n sx={{\n mt: 1,\n gap: 3,\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n }}\n >\n {CODE_FIELDS.map(({ name, label, maxLength }) => {\n return (\n <ControlledValidTextInput\n key={name}\n label={label}\n fieldName={name}\n maxLength={maxLength}\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur(name as Path<T>);\n }}\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n />\n );\n })}\n </Box>\n\n <Box\n sx={{\n mt: 3,\n gap: 3,\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n }}\n >\n <ControlledValidTextInput\n label=\"Preferred Delivery Time\"\n fieldName=\"preferred_delivery_window\"\n helperText=\"This is the time window the customer prefers to receive their delivery. Actual delivery times may vary based on availability and logistics.\"\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur('preferred_delivery_window' as Path<T>);\n }}\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n />\n\n <Controller\n name={'invoice_signature_required' as Path<T>}\n control={control}\n render={({ field }) => (\n <Tooltip\n title=\"Select this if a signature is mandatory for the delivery.\"\n placement=\"left\"\n >\n <FormControlLabel\n label=\"Required signature upon delivery\"\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n control={\n <Checkbox\n color=\"primary\"\n checked={Boolean(field.value)}\n {...field}\n onChange={(e) => {\n field.onChange(e.target.checked);\n onInvoiceSignatureCheckboxChange?.(e.target.checked);\n }}\n />\n }\n />\n </Tooltip>\n )}\n />\n </Box>\n\n <ControlledValidTextInput\n label=\"Delivery Instructions\"\n fieldName=\"delivery_instructions\"\n helperText=\"Add specific instructions to assist with the delivery, such as parking details or alternative contacts.\"\n maxLength={500}\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur('delivery_instructions' as Path<T>);\n }}\n sx={{\n backgroundColor: (theme) => alpha(theme.palette.primary.main, 0.04),\n padding: '24px',\n marginTop: '20px',\n marginBottom: '24px',\n width: '100%',\n }}\n />\n </Box>\n );\n};\n","import DescriptionIcon from '@mui/icons-material/Description';\nimport { Typography, Box } from '@mui/material';\n\nconst getFileMetadata = (file) => {\n const fullFilename = file.substring(file.lastIndexOf('/') + 1);\n const extension = file.substring(file.lastIndexOf('.'));\n const filename = fullFilename.substring(0, fullFilename.indexOf(extension));\n\n return { filename, extension };\n};\n\ninterface FileCardProps {\n document: string;\n}\n\nconst FileCard = ({ document }: FileCardProps) => {\n const metadata = getFileMetadata(document);\n\n const handleOpenDocument = () => {\n window.open(document, '_blank');\n };\n\n return (\n <Box\n onClick={handleOpenDocument}\n sx={{\n display: 'flex',\n border: '1px solid #E3E7EB',\n borderRadius: '8px',\n padding: '8px',\n gap: '12px',\n minWidth: '250px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <DescriptionIcon fontSize=\"medium\" color=\"action\" />\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Typography variant=\"body1\">\n {metadata.filename}\n {metadata.extension}\n </Typography>\n </Box>\n </Box>\n );\n};\n\nexport default FileCard;\n","import { memo } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { brown, teal } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n siteOne: {\n backgroundColor: teal['50'],\n color: teal['500'],\n padding: theme.spacing(0.5),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n borderRadius: '0 24px 24px 0',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n width: 'fit-content',\n },\n siteTwo: {\n backgroundColor: brown['50'],\n color: brown['500'],\n padding: theme.spacing(0.5),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n borderRadius: '0 24px 24px 0',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n width: 'fit-content',\n },\n}));\n\ninterface FilledLabelProps {\n color?: string;\n copy?: any;\n}\n\nconst FilledLabel = (props: FilledLabelProps) => {\n const { color, copy } = props;\n const { classes } = useStyles();\n return (\n <Typography variant=\"caption\" className={classes[color as any]}>\n {copy}\n </Typography>\n );\n};\n\nexport default memo(FilledLabel);\n","import { useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Typography,\n Menu,\n MenuItem,\n Checkbox,\n ListItemText,\n Divider,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n filterOptions: {\n height: 450,\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.common.black\n : theme.palette.grey[500],\n },\n },\n}));\n\ntype IFilterGroupSelector = {\n name?: string;\n categoryIdentification?: string;\n selectedOptions: string[];\n setSelectedOptions: React.Dispatch<React.SetStateAction<string[]>>;\n handleClickOnApply: () => void;\n optionsList?: {\n category: string;\n options: string[];\n }[];\n};\n\nconst FilterGroupSelector = ({\n name = 'Filter Selector',\n categoryIdentification,\n selectedOptions,\n setSelectedOptions,\n handleClickOnApply,\n optionsList = [{ category: 'Category', options: ['Option 1'] }],\n}: IFilterGroupSelector) => {\n const { classes } = useStyles();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [values, setValues] = useState<string[]>([]);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const toggleOption = (option: string) => {\n setValues((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n setSelectedOptions((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n };\n\n return (\n <>\n <ActiveFiltersIconButton\n label={name}\n numActiveFilters={selectedOptions.length}\n handleClick={handleClick}\n />\n\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Box p={2} mt={-1} sx={{ backgroundColor: colors.neutral200 }}>\n <Typography variant=\"button\">{`Search ${name}`}</Typography>\n </Box>\n <Divider />\n\n <Box className={classes.filterOptions}>\n {optionsList.map(({ category, options }, index) => (\n <Box key={category}>\n <Typography\n variant=\"subtitle2\"\n sx={{ px: 2, pt: index === 0 ? 1 : 2 }}\n >\n {category}\n </Typography>\n {options.map((value) => {\n const key = `${category\n .replaceAll(' ', '_')\n .toLocaleLowerCase()}${\n categoryIdentification ? `_${categoryIdentification}` : ''\n }: ${value}`;\n\n return (\n <MenuItem key={value} onClick={() => toggleOption(key)}>\n <Checkbox checked={values.includes(key)} />\n <ListItemText primary={value} />\n </MenuItem>\n );\n })}\n </Box>\n ))}\n </Box>\n <Box display=\"flex\">\n <ExtendedButton\n variant=\"text\"\n copy=\"Deselect All\"\n disabled={!values.length}\n onClick={() => {\n setSelectedOptions([]);\n setValues([]);\n }}\n />\n <ExtendedButton\n color=\"primary\"\n variant=\"text\"\n copy=\"Apply\"\n onClick={() => {\n handleClickOnApply();\n handleClose();\n }}\n />\n </Box>\n </Menu>\n </>\n );\n};\n\nexport default FilterGroupSelector;\n","import { useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Typography,\n Menu,\n MenuItem,\n Checkbox,\n ListItemText,\n Divider,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n filterOptions: {\n height: 450,\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.common.black\n : theme.palette.grey[500],\n },\n },\n}));\n\ntype IFilterSimpleSelector = {\n name?: string;\n options?: string[];\n selectedOptions: string[];\n setSelectedOptions: React.Dispatch<React.SetStateAction<string[]>>;\n handleClickOnApply: () => void;\n};\n\nconst FilterSimpleSelector = ({\n name = 'Filter Selector',\n options = ['No Options'],\n selectedOptions,\n setSelectedOptions,\n handleClickOnApply,\n}: IFilterSimpleSelector) => {\n const { classes } = useStyles();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [values, setValues] = useState<string[]>([]);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const toggleOption = (option: string) => {\n setValues((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n setSelectedOptions((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n };\n\n return (\n <>\n <ActiveFiltersIconButton\n label={name}\n numActiveFilters={selectedOptions.length}\n handleClick={handleClick}\n />\n\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Box p={2} mt={-1} sx={{ backgroundColor: colors.neutral200 }}>\n <Typography variant=\"button\">{`Search ${name}`}</Typography>\n </Box>\n <Divider />\n <Box className={classes.filterOptions}>\n {options.map((option) => (\n <MenuItem key={option} onClick={() => toggleOption(option)}>\n <Checkbox checked={values.includes(option)} />\n <ListItemText primary={option} />\n </MenuItem>\n ))}\n </Box>\n <Divider />\n <Box display=\"flex\">\n <ExtendedButton\n variant=\"text\"\n copy=\"Deselect All\"\n disabled={!values.length}\n onClick={() => {\n setSelectedOptions([]);\n setValues([]);\n }}\n />\n <ExtendedButton\n color=\"primary\"\n variant=\"text\"\n copy=\"Apply\"\n onClick={() => {\n handleClickOnApply();\n handleClose();\n }}\n />\n </Box>\n </Menu>\n </>\n );\n};\n\nexport default FilterSimpleSelector;\n","import * as React from 'react';\n\nimport { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst footerHeight = '64px';\nconst useStyles = makeStyles()((theme) => ({\n root: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n display: 'flex',\n alignItems: 'center',\n backgroundColor: colors.neutral100,\n borderTop: `1px solid ${colors.neutral400}`,\n width: '100%',\n height: footerHeight,\n padding: theme.spacing(0, 2),\n zIndex: 999,\n },\n fixedOffset: {\n height: footerHeight,\n backgroundColor: 'white',\n },\n}));\n\ninterface FixedFooterProps {\n children: React.ReactNode;\n justifyContent?: string;\n}\n\nconst FixedFooter = ({ justifyContent, children }: FixedFooterProps) => {\n const { classes } = useStyles();\n\n return (\n <Box>\n <Box className={classes.fixedOffset} />\n <Box\n className={classes.root}\n sx={{\n justifyContent,\n }}\n >\n {children}\n </Box>\n </Box>\n );\n};\n\nexport default React.memo(FixedFooter);\n","import type { KeyboardEvent, Ref } from 'react';\nimport { memo } from 'react';\n\nimport CloseRoundedIcon from '@mui/icons-material/CloseRounded';\nimport SearchRoundedIcon from '@mui/icons-material/SearchRounded';\nimport {\n Box,\n IconButton,\n InputBase,\n Paper,\n SxProps,\n Theme,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type GlobalSearchTriggerProps = {\n onClick?: () => void;\n onFocus?: () => void;\n // eslint-disable-next-line no-unused-vars\n onChange?: (value: string) => void;\n // eslint-disable-next-line no-unused-vars\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n readOnly?: boolean;\n placeholder?: string;\n ariaLabel?: string;\n shortcutLabel?: string;\n value?: string;\n minWidth?: number | string;\n sx?: SxProps<Theme>;\n ref?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n};\n\nconst GlobalSearchTrigger = ({\n onClick,\n onFocus,\n onChange,\n onKeyDown,\n readOnly = true,\n placeholder = 'Search',\n ariaLabel = 'Global search',\n shortcutLabel = '⌘ K',\n value = '',\n minWidth = 220,\n sx,\n ref,\n inputRef,\n}: GlobalSearchTriggerProps) => {\n const showClearButton = !readOnly && value.length > 0;\n\n return (\n <Paper\n ref={ref}\n elevation={0}\n onClick={onClick}\n role=\"search\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n border: `1px solid ${alpha(colors.white, 0.22)}`,\n borderRadius: 1,\n px: 1.5,\n py: 0.75,\n minWidth,\n backgroundColor: alpha(colors.black, 0.2),\n color: alpha(colors.white, 0.82),\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\n '&:hover': {\n borderColor: alpha(colors.white, 0.38),\n backgroundColor: alpha(colors.black, 0.35),\n },\n '&:focus-within': {\n borderColor: alpha(colors.muiPrimary, 0.95),\n backgroundColor: alpha(colors.black, 0.35),\n },\n ...sx,\n }}\n >\n <SearchRoundedIcon sx={{ fontSize: 19, color: colors.muiPrimary }} />\n <InputBase\n inputRef={inputRef}\n value={value}\n readOnly={readOnly}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n onChange={(event) => onChange?.(event.target.value)}\n placeholder={placeholder}\n inputProps={{ 'aria-label': ariaLabel }}\n sx={{\n flexGrow: 1,\n color: alpha(colors.white, 0.82),\n fontSize: 14,\n '& input::placeholder': {\n color: alpha(colors.white, 0.62),\n opacity: 1,\n },\n }}\n />\n {showClearButton ? (\n <IconButton\n size=\"small\"\n aria-label=\"Clear search\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => onChange?.('')}\n sx={{\n color: alpha(colors.white, 0.72),\n p: 0.25,\n '&:hover': {\n color: colors.white,\n },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: 18 }} />\n </IconButton>\n ) : (\n <Box\n sx={{\n border: `1px solid ${alpha(colors.white, 0.32)}`,\n borderRadius: '5px',\n px: 0.6,\n py: 0.2,\n fontSize: 11,\n lineHeight: 1,\n }}\n >\n {shortcutLabel}\n </Box>\n )}\n </Paper>\n );\n};\n\nexport default memo(GlobalSearchTrigger);\n","import { memo, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Box } from '@mui/material';\n\ntype IframeMessage = {\n source?: string;\n type?: string;\n route?: string;\n height?: number;\n};\n\nexport type GlobalSearchProps = {\n // eslint-disable-next-line no-unused-vars\n onNavigate?(route: string): void;\n // eslint-disable-next-line no-unused-vars\n shouldUseWindowLocation?(path: string): boolean;\n};\n\nconst IFRAME_MESSAGE_SOURCE = 'global-search-iframe';\nconst HOST_SOURCE = 'global-search-host';\n\nconst COLLAPSED_HEIGHT = 44;\nconst MAX_WIDTH = 760;\nconst MIN_WIDTH = 280;\nconst MAX_HEIGHT = 820;\n\nconst WIDGET_SRC = '/react/search/widget';\n\nconst isEditableElement = (target: EventTarget | null) => {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n if (target.isContentEditable) {\n return true;\n }\n\n const tagName = target.tagName.toLowerCase();\n const role = target.getAttribute('role');\n\n return (\n tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n role === 'textbox'\n );\n};\n\nconst GlobalSearch = ({\n onNavigate,\n shouldUseWindowLocation = (path) =>\n path.startsWith('/react/') || path.startsWith('/#/'),\n}: GlobalSearchProps) => {\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const [height, setHeight] = useState(COLLAPSED_HEIGHT);\n\n const widgetSrc = WIDGET_SRC;\n const widgetOrigin = new URL(widgetSrc, window.location.origin).origin;\n\n const postToIframe = useCallback(\n (\n type:\n | 'GLOBAL_SEARCH_OPEN'\n | 'GLOBAL_SEARCH_CLOSE'\n | 'GLOBAL_SEARCH_TOGGLE',\n ) => {\n const targetWindow = iframeRef.current?.contentWindow;\n if (!targetWindow) {\n return;\n }\n\n targetWindow.postMessage(\n {\n source: HOST_SOURCE,\n type,\n },\n widgetOrigin,\n );\n },\n [widgetOrigin],\n );\n\n const close = useCallback(() => {\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n postToIframe('GLOBAL_SEARCH_CLOSE');\n }, [postToIframe]);\n\n const toggle = useCallback(() => {\n // Avoid a one-frame scrollbar flash while the iframe content expands\n // and before it sends back a measured height.\n setOpen(true);\n setHeight(MAX_HEIGHT);\n postToIframe('GLOBAL_SEARCH_TOGGLE');\n }, [postToIframe]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n const isCommandOrCtrl = event.metaKey || event.ctrlKey;\n\n if (isCommandOrCtrl && event.key.toLowerCase() === 'k') {\n if (isEditableElement(event.target) && !open) {\n return;\n }\n\n event.preventDefault();\n toggle();\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n close();\n }\n };\n\n window.addEventListener('keydown', onKeyDown);\n return () => window.removeEventListener('keydown', onKeyDown);\n }, [close, open, toggle]);\n\n useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n const onPointerDown = (event: PointerEvent) => {\n const wrapper = wrapperRef.current;\n if (!wrapper) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof Node)) {\n return;\n }\n\n if (!wrapper.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('pointerdown', onPointerDown, true);\n return () =>\n document.removeEventListener('pointerdown', onPointerDown, true);\n }, [close, open]);\n\n useEffect(() => {\n const onMessage = (event: MessageEvent<IframeMessage>) => {\n if (event.origin !== widgetOrigin) {\n return;\n }\n\n const iframeWindow = iframeRef.current?.contentWindow;\n if (iframeWindow && event.source !== iframeWindow) {\n return;\n }\n\n const data = event.data;\n if (!data || data.source !== IFRAME_MESSAGE_SOURCE) {\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_CLOSE') {\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_RESIZE') {\n const nextHeight = Math.max(\n COLLAPSED_HEIGHT,\n Math.min(MAX_HEIGHT, Math.ceil(Number(data.height || 0))),\n );\n setHeight(nextHeight);\n setOpen(nextHeight > COLLAPSED_HEIGHT + 1);\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_NAVIGATE') {\n const rawRoute = data.route;\n if (!rawRoute || !rawRoute.startsWith('/')) {\n return;\n }\n\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n\n const nextRoute =\n rawRoute.startsWith('/react/') || rawRoute.startsWith('/#/')\n ? rawRoute\n : `/react${rawRoute}`;\n\n // Always use a full navigation for routes under `/react/*`.\n // This avoids basename issues when GlobalSearch is rendered inside micro-frontends.\n if (\n nextRoute.startsWith('/react/') ||\n shouldUseWindowLocation(rawRoute)\n ) {\n window.location.assign(nextRoute);\n return;\n }\n\n onNavigate?.(nextRoute);\n }\n };\n\n window.addEventListener('message', onMessage);\n return () => window.removeEventListener('message', onMessage);\n }, [onNavigate, shouldUseWindowLocation, widgetOrigin]);\n\n return (\n <Box\n ref={wrapperRef}\n sx={{\n position: 'relative',\n overflow: 'visible',\n width: '100%',\n maxWidth: MAX_WIDTH,\n minWidth: MIN_WIDTH,\n flex: '1 1 420px',\n height: COLLAPSED_HEIGHT,\n }}\n >\n <iframe\n ref={iframeRef}\n title=\"Global Search\"\n data-testid=\"global-search-widget-iframe\"\n src={widgetSrc}\n scrolling=\"no\"\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%',\n height,\n border: 0,\n display: 'block',\n backgroundColor: 'transparent',\n }}\n />\n </Box>\n );\n};\n\nexport default memo(GlobalSearch);\n","import { Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n margin: theme.spacing(1),\n },\n header: {\n height: 80,\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n alignItems: 'center',\n gap: theme.spacing(4),\n padding: theme.spacing(1),\n },\n rightContent: {\n width: '100%',\n },\n}));\n\ninterface HeaderProps {\n appName: any;\n children?: any;\n wrappedHeader?: any;\n}\n\nconst Header = ({\n appName,\n children = null,\n wrappedHeader = false,\n}: HeaderProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Paper\n className={cx({\n [classes.container]: !wrappedHeader,\n })}\n elevation={wrappedHeader ? 0 : 1}\n >\n <header className={classes.header}>\n <AppLabel appName={appName} />\n\n {children ? (\n <div className={classes.rightContent}>{children}</div>\n ) : null}\n </header>\n </Paper>\n );\n};\n\nexport default Header;\n","import { FixedSizeList } from 'react-window';\n\nimport { ListItem, ListItemText } from '@mui/material';\n\ninterface ListHeaderProps {\n headers?: any;\n}\n\nconst ListHeader = (props: ListHeaderProps) => {\n const headers = props.headers || [];\n\n return (\n <ListItem>\n {headers.map((header, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <ListItemText primary={header.text} key={i} />\n ))}\n </ListItem>\n );\n};\n\ninterface VirtualizedListProps {\n headers?: any;\n items?: any;\n renderItem?: any;\n}\n\nexport default function VirtualizedList(props: VirtualizedListProps) {\n const { innerWidth, innerHeight } = window;\n const { headers, items, renderItem } = props;\n\n return (\n <>\n <ListHeader headers={headers} />\n <FixedSizeList\n height={innerHeight - 150}\n width={innerWidth}\n itemSize={46}\n itemCount={items.length}\n itemData={items}\n >\n {renderItem}\n </FixedSizeList>\n </>\n );\n}\n","import { Fragment } from 'react';\n\nimport { Box, Chip, Typography } from '@mui/material';\nimport { purple } from '@mui/material/colors';\nimport classNames from 'classnames';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n },\n smallTitle: {\n opacity: 0.8,\n whiteSpace: 'nowrap',\n fontSize: 12,\n },\n locationText: {\n opacity: 0.8,\n whiteSpace: 'nowrap',\n fontSize: 13,\n },\n defaultChip: {\n backgroundColor: colors.neutral100,\n height: 22,\n },\n stockChip: {\n backgroundColor: colors.neutral100,\n borderColor: colors.neutral100,\n },\n pickingStockChip: {\n backgroundColor: purple[50],\n color: purple[500],\n },\n}));\n\ninterface ILocationsSectionInfo {\n principalLocation: string;\n secondaryLocation?: string[];\n isPicking?: boolean;\n isStock?: boolean;\n}\n\nconst LocationsSectionInfo = ({\n principalLocation,\n secondaryLocation,\n isPicking,\n isStock,\n}: ILocationsSectionInfo) => {\n const { classes } = useStyles();\n\n const getLocationLabel = () => {\n if (isPicking && isStock) {\n return 'PICKING & STOCK';\n }\n if (isPicking) {\n return 'PICKING';\n }\n\n return 'STOCK';\n };\n\n return (\n <Box className={classes.container}>\n <Chip\n className={classNames(classes.defaultChip, {\n [classes.stockChip]: isStock,\n [classes.pickingStockChip]: isPicking && isStock,\n })}\n variant=\"outlined\"\n label={getLocationLabel()}\n />\n <Typography className={classes.locationText} color=\"primary\">\n {principalLocation}\n </Typography>\n {secondaryLocation?.map((loc) => (\n <Fragment key={loc}>\n <Typography className={classes.smallTitle}>/</Typography>\n <Typography className={classes.locationText}>{loc}</Typography>\n </Fragment>\n ))}\n </Box>\n );\n};\n\nexport default LocationsSectionInfo;\n","import { useEffect, useState } from 'react';\n\nimport { FormControl, Input, InputAdornment, InputLabel } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n padding: theme.spacing(3),\n backgroundColor: colors.blueOpacity08,\n },\n}));\n\ninterface NotesProps {\n initialNotes?: any;\n isDisabled?: any;\n isEditable?: any;\n isLoading?: any;\n maxLength?: any;\n onBlur?: any;\n onChange?: any;\n onClearNotes?: any;\n}\n\nconst Notes = ({\n initialNotes = null,\n isDisabled = false,\n isEditable = true,\n isLoading = false,\n maxLength,\n onBlur,\n onChange,\n onClearNotes,\n}: NotesProps) => {\n const [notes, setNotes] = useState('');\n\n useEffect(() => {\n if (!initialNotes) {\n return;\n }\n\n setNotes(initialNotes);\n }, [initialNotes]);\n\n const handleClearNotes = () => {\n setNotes('');\n\n if (onClearNotes) {\n onClearNotes();\n }\n };\n\n const handleNotesBlur = () => {\n if (onBlur) {\n onBlur(notes);\n }\n };\n\n const handleNotesChanges = (event) => {\n const { value } = event.target;\n setNotes(value);\n\n if (onChange) {\n onChange(value);\n }\n };\n\n const { classes } = useStyles();\n\n return (\n <div className={classes.wrapper}>\n <FormControl fullWidth>\n <InputLabel htmlFor=\"notes\">Notes</InputLabel>\n <Input\n disabled={isDisabled || isLoading}\n endAdornment={\n isEditable &&\n notes.length > 0 && (\n <InputAdornment position=\"end\">\n <RoundButton\n disabled={isLoading}\n icon=\"close\"\n noStrokes\n onClick={handleClearNotes}\n size=\"small\"\n />\n </InputAdornment>\n )\n }\n fullWidth\n id=\"notes\"\n inputProps={{\n maxLength,\n }}\n onBlur={handleNotesBlur}\n onInput={handleNotesChanges}\n type=\"text\"\n value={notes}\n />\n </FormControl>\n </div>\n );\n};\n\nexport default Notes;\n","import RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\ninterface NumpadProps {\n handleClick: any;\n handleUndo: any;\n}\n\nconst Numpad = ({ handleClick, handleUndo }: NumpadProps) => (\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n border: `1px solid ${colors.neutral250}`,\n borderRadius: 8,\n padding: 8,\n }}\n >\n <div>\n <div>\n <RoundButton\n onClick={() => handleClick('1')}\n size=\"large\"\n variant=\"filled\"\n >\n 1\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('2')}\n size=\"large\"\n variant=\"filled\"\n >\n 2\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('3')}\n size=\"large\"\n variant=\"filled\"\n >\n 3\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('4')}\n size=\"large\"\n variant=\"filled\"\n >\n 4\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('5')}\n size=\"large\"\n variant=\"filled\"\n >\n 5\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('6')}\n size=\"large\"\n variant=\"filled\"\n >\n 6\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('7')}\n size=\"large\"\n variant=\"filled\"\n >\n 7\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('8')}\n size=\"large\"\n variant=\"filled\"\n >\n 8\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('9')}\n size=\"large\"\n variant=\"filled\"\n >\n 9\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('0')}\n size=\"large\"\n variant=\"filled\"\n >\n 0\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('.')}\n size=\"large\"\n variant=\"filled\"\n >\n .\n </RoundButton>\n </div>\n </div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderLeft: `1px solid ${colors.neutral250}`,\n }}\n >\n <RoundButton\n icon=\"backspaceOutlined\"\n onClick={handleUndo}\n size=\"large\"\n variant=\"filled\"\n />\n </div>\n </div>\n);\n\nexport default Numpad;\n","import { memo, useState } from 'react';\n\nimport { TextField, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButtonLg from '@/components/Buttons/FilledButton/FilledButtonLg';\nimport Numpad from '@/components/Numpad/Numpad';\n\nconst useStyles = makeStyles()(() => ({\n c_numpadinput__textfield: {\n '& .MuiInputLabel-outlined.MuiInputLabel-shrink': {\n transform: 'translate(18px, -13px) scale(0.75)',\n },\n '& .MuiInputLabel-outlined': {\n transform: 'translate(14px, 14px) scale(1)',\n },\n '& .MuiOutlinedInput-input': {\n padding: '18.5px 18px',\n },\n },\n c_numpadinput__body: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'space-between',\n justifyItems: 'center',\n justifyContent: 'space-around',\n margin: 16,\n padding: 16,\n backgroundColor: '#f0f0f0',\n },\n}));\n\ninterface NumpadInputProps {\n handleNextClick?(...args: any[]): any;\n inputLabel?: string;\n children?: any;\n}\n\nconst NumpadInput = (props: NumpadInputProps) => {\n const { handleNextClick, inputLabel, children } = props;\n const { classes } = useStyles();\n const [state, setState] = useState('');\n\n const handleNumpadClick = (value) => {\n setState(state + value);\n };\n\n const handleUndo = () => {\n setState(state.substring(0, state.length - 1));\n };\n\n function handleSubmit() {\n handleNextClick?.(state);\n }\n\n const DefaultInput = (\n <div>\n <Typography variant=\"h5\" style={{ padding: '16px 0 3rem' }}>\n {inputLabel}\n </Typography>\n\n <form noValidate autoComplete=\"off\">\n <TextField\n id=\"outlined-basic\"\n label={<Typography style={{ fontSize: '1.5rem' }}>Insert</Typography>}\n value={state}\n variant=\"outlined\"\n autoFocus\n helperText=\"\"\n className={classes.c_numpadinput__textfield}\n slotProps={{\n htmlInput: {\n style: { fontSize: '1.5rem', width: '160px' },\n },\n }}\n />\n </form>\n\n {children}\n </div>\n );\n\n return (\n <div>\n <div className={classes.c_numpadinput__body}>\n {children || DefaultInput}\n <Numpad handleClick={handleNumpadClick} handleUndo={handleUndo} />\n </div>\n\n {state ? (\n <FilledButtonLg\n color=\"primary\"\n copy=\"next\"\n handleClick={handleSubmit}\n />\n ) : (\n <FilledButtonLg copy=\"next\" disabled />\n )}\n </div>\n );\n};\n\nexport default memo(NumpadInput);\n","import { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n numpadContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n border: `2px solid ${colors.neutral250}`,\n borderRadius: 8,\n padding: 8,\n },\n numpadNumbersContainer: {\n display: 'flex',\n flexDirection: 'column',\n padding: 8,\n gap: 8,\n },\n numpadRow: {\n display: 'flex',\n padding: 8,\n gap: 8,\n },\n numpadBackspace: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderLeft: `1px solid ${colors.neutral250}`,\n padding: '16px 8px',\n gap: 8,\n },\n}));\n\ninterface NumpadPlusProps {\n handleClick: any;\n handleUndo: any;\n}\n\nconst NumpadPlus = ({ handleClick, handleUndo }: NumpadPlusProps) => {\n const { classes: styles } = useStyles();\n return (\n <Box className={styles.numpadContainer}>\n <Box className={styles.numpadNumbersContainer}>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('1')}\n size=\"large\"\n variant=\"filled\"\n >\n 1\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('2')}\n size=\"large\"\n variant=\"filled\"\n >\n 2\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('3')}\n size=\"large\"\n variant=\"filled\"\n >\n 3\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('4')}\n size=\"large\"\n variant=\"filled\"\n >\n 4\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('5')}\n size=\"large\"\n variant=\"filled\"\n >\n 5\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('6')}\n size=\"large\"\n variant=\"filled\"\n >\n 6\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('7')}\n size=\"large\"\n variant=\"filled\"\n >\n 7\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('8')}\n size=\"large\"\n variant=\"filled\"\n >\n 8\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('9')}\n size=\"large\"\n variant=\"filled\"\n >\n 9\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('0')}\n size=\"large\"\n variant=\"filled\"\n >\n 0\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('.')}\n size=\"large\"\n variant=\"filled\"\n >\n .\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('-')}\n size=\"large\"\n variant=\"filled\"\n >\n -\n </RoundButton>\n </Box>\n </Box>\n <Box className={styles.numpadBackspace}>\n <RoundButton\n icon=\"backspaceOutlined\"\n onClick={handleUndo}\n size=\"large\"\n variant=\"filled\"\n />\n </Box>\n </Box>\n );\n};\n\nexport default NumpadPlus;\n","import { Pagination, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst paginationHeight = '56px';\n\nconst useStyles = makeStyles()((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n borderTop: `1px solid ${colors.neutral300}`,\n backgroundColor: colors.neutral100,\n borderRadius: '0 0 4px 4px',\n width: '100%',\n height: paginationHeight,\n '& > *': {\n margin: theme.spacing(2),\n },\n '& .MuiTypography-body1': {\n fontSize: '.850rem',\n },\n },\n fixed: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n },\n fixedOffset: {\n height: paginationHeight,\n backgroundColor: 'white',\n },\n}));\n\ninterface PaginationForTableProps {\n appliedFilters?: any;\n className?: any;\n page?: any;\n pagination?: any;\n position?: any;\n style?: any;\n updateFilters: any;\n}\n\nconst PaginationForTable = ({\n appliedFilters,\n className = '',\n page,\n pagination,\n position = 'relative',\n style,\n updateFilters,\n}: PaginationForTableProps) => {\n const { classes, cx } = useStyles();\n\n const handleChange = (event, value) => {\n updateFilters({ ...appliedFilters, page: value });\n };\n\n const isFixed = position === 'fixed';\n\n return (\n <Paper>\n {/* {isFixed && <div className={classes.fixedOffset} />} */}\n <div\n style={style}\n className={cx(classes.root, className, {\n [classes.fixed]: isFixed,\n })}\n >\n <Typography variant=\"body1\">Page: {page}</Typography>\n <Pagination\n count={pagination.num_pages}\n page={page}\n onChange={handleChange}\n />\n </div>\n </Paper>\n );\n};\n\nexport default PaginationForTable;\n","import { useCallback, useEffect } from 'react';\nimport { Controller, useForm, useWatch } from 'react-hook-form';\n\nimport {\n FormControlLabel,\n FormGroup,\n TextField,\n Typography,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n position: 'relative',\n /**\n * Hides the step arrows on number inputs\n * Works for every browser\n * https://www.w3schools.com/howto/howto_css_hide_arrow_number.asp\n */\n '& input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& input[type=number]': {\n MozAppearance: 'textfield',\n },\n },\n formControlLabel: {\n margin: 0,\n },\n errorText: {\n position: 'absolute',\n left: theme.spacing(4),\n bottom: theme.spacing(-3),\n },\n wrapper: {\n display: 'grid',\n gridTemplateAreas: `\"minus input plus\"`,\n alignItems: 'center',\n gap: theme.spacing(1.5),\n },\n leftButtons: {\n gridTemplateAreas: `\"minus plus input\"`,\n },\n rightButtons: {\n gridTemplateAreas: `\"input minus plus\"`,\n // FIXME: Didn't find a better way to override error CSS when it has a parent modifier\n '& #input-error': {\n left: 0,\n bottom: theme.spacing(-2.5),\n },\n },\n plus: {\n gridArea: 'plus',\n },\n minus: {\n gridArea: 'minus',\n },\n input: {\n gridArea: 'input',\n },\n}));\n\ninterface PlusMinusInputProps {\n allowNegative?: any;\n buttonsPosition?: any;\n disabled?: any;\n initialValue?: any;\n inputSize?: any;\n label: any;\n updateInputValue: any;\n}\n\nconst PlusMinusInput = ({\n allowNegative = false,\n buttonsPosition = 'default',\n disabled = false,\n initialValue = 0,\n inputSize = 70,\n label,\n updateInputValue,\n}: PlusMinusInputProps) => {\n const {\n clearErrors,\n control,\n formState: { errors },\n reset,\n setError,\n setValue,\n } = useForm({\n defaultValues: {\n inputValue: 0,\n },\n });\n\n const inputValue = useWatch({ control, name: 'inputValue' });\n\n const setInputValue = useCallback(\n (newValue) => {\n if (Number.isNaN(newValue) || newValue < 0) {\n return;\n }\n\n setValue('inputValue', Number(newValue));\n },\n [setValue],\n );\n\n useEffect(() => {\n clearErrors('inputValue');\n\n if ((inputValue as any) === '') {\n setError('inputValue', {\n type: 'custom',\n message: `${label} is empty`,\n });\n return;\n }\n\n if ((!inputValue && Number(inputValue !== 0)) || Number(inputValue) < 0) {\n setError('inputValue', {\n type: 'custom',\n message: `${label} is invalid`,\n });\n\n if (!allowNegative) {\n updateInputValue(0);\n setValue('inputValue', 0);\n }\n }\n }, [clearErrors, inputValue, setError]);\n\n useEffect(() => {\n if (typeof initialValue !== 'number') {\n return;\n }\n\n setInputValue(initialValue);\n }, [initialValue, setInputValue]);\n\n const clearInput = () => {\n reset();\n updateInputValue(0);\n };\n\n const increaseInput = () => {\n if (Number(inputValue) < 0) {\n clearInput();\n return;\n }\n\n setInputValue(Number(inputValue) + 1);\n updateInputValue(Number(inputValue) + 1);\n };\n\n const decreaseInput = () => {\n if (Number(inputValue) < 0) {\n clearInput();\n return;\n }\n\n setInputValue(Number(inputValue) - 1);\n updateInputValue(Number(inputValue) - 1);\n };\n\n const onInputChange = (event, onChange) => {\n onChange(event);\n\n const { value } = event.target;\n\n if (value) {\n updateInputValue(Number(event.target.value));\n return;\n }\n\n updateInputValue(value);\n };\n\n const { classes, cx } = useStyles();\n\n return (\n <div className={classes.container}>\n <FormGroup\n className={cx(classes.wrapper, {\n [classes.leftButtons]: buttonsPosition === 'left',\n [classes.rightButtons]: buttonsPosition === 'right',\n })}\n >\n <RoundButton\n className={classes.minus}\n disabled={inputValue <= 0 || disabled}\n icon=\"remove\"\n onClick={() => decreaseInput()}\n size=\"small\"\n />\n <div>\n <Controller\n control={control}\n name=\"inputValue\"\n render={({ field }) => (\n <FormControlLabel\n {...field}\n className={classes.formControlLabel}\n control={\n <TextField\n className={classes.input}\n disabled={disabled}\n id=\"filled-basic\"\n label={label}\n style={{ width: `${inputSize}px` }}\n type=\"number\"\n />\n }\n label=\"\"\n onChange={(e) => onInputChange(e, field.onChange)}\n />\n )}\n />\n {errors.inputValue && (\n <Typography\n className={classes.errorText}\n color=\"error\"\n id=\"input-error\"\n variant=\"caption\"\n >\n {errors.inputValue.message}\n </Typography>\n )}\n </div>\n <RoundButton\n className={classes.plus}\n disabled={disabled}\n icon=\"add\"\n onClick={() => increaseInput()}\n size=\"small\"\n />\n </FormGroup>\n </div>\n );\n};\n\nexport default PlusMinusInput;\n","import { ComponentType, useState } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport ProductImage from '@/components/ProductImage/ProductImage';\n\ninterface PBustProps {\n buttonData?: any;\n classes?: any;\n locationData?: any;\n locationId?: any;\n primaryData?: any;\n product?: any;\n secondaryData?: any;\n size?: any;\n LocationHistoryDialog: ComponentType<any>;\n}\n\n// FIXME: Please, if you ever touch this component... REFACTOR IT\n// The person that created it didn't know how React works and created this Frankenstein 🤡\nconst PBust = ({\n classes,\n size,\n product = null,\n locationData,\n primaryData,\n secondaryData,\n buttonData = null,\n locationId,\n LocationHistoryDialog,\n}: PBustProps) => {\n let imageSize;\n let titleSize;\n let subtitle1Size;\n let subtitle2Size;\n let headingSize;\n\n switch (size) {\n case 'small':\n imageSize = 'c_productbust__image_sm';\n titleSize = 'c_productbust__typography_h6';\n subtitle1Size = 'c_productbust__typography_subtitle2';\n subtitle2Size = 'c_productbust__typography_subtitle2';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n case 'medium':\n imageSize = 'c_productbust__image_md';\n titleSize = 'c_productbust__typography_h6';\n subtitle1Size = 'c_productbust__typography_subtitle2';\n subtitle2Size = 'c_productbust__typography_subtitle2';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n case 'large':\n imageSize = 'c_productbust__image_lg';\n titleSize = 'c_productbust__typography_h4';\n subtitle1Size = 'c_productbust__typography_subtitle1';\n subtitle2Size = 'c_productbust__typography_h6';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n default:\n break;\n }\n\n const [historyVisible, setHistoryVisible] = useState(false);\n\n const historyDataIcon = () => (\n <RoundButton\n icon=\"history\"\n onClick={() => setHistoryVisible(true)}\n size=\"small\"\n />\n );\n\n return (\n <div className={classes.c_productbust}>\n <ProductImage\n image={product?.image}\n status={product?.status}\n size={imageSize}\n />\n\n <div className={classes.c_productbust__container}>\n <div className={classes.c_productbust__heading}>\n <div>\n <Typography\n component=\"span\"\n color=\"textSecondary\"\n className={classes[headingSize]}\n >\n {!!locationData && locationData}\n </Typography>\n <Typography component=\"span\" className={classes[titleSize]}>\n {product?.name}\n </Typography>\n {!product && (\n <Typography component=\"span\" className={classes[titleSize]}>\n Empty Position\n </Typography>\n )}\n {primaryData || (\n <>\n <Typography\n style={{ color: '#555' }}\n className={classes[subtitle1Size]}\n >\n {product?.category.name}\n </Typography>\n <Typography\n style={{ color: '#A42966', textTransform: 'uppercase' }}\n className={classes[subtitle2Size]}\n >\n {product?.attributes}\n </Typography>\n </>\n )}\n </div>\n <div className={classes.c_productbust__btns}>\n <div>{buttonData}</div>\n <div>{!!locationId && historyDataIcon()}</div>\n </div>\n </div>\n <div>{!!secondaryData && secondaryData}</div>\n </div>\n\n <LocationHistoryDialog\n handleVisible={setHistoryVisible}\n locationId={locationId}\n productName={product?.name}\n visible={historyVisible}\n />\n </div>\n );\n};\n\nconst ProductBust = withStyles(PBust, (theme) => ({\n c_productbust: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n '& > div': {\n margin: 8,\n display: 'flex',\n },\n },\n c_productbust__container: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: '100%',\n },\n c_productbust__heading: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n },\n c_productbust__btns: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n },\n c_productbust__typography_body1: {\n fontSize: '1rem',\n fontWeight: 500,\n lineHeight: 1.334,\n letterSpacing: '0.0075em',\n },\n c_productbust__typography_h6: {\n fontSize: '1.25rem',\n fontWeight: 500,\n lineHeight: 1.334,\n letterSpacing: '0.0075em',\n maxWidth: 400,\n },\n c_productbust__typography_h5: {\n fontSize: '1.5rem',\n fontWeight: 400,\n lineHeight: 1.334,\n letterSpacing: '0em',\n maxWidth: 400,\n },\n c_productbust__typography_h4: {\n fontSize: '2.125rem',\n fontWeight: 400,\n lineHeight: 1.235,\n letterSpacing: '0.00735em',\n maxWidth: 400,\n },\n c_productbust__typography_subtitle1: {\n fontSize: '1rem',\n fontWeight: 400,\n lineHeight: 1.75,\n letterSpacing: '0.00938em',\n },\n c_productbust__typography_subtitle2: {\n fontSize: '.875rem',\n fontWeight: 500,\n lineHeight: 1.57,\n letterSpacing: '0.00714em',\n },\n c_productbust__typography_headingSize: {\n textTransform: 'uppercase',\n marginBottom: theme.spacing(0.5),\n '& .MuiTypography-body1': {\n fontSize: '.750rem',\n },\n },\n c_productbust__image_sm: {\n width: 100,\n height: 132,\n maxWidth: 132,\n borderRadius: theme.spacing(0.5),\n },\n c_productbust__image_md: {\n width: 160,\n height: 120,\n maxWidth: 160,\n borderRadius: theme.spacing(0.5),\n },\n}));\n\nexport default ProductBust;\n","import { CardMedia } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface PImageProps {\n classes?: any;\n image?: any;\n size?: any;\n status?: any;\n}\n\nconst PImage = ({\n classes,\n image,\n size = 'c_productbust__image_xs',\n status,\n}: PImageProps) => (\n <div className={classes.c_productbust__image}>\n <CardMedia\n className={classes[size]}\n image={image || '@/resources/img/peas.jpg'}\n />\n {status && status !== 'ACTIVE' && (\n <div className={classes.c_productbust__label_status}>{status}</div>\n )}\n </div>\n);\n\nconst ProductImage = withStyles(PImage, (theme) => ({\n c_productbust__label_status: {\n position: 'absolute',\n color: 'white',\n left: '50%',\n top: 0,\n transform: 'translateX(-50%)',\n fontSize: 12,\n fontWeight: 700,\n width: '100%',\n textAlign: 'center',\n padding: '4px 0',\n backgroundColor: '#A42966',\n borderRadius: '4px 4px 0 0',\n },\n c_productbust__image_sm: {\n height: 100,\n width: 132,\n minWidth: 132,\n maxWidth: 132,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 100,\n width: 132,\n maxWidth: 132,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_xs: {\n height: 84,\n width: 112,\n minWidth: 112,\n maxWidth: 112,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 84,\n width: 112,\n maxWidth: 112,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_md: {\n height: 120,\n width: 160,\n minWidth: 160,\n maxWidth: 160,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 120,\n width: 160,\n maxWidth: 160,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_lg: {\n height: 140,\n width: 186,\n minWidth: 186,\n maxWidth: 186,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 140,\n width: 186,\n maxWidth: 186,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image: {\n position: 'sticky',\n left: 0,\n zIndex: 9,\n },\n}));\n\nexport default ProductImage;\n","import { Avatar, Badge, Box, Typography } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface IRenderAvatar {\n active?: boolean;\n}\nconst RenderAvatar = ({ active }: IRenderAvatar) => {\n const StyledBadge = withStyles(Badge, () => ({\n root: {\n '.MuiBadge-dot': {\n backgroundColor: active ? colors.muiSuccess : colors.neutral700,\n },\n },\n }));\n\n return (\n <Box\n sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}\n >\n <StyledBadge\n overlap=\"circular\"\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n variant=\"dot\"\n >\n <Avatar />\n </StyledBadge>\n <Typography variant=\"caption\">\n {active ? 'Active' : 'Disabled'}\n </Typography>\n </Box>\n );\n};\n\nexport default RenderAvatar;\n","import { useEffect, useState, useRef } from 'react';\n\nimport WarningAmber from '@mui/icons-material/WarningAmber';\nimport {\n List,\n ListItemButton,\n ListItemText,\n ListSubheader,\n Tooltip,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\nimport { transformNameToID } from '@/utils/useGetActiveSection';\n\nconst useStyles = makeStyles<void, 'selected'>()(\n (_theme, _params, classes) => ({\n root: {\n [`&.${classes.selected}`]: {\n backgroundColor: colors.primaryOpacity10,\n '&:hover': {\n backgroundColor: colors.primaryOpacity20,\n },\n },\n },\n selected: {},\n }),\n);\n\ninterface IRenderContentList {\n items: string[];\n warningItems?: string[] | null;\n warningMessage?: string;\n activeSection: string;\n}\n\nconst RenderContentList = ({\n items,\n activeSection,\n warningItems,\n warningMessage = 'Missing information on this section',\n}: IRenderContentList) => {\n const { classes } = useStyles();\n const [active, setActive] = useState(activeSection);\n const observer = useRef<IntersectionObserver | null>(null);\n const isScrolling = useRef(false); // Avoids flickering from IntersectionObserver\n const timeoutScrolling = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (!activeSection) {\n return undefined;\n }\n\n isScrolling.current = true;\n\n const targetId = transformNameToID(activeSection);\n setActive(targetId);\n\n const element = document.getElementById(targetId);\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n\n if (timeoutScrolling.current) {\n clearTimeout(timeoutScrolling.current);\n }\n\n timeoutScrolling.current = setTimeout(() => {\n isScrolling.current = false;\n }, 1000);\n\n return () => {\n if (timeoutScrolling.current) clearTimeout(timeoutScrolling.current);\n };\n }, [activeSection]);\n\n useEffect(() => {\n const sections = items\n .map((item) => ({\n id: transformNameToID(item),\n element: document.getElementById(transformNameToID(item)),\n }))\n .filter(({ element }) => element !== null);\n\n if (observer.current) {\n observer.current.disconnect();\n }\n\n if (sections.length === 0) {\n return undefined;\n }\n\n observer.current = new IntersectionObserver(\n (entries) => {\n if (isScrolling.current) {\n return;\n }\n\n const visibleSection = entries.find((entry) => entry.isIntersecting);\n if (visibleSection) {\n setActive(visibleSection.target.id);\n }\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: 0.6,\n },\n );\n\n sections.forEach(({ element }) => {\n if (element) observer.current?.observe(element);\n });\n\n return () => {\n observer.current?.disconnect();\n };\n }, [items]);\n\n const handleMenuClick = (id: string) => {\n isScrolling.current = true;\n setActive(id);\n\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n\n if (timeoutScrolling.current) clearTimeout(timeoutScrolling.current);\n timeoutScrolling.current = setTimeout(() => {\n isScrolling.current = false;\n }, 1000);\n };\n\n return (\n <List\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n subheader={\n <ListSubheader component=\"div\" id=\"nested-list-subheader\">\n Contents\n </ListSubheader>\n }\n >\n {items.map((item) => {\n const id = transformNameToID(item);\n return (\n <ListItemButton\n key={id}\n selected={active === id}\n classes={{ root: classes.root, selected: classes.selected }}\n onClick={() => handleMenuClick(id)}\n >\n <ListItemText primary={item} />\n\n {(warningItems?.includes(item) || warningItems?.includes(id)) && (\n <Tooltip title={warningMessage}>\n <WarningAmber color=\"warning\" />\n </Tooltip>\n )}\n </ListItemButton>\n );\n })}\n </List>\n );\n};\n\nexport default RenderContentList;\n","import { useEffect, useState } from 'react';\n\ninterface IUseGetActiveSection {\n containerId: string;\n contentList: string[];\n offset: number;\n}\n\nexport const transformNameToID = (name: string) =>\n name.replaceAll(' ', '_').toLocaleLowerCase();\n\nconst useGetActiveSection = ({\n containerId,\n contentList,\n offset = 175,\n}: IUseGetActiveSection) => {\n const [activeSection, setActiveSection] = useState(contentList[0]);\n\n useEffect(() => {\n const containerElement = document.getElementById(containerId);\n\n const handleScroll = () => {\n if (!containerElement) {\n return;\n }\n\n const scrollPosition = containerElement.scrollTop + offset;\n const currentSection = contentList.find((section) => {\n const element = document.getElementById(transformNameToID(section));\n return (\n element &&\n element.offsetTop <= scrollPosition &&\n element.offsetTop + element.offsetHeight > scrollPosition\n );\n });\n\n if (currentSection && currentSection !== activeSection) {\n setActiveSection(currentSection);\n }\n };\n\n containerElement?.addEventListener('scroll', handleScroll);\n\n return () => {\n containerElement?.removeEventListener('scroll', handleScroll);\n };\n }, [activeSection, containerId, contentList, offset]);\n\n return activeSection;\n};\n\nexport default useGetActiveSection;\n","import * as React from 'react';\n\nimport { Box, Divider, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ProductImage from '@/components/ProductImage/ProductImage';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n padding: theme.spacing(1),\n },\n divider: {\n margin: theme.spacing(1, 0),\n },\n smallTitle: {\n color: colors.rowProductCard.locationSubtitle,\n whiteSpace: 'nowrap',\n },\n upperRow: {\n width: '100%',\n },\n content: {\n width: '100%',\n },\n onlyProductName: {\n display: 'flex',\n alignItems: 'center',\n },\n}));\n\ntype ProductSize = 'small' | 'medium' | 'large';\n\ninterface Column {\n title: string;\n value: string | React.ReactNode;\n}\n\ninterface Product {\n image: string;\n name: string;\n status?: string;\n}\n\ninterface RowProductCardProps {\n /**\n * Possible actions or buttons that the card can have\n */\n children?: React.ReactNode;\n /**\n * Details about the product\n */\n columns?: Column[];\n /**\n * Where is the product location\n */\n location?: string;\n /**\n * Product information\n */\n product: Product;\n /**\n * Size of the product image\n */\n size?: ProductSize;\n}\n\n/**\n * A card on row format that can display informations about a product\n * It can be very detailed or lean\n */\nconst RowProductCard = ({\n children = null,\n columns = [],\n location = '',\n product,\n size = 'medium',\n}: RowProductCardProps) => {\n const { classes, cx } = useStyles();\n\n const hasColumns = columns.length >= 1;\n\n // TODO: Refactor <ProductImage /> to receive the desired size instead of the class\n const imageSize: Record<ProductSize, string> = {\n small: 'c_productbust__image_sm',\n medium: 'c_productbust__image_md',\n large: 'c_productbust__image_lg',\n };\n\n return (\n <Paper className={classes.wrapper}>\n <ProductImage\n image={product.image}\n status={product.status}\n size={imageSize[size]}\n />\n <div\n className={cx(classes.content, {\n [classes.onlyProductName]: !hasColumns && !location,\n })}\n >\n <Box\n className={classes.upperRow}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n {location ? (\n <Typography className={classes.smallTitle} variant=\"caption\">\n {`Location: ${location}`}\n </Typography>\n ) : null}\n\n <Typography variant=\"h6\">{product.name}</Typography>\n </div>\n {children}\n </Box>\n\n {hasColumns ? (\n <>\n <Divider className={classes.divider} />\n\n <Box\n sx={{\n display: 'flex',\n gap: '24px',\n }}\n >\n {columns.map((column) => (\n <div key={column.title}>\n <Typography className={classes.smallTitle} variant=\"caption\">\n {column.title}\n </Typography>\n {typeof column.value === 'string' ? (\n <Typography variant=\"body1\">{column.value}</Typography>\n ) : (\n column.value\n )}\n </div>\n ))}\n </Box>\n </>\n ) : null}\n </div>\n </Paper>\n );\n};\n\nexport default RowProductCard;\n","import React, { ReactNode, useEffect, useRef, useState } from 'react';\n\nimport { Box, Dialog, Divider, Fade, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n dialog: {\n margin: '0 auto',\n [theme.breakpoints.up('md')]: {\n maxWidth: 835,\n },\n },\n wrapper: {\n height: '100%',\n backgroundColor: colors.neutral100,\n },\n header: {\n padding: theme.spacing(3, 3, 0),\n },\n body: {\n paddingLeft: theme.spacing(3),\n },\n title: {\n margin: theme.spacing(3, 0),\n },\n scrollableContainer: {\n overflowY: 'auto',\n height: '100%',\n paddingRight: theme.spacing(3),\n },\n smallContainer: {\n paddingBottom: theme.spacing(3),\n },\n footer: {\n padding: theme.spacing(2, 3, 3),\n },\n}));\n\ninterface ScrollableDialogProps {\n body: ReactNode;\n footer?: ReactNode;\n header?: ReactNode;\n isOpen: boolean;\n title: string;\n}\n\nconst ScrollableDialog = ({\n body,\n footer = null,\n header = null,\n isOpen,\n title,\n}: ScrollableDialogProps) => {\n const [bodyHeight, setBodyHeight] = useState(0);\n const [hasScrollBar, setHasScrollBar] = useState(false);\n const [maxDialogHeight, setMaxDialogHeight] = useState(0);\n\n const { classes, cx } = useStyles();\n\n const headerRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n const titleRef = useRef<HTMLDivElement | null>(null);\n const bodyRef = useRef<HTMLDivElement | null>(null);\n\n const DIALOG_MARGIN = 65;\n const DEFAULT_MAX_HEIGHT = 728;\n const TITLE_MARGIN = 48;\n\n useEffect(() => {\n const handleResize = () => {\n const screenHeight = window.innerHeight;\n const newMaxHeight =\n screenHeight < DEFAULT_MAX_HEIGHT + DIALOG_MARGIN\n ? screenHeight - DIALOG_MARGIN\n : DEFAULT_MAX_HEIGHT;\n setMaxDialogHeight(newMaxHeight);\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const measureHeights = () => {\n const titleHeight = titleRef.current?.clientHeight || 0;\n const headerHeight = headerRef.current?.clientHeight || 0;\n const footerHeight = footerRef.current?.clientHeight || 0;\n\n const contentHeight =\n maxDialogHeight -\n titleHeight -\n headerHeight -\n footerHeight -\n TITLE_MARGIN;\n\n setBodyHeight(contentHeight);\n\n const scrollHeight = bodyRef.current?.scrollHeight || 0;\n setHasScrollBar(scrollHeight > contentHeight);\n };\n\n useEffect(() => {\n if (isOpen) {\n requestAnimationFrame(measureHeights);\n }\n }, [isOpen, header, footer, title, maxDialogHeight]);\n return (\n <Dialog className={classes.dialog} fullWidth maxWidth={false} open={isOpen}>\n <Fade\n in={isOpen}\n onEntered={() => {\n requestAnimationFrame(measureHeights);\n }}\n >\n <Paper className={classes.wrapper}>\n {header ? (\n <div className={classes.header} id=\"dialog-header\">\n {header}\n </div>\n ) : null}\n\n <div className={classes.body}>\n <Typography\n className={classes.title}\n id=\"dialog-title\"\n variant=\"h6\"\n >\n {title}\n </Typography>\n <div\n className={cx(classes.scrollableContainer, {\n [classes.smallContainer]: !hasScrollBar,\n })}\n id=\"dialog-body\"\n style={{\n maxHeight: bodyHeight,\n }}\n >\n {body}\n </div>\n </div>\n\n <Divider />\n\n {footer ? (\n <Box\n className={classes.footer}\n id=\"dialog-footer\"\n sx={{\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {footer}\n </Box>\n ) : null}\n </Paper>\n </Fade>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n","/* eslint-disable no-unused-vars */\nimport * as React from 'react';\n\nimport { Box, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\nimport SearchWithFilters from '@/components/SearchWithFilters/SearchWithFilters';\nimport { WIDTH_TO_SHRINK } from '@/config/constants';\n\ninterface ISearchAndFilterHeaderProps {\n appName: string;\n enterPressedInSearch?: () => void;\n extraButton?: React.ReactNode;\n filtersComponent?: React.ReactNode;\n appliedFiltersComponent?: React.ReactNode;\n filterClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n showFilters: boolean;\n updateFilters?: (filters: any) => void;\n searchValue?: string;\n}\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n alignContent: 'baseline',\n flexDirection: 'row',\n padding: theme.spacing(1),\n justifyContent: 'space-between',\n [theme.breakpoints.down(WIDTH_TO_SHRINK)]: {\n flexDirection: 'column',\n justifyContent: 'start',\n alignItems: 'flex-start',\n },\n },\n leftSection: {\n display: 'flex',\n },\n}));\n\nconst SearchAndFilterHeader = ({\n appName,\n enterPressedInSearch,\n extraButton,\n filterClick,\n showFilters,\n updateFilters,\n filtersComponent,\n appliedFiltersComponent,\n searchValue,\n}: ISearchAndFilterHeaderProps) => {\n const { classes } = useStyles();\n\n return (\n <Paper>\n <Box className={classes.wrapper}>\n <Box className={classes.container}>\n <Box className={classes.leftSection}>\n <AppLabel appName={appName} />\n <SearchWithFilters\n searchValue={searchValue}\n enterPressedInSearch={enterPressedInSearch}\n filterClick={filterClick}\n showFilters={showFilters}\n updateFilters={updateFilters}\n />\n </Box>\n <Box>{extraButton}</Box>\n </Box>\n\n {showFilters ? <Box>{filtersComponent}</Box> : null}\n {appliedFiltersComponent}\n </Box>\n </Paper>\n );\n};\n\nexport default SearchAndFilterHeader;\n","import { useState, ChangeEvent, KeyboardEvent, useEffect } from 'react';\nimport * as React from 'react';\n\nimport {\n ArrowDropDown as ArrowDropDownIcon,\n ArrowDropUp as ArrowDropUpIcon,\n Search as SearchIcon,\n} from '@mui/icons-material';\nimport { Button, Divider, InputBase, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n searchContainer: {\n height: 46,\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n width: 400,\n border: `1px solid ${colors.neutral400}`,\n boxShadow: 'none',\n '&:hover, &:focus, &:active': {\n boxShadow: '0 1px 6px rgba(32,33,36,0.28)',\n },\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n },\n icon: {\n margin: '4px 8px',\n opacity: 0.5,\n },\n filterButton: {\n textTransform: 'capitalize',\n padding: 0,\n marginLeft: 8,\n '&:hover': {\n background: 'none',\n },\n },\n divider: {\n height: 28,\n margin: 4,\n },\n}));\n\ninterface ISearchWithFiltersProps {\n enterPressedInSearch?: () => void;\n filterClick?: React.MouseEventHandler<HTMLButtonElement>;\n handleClick?: () => void;\n searchValue?: string;\n showFilters: boolean;\n updateFilters?: (filters: { search: string }) => void;\n disabled?: boolean;\n}\n\nconst SearchWithFilters = ({\n enterPressedInSearch,\n filterClick,\n handleClick,\n searchValue = '',\n showFilters,\n updateFilters = () => {},\n disabled = false,\n}: ISearchWithFiltersProps) => {\n const [searchText, setSearchText] = useState(searchValue);\n const { classes } = useStyles();\n\n const handleTextChange = (e: ChangeEvent<HTMLInputElement>) => {\n const { value } = e.target;\n setSearchText(value);\n updateFilters({ search: value });\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n enterPressedInSearch?.();\n }\n };\n\n useEffect(() => {\n setSearchText(searchValue);\n }, [searchValue]);\n\n return (\n <Paper className={classes.searchContainer}>\n <SearchIcon className={classes.icon} fontSize=\"small\" />\n <InputBase\n className={classes.input}\n placeholder=\"Search\"\n value={searchText}\n onChange={handleTextChange}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n inputProps={{ 'aria-label': 'search' }}\n />\n <Divider className={classes.divider} orientation=\"vertical\" />\n <Button\n className={classes.filterButton}\n onClick={filterClick}\n disabled={disabled}\n >\n Filters\n {showFilters ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}\n </Button>\n </Paper>\n );\n};\n\nexport default React.memo(SearchWithFilters);\n","import * as React from 'react';\n\nimport { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\nimport OutlinedButton from '@/components/Buttons/OutlinedButton/OutlinedButton';\nimport { WIDTH_TO_SHRINK } from '@/config/constants';\n\nimport SearchWithFiltersForTable from '../SearchWithFilters/SearchWithFiltersForTable';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n alignContent: 'baseline',\n flexDirection: 'row',\n padding: theme.spacing(1),\n justifyContent: 'space-between',\n [theme.breakpoints.down(WIDTH_TO_SHRINK)]: {\n flexDirection: 'column',\n justifyContent: 'start',\n alignItems: 'flex-start',\n },\n },\n leftSection: {\n display: 'flex',\n },\n}));\n\ninterface SearchAndFilterHeaderForTableProps {\n appName: string;\n button?: React.ReactNode;\n copy?: string;\n enterPressedInSearch?(...args: any[]): any;\n isOpen?: boolean;\n onFilterButtonClick?(...args: any[]): any;\n searchedValue?: string;\n showFilterButton?: boolean;\n updateSearch?(...args: any[]): any;\n}\n\nconst SearchAndFilterHeaderForTable = (\n props: SearchAndFilterHeaderForTableProps,\n) => {\n const {\n appName,\n copy,\n updateSearch,\n isOpen,\n onFilterButtonClick,\n showFilterButton,\n enterPressedInSearch,\n button,\n searchedValue,\n } = props;\n const { classes } = useStyles();\n\n return (\n <Box className={classes.container}>\n <Box className={classes.leftSection}>\n <AppLabel appName={appName} />\n\n <SearchWithFiltersForTable\n onFilterButtonClick={onFilterButtonClick}\n isOpen={isOpen}\n updateSearch={updateSearch}\n showFilterButton={showFilterButton}\n enterPressedInSearch={enterPressedInSearch}\n searchedValue={searchedValue}\n />\n\n {copy && (\n <Box\n sx={{\n margin: 0.5,\n }}\n >\n <OutlinedButton copy={copy} />\n </Box>\n )}\n </Box>\n <Box>{button}</Box>\n </Box>\n );\n};\n\nexport default React.memo(SearchAndFilterHeaderForTable);\n","import { useState, memo } from 'react';\n\nimport {\n ArrowDropDown as ArrowDropDownIcon,\n ArrowDropUp as ArrowDropUpIcon,\n Search as SearchIcon,\n} from '@mui/icons-material';\nimport { Box, Button, Divider, InputBase, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n c_search: {\n height: 46,\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n width: 400,\n boxShadow: 'none',\n border: '1px solid',\n borderColor: colors.neutral400,\n margin: '8px 16px',\n '&:hover': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n '&:focus': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n '&:active': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n },\n c_search__input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n },\n c_search__icon: {\n padding: '4px 8px',\n opacity: 0.5,\n alignContent: 'center',\n display: 'flex',\n },\n c_search__bt_icon_filter: {\n padding: 0,\n marginLeft: 8,\n },\n c_search__bt_filter: {\n textTransform: 'capitalize',\n '&:hover': {\n background: 'none',\n },\n },\n c_search__divider: {\n height: 28,\n margin: 4,\n },\n icon: {\n fill: colors.iconSearch,\n },\n}));\n\ninterface SearchWithFiltersForTableProps {\n onFilterButtonClick?(...args: any[]): any;\n isOpen?: boolean;\n updateSearch?(...args: any[]): any;\n enterPressedInSearch?(...args: any[]): any;\n showFilterButton?: boolean;\n searchedValue?: string;\n}\n\nconst SearchWithFiltersForTable = (props: SearchWithFiltersForTableProps) => {\n const {\n onFilterButtonClick,\n isOpen,\n updateSearch,\n showFilterButton,\n enterPressedInSearch,\n searchedValue,\n } = props;\n const { classes } = useStyles();\n const [searchText, setSearchText] = useState('');\n\n const handleTextChange = (e) => {\n const { value } = e.target;\n\n setSearchText(value);\n updateSearch?.(value);\n };\n\n const handleFilterButtonClick = () => {\n onFilterButtonClick?.(!isOpen);\n };\n\n const handleKeyPress = (e) => {\n if (e.key === 'Enter' && typeof enterPressedInSearch === 'function') {\n enterPressedInSearch();\n }\n };\n\n const ArrowIcon = isOpen ? ArrowDropUpIcon : ArrowDropDownIcon;\n return (\n <Paper className={classes.c_search}>\n <Box className={classes.c_search__icon}>\n <SearchIcon className={classes.icon} fontSize=\"small\" />\n </Box>\n\n <InputBase\n className={classes.c_search__input}\n placeholder=\"Search\"\n value={searchedValue || searchText}\n onChange={handleTextChange}\n onKeyDown={handleKeyPress}\n />\n\n {showFilterButton && (\n <>\n <Divider\n className={classes.c_search__divider}\n orientation=\"vertical\"\n />\n\n <Button\n className={classes.c_search__bt_filter}\n onClick={handleFilterButtonClick}\n >\n Filters\n <ArrowIcon className={classes.c_search__bt_icon_filter} />\n </Button>\n </>\n )}\n </Paper>\n );\n};\n\nexport default memo(SearchWithFiltersForTable);\n","import React, { ReactNode } from 'react';\n\nimport { Box, Paper } from '@mui/material';\n\nimport { SearchFieldDebounced } from '../SearchFieldDebounced/SearchFieldDebounced';\n\nexport type SearchHeaderProps = {\n renderButton?: ReactNode;\n renderExtraAction?: ReactNode;\n children?: ReactNode;\n onSearch?: (value: string) => void;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n width?: number;\n};\n\nexport const SearchHeader = ({\n renderButton,\n renderExtraAction,\n children,\n onSearch,\n value,\n onChange,\n onKeyDown,\n width,\n}: SearchHeaderProps) => {\n return (\n <Paper\n sx={{\n display: 'flex',\n flexDirection: 'column',\n padding: 2,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <SearchFieldDebounced\n width={width}\n onSearch={onSearch}\n value={value}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n\n {renderExtraAction}\n </Box>\n\n {renderButton}\n </Box>\n\n {children}\n </Paper>\n );\n};\n","import React from 'react';\n\nimport HistoryIcon from '@mui/icons-material/History';\nimport InfoIcon from '@mui/icons-material/Info';\nimport { Box, Divider, IconButton, Tooltip, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'space-between',\n },\n titleContainer: {\n display: 'flex',\n padding: '48px 0px 8px 0px',\n gap: '8px',\n alignItems: 'center',\n alignSelf: 'stretch',\n },\n icon: {\n color: colors.neutral500,\n },\n typography: {\n cursor: 'pointer',\n textDecoration: 'none',\n color: colors.muiPrimaryBlack,\n },\n actionButtons: {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n marginBottom: 8,\n },\n addButton: {\n color: theme.palette.primary.main,\n },\n}));\n\nexport interface SectionNameProps {\n name: string;\n tooltipDescription?: string;\n sectionId?: string;\n buttonText?: string;\n buttonType?:\n | 'add'\n | 'apps'\n | 'childCare'\n | 'delete'\n | 'edit'\n | 'importExport'\n | 'notes'\n | 'print'\n | 'save'\n | 'upload'\n | 'refresh'\n | 'download'\n | 'publish';\n handleButtonClick?: () => void;\n buttonDisabled?: boolean;\n openHistoryLog?: () => void;\n}\n\nconst SectionName = ({\n name,\n tooltipDescription,\n sectionId,\n handleButtonClick,\n buttonText,\n buttonType = 'add',\n buttonDisabled,\n openHistoryLog,\n}: SectionNameProps) => {\n const { classes } = useStyles();\n\n const handleScroll = (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n e.preventDefault();\n\n if (sectionId) {\n const targetId = sectionId.startsWith('#')\n ? sectionId.slice(1)\n : sectionId;\n const element = document.getElementById(targetId);\n\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n }\n };\n\n return (\n <Box className={classes.container}>\n <Box className={classes.titleContainer}>\n <Typography\n variant=\"h5\"\n onClick={handleScroll}\n className={classes.typography}\n >\n {name}\n </Typography>\n {tooltipDescription ? (\n <Tooltip title={tooltipDescription} placement=\"right\">\n <InfoIcon\n fontSize=\"small\"\n data-testid=\"InfoIcon\"\n className={classes.icon}\n />\n </Tooltip>\n ) : null}\n </Box>\n\n <Box className={classes.actionButtons}>\n {buttonText ? (\n <ExtendedButton\n type={buttonType}\n buttonType=\"button\"\n className={classes.addButton}\n color=\"inherit\"\n copy={buttonText || ''}\n disabled={buttonDisabled}\n onClick={handleButtonClick}\n variant=\"text\"\n />\n ) : null}\n\n {openHistoryLog && buttonText && (\n <Divider orientation=\"vertical\" sx={{ height: '24px' }} />\n )}\n\n {openHistoryLog && (\n <IconButton size=\"small\" onClick={() => openHistoryLog()}>\n <HistoryIcon />\n </IconButton>\n )}\n </Box>\n </Box>\n );\n};\n\nexport default SectionName;\n","import { FC, useState } from 'react';\n\nimport {\n Box,\n Checkbox,\n CircularProgress,\n FormControl,\n FormHelperText,\n InputLabel,\n ListItemText,\n MenuProps,\n Select,\n SelectProps,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport { Option } from '../SmartSelect/SmartSelect';\n\nexport type SmartMultipleSelectProps = {\n inputLabel?: string;\n variant?: SelectProps['variant'];\n size?: SelectProps['size'];\n error?: boolean;\n values?: Option[];\n defaultValues?: Option[];\n onOpen?: () => void;\n onChange?: (values: Option[]) => void;\n onClose?: (values: Option[]) => void;\n menuOptions?: Option[];\n isLoading?: boolean;\n disabled?: boolean;\n emptyMessage?: string;\n helperText?: string;\n menuProps?: Partial<MenuProps>;\n};\n\nexport const SmartMultipleSelect: FC<SmartMultipleSelectProps> = ({\n inputLabel,\n variant = 'standard',\n size,\n error,\n values,\n defaultValues,\n onChange,\n onOpen,\n onClose,\n menuOptions,\n isLoading,\n disabled,\n emptyMessage = 'No options.',\n helperText,\n menuProps,\n}) => {\n const [localValues, setLocalValues] = useState<Option[]>(defaultValues ?? []);\n\n const handleChangeOption = (option: Option) => {\n let newValues: Option[] = [];\n\n const selectedIndex = localValues.findIndex(\n (val) => val.value === option.value,\n );\n if (selectedIndex === -1) {\n newValues = [...localValues, option];\n } else {\n newValues = localValues.filter((_, i) => i !== selectedIndex);\n }\n setLocalValues(newValues);\n onChange?.(newValues);\n };\n\n const renderMenuContent = () =>\n !menuOptions?.length ? (\n <Box\n sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}\n >\n <Typography>{emptyMessage}</Typography>\n </Box>\n ) : (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {menuOptions?.map((option, index) => {\n const selectedValues = values ?? localValues ?? [];\n const isSelected = selectedValues.some(\n (selected) => selected.value === option.value,\n );\n\n return (\n <Box\n key={option.value ?? index}\n onClick={() => handleChangeOption(option)}\n sx={{\n p: 0.5,\n display: 'flex',\n cursor: 'pointer',\n backgroundColor: isSelected\n ? colors.lightBlueBackground\n : undefined,\n }}\n >\n <Checkbox disableRipple sx={{ py: 0.5 }} checked={isSelected} />\n\n <ListItemText primary={option.label} />\n </Box>\n );\n })}\n </Box>\n );\n\n return (\n <FormControl\n fullWidth\n variant={variant}\n size={size}\n disabled={disabled}\n error={error}\n >\n <InputLabel>{inputLabel}</InputLabel>\n\n <Select\n multiple\n label={inputLabel}\n error={error}\n value={values ?? localValues}\n defaultValue={defaultValues}\n MenuProps={menuProps}\n onOpen={onOpen}\n onClose={() => onClose?.(localValues)}\n renderValue={(selectedValues) => {\n const valuesString = selectedValues.map((v) => v.label)?.join(', ');\n\n return (\n <DynamicOverflowTooltip tooltipDescription={valuesString}>\n {valuesString}\n </DynamicOverflowTooltip>\n );\n }}\n >\n {isLoading ? (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <CircularProgress size={24} />\n </Box>\n ) : (\n renderMenuContent()\n )}\n </Select>\n\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { memo } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { red } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n red: {\n backgroundColor: red['50'],\n color: red['500'],\n padding: theme.spacing(1.5),\n borderRadius: '5px',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n marginRight: theme.spacing(2),\n width: 'fit-content',\n },\n}));\n\ninterface SquareLabelProps {\n color?: string;\n copy?: any;\n}\n\nconst SquareLabel = ({ color, copy }: SquareLabelProps) => {\n const { classes } = useStyles();\n return <Typography className={classes[color as any]}>{copy}</Typography>;\n};\n\nexport default memo(SquareLabel);\n","import { memo } from 'react';\n\nimport { Grid, Switch } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\ninterface LSwitchProps {\n classes?: any;\n checked?: any;\n labelOn?: any;\n labelOff?: any;\n handleChange?: any;\n disabled: any;\n}\n\nconst LSwitch = ({\n checked,\n labelOn,\n labelOff,\n handleChange,\n classes,\n disabled,\n}: LSwitchProps) => (\n <div className={classes.c_switch}>\n <Grid\n component=\"label\"\n container\n spacing={1}\n sx={{\n alignItems: 'center',\n }}\n >\n {labelOff && <Grid>{labelOff}</Grid>}\n <Grid>\n <Switch\n checked={checked}\n color=\"primary\"\n onChange={handleChange}\n disabled={disabled}\n />\n </Grid>\n {labelOn && <Grid>{labelOn}</Grid>}\n </Grid>\n </div>\n);\n\nconst LabelledSwitch = withStyles(LSwitch, (theme) => ({\n c_switch: {},\n default: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n primary: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n secondary: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n}));\n\nexport default memo(LabelledSwitch);\n","import React, { useState, useEffect } from 'react';\n\nimport { Menu } from '@mui/material';\nimport classNames from 'classnames';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\nimport { AutocompleteFilterMenuContent } from '../AutocompleteFilterMenuContent/AutocompleteFilterMenuContent';\nimport { CheckboxFilterMenuContent } from '../CheckboxFilterMenuContent/CheckboxFilterMenuContent';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n HeaderFilters,\n HeadCell,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nconst MAX_WIDTH = 276;\n\nexport type SmartTableHeaderFilterMenuProps = {\n headCell: HeadCell;\n headerFilters: HeaderFilters;\n numActiveFilters: number;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n onApplyFilters?: TableDesktopProps['onApplyFilters'];\n};\n\nconst findFilterIndex = (\n filters: HeaderFilterOptions,\n filterOption: string | HeaderFilterObject,\n) =>\n filters.findIndex((item: string | HeaderFilterObject) => {\n if (typeof item === 'string' && typeof filterOption === 'string') {\n return item === filterOption;\n }\n if (typeof item === 'object' && typeof filterOption === 'object') {\n return item.id === filterOption.id;\n }\n return false;\n });\n\nexport const SmartTableHeaderFilterMenu = ({\n headCell,\n numActiveFilters,\n headerFilters,\n shouldShowCheckOnFilter,\n onApplyFilters,\n}: SmartTableHeaderFilterMenuProps) => {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [filterOptionsData, setFilterOptionsData] = useState<\n HeaderFilterOptions | undefined\n >();\n const [selectedFilterOptions, setSelectedFilterOptions] =\n useState<HeaderFilterOptions>(headerFilters[headCell.id] ?? []);\n\n const numFilterOptions = filterOptionsData?.length ?? 0;\n\n useEffect(() => {\n if (headCell.filterOptions) {\n setFilterOptionsData(headCell.filterOptions);\n } else if (headCell.filterType === 'boolean') {\n setFilterOptionsData([\n { id: 'true', label: 'Yes' },\n { id: 'false', label: 'No' },\n ]);\n }\n }, [headCell.filterOptions]);\n\n const handleFilterMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\n if (!numFilterOptions && headCell.filterType === 'default') {\n headCell.refetchFilterOptions?.();\n }\n setAnchorEl(event.currentTarget);\n };\n\n const handleFilterMenuClose = () => {\n setSelectedFilterOptions(headerFilters[headCell.id]);\n setAnchorEl(null);\n };\n\n const handleSelectAllChange = (checked: boolean) => {\n if (checked) {\n setSelectedFilterOptions([\n ...(filterOptionsData ?? []),\n ] as HeaderFilterOptions);\n return;\n }\n\n setSelectedFilterOptions([]);\n };\n\n const handleFilterOptionChange = (option: string | HeaderFilterObject) => {\n const selectedIndex = findFilterIndex(selectedFilterOptions, option);\n\n let newSelected: HeaderFilterOptions;\n\n if (selectedIndex === -1) {\n if (typeof option === 'string') {\n newSelected = [...(selectedFilterOptions as string[]), option];\n } else {\n newSelected = [\n ...(selectedFilterOptions as HeaderFilterObject[]),\n option,\n ];\n }\n } else {\n newSelected = selectedFilterOptions.filter(\n (_, index) => index !== selectedIndex,\n ) as HeaderFilterOptions;\n }\n\n setSelectedFilterOptions(newSelected);\n };\n\n const handleApplyFiltersClick = (shouldSave: boolean) => {\n const updatedFilters: HeaderFilters = {\n ...headerFilters,\n [headCell.id]: [...selectedFilterOptions] as HeaderFilterOptions,\n };\n\n onApplyFilters?.(updatedFilters, shouldSave);\n setAnchorEl(null);\n };\n\n useEffect(() => {\n setSelectedFilterOptions(headerFilters[headCell.id] ?? []);\n }, [headerFilters, headCell.id]);\n\n return (\n <>\n <ActiveFiltersIconButton\n numActiveFilters={numActiveFilters}\n handleClick={handleFilterMenuOpen}\n className={classNames('filter-menu-trigger', {\n 'has-active-filters': !!numActiveFilters || !!anchorEl,\n })}\n />\n\n <Menu\n open={!!anchorEl}\n onClose={handleFilterMenuClose}\n anchorEl={anchorEl}\n data-testid=\"filter-menu\"\n slotProps={{\n list: {\n sx: { p: 0, maxWidth: MAX_WIDTH },\n },\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n {headCell.filterType === 'autocomplete' ? (\n <AutocompleteFilterMenuContent\n columnId={headCell.id}\n labelFieldName={headCell.fieldName ?? ''}\n isLoading={headCell.isFetchingFilterOptions}\n filterOptions={filterOptionsData}\n onAutocompleteSearch={headCell.onAutocompleteSearch}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={handleFilterOptionChange}\n onApplyFiltersClick={handleApplyFiltersClick}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <CheckboxFilterMenuContent\n columnId={headCell.id}\n labelFieldName={headCell.fieldName ?? ''}\n isLoading={headCell.isFetchingFilterOptions}\n selectedFilterOptions={selectedFilterOptions}\n filterOptions={filterOptionsData ?? []}\n onSelectAllChange={handleSelectAllChange}\n onFilterOptionChange={handleFilterOptionChange}\n onApplyFiltersClick={handleApplyFiltersClick}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n )}\n </Menu>\n </>\n );\n};\n","import { MouseEvent, ChangeEvent, memo } from 'react';\n\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { SmartTableHeaderFilterMenu } from '../SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu';\nimport {\n HeaderFilters,\n HeadCell,\n Order,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\ntype SmartTableHeaderProps = {\n order: Order;\n orderBy: string;\n headCells: HeadCell[];\n numSelectedRows: number;\n numRows: number;\n enableCheckboxSelection?: boolean;\n headerFilters: HeaderFilters;\n onRequestSort: (event: MouseEvent<unknown>, property: string) => void;\n onSelectAllClick: (event: ChangeEvent<HTMLInputElement>) => void;\n onApplyFilters?: TableDesktopProps['onApplyFilters'];\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const SmartTableHeader = memo(\n ({\n order,\n orderBy,\n headCells,\n numSelectedRows,\n numRows,\n enableCheckboxSelection = false,\n headerFilters,\n onRequestSort,\n onSelectAllClick,\n onApplyFilters,\n shouldShowCheckOnFilter,\n }: SmartTableHeaderProps) => {\n const createSortHandler = (property) => (event) => {\n onRequestSort(event, property);\n };\n\n const isSortActive = (headCellId: string) => orderBy === headCellId;\n\n return (\n <TableHead>\n <TableRow>\n {enableCheckboxSelection ? (\n <TableCell\n padding=\"checkbox\"\n sx={{ backgroundColor: colors.neutral100 }}\n >\n <Checkbox\n color=\"primary\"\n disableRipple\n indeterminate={numSelectedRows > 0 && numSelectedRows < numRows}\n checked={numRows > 0 && numSelectedRows === numRows}\n onChange={onSelectAllClick}\n />\n </TableCell>\n ) : null}\n\n {headCells.map((headCell) => (\n <TableCell\n key={headCell.id}\n align=\"left\"\n width={headCell.width ?? 'auto'}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={{\n backgroundColor: colors.neutral100,\n whiteSpace: 'nowrap',\n '& .filter-menu-trigger': {\n visibility: 'hidden',\n opacity: 0,\n transition: 'visibility 0.1s, opacity 0.1s ease-in',\n },\n '&:hover .filter-menu-trigger, & .filter-menu-trigger.has-active-filters':\n {\n visibility: 'visible',\n opacity: 1,\n },\n '&:hover .MuiTableSortLabel-root': {\n '& .MuiTableSortLabel-icon': {\n opacity: 1,\n },\n },\n }}\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n gap={headCell.disableSort ? 1 : 0}\n >\n {headCell.disableSort ? (\n (headCell.renderHeader ?? (\n <Tooltip title={headCell.labelTooltip ?? ''} arrow>\n <Typography variant=\"subtitle2\" mt={0.25} mb={-0.25}>\n {headCell.label}\n </Typography>\n </Tooltip>\n ))\n ) : (\n <Tooltip title={headCell.labelTooltip ?? ''} arrow>\n <TableSortLabel\n data-testid=\"table-sort-label\"\n active={isSortActive(headCell.id)}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.renderHeader ?? headCell.label}\n\n {/* Not visible, only for accessibility purposes */}\n {orderBy === headCell.id ? (\n <span\n style={{\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n }}\n >\n {order === 'desc'\n ? 'sorted descending'\n : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n </Tooltip>\n )}\n\n {headCell.filterType ? (\n <SmartTableHeaderFilterMenu\n headCell={headCell}\n headerFilters={headerFilters}\n numActiveFilters={headerFilters[headCell.id]?.length ?? 0}\n onApplyFilters={onApplyFilters}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : null}\n </Box>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n },\n);\n","import { useLayoutEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Paper,\n Table as MUITable,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n} from '@mui/material';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport debounce from 'lodash/debounce';\nimport { makeStyles } from 'tss-react/mui';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport TableLoading from '../TableLoading/TableLoading';\nimport { calculateRowsPerPage, getSorting, stableSort } from './helpers';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n height: 'calc(100vh - 262px)',\n overflow: 'scroll',\n },\n paper: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n header: {\n '& .MuiTableSortLabel-root': {\n fontWeight: 600,\n fontSize: '.875rem',\n },\n },\n container: {\n maxHeight: 'calc(100% - 0)',\n },\n}));\n\ninterface TableProps {\n headCells?: {\n id?: string;\n label?: string;\n numeric?: boolean;\n disablePadding?: boolean;\n }[];\n data?: {}[];\n RenderItem?: React.ComponentType<any> | null;\n isLoading?: boolean;\n updateSort?(...args: any[]): any;\n page?: number;\n rowsPerPage?: number;\n onRowClick?(...args: any[]): any;\n serverRendered?: boolean;\n appliedFilters?: any;\n doNotCalculateRows?: any;\n}\n\nconst Table = ({\n appliedFilters,\n data,\n doNotCalculateRows,\n headCells,\n isLoading,\n onRowClick,\n page = 0,\n RenderItem = null,\n rowsPerPage: defaultRowsPerPage = 10,\n serverRendered,\n updateSort,\n}: TableProps) => {\n const [order, setOrder] = useState(appliedFilters?.sortDir || 'desc');\n const [orderBy, setOrderBy] = useState(\n appliedFilters?.sortField || 'delivery_date',\n );\n const [rowsPerPage, setRowsPerPage] = useState(defaultRowsPerPage);\n\n const { classes } = useStyles();\n\n const rowHeight = 56;\n const emptyRows =\n rowsPerPage - Math.min(rowsPerPage, data!.length - page * rowsPerPage);\n\n const handleRequestSort = (event, property) => {\n const isAsc = orderBy === property && order === 'asc';\n const orderDir = isAsc ? 'desc' : 'asc';\n\n setOrder(orderDir);\n setOrderBy(property);\n\n if (updateSort) {\n updateSort(property, orderDir);\n }\n };\n\n useLayoutEffect(() => {\n if (!doNotCalculateRows) {\n return;\n }\n\n function updateRowsPerPage() {\n const newRowsPerPage = calculateRowsPerPage(rowHeight);\n setRowsPerPage(newRowsPerPage);\n }\n\n updateRowsPerPage();\n const debounced = debounce(updateRowsPerPage, 150);\n window.addEventListener('resize', debounced);\n\n return () => {\n window.removeEventListener('resize', debounced);\n };\n }, [doNotCalculateRows]);\n\n const createSortHandler = (property) => (event) => {\n handleRequestSort(event, property);\n };\n\n const getTableRows = () => {\n const index = page;\n const rows = serverRendered\n ? data\n : stableSort(data, getSorting(order, orderBy)).slice(\n index * rowsPerPage,\n index * rowsPerPage + rowsPerPage,\n );\n\n const rowsComponents = rows.map((row) => {\n if (RenderItem) {\n return <RenderItem key={row.id} {...row} />;\n }\n\n return (\n <TableRow key={row.id} hover onClick={() => onRowClick?.(row)}>\n {headCells?.map((column: any) => (\n <TableCell key={column.id}>{row[column.id]}</TableCell>\n ))}\n </TableRow>\n );\n });\n\n if (emptyRows > 0 && rowsPerPage > emptyRows) {\n rowsComponents.push(\n <TableRow key={uuidv4()} style={{ height: rowHeight * emptyRows }}>\n <TableCell colSpan={8} />\n </TableRow>,\n );\n }\n\n return rowsComponents;\n };\n\n return (\n <Paper className={classes.root}>\n <Box className={classes.paper}>\n {isLoading ? (\n <TableLoading rowHeight={rowHeight} rowsPerPage={rowsPerPage} />\n ) : (\n <TableContainer className={classes.container}>\n <MUITable size=\"medium\" stickyHeader>\n <TableHead className={classes.header}>\n <TableRow>\n {headCells?.map((headCell) => (\n <TableCell\n key={headCell.id}\n align=\"left\"\n sortDirection={\n orderBy === headCell.id ? order : undefined\n }\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.label}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n\n <TableBody>\n {getTableRows()}\n {rowsPerPage === emptyRows && (\n <TableRow style={{ height: rowHeight * emptyRows }}>\n <TableCell colSpan={8} align=\"center\">\n Nothing to display\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </MUITable>\n </TableContainer>\n )}\n </Box>\n </Paper>\n );\n};\n\nexport default Table;\n","import React from 'react';\n\nimport { Box, Skeleton } from '@mui/material';\n\ninterface TableLoadingProps {\n rowsPerPage?: number;\n rowHeight?: number;\n}\n\nconst TableLoading: React.FC<TableLoadingProps> = ({\n rowsPerPage,\n rowHeight,\n}) => (\n <Box>\n {Array.from({ length: rowsPerPage ?? 0 }).map((_, index) => (\n <Skeleton\n animation=\"pulse\"\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n data-testid=\"table-loading-skeleton\"\n style={{ margin: '8px', opacity: 0.4 }}\n variant=\"rectangular\"\n height={rowHeight}\n />\n ))}\n </Box>\n);\n\nexport default TableLoading;\n","export function stableSort(array, cmp) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = cmp(a[0], b[0]);\n if (order !== 0) {\n return order;\n }\n return a[1] - b[1];\n });\n return stabilizedThis.map((el) => el[0]);\n}\n\nfunction descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getSorting(order, orderBy) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nexport function calculateRowsPerPage(rowHeight) {\n const appContainerDom = document.getElementById('mainContainer');\n const headerDom = document.getElementById('aboveTableHeader');\n\n if (appContainerDom && headerDom) {\n return Math.floor(\n (appContainerDom.clientHeight - headerDom.clientHeight - 24) / rowHeight -\n 2,\n );\n }\n return 1;\n}\n","import {\n ComponentType,\n useMemo,\n useState,\n MouseEvent,\n ReactNode,\n ChangeEvent,\n useEffect,\n useRef,\n} from 'react';\n\nimport { Paper, Table, TableBody, TableContainer, Box } from '@mui/material';\n\nimport { SmartTableHeader } from '../SmartTableHeader/SmartTableHeader';\nimport { TableDesktopFooterProps } from '../TableDesktopFooter/TableDesktopFooter';\nimport { TableDesktopLoadingState } from '../TableDesktopLoadingState/TableDesktopLoadingState';\nimport { TableDesktopNoColumnsMessage } from '../TableDesktopNoColumnsMessage/TableDesktopNoColumnsMessage';\nimport { TableDesktopRows } from '../TableDesktopRows/TableDesktopRows';\nimport { TableDesktopRowSelectionBar } from '../TableDesktopRowSelectionBar/TableDesktopRowSelectionBar';\nimport { TableDesktopToolbarProps } from '../TableDesktopToolbar/TableDesktopToolbar';\nimport TableEmptyResult from '../TableEmptyResult/TableEmptyResult';\n\nexport type Order = 'asc' | 'desc';\n\nexport type EditableCellType =\n | 'select'\n | 'multipleSelect'\n | 'checkbox'\n | 'text'\n | 'numeric'\n | 'date'\n | 'time'\n | 'tags';\n\nexport type HeaderFilterObject = {\n id: number | string;\n [key: string]: number | string;\n};\n\nexport type HeaderFilterOptions = string[] | HeaderFilterObject[];\n\nexport type HeaderFilters = {\n [key: string]: HeaderFilterOptions;\n};\n\nexport type UpdateEditableCellParams = {\n rowId?: RowId;\n columnId: string;\n value: string | number | boolean | (string | number)[] | null;\n label: string | number | boolean | (string | number)[] | null;\n};\n\nexport type RowId = string | number;\n\nexport type HeadCell = {\n id: string;\n label?: string;\n labelTooltip?: string;\n fieldName?: string;\n numeric?: boolean;\n disablePadding?: boolean;\n width?: number | string;\n enabled?: boolean;\n disableSort?: boolean;\n renderHeader?: ReactNode;\n filterType?: 'default' | 'autocomplete' | 'boolean';\n filterOptions?: HeaderFilterOptions;\n refetchFilterOptions?: () => void;\n isFetchingFilterOptions?: boolean;\n editableCellType?: EditableCellType;\n validateInput?: (value: string | null) => boolean;\n onUpdateEditableCell?: (params: UpdateEditableCellParams) => void;\n onAutocompleteSearch?: (value: string) => void;\n allowBlankSelectOption?: boolean;\n bulkUpdateDisabled?: boolean;\n};\n\nexport type TableDesktopProps = {\n data: any[];\n headCells: HeadCell[];\n RenderItem: ComponentType<any>;\n renderToolbar?: (props: TableDesktopToolbarProps) => ReactNode;\n renderFooter?: (props: {\n refetchData: TableDesktopFooterProps['refetchData'];\n isFetching: TableDesktopFooterProps['isFetching'];\n }) => ReactNode;\n appliedFilters?: any;\n headerFilters?: HeaderFilters;\n children?: ReactNode;\n height?: number | string;\n rowHeight?: number;\n rowsPerPage?: number;\n totalDataCount?: number;\n isLoading?: boolean;\n enableEditMode?: boolean;\n disableInternalSort?: boolean;\n updateSort?: (sortField: string, sortDir: Order) => void;\n showClearFilterButton?: boolean;\n handleClickOnClearFiltersButton?: () => void;\n deleteItem?: (\n id: number,\n contentTypeName?: string,\n appTypeName?: string,\n ) => void;\n keyField?: string | ((rowData: any) => string);\n tableLayout?: 'fixed' | 'auto';\n onApplyFilters?: (updatedFilters: HeaderFilters, shouldSave: boolean) => void;\n refetchData?: () => Promise<unknown>;\n shouldShowCheckOnFilter?: (\n columnId: string,\n filterOption?: string | HeaderFilterObject,\n ) => boolean;\n};\n\nconst resolveKeyValue = (\n keyField: string | ((rowData: any) => string),\n rowData: any,\n): RowId => {\n if (typeof keyField === 'string') {\n return rowData[keyField];\n }\n return keyField?.(rowData);\n};\n\nexport const TableDesktop = ({\n data = [],\n headCells,\n RenderItem,\n renderToolbar,\n renderFooter,\n appliedFilters,\n headerFilters = {},\n children,\n height,\n rowHeight = 56,\n rowsPerPage = 10,\n totalDataCount = 0,\n isLoading = false,\n enableEditMode = false,\n disableInternalSort = false,\n updateSort,\n showClearFilterButton,\n handleClickOnClearFiltersButton,\n deleteItem,\n keyField = 'id',\n tableLayout = 'auto',\n onApplyFilters,\n shouldShowCheckOnFilter,\n refetchData,\n}: TableDesktopProps) => {\n const tableToolbarMenuButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const [tableToolbarMenuAnchor, setTableToolbarMenuAnchor] =\n useState<HTMLButtonElement | null>(null);\n const [order, setOrder] = useState<Order>(appliedFilters?.sortDir || 'desc');\n const [orderBy, setOrderBy] = useState<string>(\n appliedFilters?.sortField || 'delivery_date',\n );\n const [selectedRows, setSelectedRows] = useState<Set<RowId>>(new Set());\n const [isRowsFromAllPagesSelected, setIsRowsFromAllPagesSelected] =\n useState(false);\n const [isBulkChangesMode, setIsBulkChangesMode] = useState(false);\n\n const numRows = data.length;\n const numSelectedRows = useMemo(() => {\n const currentPageIds = new Set(\n data.map((row) => resolveKeyValue(keyField, row)),\n );\n return [...selectedRows].filter((id) => currentPageIds.has(id)).length;\n }, [data, selectedRows, keyField]);\n\n const isEveryRowInPageSelected = numRows > 0 && numSelectedRows === numRows;\n\n const visibleHeadCells = useMemo(\n () => headCells.filter((headCell) => headCell?.enabled ?? true),\n [headCells],\n );\n\n const handleClickToolbarMenuOpen = () => {\n setTableToolbarMenuAnchor(tableToolbarMenuButtonRef.current);\n };\n\n const handleRequestSort = (_event: MouseEvent<unknown>, property: string) => {\n const isAsc = orderBy === property && order === 'asc';\n const orderDir = isAsc ? 'desc' : 'asc';\n setOrder(orderDir);\n setOrderBy(property);\n if (updateSort) {\n updateSort(property, orderDir);\n }\n };\n\n const selectAllRowsInPage = () => {\n const allRowsIds = new Set(\n data.map((row) => resolveKeyValue(keyField, row)),\n );\n setSelectedRows(allRowsIds);\n };\n\n const resetSelectedRows = () => {\n setSelectedRows(new Set());\n setIsRowsFromAllPagesSelected(false);\n };\n\n const handleSelectAllClick = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.checked) {\n selectAllRowsInPage();\n return;\n }\n\n resetSelectedRows();\n };\n\n const handleRowCheckboxChange = (\n event: ChangeEvent<unknown>,\n rowId: RowId,\n ) => {\n event.stopPropagation();\n setSelectedRows((prev) => {\n const newSelected = new Set(prev);\n\n if (newSelected.has(rowId)) {\n newSelected.delete(rowId);\n } else {\n newSelected.add(rowId);\n }\n\n if (newSelected.size < numRows) {\n setIsRowsFromAllPagesSelected(false);\n }\n return newSelected;\n });\n };\n\n const handleSelectRowsFromAllPagesClick = () => {\n setIsRowsFromAllPagesSelected(true);\n selectAllRowsInPage();\n };\n\n const handleClearSelectionClick = () => {\n resetSelectedRows();\n };\n\n const handleApplyFilters = (\n updatedFilters: HeaderFilters,\n shouldSave: boolean,\n ) => {\n resetSelectedRows();\n onApplyFilters?.(updatedFilters, shouldSave);\n };\n\n const handleChangeBulkChangesMode = (checked: boolean) => {\n setIsBulkChangesMode(checked);\n if (!checked) {\n resetSelectedRows();\n refetchData?.();\n }\n };\n\n useEffect(() => {\n if (isRowsFromAllPagesSelected) {\n selectAllRowsInPage();\n }\n }, [isRowsFromAllPagesSelected, data]);\n\n const renderBody = () => {\n if (isLoading) {\n return (\n <TableDesktopLoadingState\n numRows={Math.min(rowsPerPage, 10)}\n numColumns={visibleHeadCells.length + (isBulkChangesMode ? 1 : 0)}\n rowHeight={rowHeight}\n />\n );\n }\n\n if (numRows === 0) {\n return (\n <TableEmptyResult\n showClearFilterButton={showClearFilterButton}\n handleClickOnClearFiltersButton={handleClickOnClearFiltersButton}\n colSpan={\n isBulkChangesMode\n ? visibleHeadCells.length + 1\n : visibleHeadCells.length\n }\n />\n );\n }\n\n return (\n <TableDesktopRows\n data={data}\n RenderItem={RenderItem}\n visibleHeadCells={visibleHeadCells}\n getRowId={(rowData) => resolveKeyValue(keyField, rowData)}\n order={order}\n orderBy={orderBy}\n disableInternalSort={disableInternalSort}\n enableCheckboxSelection={isBulkChangesMode}\n enableEditMode={!isBulkChangesMode && enableEditMode}\n selectedRows={selectedRows}\n onRowCheckboxChange={handleRowCheckboxChange}\n rowHeight={rowHeight}\n deleteItem={deleteItem}\n />\n );\n };\n\n return (\n <Box\n sx={{\n height,\n display: 'flex',\n justifyContent: 'space-between',\n justifyItems: 'stretch',\n }}\n >\n <Paper\n sx={{\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n >\n {renderToolbar\n ? renderToolbar({\n headCells,\n headerFilters,\n selectedRows: [...selectedRows],\n isDataEmpty: numRows === 0,\n totalDataCount,\n isRowsFromAllPagesSelected,\n refetchData,\n tableToolbarMenuButtonRef,\n tableToolbarMenuAnchor,\n onCloseMenu: () => setTableToolbarMenuAnchor(null),\n onClickToolbarMenuOpen: handleClickToolbarMenuOpen,\n isBulkChangesMode,\n onChangeBulkChangesMode: handleChangeBulkChangesMode,\n })\n : null}\n\n <TableDesktopRowSelectionBar\n isEveryRowInPageSelected={isEveryRowInPageSelected}\n isRowsFromAllPagesSelected={isRowsFromAllPagesSelected}\n numSelectedRows={numSelectedRows}\n totalRowCount={totalDataCount}\n onSelectRowsFromAllPagesClick={handleSelectRowsFromAllPagesClick}\n onClearSelectionClick={handleClearSelectionClick}\n />\n\n <TableContainer\n sx={{\n flexGrow: 1,\n minHeight: 0,\n maxHeight: '100%',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n <Table stickyHeader aria-label=\"sticky-table\" sx={{ tableLayout }}>\n {visibleHeadCells.length === 0 ? (\n <TableDesktopNoColumnsMessage\n onClickNoColumnsMessageOpenMenu={handleClickToolbarMenuOpen}\n />\n ) : (\n <>\n <SmartTableHeader\n order={order}\n orderBy={orderBy}\n numSelectedRows={numSelectedRows}\n numRows={numRows}\n enableCheckboxSelection={isBulkChangesMode}\n headCells={visibleHeadCells}\n headerFilters={headerFilters ?? {}}\n onRequestSort={handleRequestSort}\n onSelectAllClick={handleSelectAllClick}\n onApplyFilters={handleApplyFilters}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n <TableBody>{renderBody()}</TableBody>\n </>\n )}\n </Table>\n </TableContainer>\n\n {children}\n\n {renderFooter\n ? renderFooter({\n refetchData,\n isFetching: isLoading,\n })\n : null}\n </Paper>\n </Box>\n );\n};\n","import { FC } from 'react';\n\nimport { Skeleton, TableCell, TableRow } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type TableDesktopLoadingStateProps = {\n numRows: number;\n numColumns: number;\n rowHeight?: number;\n};\n\nconst getRange = (n: number) => Array.from({ length: n }, (_, i) => i + 1);\n\nexport const TableDesktopLoadingState: FC<TableDesktopLoadingStateProps> = ({\n numRows,\n numColumns,\n rowHeight = 56,\n}) => {\n return getRange(numRows).map((rowNum) => (\n <TableRow key={rowNum}>\n {getRange(numColumns).map((colNum) => (\n <TableCell key={colNum}>\n <Skeleton\n animation=\"pulse\"\n variant=\"rounded\"\n height={rowHeight - 33}\n sx={{ bgcolor: colors.neutral100 }}\n data-testid=\"loading-skeleton\"\n />\n </TableCell>\n ))}\n </TableRow>\n ));\n};\n","import TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport Typography from '@mui/material/Typography';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { BaseIconButton } from '../Buttons/BaseButton/BaseIconButton';\nimport IconTableEdit from '../icons/IconTableEdit';\n\ntype TableDesktopNoColumnsMessageProps = {\n onClickNoColumnsMessageOpenMenu?: () => void;\n};\n\nexport const TableDesktopNoColumnsMessage = ({\n onClickNoColumnsMessageOpenMenu,\n}: TableDesktopNoColumnsMessageProps) => (\n <TableBody>\n <TableRow>\n <TableCell\n sx={{\n py: 8,\n gap: 2,\n borderBottom: 'none',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Typography variant=\"subtitle2\" fontSize={16}>\n Customise your view\n </Typography>\n\n <Typography variant=\"subtitle1\" align=\"center\" color=\"textSecondary\">\n Open the menu to customise your table and search.\n </Typography>\n\n <Typography\n variant=\"subtitle1\"\n align=\"center\"\n color=\"textSecondary\"\n sx={{\n backgroundColor: colors.neutral150,\n padding: 1,\n borderRadius: 1,\n }}\n >\n Tips: <Typography component=\"strong\">Save as default</Typography> to\n keep these columns for future views\n </Typography>\n\n <BaseIconButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onClickNoColumnsMessageOpenMenu}\n icon={<IconTableEdit fill={colors.white} />}\n >\n OPEN MENU\n </BaseIconButton>\n </TableCell>\n </TableRow>\n </TableBody>\n);\n","import { ReactNode } from 'react';\n\nimport { Button, ButtonProps } from '@mui/material';\n\ninterface BaseIconButtonProps extends ButtonProps {\n icon?: ReactNode;\n}\n\nexport const BaseIconButton = ({ icon, sx, ...props }: BaseIconButtonProps) => {\n return (\n <Button\n sx={{\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 100,\n ...sx,\n }}\n {...props}\n >\n {icon}\n {props.children}\n </Button>\n );\n};\n","import { ChangeEvent, ComponentType, FC } from 'react';\n\nimport {\n HeadCell,\n Order,\n RowId,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopRowsProps = {\n data: any[];\n RenderItem: ComponentType<any>;\n visibleHeadCells: HeadCell[];\n getRowId: (rowData: any) => RowId;\n order: Order;\n orderBy: string;\n rowHeight: number;\n disableInternalSort: boolean;\n enableCheckboxSelection: boolean;\n enableEditMode: boolean;\n selectedRows: Set<RowId>;\n onRowCheckboxChange: (event: ChangeEvent<unknown>, rowId: RowId) => void;\n deleteItem?: TableDesktopProps['deleteItem'];\n};\n\nconst descendingComparator = (a: any, b: any, orderBy: string) => {\n const objA = a[orderBy];\n const objB = b[orderBy];\n\n const valA = typeof objA === 'object' ? objA?.name : objA;\n const valB = typeof objB === 'object' ? objB?.name : objB;\n\n if (!valA && !valB) {\n return 0;\n }\n if (valA && !valB) {\n return -1;\n }\n if (!valA && valB) {\n return 1;\n }\n if (valA > valB) {\n return -1;\n }\n if (valA < valB) {\n return 1;\n }\n return 0;\n};\n\nconst stableSort = (array: any[], cmp: (a: any, b: any) => number) =>\n array\n .map((el, index) => ({ el, index }))\n .sort((a, b) => {\n const order = cmp(a.el, b.el);\n return order !== 0 ? order : a.index - b.index;\n })\n .map((el) => el.el);\n\nconst getComparator = (order: Order, orderBy: string) =>\n order === 'desc'\n ? (a: any, b: any) => descendingComparator(a, b, orderBy)\n : (a: any, b: any) => -descendingComparator(a, b, orderBy);\n\nexport const TableDesktopRows: FC<TableDesktopRowsProps> = ({\n data,\n RenderItem,\n visibleHeadCells,\n getRowId,\n order,\n orderBy,\n disableInternalSort,\n enableCheckboxSelection,\n enableEditMode,\n selectedRows,\n onRowCheckboxChange,\n rowHeight,\n deleteItem,\n}) => {\n const sortedData = disableInternalSort\n ? data\n : stableSort(data, getComparator(order, orderBy));\n\n return sortedData.map((row, index) => {\n const rowId = getRowId(row);\n const isItemSelected = selectedRows.has(rowId);\n\n return (\n <RenderItem\n key={rowId ?? index}\n {...{\n ...row,\n index,\n deleteItem,\n isItemSelected,\n enableEditMode,\n enableCheckboxSelection,\n rowHeight,\n rowId,\n onRowCheckboxChange,\n visibleHeadCells,\n }}\n />\n );\n });\n};\n","import { FC } from 'react';\n\nimport { Box, Button, Typography } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type TableDesktopRowSelectionBarProps = {\n isEveryRowInPageSelected: boolean;\n isRowsFromAllPagesSelected: boolean;\n numSelectedRows: number;\n totalRowCount: number;\n onSelectRowsFromAllPagesClick: () => void;\n onClearSelectionClick: () => void;\n};\n\nexport const TableDesktopRowSelectionBar: FC<\n TableDesktopRowSelectionBarProps\n> = ({\n isEveryRowInPageSelected,\n isRowsFromAllPagesSelected,\n numSelectedRows,\n totalRowCount,\n onSelectRowsFromAllPagesClick,\n onClearSelectionClick,\n}) => {\n const isAnyRowSelected = numSelectedRows > 0;\n\n const getSelectedRowsText = () => {\n if (isRowsFromAllPagesSelected) {\n return `All ${totalRowCount} rows from all pages are selected based on your filters.`;\n }\n\n if (isEveryRowInPageSelected) {\n return `All ${numSelectedRows} rows on this page are selected.`;\n }\n\n return `${numSelectedRows} row${numSelectedRows > 1 ? 's' : ''} selected.`;\n };\n\n return isAnyRowSelected ? (\n <Box\n sx={{\n p: 1,\n height: 40,\n gap: 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: colors.neutral150,\n }}\n >\n <Typography>{getSelectedRowsText()}</Typography>\n\n {!isRowsFromAllPagesSelected ? (\n <Button onClick={onSelectRowsFromAllPagesClick}>\n Select all {totalRowCount} rows from all pages based on your filters\n </Button>\n ) : null}\n\n <Button onClick={onClearSelectionClick}>Clear Selection</Button>\n </Box>\n ) : null;\n};\n","import { TableCell, TableRow, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport EmptyGlassIcon from '@/components/icons/EmptyGlassIcon';\n\nimport FilledButton from '../Buttons/FilledButton/FilledButton';\n\nconst useStyles = makeStyles()(() => ({\n tableCellIcon: { padding: 24, height: 'calc(100vh - 320px)' },\n tableCellDefault: { padding: 24 },\n}));\n\nexport interface ITableEmptyResult {\n colSpan: number;\n showClearFilterButton?: boolean;\n handleClickOnClearFiltersButton?: () => void;\n}\n\nconst TableEmptyResult = ({\n colSpan,\n showClearFilterButton = false,\n handleClickOnClearFiltersButton = () => {},\n}: ITableEmptyResult) => {\n const { classes } = useStyles();\n\n return showClearFilterButton ? (\n <TableRow>\n <TableCell\n className={classes.tableCellIcon}\n colSpan={colSpan}\n align=\"center\"\n >\n <EmptyGlassIcon />\n <Typography variant=\"h6\">No results found.</Typography>\n <Typography variant=\"subtitle1\">\n Search without applied filters?\n </Typography>\n <FilledButton\n copy=\"Search\"\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClickOnClearFiltersButton}\n />\n </TableCell>\n </TableRow>\n ) : (\n <TableRow>\n <TableCell\n className={classes.tableCellDefault}\n colSpan={colSpan}\n align=\"center\"\n >\n Nothing to display\n </TableCell>\n </TableRow>\n );\n};\n\nexport default TableEmptyResult;\n","import { FC, useEffect, useState } from 'react';\n\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { Checkbox, FormControlLabel } from '@mui/material';\nimport { DatePicker, TimePicker } from '@mui/x-date-pickers';\nimport moment from 'moment';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\nimport { TableDesktopSmartMultipleSelect } from './TableDesktopSmartMultipleSelect';\nimport { TableDesktopSmartSelect } from './TableDesktopSmartSelect';\nimport { TableDesktopTagsField } from './TableDesktopTagsField';\nimport { TableDesktopTextField } from './TableDesktopTextField';\n\nexport type TableDesktopEditableFieldProps = {\n headCell: HeadCell;\n editInitialValue?: any;\n rowId?: RowId;\n disabled?: boolean;\n showCheckboxLabel?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n onUpdateEditableCell: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopEditableField: FC<TableDesktopEditableFieldProps> = ({\n editInitialValue,\n rowId,\n disabled,\n showCheckboxLabel = false,\n variant = 'standard',\n size,\n onUpdateEditableCell,\n headCell: {\n id: columnId,\n fieldName = '',\n label: inputLabel = '',\n editableCellType,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n validateInput,\n allowBlankSelectOption,\n },\n}) => {\n const [parsedFilterOptions, setParsedFilterOptions] = useState<Option[]>();\n\n useEffect(() => {\n if (\n (filterOptions && editableCellType === 'select') ||\n editableCellType === 'multipleSelect'\n ) {\n const parsedOptions = filterOptions?.map(\n (option: HeaderFilterObject | string) => ({\n value: resolveObjectType(option, 'id'),\n label: String(resolveObjectType(option, fieldName)),\n }),\n );\n\n setParsedFilterOptions(parsedOptions);\n }\n }, [filterOptions, editableCellType]);\n\n const editableComponents = {\n select: (\n <TableDesktopSmartSelect\n rowId={rowId}\n columnId={columnId}\n fieldName={fieldName}\n disabled={disabled}\n variant={variant}\n size={size}\n allowBlankOption={allowBlankSelectOption}\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n filterOptions={parsedFilterOptions}\n refetchFilterOptions={refetchFilterOptions}\n isFetchingFilterOptions={isFetchingFilterOptions}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n multipleSelect: (\n <TableDesktopSmartMultipleSelect\n rowId={rowId}\n columnId={columnId}\n fieldName={fieldName}\n disabled={disabled}\n variant={variant}\n size={size}\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n filterOptions={parsedFilterOptions}\n refetchFilterOptions={refetchFilterOptions}\n isFetchingFilterOptions={isFetchingFilterOptions}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n checkbox: (\n <FormControlLabel\n label={showCheckboxLabel ? inputLabel : ''}\n control={\n <Checkbox\n disableRipple\n disabled={disabled}\n defaultChecked={editInitialValue}\n onChange={({ target: { checked } }) => {\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: checked,\n label: checked,\n });\n }}\n />\n }\n />\n ),\n text: (\n <TableDesktopTextField\n type=\"text\"\n rowId={rowId}\n disabled={disabled}\n variant={variant}\n size={size}\n columnId={columnId}\n initialValue={editInitialValue ?? ''}\n inputLabel={inputLabel ?? ''}\n validateInput={validateInput}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n numeric: (\n <TableDesktopTextField\n type=\"numeric\"\n rowId={rowId}\n disabled={disabled}\n variant={variant}\n size={size}\n columnId={columnId}\n initialValue={editInitialValue ?? ''}\n inputLabel={inputLabel ?? ''}\n validateInput={validateInput}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n date: (\n <DatePicker\n defaultValue={\n editInitialValue ? moment(editInitialValue, 'HH:mm:ss') : undefined\n }\n label={inputLabel}\n onAccept={(value) => {\n const formattedValue = value?.format('YYYY-MM-DD') ?? null;\n const formattedLabel = value?.format('L') ?? null;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: formattedValue,\n label: formattedLabel,\n });\n }}\n slots={{ clearIcon: DeleteIcon }}\n slotProps={{\n field: { clearable: true },\n clearButton: { sx: { p: 0.5 } },\n openPickerButton: { sx: { p: 0 } },\n textField: {\n variant,\n size,\n error: false,\n },\n }}\n />\n ),\n time: (\n <TimePicker\n defaultValue={\n editInitialValue ? moment(editInitialValue, 'HH:mm:ss') : undefined\n }\n label={inputLabel}\n onAccept={(value) => {\n const formattedValue = value?.format('HH:mm') ?? null;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: formattedValue,\n label: formattedValue,\n });\n }}\n slots={{ clearIcon: DeleteIcon }}\n slotProps={{\n field: { clearable: true },\n clearButton: { sx: { p: 0.5 } },\n openPickerButton: { sx: { p: 0 } },\n textField: {\n variant,\n size,\n error: false,\n },\n }}\n />\n ),\n tags: (\n <TableDesktopTagsField\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n variant={variant}\n size={size}\n onUpdateEditableCell={onUpdateEditableCell}\n rowId={rowId}\n columnId={columnId}\n />\n ),\n };\n\n if (!editableCellType) {\n return null;\n }\n\n return editableComponents[editableCellType];\n};\n","import { useMemo } from 'react';\n\nimport { SmartMultipleSelect } from '../SmartMultipleSelect/SmartMultipleSelect';\nimport { Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\nexport type TableDesktopSmartMultipleSelectProps = {\n initialValue: HeaderFilterObject[];\n inputLabel: string;\n columnId: string;\n fieldName: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n filterOptions?: Option[];\n refetchFilterOptions?: HeadCell['refetchFilterOptions'];\n isFetchingFilterOptions: HeadCell['isFetchingFilterOptions'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopSmartMultipleSelect = ({\n initialValue,\n inputLabel,\n columnId,\n fieldName,\n rowId,\n disabled,\n variant = 'standard',\n size,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n onUpdateEditableCell,\n}: TableDesktopSmartMultipleSelectProps) => {\n const defaultValues = useMemo(() => {\n return initialValue?.map((val: HeaderFilterObject) => ({\n value: val.id,\n label: val[fieldName].toString(),\n }));\n }, [initialValue]);\n\n return (\n <SmartMultipleSelect\n inputLabel={inputLabel}\n size={size}\n variant={variant}\n disabled={disabled}\n defaultValues={defaultValues}\n menuOptions={filterOptions}\n menuProps={{ disableRestoreFocus: true }}\n isLoading={isFetchingFilterOptions}\n onOpen={() => {\n if (!filterOptions?.length) {\n refetchFilterOptions?.();\n }\n }}\n onClose={(values) => {\n const optionsValues = values.map((option) => option.value ?? '');\n const optionsLabels = values.map((option) => option.label ?? '');\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: optionsValues,\n label: optionsLabels,\n });\n }}\n />\n );\n};\n","import { RefObject, useState } from 'react';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { SmartSelect, Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopSmartSelectProps = {\n ref?: RefObject<any>;\n initialValue: HeaderFilterObject | string | null;\n inputLabel: string;\n columnId: string;\n fieldName: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n allowBlankOption?: boolean;\n filterOptions?: Option[];\n refetchFilterOptions?: HeadCell['refetchFilterOptions'];\n isFetchingFilterOptions: HeadCell['isFetchingFilterOptions'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopSmartSelect = ({\n ref,\n initialValue,\n inputLabel,\n columnId,\n fieldName,\n rowId,\n disabled,\n variant = 'standard',\n size,\n allowBlankOption,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n onUpdateEditableCell,\n}: TableDesktopSmartSelectProps) => {\n const [value, setValue] = useState<HeaderFilterObject | string | null>(\n initialValue,\n );\n const valueId = resolveObjectType(value ?? '', 'id');\n const valueLabel = resolveObjectType(value ?? '', fieldName);\n\n return (\n <SmartSelect\n ref={ref}\n value={valueId}\n allowBlankOption={allowBlankOption}\n inputLabel={inputLabel}\n options={filterOptions}\n disabled={disabled}\n variant={variant}\n size={size}\n menuProps={{ disableRestoreFocus: true }}\n refetch={refetchFilterOptions}\n isFetching={isFetchingFilterOptions}\n defaultOption={{\n value: valueId ?? '',\n label: String(valueLabel ?? ''),\n }}\n onChange={({ value: id, label }) => {\n setValue({ id: id ?? '', name: label ?? '' });\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: id || null,\n label: label ?? '',\n });\n }}\n />\n );\n};\n","import { useEffect, useMemo, useState, useRef } from 'react';\n\nimport { HashtagInput, Tag } from '../HashtagInput/HashtagInput';\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopTagsFieldProps = {\n initialValue: Tag[];\n inputLabel: string;\n columnId: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopTagsField = ({\n initialValue,\n inputLabel,\n columnId,\n rowId,\n disabled,\n variant = 'standard',\n size,\n onUpdateEditableCell,\n}: TableDesktopTagsFieldProps) => {\n const [error, setError] = useState<string | null>();\n const [values, setValues] = useState<string[]>([]);\n\n const valuesRef = useRef<string[]>([]);\n\n const validateTag = (tag: string) => {\n if (tag.length >= 30) {\n return false;\n }\n return true;\n };\n\n const handleManageTags = (tag: string, operation: 'ADD' | 'REMOVE') => {\n const isRemoving = operation === 'REMOVE';\n const isValid = validateTag(tag);\n\n if (!isValid) {\n setError('Tag must have at most 30 characters');\n return;\n }\n\n setError(null);\n\n const newTags = isRemoving\n ? values.filter((t) => t !== tag)\n : [...values, tag];\n\n setValues(newTags);\n valuesRef.current = newTags;\n };\n\n const initialValueTags = useMemo(() => {\n return (initialValue ?? []).map((val) => val.tag);\n }, [initialValue]);\n\n useEffect(() => {\n setValues(initialValueTags);\n valuesRef.current = initialValueTags;\n }, [initialValueTags]);\n\n return (\n <>\n <HashtagInput\n autoFocus\n label={inputLabel}\n variant={variant}\n size={size}\n disabled={disabled}\n value={values}\n error={!!error}\n helperText={error}\n onCreateTag={(tagName: string) => {\n if (!tagName) return;\n handleManageTags(tagName, 'ADD');\n }}\n onDeleteTag={(tag: string) => {\n if (!tag) return;\n handleManageTags(tag, 'REMOVE');\n }}\n onBlur={() => {\n const currentTagsString = [...valuesRef.current].sort().join(', ');\n const initialTagsString = [...initialValueTags].sort().join(', ');\n\n if (currentTagsString === initialTagsString) return;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: valuesRef.current,\n label: valuesRef.current.join(', '),\n });\n }}\n />\n </>\n );\n};\n","import { useState, KeyboardEvent, FocusEvent } from 'react';\n\nimport {\n Autocomplete,\n Chip,\n TextField,\n AutocompleteProps,\n TextFieldProps,\n alpha,\n useTheme,\n} from '@mui/material';\n\nexport type Tag = {\n id: number;\n tag: string;\n};\n\ntype AutocompleteType<T extends Tag> = AutocompleteProps<\n T,\n false,\n false,\n false\n>;\n\ninterface HashtagInputProps extends Omit<\n AutocompleteType<any>,\n 'options' | 'renderInput'\n> {\n label?: TextFieldProps['label'];\n placeholder?: TextFieldProps['placeholder'];\n variant?: TextFieldProps['variant'];\n error?: TextFieldProps['error'];\n helperText?: TextFieldProps['helperText'];\n autoFocus?: TextFieldProps['autoFocus'];\n disableOnBlurCreation?: boolean;\n onCreateTag?: (tagName?: string) => void;\n onDeleteTag?: (tag?: Tag | string) => void;\n}\n\nexport const HashtagInput = ({\n label,\n placeholder,\n variant,\n error,\n helperText,\n onCreateTag,\n onDeleteTag,\n autoFocus = false,\n disableOnBlurCreation = false,\n onBlur,\n ...props\n}: HashtagInputProps) => {\n const { palette } = useTheme();\n const [inputValue, setInputValue] = useState('');\n\n const sanitizeTag = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9#]/g, '')\n .trim();\n };\n\n const handleAddTag = () => {\n const cleanedTag = sanitizeTag(inputValue);\n\n if (!cleanedTag) return;\n\n onCreateTag?.(cleanedTag);\n setInputValue('');\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLInputElement | HTMLDivElement>,\n ) => {\n if ((event.key === ' ' || event.key === 'Enter') && inputValue) {\n event.preventDefault();\n event.stopPropagation();\n\n handleAddTag();\n }\n };\n\n return (\n <Autocomplete\n {...props}\n multiple\n freeSolo\n fullWidth\n disableClearable\n value={props.value || []}\n options={[]}\n inputValue={inputValue.toLocaleLowerCase()}\n onInputChange={(_event, newInputValue) => {\n setInputValue(sanitizeTag(newInputValue));\n }}\n onChange={(_event, _newValue, reason, details) => {\n if (reason === 'removeOption' && details?.option) {\n onDeleteTag?.(details.option);\n }\n }}\n renderInput={(textFieldProps) => (\n <TextField\n {...textFieldProps}\n autoFocus={autoFocus}\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n variant={variant}\n error={error}\n onKeyDown={handleKeyDown}\n onBlur={(e) => {\n if (!disableOnBlurCreation) {\n handleAddTag();\n }\n\n onBlur?.(e as FocusEvent<HTMLDivElement, Element>);\n }}\n />\n )}\n renderValue={(value: Tag[], getTagProps) =>\n value.map((option: Tag, index: number) => {\n return (\n <Chip\n {...getTagProps({ index })}\n key={option.id}\n size=\"small\"\n label={`#${option.tag ?? option}`}\n sx={{\n paddingBlock: 0,\n color: palette.primary.main,\n fontWeight: 'bold',\n backgroundColor: alpha(palette.primary.main, 0.1),\n }}\n />\n );\n })\n }\n />\n );\n};\n","import { FC, useMemo, useState, KeyboardEvent, useRef } from 'react';\n\nimport { TextField } from '@mui/material';\n\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopTextFieldProps = {\n rowId?: RowId;\n initialValue: string;\n inputLabel: string;\n disabled?: boolean;\n columnId: string;\n type: 'text' | 'numeric';\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n validateInput?: HeadCell['validateInput'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopTextField: FC<TableDesktopTextFieldProps> = ({\n rowId,\n initialValue,\n inputLabel,\n disabled,\n columnId,\n type,\n variant = 'standard',\n size,\n validateInput,\n onUpdateEditableCell,\n}) => {\n const [input, setInput] = useState(initialValue);\n const oldValue = useRef(initialValue);\n\n const isDirty = useMemo(\n () => input !== oldValue.current,\n [input, oldValue.current],\n );\n const hasValidationError = useMemo(\n () => isDirty && validateInput && !validateInput(input),\n [input, validateInput],\n );\n\n const commitValue = (value: string) => {\n if (hasValidationError || !onUpdateEditableCell || !isDirty) {\n setInput(oldValue.current);\n return;\n }\n\n oldValue.current = value;\n onUpdateEditableCell({ rowId, columnId, value, label: value });\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n commitValue(input);\n }\n };\n\n return (\n <TextField\n fullWidth\n variant={variant}\n size={size}\n value={input}\n label={inputLabel}\n error={hasValidationError}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n if (type === 'numeric') {\n e.target.value = e.target.value.replace(/\\D/g, '');\n }\n\n setInput(e.target.value);\n }}\n onBlur={({ target: { value } }) => {\n commitValue(value);\n }}\n slotProps={{\n input: {\n inputMode: type === 'numeric' ? 'numeric' : undefined,\n },\n htmlInput: {\n maxLength: 1000,\n },\n }}\n />\n );\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport Refresh from '@mui/icons-material/Refresh';\nimport {\n Box,\n Button,\n MenuItem,\n Pagination,\n Select,\n SelectChangeEvent,\n Stack,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '../../resources/styles/colors';\n\nexport type TableDesktopFooterProps = {\n numPages: number;\n page: number;\n onPageChange: (event: ChangeEvent<unknown>, page: number) => void;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (event: SelectChangeEvent<number>) => void;\n refetchData?: () => Promise<unknown>;\n isFetching: boolean;\n};\n\nexport const TableDesktopFooter: FC<TableDesktopFooterProps> = ({\n numPages,\n page,\n pageSize,\n pageSizeOptions,\n onPageChange,\n onPageSizeChange,\n refetchData,\n isFetching,\n}) => {\n return (\n <Box\n sx={{\n py: 1,\n gap: 2,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderTop: `1px solid ${colors.neutral300}`,\n }}\n >\n {refetchData ? (\n <Button\n disableRipple\n variant=\"text\"\n onClick={() => refetchData()}\n disabled={isFetching}\n aria-label=\"refresh-button\"\n sx={{\n ml: 1,\n gap: 1,\n }}\n >\n <Refresh\n fontSize=\"small\"\n color={isFetching ? 'disabled' : 'action'}\n />\n </Button>\n ) : null}\n\n <Box sx={{ display: 'flex', ml: 'auto', py: 1 }}>\n {pageSize && pageSizeOptions && onPageSizeChange ? (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography fontSize={12}>Rows per page:</Typography>\n\n <Select\n value={pageSize}\n onChange={onPageSizeChange}\n size=\"small\"\n variant=\"standard\"\n >\n {pageSizeOptions.map((pageSizeOption) => (\n <MenuItem key={pageSizeOption} value={pageSizeOption}>\n {pageSizeOption}\n </MenuItem>\n ))}\n </Select>\n </Stack>\n ) : null}\n\n <Pagination\n color=\"standard\"\n count={numPages}\n page={page}\n onChange={onPageChange}\n />\n </Box>\n </Box>\n );\n};\n","import { FC, useEffect, useState, MouseEvent, ReactNode } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport EditIcon from '@mui/icons-material/Edit';\nimport { IconButton, TableCell, Tooltip } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\nimport { TableDesktopEditableField } from '../TableDesktopEditableField/TableDesktopEditableField';\n\ntype ReadOnlyValue = string | number | boolean | ReactNode;\n\nexport type TableDesktopCellProps = {\n editInitialValue: any;\n rowId: RowId;\n enableEditMode: boolean;\n disabled?: boolean;\n readOnlyValue: ReadOnlyValue;\n headCell: HeadCell;\n onCellClick?: (\n event: MouseEvent<HTMLTableCellElement>,\n isEditMode: boolean,\n ) => void;\n};\n\nconst getReadOnlyBooleanIcon = (value: boolean) => {\n if (value) {\n return <CheckIcon sx={{ fontSize: 16 }} />;\n }\n return '-';\n};\n\nconst renderReadOnlyValue = (value: ReadOnlyValue) => {\n if (typeof value === 'boolean') {\n return getReadOnlyBooleanIcon(value);\n }\n return value;\n};\n\nconst getCellBackgroundColor = (isCellInEditMode: boolean) => ({\n background: isCellInEditMode ? colors.lightBlueBackground : colors.neutral100,\n});\n\nexport const TableDesktopCell: FC<TableDesktopCellProps> = ({\n editInitialValue,\n rowId,\n disabled,\n enableEditMode,\n readOnlyValue,\n onCellClick,\n headCell,\n}) => {\n const [isCellHovered, setIsCellHovered] = useState(false);\n const [isCellInEditMode, setIsCellInEditMode] = useState(false);\n\n const { width, editableCellType } = headCell;\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsCellInEditMode(false);\n }\n };\n\n if (isCellInEditMode) {\n globalThis.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n globalThis.removeEventListener('keydown', handleKeyDown);\n };\n }, [isCellInEditMode]);\n\n const handleEditClick = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsCellInEditMode((prev) => !prev);\n };\n\n const isCellEditable = !!enableEditMode && !!editableCellType && !disabled;\n\n return (\n <TableCell\n align=\"left\"\n onMouseEnter={() => isCellEditable && setIsCellHovered(true)}\n onMouseLeave={() => isCellEditable && setIsCellHovered(false)}\n onClick={(event) => !disabled && onCellClick?.(event, isCellInEditMode)}\n sx={{\n padding: 2,\n width: width ?? 'auto',\n position: 'relative',\n cursor: disabled || !enableEditMode ? 'default' : 'pointer',\n ':hover': isCellEditable\n ? getCellBackgroundColor(isCellInEditMode)\n : undefined,\n background:\n enableEditMode && isCellInEditMode\n ? colors.lightBlueBackground\n : undefined,\n }}\n >\n <DynamicOverflowTooltip tooltipDescription={String(readOnlyValue)} arrow>\n <>\n {enableEditMode && isCellHovered ? (\n <Tooltip title={isCellInEditMode ? '' : 'Toggle Edit Mode'}>\n <IconButton\n onClick={handleEditClick}\n sx={{\n top: 0,\n right: 0,\n zIndex: 1,\n borderRadius: 0,\n position: 'absolute',\n background: isCellInEditMode\n ? colors.lightBlueBackground\n : colors.neutral100,\n '&:hover': {\n backgroundColor: isCellInEditMode\n ? colors.lightBlueBackground\n : colors.neutral150,\n },\n }}\n >\n {isCellInEditMode ? (\n <CloseIcon fontSize=\"small\" color=\"error\" />\n ) : (\n <EditIcon fontSize=\"small\" />\n )}\n </IconButton>\n </Tooltip>\n ) : null}\n\n {enableEditMode && isCellInEditMode && editableCellType ? (\n <TableDesktopEditableField\n editInitialValue={editInitialValue}\n rowId={rowId}\n disabled={disabled}\n headCell={headCell}\n onUpdateEditableCell={headCell.onUpdateEditableCell}\n />\n ) : (\n renderReadOnlyValue(readOnlyValue)\n )}\n </>\n </DynamicOverflowTooltip>\n </TableCell>\n );\n};\n","import {\n FC,\n useState,\n useMemo,\n useRef,\n RefObject,\n ReactNode,\n ChangeEvent,\n} from 'react';\n\nimport Download from '@mui/icons-material/Download';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport {\n Box,\n Button,\n Divider,\n FormControlLabel,\n IconButton,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport IconTableEdit from '@/components/icons/IconTableEdit';\nimport { useDynamicScroll } from '@/hooks/useDynamicScroll/useDynamicScroll';\nimport { colors } from '@/resources/styles/colors';\n\nimport {\n HeadCell,\n HeaderFilters,\n RowId,\n UpdateEditableCellParams,\n} from '../TableDesktop/TableDesktop';\nimport { TableDesktopEditableField } from '../TableDesktopEditableField/TableDesktopEditableField';\n\nexport type BulkChanges = {\n field: string;\n value: UpdateEditableCellParams['value'];\n label: UpdateEditableCellParams['label'];\n}[];\n\nexport type TableColumnConfigurationMenuProps = {\n anchorEl: HTMLElement | null;\n onCloseMenu: () => void;\n};\n\nexport type ExportCsvDialogProps = {\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n totalDataCount?: number;\n isOpen: boolean;\n onCloseDialog: () => void;\n};\n\nexport type BulkChangesDialogProps = {\n bulkChanges: BulkChanges;\n selectedRows: RowId[];\n shouldUpdateAll: boolean;\n visibleEditableColumns: HeadCell[];\n isBulkChangesDialogOpen: boolean;\n onCloseDialog: () => void;\n refetchData: () => Promise<unknown>;\n};\n\nexport type TableDesktopToolbarProps = {\n toolbarLabel?: string;\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n selectedRows: RowId[];\n isDataEmpty: boolean;\n totalDataCount?: number;\n isRowsFromAllPagesSelected: boolean;\n refetchData?: () => Promise<unknown>;\n tableToolbarMenuButtonRef: RefObject<HTMLButtonElement | null>;\n tableToolbarMenuAnchor: HTMLElement | null;\n onClickToolbarMenuOpen: () => void;\n onCloseMenu: () => void;\n disableBulkChangesMode?: boolean;\n isBulkChangesMode: boolean;\n onChangeBulkChangesMode: (checked: boolean) => void;\n onActivateBulkChangesMode?: () => void;\n renderExportCsvDialog?: (props: ExportCsvDialogProps) => ReactNode;\n renderBulkChangesDialog?: (props: BulkChangesDialogProps) => ReactNode;\n renderTableColumnConfigurationMenu?: (\n props: TableColumnConfigurationMenuProps,\n ) => ReactNode;\n renderInfoIcons?: ReactNode;\n};\n\nexport const TableDesktopToolbar: FC<TableDesktopToolbarProps> = ({\n toolbarLabel,\n headCells,\n headerFilters,\n selectedRows,\n isDataEmpty,\n totalDataCount,\n isRowsFromAllPagesSelected,\n tableToolbarMenuButtonRef,\n tableToolbarMenuAnchor,\n onCloseMenu,\n onClickToolbarMenuOpen,\n disableBulkChangesMode = false,\n isBulkChangesMode,\n onChangeBulkChangesMode,\n onActivateBulkChangesMode,\n refetchData,\n renderExportCsvDialog,\n renderBulkChangesDialog,\n renderTableColumnConfigurationMenu,\n renderInfoIcons,\n}) => {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const [bulkChanges, setBulkChanges] = useState<BulkChanges>([]);\n const [isBulkChangesDialogOpen, setIsBulkChangesDialogOpen] = useState(false);\n const [isExportCsvDialogOpen, setIsExportCsvDialogOpen] = useState(false);\n const [resetCounter, setResetCounter] = useState(0);\n\n const visibleEditableColumns = useMemo(\n () =>\n headCells.filter(\n (headCell) => headCell?.enabled && !!headCell?.editableCellType,\n ),\n [headCells],\n );\n\n const { isScrollable, scroll } = useDynamicScroll({\n scrollRef,\n effectDependencies: [visibleEditableColumns],\n });\n\n const handleChangeBulkChangesMode = (\n _: ChangeEvent<HTMLInputElement>,\n checked: boolean,\n ) => {\n setBulkChanges([]);\n onChangeBulkChangesMode(checked);\n if (checked) {\n onActivateBulkChangesMode?.();\n }\n };\n\n const handleUpdateEditableCell = ({\n columnId,\n value,\n label,\n }: UpdateEditableCellParams) => {\n setBulkChanges((prev) => {\n return [...prev, { field: columnId, value, label }];\n });\n };\n\n return (\n <Box\n sx={{\n borderBottom: '1px solid',\n borderBottomColor: colors.neutral300,\n maxWidth: '100%',\n }}\n >\n <Box\n sx={{\n py: 1,\n px: 2,\n gap: 1,\n display: 'flex',\n justifyContent: isBulkChangesMode ? 'flex-start' : 'space-between',\n background: isBulkChangesMode ? colors.neutral150 : undefined,\n }}\n >\n <Box\n sx={{\n py: 1,\n gap: 2,\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n }}\n >\n {toolbarLabel ? (\n <>\n <Typography variant=\"subtitle2\" color=\"textSecondary\">\n {toolbarLabel}\n </Typography>\n\n <Divider orientation=\"vertical\" sx={{ height: 0.75, py: 2.5 }} />\n </>\n ) : null}\n\n {renderBulkChangesDialog && refetchData ? (\n <Tooltip\n title={\n disableBulkChangesMode\n ? 'Access denied, you don’t have permission to use this feature.'\n : ''\n }\n >\n <FormControlLabel\n label=\"Bulk Changes Mode\"\n disabled={\n disableBulkChangesMode || !visibleEditableColumns.length\n }\n control={\n <Switch\n size=\"small\"\n aria-label=\"bulk-changes-mode-switch\"\n onChange={handleChangeBulkChangesMode}\n />\n }\n />\n </Tooltip>\n ) : null}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-left\"\n sx={{ padding: 0, alignSelf: 'center' }}\n onClick={() => scroll('left')}\n >\n <KeyboardArrowLeft />\n </IconButton>\n )}\n\n <Box\n ref={scrollRef}\n sx={{\n gap: 2,\n display: 'flex',\n overflowX: 'auto',\n whiteSpace: 'nowrap',\n alignItems: 'center',\n flexShrink: 0,\n scrollBehavior: 'smooth',\n flex: '0 1 auto',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {isBulkChangesMode\n ? visibleEditableColumns.map((headCell) => {\n const { id, width, editableCellType, bulkUpdateDisabled } =\n headCell;\n\n if (bulkUpdateDisabled) {\n return null;\n }\n\n return (\n editableCellType && (\n <Box\n key={`${id}-${resetCounter}`}\n sx={{ width, flex: '0 0 auto' }}\n >\n <TableDesktopEditableField\n headCell={headCell}\n size=\"small\"\n variant=\"outlined\"\n showCheckboxLabel\n onUpdateEditableCell={handleUpdateEditableCell}\n />\n </Box>\n )\n );\n })\n : null}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-right\"\n sx={{ p: 0, alignSelf: 'center' }}\n onClick={() => scroll('right')}\n >\n <KeyboardArrowRight />\n </IconButton>\n )}\n\n {isBulkChangesMode ? (\n <>\n <Button\n variant=\"outlined\"\n sx={{ borderRadius: 25, alignSelf: 'center' }}\n aria-label=\"bulk-changes-reset-button\"\n onClick={() => {\n setBulkChanges([]);\n // Remount and reset states from TableDesktopEditableComponents\n setResetCounter((prev) => prev + 1);\n }}\n >\n RESET\n </Button>\n\n <Button\n variant=\"contained\"\n aria-label=\"bulk-changes-apply-button\"\n sx={{ borderRadius: 25, alignSelf: 'center' }}\n disabled={bulkChanges.length === 0 || selectedRows.length === 0}\n onClick={() => setIsBulkChangesDialogOpen(true)}\n >\n APPLY\n </Button>\n </>\n ) : (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {renderInfoIcons}\n\n {renderExportCsvDialog ? (\n <Tooltip title=\"Download List\">\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <IconButton\n disableRipple\n disabled={isDataEmpty}\n aria-label=\"export-csv-button\"\n onClick={() => setIsExportCsvDialogOpen(true)}\n >\n <Download fill={colors.neutral750} />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n\n {renderTableColumnConfigurationMenu ? (\n <Tooltip title=\"Table Column Configuration\">\n <IconButton\n disableRipple\n aria-label=\"table-column-config-button\"\n ref={tableToolbarMenuButtonRef}\n onClick={onClickToolbarMenuOpen}\n >\n <IconTableEdit fill={colors.neutral750} />\n </IconButton>\n </Tooltip>\n ) : null}\n </Box>\n )}\n </Box>\n\n {renderTableColumnConfigurationMenu\n ? renderTableColumnConfigurationMenu({\n anchorEl: tableToolbarMenuAnchor,\n onCloseMenu,\n })\n : null}\n\n {renderExportCsvDialog\n ? renderExportCsvDialog({\n headCells,\n headerFilters,\n totalDataCount,\n isOpen: isExportCsvDialogOpen,\n onCloseDialog: () => setIsExportCsvDialogOpen(false),\n })\n : null}\n\n {renderBulkChangesDialog && refetchData\n ? renderBulkChangesDialog({\n bulkChanges,\n visibleEditableColumns,\n selectedRows,\n shouldUpdateAll: isRowsFromAllPagesSelected,\n isBulkChangesDialogOpen,\n onCloseDialog: () => setIsBulkChangesDialogOpen(false),\n refetchData,\n })\n : null}\n </Box>\n );\n};\n","import { memo, useEffect, useState } from 'react';\n\nimport ImportExportIcon from '@mui/icons-material/ImportExport';\nimport { TableCell, TableHead, TableRow, TableSortLabel } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n sortLabel: {\n '& .MuiTableSortLabel-icon': {\n opacity: 1,\n },\n },\n}));\n\ninterface TableHeaderProps {\n cells: any;\n onSort?: any;\n}\n\nconst TableHeader = ({ cells, onSort = null }: TableHeaderProps) => {\n const [sortableCells, setSortableCells] = useState([]);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n setSortableCells(cells);\n }, []);\n\n const getNewSortDirection = (direction) => {\n if (!direction) {\n return 'asc';\n }\n\n if (direction === 'asc') {\n return 'desc';\n }\n\n return '';\n };\n\n const handleSortClick = (sortedCell) => {\n const newDirection = getNewSortDirection(sortedCell?.direction);\n\n if (onSort) {\n onSort({\n direction: newDirection,\n name: sortedCell.name,\n });\n }\n\n const sortedCells = sortableCells.map((cell: any) => {\n if (cell.name === sortedCell.name) {\n return {\n ...cell,\n direction: newDirection,\n };\n }\n\n return {\n ...cell,\n direction: '',\n };\n });\n\n setSortableCells(sortedCells as any);\n };\n\n return (\n <TableHead>\n <TableRow>\n {sortableCells.map((cell: any, key) => (\n <TableCell key={cell.label || key}>\n {cell.isSortable ? (\n <TableSortLabel\n className={classes.sortLabel}\n direction={cell?.direction || 'asc'}\n IconComponent={ImportExportIcon}\n onClick={() => handleSortClick(cell)}\n >\n {cell.label}\n </TableSortLabel>\n ) : (\n cell.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n};\n\nexport default memo(TableHeader);\n","import * as React from 'react';\n\nimport { Box, Typography, Divider, Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n icon: {\n fontSize: 20,\n },\n center: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n },\n button: {\n margin: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n container: {\n width: '100%',\n },\n title: {\n fontSize: 13,\n },\n leftDivider: { flex: 1, marginRight: 8 },\n rightDivider: { flex: 1, marginLeft: 8 },\n}));\n\ninterface TextDividerProps {\n title: string;\n icon?: React.ElementType;\n onClick?: () => void;\n color?: string;\n iconPosition?: 'left' | 'right';\n titleWeight?: '400' | '500' | '600' | '700' | '800' | '900';\n}\n\nconst TextDivider: React.FC<TextDividerProps> = ({\n title,\n icon: Icon,\n onClick,\n color,\n iconPosition = 'left',\n titleWeight = '400',\n}) => {\n const { classes } = useStyles();\n const iconColor = color ?? colors.neutral900;\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n className={classes.container}\n >\n <Divider className={classes.leftDivider} />\n <Button onClick={onClick} disabled={!onClick} className={classes.button}>\n <Box className={classes.center}>\n {Icon && iconPosition === 'left' && (\n <Icon className={classes.icon} style={{ color: iconColor }} />\n )}\n <Typography\n color=\"textSecondary\"\n className={classes.title}\n style={{ color: iconColor, fontWeight: titleWeight }}\n >\n {title}\n </Typography>\n {Icon && iconPosition === 'right' && (\n <Icon className={classes.icon} style={{ color: iconColor }} />\n )}\n </Box>\n </Button>\n <Divider className={classes.rightDivider} />\n </Box>\n );\n};\n\nexport default TextDivider;\n","import { DateRangePicker, DateRangePickerShape } from 'react-dates';\n\nimport { colors } from 'resources/styles/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nimport 'react-dates/initialize';\nimport 'react-dates/lib/css/_datepicker.css';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n '& .DateRangePicker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n borderRadius: 4,\n },\n '& .DateRangePickerInput__withBorder': {\n border: `1px solid ${\n theme.palette.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[400]\n }`,\n },\n '& .DateRangePickerInput': {\n backgroundColor: 'transparent',\n color:\n theme.palette.mode === 'dark'\n ? 'theme.palette.common.white'\n : theme.palette.text.primary,\n borderRadius: 4,\n paddingTop: '2px',\n },\n '& .DateInput': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n borderRadius: 4,\n },\n '& .DateInput_input': {\n backgroundColor: 'transparent',\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n\n borderRadius: 4,\n fontWeight: 400,\n fontSize: 16,\n cursor: 'pointer',\n },\n '& .DateInput_input__focused': {\n borderBottom: `2px solid ${theme.palette.primary.main}`,\n },\n '& .DateInput_fangStroke': {\n fill: theme.palette.primary.main,\n stroke: theme.palette.primary.main,\n },\n '& .CalendarDay__default': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n },\n },\n '& .CalendarDay__selected': {\n backgroundColor: theme.palette.primary.main,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n },\n '& .CalendarDay__blocked_out_of_range': {\n opacity: 0.5,\n },\n '& .CalendarDay__selected_span': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.grey[800],\n },\n '& .CalendarDay__hovered_span': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.grey[800],\n },\n '& .DateRangePicker_picker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color: theme.palette.text.primary,\n },\n '& .CalendarMonthGrid': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .CalendarMonth': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .DayPicker_transitionContainer': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .CalendarMonth_caption': {\n color: theme.palette.text.primary,\n },\n '& .DayPickerNavigation_button__default': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[300],\n color: theme.palette.common.black,\n borderColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[300],\n },\n },\n '& .DayPicker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n borderRadius: 4,\n },\n },\n}));\n\ntype ThemedDateRangePickerProps = DateRangePickerShape & {\n className?: string;\n};\n\n/**\n * DateRangePicker component with dark mode theming support.\n * Props are forwarded directly to the underlying DateRangePicker.\n */\nconst ThemedDateRangePicker = ({\n className,\n ...props\n}: ThemedDateRangePickerProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <div className={cx(classes.wrapper, className)}>\n <DateRangePicker {...props} />\n </div>\n );\n};\n\nexport default ThemedDateRangePicker;\n","import { memo, ReactNode } from 'react';\n\nimport { AppBar, Box, Toolbar } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport CompanyLogo from '@/components/CompanyLogo/CompanyLogo';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme: any) => ({\n menuButton: {\n color: theme.palette.primary.contrastText,\n },\n topBar: {\n display: 'flex',\n gap: theme.spacing(1),\n backgroundColor: colors.topBar,\n [theme.breakpoints.down('xl')]: {\n gap: theme.spacing(0.5),\n },\n },\n}));\n\ntype Props = {\n imageLogoDarkSmall: string;\n imageLogoLightSmall: string;\n handleOpen: () => void;\n LeftDrawer: ReactNode;\n leftSection?: ReactNode;\n centerSection?: ReactNode;\n rightSection?: ReactNode;\n isAuthenticated?: boolean;\n};\n\nconst TheToolbar = ({\n imageLogoDarkSmall,\n imageLogoLightSmall,\n handleOpen,\n LeftDrawer,\n leftSection,\n centerSection,\n rightSection,\n isAuthenticated = true,\n}: Props) => {\n const { classes } = useStyles();\n\n return (\n <Box>\n <AppBar>\n <Toolbar className={classes.topBar}>\n {isAuthenticated ? (\n <Box sx={{ flexShrink: 0, display: 'flex' }}>\n <RoundButton\n className={classes.menuButton}\n icon=\"menu\"\n noStrokes\n onClick={handleOpen}\n />\n </Box>\n ) : null}\n <Box sx={{ display: { xs: 'none', lg: 'block' }, flexShrink: 0 }}>\n <CompanyLogo\n size=\"small\"\n color=\"light\"\n imageLogoDarkSmall={imageLogoDarkSmall}\n imageLogoLightSmall={imageLogoLightSmall}\n />\n </Box>\n <Box\n ml={{ xs: 0, lg: 2 }}\n sx={{ flexShrink: 0, display: { xs: 'none', xl: 'block' } }}\n >\n {leftSection}\n </Box>\n {centerSection ? (\n <Box\n sx={{\n flexGrow: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {centerSection}\n </Box>\n ) : (\n <Box sx={{ flexGrow: 1 }} />\n )}\n <Box sx={{ flexShrink: 0, display: { xs: 'none', xl: 'block' } }}>\n {rightSection}\n </Box>\n </Toolbar>\n </AppBar>\n {LeftDrawer}\n </Box>\n );\n};\n\nexport default memo(TheToolbar);\n","import { Alert as MuiAlert, Snackbar } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\ntype IToastMessage = {\n toastType: 'success' | 'info' | 'warning' | 'error';\n toastMessage: string;\n open: boolean;\n onClose: () => void;\n};\n\n/**\n *@param toastType 'success' | 'info' | 'warning' | 'error';.\n *@param toastMessage Value to be displayed on screen;.\n *@param open Boolean to open the toast;.\n *@param updateToast Reducer function to update the reducer value\n */\nconst ToastMessage = ({\n toastType,\n toastMessage,\n open,\n onClose,\n}: IToastMessage) => (\n <Snackbar\n open={open}\n autoHideDuration={3000}\n onClose={onClose}\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n <MuiAlert\n elevation={6}\n variant=\"filled\"\n onClose={onClose}\n severity={toastType}\n sx={{\n color: colors.neutral100,\n '& .MuiAlert-message': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n '& .MuiAlert-icon': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n '& .MuiAlert-action': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n }}\n >\n {toastMessage}\n </MuiAlert>\n </Snackbar>\n);\n\nexport default ToastMessage;\n","/* eslint-disable no-unused-vars */\nimport { FC } from 'react';\nimport * as React from 'react';\n\nimport {\n Typography,\n Dialog,\n Backdrop,\n Box,\n Divider,\n Paper,\n Fade,\n} from '@mui/material';\nimport type { Theme } from '@mui/material/styles';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButton from '@/components/Buttons/FilledButton/FilledButton';\nimport Loading from '@/components/Loading/Loading';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n paper: {\n padding: theme.spacing(2),\n },\n\n mt: {\n marginTop: theme.spacing(2),\n },\n\n mb: {\n marginBottom: theme.spacing(2),\n },\n\n buttonContainer: {\n display: 'flex',\n justifyContent: 'center',\n marginTop: theme.spacing(1),\n },\n}));\n\nexport interface ITwoButtonDialogProps {\n confirmButton: () => void;\n cancelButton?: () => void;\n dialogLoading?: boolean;\n title: string;\n subtitle1?: string | React.ReactNode;\n subtitle2?: string | React.ReactNode;\n open: boolean;\n setOpen: (open: boolean) => void;\n confirmLabel?: string;\n cancelLabel?: string;\n}\n\nconst TwoButtonDialog: FC<ITwoButtonDialogProps> = ({\n confirmButton,\n dialogLoading = false,\n title,\n subtitle1,\n subtitle2,\n open,\n setOpen,\n confirmLabel = 'CONFIRM',\n cancelLabel = 'CANCEL',\n cancelButton,\n}) => {\n const { classes } = useStyles();\n\n return (\n <Dialog\n open={open}\n disableEnforceFocus\n maxWidth=\"sm\"\n fullWidth\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{ timeout: 500 }}\n >\n <Fade in={open}>\n <Paper className={classes.paper}>\n <Box className={classes.mb}>\n <Typography variant=\"h5\" component=\"div\">\n <Box\n sx={{\n fontWeight: 600,\n }}\n >\n {title}\n </Box>\n </Typography>\n <Box\n className={classes.mt}\n sx={{\n fontWeight: 600,\n }}\n >\n {subtitle1 && (\n <Typography variant=\"subtitle1\">{subtitle1}</Typography>\n )}\n {subtitle2 && (\n <Typography variant=\"subtitle1\">{subtitle2}</Typography>\n )}\n </Box>\n </Box>\n <Divider />\n <Box className={classes.buttonContainer}>\n <FilledButton\n copy={cancelLabel}\n color=\"default\"\n onClick={() => {\n if (cancelButton) {\n cancelButton();\n }\n setOpen(false);\n }}\n />\n <FilledButton\n color=\"primary\"\n copy={confirmLabel}\n onClick={confirmButton}\n />\n </Box>\n <Loading isLoading={dialogLoading} />\n </Paper>\n </Fade>\n </Dialog>\n );\n};\n\nexport default TwoButtonDialog;\n","import { ComponentProps, memo } from 'react';\n\nimport { Avatar, Typography } from '@mui/material';\n\ntype UserBustProps = {\n user: {\n profile_picture: string;\n first_name: string;\n last_name: string;\n username: string;\n };\n avatarProps: { height: number; width: number };\n typographyProps: {\n name?: {\n variant: ComponentProps<typeof Typography>['variant'];\n component: string;\n };\n username?: {\n variant: ComponentProps<typeof Typography>['variant'];\n component: string;\n };\n };\n};\n\nconst UserBust = ({ user, avatarProps, typographyProps }: UserBustProps) => (\n <div>\n <Avatar\n src={user.profile_picture}\n alt=\"user_avatar\"\n style={{ width: avatarProps.width, height: avatarProps.height }}\n />\n <div style={{ paddingTop: 16 }}>\n <Typography {...typographyProps.name}>\n {`${user.first_name} ${user.last_name}`}\n </Typography>\n <Typography {...typographyProps.username}>{user.username}</Typography>\n </div>\n </div>\n);\n\nexport default memo(UserBust);\n","import { SVGProps } from 'react';\n\nconst SvgIconChart = (props: SVGProps<SVGSVGElement>) => {\n const { fill } = props;\n\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M2.49967 11.6667L2.91634 11.725L6.72467 7.91667C6.57467 7.375 6.71634 6.75833 7.15801 6.325C7.80801 5.66667 8.85801 5.66667 9.50801 6.325C9.94967 6.75833 10.0913 7.375 9.94134 7.91667L12.083 10.0583L12.4997 10C12.6497 10 12.7913 10 12.9163 10.0583L15.8913 7.08333C15.833 6.95833 15.833 6.81667 15.833 6.66667C15.833 6.22464 16.0086 5.80072 16.3212 5.48816C16.6337 5.17559 17.0576 5 17.4997 5C17.9417 5 18.3656 5.17559 18.6782 5.48816C18.9907 5.80072 19.1663 6.22464 19.1663 6.66667C19.1663 7.10869 18.9907 7.53262 18.6782 7.84518C18.3656 8.15774 17.9417 8.33333 17.4997 8.33333C17.3497 8.33333 17.208 8.33333 17.083 8.275L14.108 11.25C14.1663 11.375 14.1663 11.5167 14.1663 11.6667C14.1663 12.1087 13.9907 12.5326 13.6782 12.8452C13.3656 13.1577 12.9417 13.3333 12.4997 13.3333C12.0576 13.3333 11.6337 13.1577 11.3212 12.8452C11.0086 12.5326 10.833 12.1087 10.833 11.6667L10.8913 11.25L8.74967 9.10833C8.48301 9.16667 8.18301 9.16667 7.91634 9.10833L4.10801 12.9167L4.16634 13.3333C4.16634 13.7754 3.99075 14.1993 3.67819 14.5118C3.36563 14.8244 2.9417 15 2.49967 15C2.05765 15 1.63372 14.8244 1.32116 14.5118C1.0086 14.1993 0.833008 13.7754 0.833008 13.3333C0.833008 12.8913 1.0086 12.4674 1.32116 12.1548C1.63372 11.8423 2.05765 11.6667 2.49967 11.6667Z\"\n fill={fill ?? '#1976D2'}\n />\n </svg>\n );\n};\n\nexport default SvgIconChart;\n"],"mappings":"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","names":["debounce","useMemo","Controller","Box","jsx","jsxs","IconButton","Box","jsx","jsxs","Box","IconButton","Box","TextField","Typography","jsx","jsxs","Box","jsx","jsxs","Box","jsx","jsxs","useMemo","Box","Controller","Box","Typography","makeStyles","jsx","jsxs","useStyles","Button","Dialog","jsx","jsxs","Box","Typography","makeStyles","jsx","useStyles","makeStyles","Box","Typography","useMemo","useRef","Box","Button","Chip","IconButton","Typography","Box","Tooltip","useEffect","jsx","Tooltip","Box","jsx","jsxs","jsx","jsxs","useRef","useMemo","Chip","Box","Typography","IconButton","Button","CheckIcon","Box","Button","Chip","Tooltip","Typography","memo","Box","Button","Tooltip","makeStyles","jsx","jsx","jsxs","useStyles","makeStyles","icons","Tooltip","Box","Button","memo","Box","Tooltip","jsx","jsxs","Box","Tooltip","useState","useRef","useEffect","TextField","Box","jsx","Fragment","jsx","jsxs","Typography","Box","Chip","Tooltip","CheckIcon","Button","Box","Button","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Button","Typography","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Typography","memo","memo","CircularProgress","Button","makeStyles","jsx","jsxs","useStyles","makeStyles","Button","CircularProgress","memo","memo","Box","CircularProgress","Button","jsx","jsxs","Button","Box","CircularProgress","memo","memo","Button","makeStyles","jsx","useStyles","Add","Typography","Button","makeStyles","jsx","jsxs","useStyles","Add","Button","Typography","useRef","useState","forwardRef","Box","jsx","jsxs","forwardRef","useState","useRef","Box","memo","Button","CircularProgress","makeStyles","jsx","jsxs","useStyles","makeStyles","Button","CircularProgress","memo","memo","Button","withStyles","jsx","Add","ChevronRight","Delete","Edit","Refresh","Search","Tooltip","makeStyles","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","useStyles","makeStyles","Add","ChevronRight","Delete","Edit","Refresh","Search","Button","Tooltip","memo","makeStyles","jsx","useStyles","Fab","makeStyles","jsx","useStyles","Box","Button","Checkbox","Divider","Skeleton","Typography","jsx","jsxs","Box","Skeleton","Divider","Checkbox","Typography","Button","Box","FormControlLabel","Typography","Box","Dialog","DialogActions","Divider","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Typography","Dialog","Box","Divider","DialogActions","jsx","jsxs","Box","FormControlLabel","Typography","makeStyles","jsx","useStyles","Controller","Checkbox","FormControlLabel","Tooltip","jsx","Controller","TextField","makeStyles","jsx","useStyles","useMemo","Controller","Box","IconButton","InputAdornment","TextField","makeStyles","jsx","jsxs","convertUnderscoreToHyphen","useStyles","Controller","FormControl","FormHelperText","InputLabel","Select","makeStyles","jsx","jsxs","useStyles","Controller","FormControl","FormHelperText","InputLabel","Select","makeStyles","jsx","jsxs","useStyles","useState","Paper","Skeleton","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Paper","Skeleton","jsx","memo","Alert","AlertTitle","Typography","Box","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Alert","AlertTitle","Typography","Box","memo","memo","Alert","AlertTitle","Typography","Box","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Alert","AlertTitle","Typography","Box","memo","Controller","Box","FormControlLabel","Checkbox","Tooltip","Typography","jsx","jsxs","Box","Typography","Controller","Tooltip","FormControlLabel","Checkbox","Typography","Box","jsx","jsxs","document","memo","Typography","makeStyles","jsx","useStyles","useState","Box","Typography","Menu","MenuItem","Checkbox","Divider","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Menu","Box","Typography","Divider","MenuItem","Checkbox","useState","Box","Typography","Menu","MenuItem","Checkbox","ListItemText","Divider","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Menu","Box","Typography","Divider","MenuItem","Checkbox","ListItemText","React","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","Box","IconButton","Paper","alpha","jsx","jsxs","Paper","alpha","IconButton","Box","memo","memo","useCallback","useEffect","useRef","useState","Box","jsx","Paper","makeStyles","jsx","jsxs","useStyles","makeStyles","Paper","ListItemText","Fragment","jsx","jsxs","Fragment","Box","Chip","Typography","classNames","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Chip","classNames","Typography","Fragment","useEffect","useState","FormControl","InputAdornment","InputLabel","makeStyles","jsx","jsxs","useStyles","makeStyles","Notes","useState","useEffect","FormControl","InputLabel","InputAdornment","jsx","jsxs","memo","useState","TextField","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","Typography","TextField","memo","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Paper","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Paper","Typography","useCallback","useEffect","Controller","FormControlLabel","TextField","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useCallback","useEffect","Controller","FormControlLabel","TextField","Typography","useState","Typography","withStyles","withStyles","jsx","jsxs","withStyles","Fragment","jsx","jsxs","useState","Typography","withStyles","Box","Typography","withStyles","jsx","jsxs","withStyles","Box","Typography","useEffect","useState","useRef","ListItemText","Tooltip","makeStyles","useEffect","useState","jsx","jsxs","useStyles","makeStyles","useState","useRef","useEffect","ListItemText","Tooltip","Box","Divider","Paper","Typography","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Paper","Box","Typography","Divider","useEffect","useRef","useState","Box","Dialog","Divider","Paper","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","useRef","useEffect","footerHeight","Dialog","Paper","Typography","Divider","Box","Box","Paper","makeStyles","useState","useEffect","React","Button","Divider","InputBase","Paper","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","useEffect","Paper","InputBase","Divider","Button","jsx","jsxs","useStyles","makeStyles","Paper","Box","React","Box","makeStyles","useState","memo","ArrowDropDownIcon","ArrowDropUpIcon","SearchIcon","Box","Button","Divider","InputBase","Paper","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","ArrowDropUpIcon","ArrowDropDownIcon","Paper","Box","SearchIcon","InputBase","Divider","Button","memo","jsx","jsxs","useStyles","makeStyles","Box","Box","Paper","jsx","jsxs","Paper","Box","Box","Divider","IconButton","Tooltip","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Typography","Tooltip","Divider","IconButton","useState","Box","Checkbox","CircularProgress","FormControl","FormHelperText","InputLabel","ListItemText","Select","Typography","jsx","jsxs","useState","Box","Typography","Checkbox","ListItemText","FormControl","InputLabel","Select","CircularProgress","FormHelperText","memo","Typography","red","makeStyles","jsx","useStyles","memo","Grid","withStyles","jsx","jsxs","useState","useEffect","Menu","classNames","Fragment","jsx","jsxs","MAX_WIDTH","useState","useEffect","classNames","Menu","memo","Box","Checkbox","Tooltip","Typography","jsx","jsxs","memo","Checkbox","Box","Tooltip","Typography","useState","Box","Paper","TableCell","TableHead","TableRow","TableSortLabel","makeStyles","Box","Skeleton","jsx","jsx","jsxs","useStyles","makeStyles","useState","debounce","TableRow","TableCell","Paper","Box","TableHead","TableSortLabel","useMemo","useState","useEffect","useRef","Paper","Table","TableBody","TableContainer","Box","Skeleton","TableCell","TableRow","jsx","TableRow","TableCell","Skeleton","TableBody","TableCell","TableRow","Typography","Button","jsxs","jsx","jsxs","TableBody","TableRow","TableCell","Typography","jsx","descendingComparator","stableSort","Box","Button","Typography","jsx","jsxs","Box","Typography","Button","TableCell","TableRow","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","TableRow","TableCell","Typography","Fragment","jsx","jsxs","useRef","useState","useMemo","useEffect","Box","Paper","TableContainer","Table","TableBody","useEffect","useState","Checkbox","FormControlLabel","moment","useMemo","jsx","useMemo","useState","jsx","useState","useEffect","useMemo","useState","useRef","useState","Chip","TextField","alpha","useTheme","jsx","Fragment","jsx","useState","useRef","useMemo","useEffect","useMemo","useState","useRef","TextField","jsx","jsx","useState","useEffect","FormControlLabel","Checkbox","moment","Refresh","Box","Button","MenuItem","Pagination","Select","Typography","jsx","jsxs","Box","Button","Refresh","Typography","Select","MenuItem","Pagination","useEffect","useState","CheckIcon","IconButton","TableCell","Tooltip","Fragment","jsx","jsxs","CheckIcon","useState","useEffect","TableCell","Tooltip","IconButton","useState","useMemo","useRef","KeyboardArrowLeft","KeyboardArrowRight","Box","Button","Divider","FormControlLabel","IconButton","Switch","Tooltip","Typography","Fragment","jsx","jsxs","useRef","useState","useMemo","Box","Typography","Divider","Tooltip","FormControlLabel","Switch","IconButton","KeyboardArrowLeft","KeyboardArrowRight","Button","memo","useEffect","useState","TableCell","TableHead","TableRow","TableSortLabel","makeStyles","jsx","useStyles","Box","Typography","Divider","Button","makeStyles","jsx","jsxs","useStyles","makeStyles","Icon","Box","Divider","Button","Typography","makeStyles","jsx","useStyles","memo","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","jsx","Typography","Dialog","Box","Divider","Paper","Fade","makeStyles","jsx","jsxs","useStyles","makeStyles","Dialog","Fade","Paper","Box","Typography","Divider","memo","Avatar","Typography","jsx","jsxs","jsx"]}
1
+ {"version":3,"sources":["../../src/components/ActiveFiltersIconButton/ActiveFiltersIconButton.tsx","../../src/components/AddressFormFields/AddressFormFields.tsx","../../src/components/ControlledValidTextInput/ControlledValidTextInput.tsx","../../src/components/GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete.tsx","../../src/components/PhoneInput/PhoneInput.tsx","../../src/components/SmartSelect/SmartSelect.tsx","../../src/components/AlertDialog/AlertDialog.tsx","../../src/components/AlertDialogFullScreen/AlertDialogFullScreen.tsx","../../src/components/AppLabel/AppLabel.tsx","../../src/components/AppliedTableFiltersDisplay/AppliedTableFiltersDisplay.tsx","../../src/components/DynamicOverflowTooltip/DynamicOverflowTooltip.tsx","../../src/hooks/useCheckOverflow/useCheckOverflow.ts","../../src/components/LabeledValueList/LabeledValueList.tsx","../../src/components/AutocompleteFilterMenuContent/AutocompleteFilterMenuContent.tsx","../../src/utils/resolveObjectType/resolveObjectType.ts","../../src/components/Buttons/ExtendedButton/ExtendedButton.tsx","../../src/components/icons/IconCompare.tsx","../../src/components/FilterOptionsCheckboxes/FilterOptionsCheckboxes.tsx","../../src/components/SearchFieldDebounced/SearchFieldDebounced.tsx","../../src/components/BackHeader/BackHeader.tsx","../../src/components/BottomBar/BottomBar.tsx","../../src/components/BoxButton/BoxButton.tsx","../../src/components/Buttons/FilledButton/FilledButton.tsx","../../src/components/Buttons/FilledButton/FilledButtonLg.tsx","../../src/components/Buttons/ImageButton/ImageButton.tsx","../../src/components/Buttons/SquareButton/SquareButton.tsx","../../src/components/Buttons/UploadButton/UploadButton.tsx","../../src/components/Buttons/OutlinedButton/OutlinedButton.tsx","../../src/components/Buttons/OutlinedButton/OutlinedButtonLg.tsx","../../src/components/Buttons/RoundButton/RoundButton.tsx","../../src/components/icons/BallsLogo.tsx","../../src/components/icons/EmptyGlassIcon.tsx","../../src/components/icons/IconAccount.tsx","../../src/components/icons/IconAccounts.tsx","../../src/components/icons/IconAvocado.tsx","../../src/components/icons/IconBanana.tsx","../../src/components/icons/IconBuying.tsx","../../src/components/icons/IconContentManagement.tsx","../../src/components/icons/IconGoodsin.tsx","../../src/components/icons/IconGrape.tsx","../../src/components/icons/IconHome.tsx","../../src/components/icons/IconImport.tsx","../../src/components/icons/IconLocation.tsx","../../src/components/icons/IconLogin.tsx","../../src/components/icons/IconNotification.tsx","../../src/components/icons/IconOpsMetrics.tsx","../../src/components/icons/IconOrders.tsx","../../src/components/icons/IconPhone.tsx","../../src/components/icons/IconPriceList.tsx","../../src/components/icons/IconProducts.tsx","../../src/components/icons/IconPromoCode.tsx","../../src/components/icons/IconQc.tsx","../../src/components/icons/IconReports.tsx","../../src/components/icons/IconRetail.tsx","../../src/components/icons/IconRuns.tsx","../../src/components/icons/IconScales.tsx","../../src/components/icons/IconSearchCategories.tsx","../../src/components/icons/IconSetting.tsx","../../src/components/icons/IconSnail.tsx","../../src/components/icons/IconSpecialPrice.tsx","../../src/components/icons/IconStock.tsx","../../src/components/icons/IconStrawberry.tsx","../../src/components/icons/IconSupplier.tsx","../../src/components/icons/IconSupplierPrices.tsx","../../src/components/icons/IconTableEdit.tsx","../../src/components/icons/IconUserManagement.tsx","../../src/components/icons/IconVkc.tsx","../../src/components/icons/SamsaraLogo.tsx","../../src/components/icons/index.tsx","../../src/components/icons/IconAirplane.tsx","../../src/components/icons/IconBicycle.tsx","../../src/components/icons/IconBus.tsx","../../src/components/icons/IconCar.tsx","../../src/components/icons/IconFork.tsx","../../src/components/icons/IconHeart.tsx","../../src/components/icons/IconKnife.tsx","../../src/components/icons/IconSpoon.tsx","../../src/resources/icons/BulkIcon.tsx","../../src/components/Buttons/Pin.tsx","../../src/components/Buttons/PinnedApp.tsx","../../src/components/CheckboxFilterMenuContent/CheckboxFilterMenuContent.tsx","../../src/components/ClearFiltersConfirmationDialog/ClearFiltersConfirmationDialog.tsx","../../src/components/ConfirmationDialog/ConfirmationDialog.tsx","../../src/components/CompanyLogo/CompanyLogo.tsx","../../src/components/ControlledCheckbox/ControlledCheckbox.tsx","../../src/components/ControlledNumberInput/ControlledNumberInput.tsx","../../src/components/ControlledNumericField/ControlledNumericField.tsx","../../src/components/ControlledSelectWithArray/ControlledSelectWithArray.tsx","../../src/components/ControlledSelectWithObject/ControlledSelectWithObject.tsx","../../src/components/DataGrid/DataGrid.tsx","../../src/lib/moment.js","../../src/resources/styles/themes/default.js","../../src/config/constants.js","../../src/components/Date/Date.tsx","../../src/components/DeleteSubstitutionDialogContent/DeleteSubstitutionDialogContent.tsx","../../src/components/DeleteUserDialogContent/DeleteUserDialogContent.tsx","../../src/components/DeliveryInstructionsFormFields/DeliveryInstructionsFormFields.tsx","../../src/components/FileCard/FileCard.tsx","../../src/components/FilledLabel/FilledLabel.tsx","../../src/components/FilterGroupSelector/FilterGroupSelector.tsx","../../src/components/FilterSimpleSelector/FilterSimpleSelector.tsx","../../src/components/FixedFooter/FixedFooter.tsx","../../src/components/GlobalSearchTrigger/GlobalSearchTrigger.tsx","../../src/components/GlobalSearch/GlobalSearch.tsx","../../src/components/Header/Header.tsx","../../src/components/List/List.tsx","../../src/components/LocationsSectionInfo/LocationsSectionInfo.tsx","../../src/components/Notes/Notes.tsx","../../src/components/Numpad/Numpad.tsx","../../src/components/NumpadInput/NumpadInput.tsx","../../src/components/NumpadPlus/NumpadPlus.tsx","../../src/components/Pagination/Pagination.tsx","../../src/components/PlusMinusInput/PlusMinusInput.tsx","../../src/components/ProductBust/ProductBust.tsx","../../src/components/ProductImage/ProductImage.tsx","../../src/components/RenderAvatar/RenderAvatar.tsx","../../src/components/RenderContentList/RenderContentList.tsx","../../src/utils/useGetActiveSection.ts","../../src/components/RowProductCard/RowProductCard.tsx","../../src/components/ScrollableDialog/ScrollableDialog.tsx","../../src/components/SearchAndFilterHeader/SearchAndFilterHeader.tsx","../../src/components/SearchWithFilters/SearchWithFilters.tsx","../../src/components/SearchAndFilterHeader/SearchAndFilterHeaderForTable.tsx","../../src/components/SearchWithFilters/SearchWithFiltersForTable.tsx","../../src/components/SearchHeader/SearchHeader.tsx","../../src/components/SectionName/SectionName.tsx","../../src/components/SmartMultipleSelect/SmartMultipleSelect.tsx","../../src/components/SquareLabel/SquareLabel.tsx","../../src/components/Switch/Switch.tsx","../../src/components/SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu.tsx","../../src/components/SmartTableHeader/SmartTableHeader.tsx","../../src/components/Table/Table.tsx","../../src/components/TableLoading/TableLoading.tsx","../../src/components/Table/helpers.tsx","../../src/components/TableDesktop/TableDesktop.tsx","../../src/components/TableDesktopLoadingState/TableDesktopLoadingState.tsx","../../src/components/TableDesktopNoColumnsMessage/TableDesktopNoColumnsMessage.tsx","../../src/components/Buttons/BaseButton/BaseIconButton.tsx","../../src/components/TableDesktopRows/TableDesktopRows.tsx","../../src/components/TableDesktopRowSelectionBar/TableDesktopRowSelectionBar.tsx","../../src/components/TableEmptyResult/TableEmptyResult.tsx","../../src/components/TableDesktopEditableField/TableDesktopEditableField.tsx","../../src/components/TableDesktopEditableField/TableDesktopSmartMultipleSelect.tsx","../../src/components/TableDesktopEditableField/TableDesktopSmartSelect.tsx","../../src/components/TableDesktopEditableField/TableDesktopTagsField.tsx","../../src/components/HashtagInput/HashtagInput.tsx","../../src/components/TableDesktopEditableField/TableDesktopTextField.tsx","../../src/components/TableDesktopFooter/TableDesktopFooter.tsx","../../src/components/TableDesktopCell/TableDesktopCell.tsx","../../src/components/TableDesktopToolbar/TableDesktopToolbar.tsx","../../src/components/TableHeader/TableHeader.tsx","../../src/components/TextDivider/TextDivider.tsx","../../src/components/ThemedDateRangePicker/ThemedDateRangePicker.tsx","../../src/components/TheToolbar/TheToolbar.tsx","../../src/components/ToastMessage/ToastMessage.tsx","../../src/components/TwoButtonDialog/TwoButtonDialog.tsx","../../src/components/UserBust/UserBust.tsx","../../src/components/icons/IconChart.tsx"],"sourcesContent":["import { memo, MouseEvent } from 'react';\n\nimport FilterList from '@mui/icons-material/FilterList';\nimport { Typography, Chip, IconButton } from '@mui/material';\n\ntype ActiveFiltersIconButtonProps = {\n label?: string;\n className?: string;\n enableRipple?: boolean;\n numActiveFilters: number;\n handleClick: (event: MouseEvent<HTMLElement>) => void;\n};\n\nexport const ActiveFiltersIconButton = memo(\n ({\n label,\n className,\n enableRipple = false,\n numActiveFilters,\n handleClick,\n }: ActiveFiltersIconButtonProps) => (\n <IconButton\n disableRipple={!enableRipple}\n onClick={handleClick}\n data-testid=\"filter-menu-button\"\n sx={{ padding: 0, gap: 1 }}\n className={className}\n >\n {label ? (\n <Typography variant=\"button\" fontSize={12} marginTop={0.5}>\n {label}\n </Typography>\n ) : null}\n\n {numActiveFilters > 0 ? (\n <Chip\n sx={{ height: 24 }}\n label={numActiveFilters}\n icon={<FilterList style={{ fontSize: 18 }} color=\"primary\" />}\n />\n ) : (\n <FilterList style={{ fontSize: 18 }} />\n )}\n </IconButton>\n ),\n);\n","import { useCallback, useMemo } from 'react';\nimport { UseFormReturn, Controller } from 'react-hook-form';\n\nimport { Box, Tooltip } from '@mui/material';\n\nimport ControlledValidTextInput from '../ControlledValidTextInput/ControlledValidTextInput';\nimport {\n GooglePlacesAddressAutocomplete,\n GooglePlacesAddressAutocompleteProps,\n ProcessedAddress,\n} from '../GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete';\nimport { PhoneInput } from '../PhoneInput/PhoneInput';\nimport { SmartSelect } from '../SmartSelect/SmartSelect';\n\nexport type AddressCountry = {\n code: string;\n name: string;\n};\n\nexport type AddressState = {\n id: number;\n name: string;\n abbreviation?: string | null;\n country?: string | null;\n};\n\nexport type BaseAddressFormFields = {\n name: string;\n line1: string;\n line2?: string | null;\n primary_phone_number?: string | null;\n city: string;\n county?: string | null;\n postcode: string;\n country: AddressCountry;\n state?: AddressState | null;\n};\n\nexport type AddressFormFieldsProps = {\n form: UseFormReturn<BaseAddressFormFields>;\n hidePrimaryPhoneNumberField?: boolean;\n countriesSelectProps: {\n countries: AddressCountry[];\n isCountriesFetching: boolean;\n refetchCountries: () => void;\n };\n statesSelectProps: {\n addressStates: AddressState[];\n isAddressStatesFetching: boolean;\n };\n googlePlacesAutocompleteProps?: GooglePlacesAddressAutocompleteProps;\n};\n\nconst ADDRESS_FORM_FIELDS = [\n 'line1',\n 'line2',\n 'city',\n 'county',\n 'country',\n 'state',\n 'postcode',\n] as const;\n\nexport const AddressFormFields = ({\n form,\n hidePrimaryPhoneNumberField = false,\n countriesSelectProps: { countries, isCountriesFetching, refetchCountries },\n statesSelectProps: { addressStates, isAddressStatesFetching },\n googlePlacesAutocompleteProps,\n}: AddressFormFieldsProps) => {\n const { control, getValues, setValue, trigger } = form;\n\n const countriesOptions = useMemo(\n () =>\n countries.map((country) => ({\n value: country.code,\n label: country.name,\n })),\n [countries],\n );\n\n const statesOptions = useMemo(\n () =>\n addressStates.map((state) => ({\n value: state.id,\n label: state.name,\n })),\n [addressStates],\n );\n\n const handleOnAddressSelected = useCallback(\n (processedAddress: ProcessedAddress) => {\n ADDRESS_FORM_FIELDS.forEach((field) => {\n setValue(field, processedAddress[field]);\n });\n trigger();\n },\n [setValue, trigger],\n );\n\n const handleClearAddressOption = () => {\n ADDRESS_FORM_FIELDS.forEach((field) => {\n setValue(field, '');\n });\n form.reset();\n googlePlacesAutocompleteProps?.onChangeAddressOption(null);\n };\n\n const countryValues = getValues('country');\n const doesCountryHaveStates = !!(countryValues?.code && addressStates.length);\n\n const stateSelectTooltip = useMemo(() => {\n if (doesCountryHaveStates) return '';\n return countryValues?.code\n ? 'No available states for this country.'\n : 'Select a country to see available states.';\n }, [doesCountryHaveStates, countryValues?.code]);\n\n return (\n <Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'end',\n gap: '32px',\n width: '100%',\n mb: 2.5,\n }}\n >\n <ControlledValidTextInput\n fieldName=\"name\"\n form={form}\n label=\"Address Name *\"\n sx={{ flex: '0 0 calc(70% - 16px)' }}\n maxLength={100}\n helperText=\"Name this address for easier reference (e.g. Office, Home, etc.).\"\n />\n\n {!hidePrimaryPhoneNumberField && (\n <Controller\n control={control}\n name=\"primary_phone_number\"\n render={({ field, fieldState }) => (\n <PhoneInput\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n value={field.value as string}\n onChange={field.onChange}\n label=\"Primary Phone Number\"\n error={!!fieldState.error}\n placeholder={\n fieldState.error?.message ??\n 'Start typing your main phone number.'\n }\n />\n )}\n />\n )}\n </Box>\n\n {googlePlacesAutocompleteProps &&\n !!googlePlacesAutocompleteProps.apiKey && (\n <Box sx={{ width: '100%', display: 'flex', mb: '20px' }}>\n <GooglePlacesAddressAutocomplete\n containerStyles={{ width: '60%' }}\n onAddressSelected={handleOnAddressSelected}\n onClearAddressOption={handleClearAddressOption}\n {...googlePlacesAutocompleteProps}\n />\n </Box>\n )}\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <ControlledValidTextInput\n fieldName=\"line1\"\n form={form}\n label=\"Address Line 1 *\"\n maxLength={100}\n sx={{ flex: '0 0 calc(70% - 16px)' }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"line2\"\n form={form}\n label=\"Address Line 2 (Optional)\"\n maxLength={100}\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n helperText=\" \"\n />\n </Box>\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <Box sx={{ flex: '0 0 calc(70% - 16px)' }}>\n <Controller\n name=\"country\"\n control={control}\n render={({ field, fieldState }) => (\n <SmartSelect\n inputLabel=\"Country *\"\n value={field.value?.code ?? ''}\n menuProps={{ disableRestoreFocus: true }}\n refetch={refetchCountries}\n isFetching={isCountriesFetching}\n options={countriesOptions}\n error={!!fieldState.error}\n helperText={fieldState.error?.message ?? ' '}\n defaultOption={\n field.value\n ? { value: field.value.code, label: field.value.name }\n : undefined\n }\n onChange={({ value, label }) => {\n const newCountryCode = String(value);\n\n field.onChange({ code: newCountryCode, name: label });\n setValue('state', null);\n }}\n />\n )}\n />\n </Box>\n\n <Box component=\"span\" sx={{ flex: '0 0 calc(30% - 16px)', mb: '23px' }}>\n <Tooltip title={stateSelectTooltip}>\n <Box>\n <Controller\n name=\"state\"\n control={control}\n render={({ field }) => (\n <SmartSelect\n allowBlankOption\n inputLabel=\"State (Optional)\"\n variant=\"standard\"\n menuProps={{ disableRestoreFocus: true }}\n disabled={!doesCountryHaveStates}\n value={field.value?.id ?? ''}\n isFetching={isAddressStatesFetching}\n options={statesOptions}\n emptyMessage=\"No states available\"\n defaultOption={\n field.value\n ? { value: field.value.id, label: field.value.name }\n : undefined\n }\n onChange={({ value }) => {\n const selectedOption = addressStates.find(\n (state) => state.id === value,\n );\n field.onChange(value === '' ? null : selectedOption);\n }}\n />\n )}\n />\n </Box>\n </Tooltip>\n </Box>\n </Box>\n\n <Box\n sx={{ display: 'flex', alignItems: 'end', gap: '32px', width: '100%' }}\n >\n <ControlledValidTextInput\n fieldName=\"city\"\n form={form}\n label=\"Town or City *\"\n maxLength={30}\n sx={{ flexGrow: 1 }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"county\"\n form={form}\n label=\"County (Optional)\"\n maxLength={30}\n sx={{ flexGrow: 1 }}\n helperText=\" \"\n />\n\n <ControlledValidTextInput\n fieldName=\"postcode\"\n form={form}\n sx={{ flex: '0 0 calc(30% - 16px)' }}\n label=\"Postcode *\"\n maxLength={10}\n helperText=\" \"\n />\n </Box>\n </Box>\n );\n};\n","import * as React from 'react';\nimport {\n Controller,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n UseFormReturn,\n} from 'react-hook-form';\nimport { UseMutateAsyncFunction } from 'react-query';\n\nimport { Box, BoxProps, TextField } from '@mui/material';\nimport classNames from 'classnames';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n fullWidthWrapper: {\n maxWidth: '100%',\n },\n helperTextWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n helperTextWidth80: {\n maxWidth: '80%',\n },\n}));\n\ninterface ControlledValidTextInputBaseProps {\n label: string;\n fieldName: string;\n helperText?: string;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n className?: string;\n sx?: BoxProps['sx'];\n maxLength?: number;\n 'data-testid'?: string;\n form: UseFormReturn<any>;\n}\n\n/** Ensure AT MOST ONE of 'updateCustomerData' or 'customHandleBlurValidationAndSubmit' can be provided. */\ntype ControlledValidTextInputDefaultProps =\n ControlledValidTextInputBaseProps & {\n updateCustomerData?: UseMutateAsyncFunction<any, unknown, any, unknown>;\n customHandleBlurValidationAndSubmit?: never;\n };\ntype ControlledValidTextInputCustomProps = ControlledValidTextInputBaseProps & {\n updateCustomerData?: never;\n customHandleBlurValidationAndSubmit?: (\n // eslint-disable-next-line no-unused-vars\n controlledField: ControllerRenderProps<FieldValues, string>,\n // eslint-disable-next-line no-unused-vars\n isDirty: boolean,\n ) => void;\n};\ntype ControlledValidTextInputProps =\n | ControlledValidTextInputDefaultProps\n | ControlledValidTextInputCustomProps;\n\nconst convertUnderscoreToHyphen = (str: string) => str.replace(/_/g, '-');\n\nconst ControlledValidTextInput: React.FC<ControlledValidTextInputProps> = ({\n label,\n fieldName,\n helperText,\n disabled,\n variant = 'standard',\n className,\n sx,\n maxLength,\n 'data-testid': dataTestId,\n form: { control, watch, trigger },\n updateCustomerData,\n customHandleBlurValidationAndSubmit,\n}) => {\n const { classes } = useStyles();\n\n const defaultHandleBlurValidationAndSubmit = async (\n { name, value, onChange }: ControllerRenderProps<FieldValues, string>,\n isDirty: boolean,\n ) => {\n const trimmedValue = value?.trim();\n\n if (value !== trimmedValue) {\n onChange(trimmedValue);\n }\n\n const isValid = await trigger(name);\n\n if (isValid && isDirty) {\n updateCustomerData?.({ [name]: trimmedValue });\n }\n };\n\n const handleBlurValidationAndSubmit = (\n controlledField: ControllerRenderProps<FieldValues, string>,\n fieldState: ControllerFieldState,\n ) => {\n if (!updateCustomerData && !customHandleBlurValidationAndSubmit) {\n trigger(controlledField.name);\n }\n\n if (customHandleBlurValidationAndSubmit) {\n customHandleBlurValidationAndSubmit(controlledField, fieldState.isDirty);\n } else {\n defaultHandleBlurValidationAndSubmit(controlledField, fieldState.isDirty);\n }\n };\n\n return (\n <Box\n className={className}\n sx={sx}\n data-testid={dataTestId || `${convertUnderscoreToHyphen(fieldName)}`}\n >\n <Controller\n control={control}\n name={fieldName}\n render={({ field: controlledField, fieldState }) => (\n <Box className={classes.fullWidthWrapper}>\n <TextField\n {...controlledField}\n value={controlledField?.value || ''}\n fullWidth\n id={fieldName}\n data-testid={\n dataTestId\n ? `${dataTestId}-input`\n : `${convertUnderscoreToHyphen(fieldName)}-input`\n }\n label={label}\n error={!!fieldState.error}\n multiline\n autoComplete=\"off\"\n disabled={disabled}\n variant={variant}\n helperText={\n <Box\n component=\"span\"\n sx={{ whiteSpace: 'pre-wrap' }}\n className={classNames({\n [classes.helperTextWrapper]: !!maxLength,\n })}\n data-testid={\n dataTestId\n ? `${dataTestId}-helper-text`\n : `${convertUnderscoreToHyphen(fieldName)}-helper-text`\n }\n >\n <Box\n component=\"span\"\n className={classNames({\n [classes.helperTextWidth80]: !!maxLength,\n })}\n >\n {fieldState.error?.message ?? helperText}\n </Box>\n {!!maxLength && (\n <Box component=\"span\">\n {`${watch(fieldName)?.length ?? 0}/${maxLength}`}\n </Box>\n )}\n </Box>\n }\n onBlur={() =>\n handleBlurValidationAndSubmit(controlledField, fieldState)\n }\n />\n </Box>\n )}\n />\n </Box>\n );\n};\n\nexport default ControlledValidTextInput;\n","import { CSSProperties, useEffect } from 'react';\nimport GooglePlacesAutocomplete from 'react-google-places-autocomplete';\n\nimport Clear from '@mui/icons-material/Clear';\nimport { IconButton, Box } from '@mui/material';\nimport { useTheme, Theme } from '@mui/material/styles';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { AddressState } from '../AddressFormFields/AddressFormFields';\n\nconst getCustomStyles = (\n theme: Theme,\n styles: CSSProperties,\n getBorderColor: () => string,\n) => ({\n container: (provided: any) => ({\n ...provided,\n ...styles,\n fontSize: 16,\n fontFamily: theme.typography.fontFamily,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n paddingTop: '9px',\n paddingBottom: '9px',\n borderRadius: '4px',\n border: `1px solid ${\n state.isFocused ? colors.muiPrimary : getBorderColor()\n }`,\n outline: state.isFocused ? '1px solid' : 'none',\n outlineColor: colors.muiPrimary,\n boxShadow: 'none',\n backgroundColor: 'none',\n '&:hover': null,\n }),\n input: (provided: any) => ({\n ...provided,\n color: theme.palette.text.primary,\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: theme.palette.grey[700],\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: theme.palette.text.primary,\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n backgroundColor: state.isFocused ? theme.palette.action.hover : 'none',\n color: state.isFocused\n ? theme.palette.text.primary\n : theme.palette.text.secondary,\n fontSize: 14,\n cursor: 'pointer',\n }),\n menu: (provided: any) => ({\n ...provided,\n zIndex: 9999,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n }),\n});\n\nconst processAddressComponents = (\n components: GoogleAddressComponent[],\n): ProcessedAddress => {\n const processedAddress: ProcessedAddress = {\n line1: '',\n line2: '',\n city: '',\n county: '',\n state: null,\n country: {\n code: '',\n name: '',\n },\n postcode: '',\n };\n\n components.forEach(({ types, long_name, short_name }) => {\n if (types.includes('street_number')) {\n processedAddress.line1 = `${long_name} `;\n }\n if (types.includes('route')) {\n processedAddress.line1 += long_name;\n }\n if (\n types.includes('sublocality') ||\n types.includes('sublocality_level_1')\n ) {\n processedAddress.line2 = long_name;\n }\n if (types.includes('locality') || types.includes('postal_town')) {\n processedAddress.city = long_name;\n }\n if (types.includes('administrative_area_level_2')) {\n if (!processedAddress.city) {\n processedAddress.city = long_name;\n } else {\n processedAddress.county = long_name;\n }\n }\n if (types.includes('country')) {\n processedAddress.country ??= { code: '', name: '' };\n processedAddress.country.code = short_name;\n processedAddress.country.name = long_name;\n }\n if (types.includes('postal_code')) {\n processedAddress.postcode = long_name;\n }\n });\n\n return processedAddress;\n};\n\nexport type AddressOption = {\n label: string;\n placeId: string;\n};\n\nexport type ProcessedAddress = {\n line1?: string;\n line2?: string;\n city?: string;\n county?: string;\n state?: AddressState | null;\n country?: {\n code: string;\n name: string;\n };\n postcode?: string;\n};\n\ntype GoogleAddressComponent = {\n types: string[];\n long_name: string;\n short_name: string;\n};\n\ntype GooglePlacesRawData = {\n status: string;\n result: {\n address_components: GoogleAddressComponent[];\n };\n};\n\nexport type GooglePlacesAddressAutocompleteProps = {\n apiKey: string;\n googlePlacesRawData?: GooglePlacesRawData;\n isGooglePlacesRawDataFetching?: boolean;\n addressOption: AddressOption | null;\n onChangeAddressOption: (newAddressOption: AddressOption | null) => void;\n onAddressSelected?: (processedAddress: ProcessedAddress) => void;\n onClearAddressOption?: () => void;\n containerStyles?: CSSProperties;\n};\n\nexport const GooglePlacesAddressAutocomplete = ({\n apiKey,\n googlePlacesRawData,\n isGooglePlacesRawDataFetching = false,\n addressOption,\n onChangeAddressOption,\n onAddressSelected,\n onClearAddressOption,\n containerStyles = {},\n}: GooglePlacesAddressAutocompleteProps) => {\n const theme = useTheme();\n\n const getBorderColor = () => theme.palette.grey[400];\n\n useEffect(() => {\n if (googlePlacesRawData && googlePlacesRawData.status === 'OK') {\n const addressComponents = googlePlacesRawData.result.address_components;\n const processedAddress = processAddressComponents(addressComponents);\n\n onAddressSelected?.(processedAddress);\n }\n }, [googlePlacesRawData, onAddressSelected]);\n\n return (\n <Box\n sx={{\n gap: 1,\n display: 'flex',\n width: '100%',\n justifyItems: 'center',\n alignItems: 'center',\n }}\n >\n <GooglePlacesAutocomplete\n debounce={1000}\n apiOptions={{ region: 'uk', language: 'en' }}\n minLengthAutocomplete={5}\n apiKey={apiKey}\n autocompletionRequest={{\n componentRestrictions: {\n country: ['us', 'uk'],\n },\n }}\n selectProps={{\n noOptionsMessage: () => 'No address found',\n placeholder: 'Start typing your address (min 5 characters)',\n styles: getCustomStyles(theme, containerStyles, getBorderColor),\n isLoading: isGooglePlacesRawDataFetching,\n value: addressOption\n ? {\n label: addressOption.label,\n value: { place_id: addressOption.placeId },\n }\n : null,\n onChange: (newAddressOption) => {\n if (!newAddressOption) {\n return;\n }\n onChangeAddressOption({\n label: newAddressOption.label,\n placeId: newAddressOption.value.place_id,\n });\n },\n }}\n />\n\n {!!addressOption && (\n <IconButton\n onClick={onClearAddressOption}\n sx={{\n width: 40,\n height: 40,\n flexShrink: 0,\n }}\n >\n <Clear />\n </IconButton>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport ReactPhoneInput from 'react-phone-input-material-ui';\n\nimport { Box, BoxProps, TextField, Typography } from '@mui/material';\n\ninterface PhoneInputProps {\n value?: string | null;\n // eslint-disable-next-line no-unused-vars\n onChange?: (phone: string | null) => void;\n placeholder?: string;\n sx?: BoxProps['sx'];\n className?: string;\n label?: string;\n error?: boolean;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n value,\n onChange,\n placeholder,\n label = 'Phone',\n sx,\n className,\n error = false,\n}) => (\n <Box\n sx={{\n width: '100%',\n height: '100%',\n ...sx,\n }}\n className={className}\n >\n <ReactPhoneInput\n label={label}\n value={value}\n onChange={onChange}\n component={(props) => <TextField {...props} variant=\"standard\" />}\n containerStyle={{ width: '100%', height: '100%' }}\n placeholder=\" \"\n inputProps={{ error }}\n />\n <Typography\n color={error ? 'error' : 'textSecondary'}\n sx={{\n fontSize: '0.75rem',\n paddingTop: '4px',\n display: 'block',\n }}\n >\n {placeholder ?? ' '}\n </Typography>\n </Box>\n);\n","import { forwardRef, useMemo, KeyboardEvent } from 'react';\n\nimport {\n Box,\n CircularProgress,\n FormControl,\n FormHelperText,\n InputLabel,\n MenuItem,\n MenuProps,\n Select,\n SelectChangeEvent,\n SelectProps,\n} from '@mui/material';\n\nimport { getSelectOptionFromKeyPress } from '@/utils/getSelectOptionFromKeyPress/getSelectOptionFromKeyPress';\n\nexport type Option = {\n value?: string | number;\n label?: string;\n disabled?: boolean;\n};\n\nexport interface SmartSelectProps {\n value?: string | number | null;\n defaultOption?: Option;\n options?: Option[];\n refetch?: () => void;\n isFetching?: boolean;\n onChange: (selectedOption: Option) => void;\n onKeyDownCapture?: (event: KeyboardEvent<HTMLDivElement>) => void;\n inputLabel?: string;\n variant?: SelectProps['variant'];\n size?: SelectProps['size'];\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n allowBlankOption?: boolean;\n 'data-testid'?: string;\n emptyMessage?: string;\n menuProps?: Partial<MenuProps>;\n}\n\nexport const SmartSelect = forwardRef(\n (\n {\n value,\n defaultOption,\n options = [],\n refetch,\n isFetching = false,\n onChange,\n onKeyDownCapture,\n inputLabel,\n variant = 'standard',\n size,\n error,\n helperText,\n disabled,\n allowBlankOption = false,\n 'data-testid': dataTestId,\n emptyMessage = 'No options',\n menuProps,\n }: SmartSelectProps,\n ref,\n ) => {\n const visibleOptions = useMemo(() => {\n const baseOptions = [\n ...(allowBlankOption ? [{ value: '', label: 'None' }] : []),\n ...(options ?? []),\n ];\n const isSelectedInOptions = baseOptions.some((o) => o.value === value);\n\n if (value && !isSelectedInOptions && defaultOption?.value === value) {\n return [...baseOptions, defaultOption];\n }\n\n return baseOptions;\n }, [options, value, defaultOption]);\n\n const handleFetchData = () => {\n if (!options?.length) {\n refetch?.();\n }\n };\n\n const handleChange = (event: SelectChangeEvent<string | number | null>) => {\n const selectedId = event.target.value;\n const selectedOption = visibleOptions.find(\n (option) => option.value === selectedId,\n );\n\n if (selectedOption) {\n onChange(selectedOption);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n // Ignores shortcut keys.\n if (event.ctrlKey || event.altKey || event.metaKey) {\n return;\n }\n\n const nextOption = getSelectOptionFromKeyPress({\n key: event.key,\n options: visibleOptions,\n currentValue: value,\n });\n\n if (nextOption) {\n event.preventDefault();\n onChange(nextOption);\n }\n };\n\n const handleKeyDownCapture = (event: KeyboardEvent<HTMLDivElement>) => {\n onKeyDownCapture?.(event);\n };\n\n const renderMenuContent = () => {\n if (isFetching) {\n return [\n <Box\n key=\"select-loading\"\n data-testid=\"select-loading\"\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n p: 2,\n }}\n >\n <CircularProgress size={24} />\n </Box>,\n // Hidden default item to satisfy MUI validation\n defaultOption ? (\n <MenuItem\n key=\"hidden-default-item\"\n data-testid=\"hidden-default-item\"\n value={defaultOption?.value}\n sx={{ display: 'none' }}\n >\n {defaultOption?.label}\n </MenuItem>\n ) : null,\n ];\n }\n\n if (!visibleOptions.length) {\n return (\n <MenuItem disabled data-testid={`${dataTestId}-empty-message`}>\n {emptyMessage}\n </MenuItem>\n );\n }\n\n return visibleOptions.map((option) => (\n <MenuItem\n key={option.value}\n value={option.value}\n data-testid={`${dataTestId}-option-${option?.value}`}\n disabled={option.disabled}\n >\n {option.label}\n </MenuItem>\n ));\n };\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={error}\n variant={variant}\n data-testid={dataTestId}\n disabled={disabled}\n >\n {inputLabel && (\n <InputLabel\n id=\"smart-select-label\"\n data-testid={`${dataTestId}-label`}\n >\n {inputLabel}\n </InputLabel>\n )}\n <Select\n ref={ref}\n labelId=\"smart-select-label\"\n id={`${dataTestId}-select`}\n data-testid={`${dataTestId}-select`}\n value={value ?? ''}\n onChange={handleChange}\n onOpen={handleFetchData}\n onFocus={handleFetchData}\n onKeyDown={handleKeyDown}\n onKeyDownCapture={handleKeyDownCapture}\n label={inputLabel}\n MenuProps={menuProps}\n >\n {renderMenuContent()}\n </Select>\n {helperText && (\n <FormHelperText data-testid={`${dataTestId}-helper-text`}>\n {helperText}\n </FormHelperText>\n )}\n </FormControl>\n );\n },\n);\n","import { ReactNode } from 'react';\nimport * as React from 'react';\n\nimport { Box, Button, Dialog, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n topSection: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: 8,\n marginBottom: 20,\n paddingInline: theme.spacing(3),\n paddingTop: theme.spacing(3),\n },\n title: {\n color: theme.palette.text.secondary,\n },\n bottomSection: {\n display: 'flex',\n justifyContent: 'center',\n gap: 8,\n },\n}));\n\ninterface AlertDialogProps {\n open: boolean;\n alertTitle?: string;\n description?: string;\n maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n fullWidth?: boolean;\n content?: ReactNode;\n fullScreen?: boolean;\n handleAlertAccept?: () => void;\n handleAlertReject?: () => void;\n rejectCopy?: string;\n acceptCopy?: string;\n disabledContentPadding?: boolean;\n disableEnforceFocus?: boolean;\n disableRestoreFocus?: boolean;\n}\n\nconst AlertDialog: React.FC<AlertDialogProps> = ({\n alertTitle,\n description,\n maxWidth,\n fullWidth,\n handleAlertAccept,\n handleAlertReject,\n fullScreen,\n open,\n rejectCopy,\n acceptCopy,\n content,\n disabledContentPadding,\n disableEnforceFocus,\n disableRestoreFocus,\n}) => {\n const { classes } = useStyles();\n return (\n <Dialog\n open={open}\n onClose={handleAlertReject}\n maxWidth={maxWidth}\n fullScreen={fullScreen}\n fullWidth={fullWidth}\n disableEnforceFocus={disableEnforceFocus}\n disableRestoreFocus={disableRestoreFocus}\n >\n <Box>\n <Box className={classes.topSection}>\n {alertTitle ? (\n <Typography variant=\"h5\" className={classes.title}>\n {alertTitle}\n </Typography>\n ) : null}\n\n {description ? (\n <Typography variant=\"body1\">{description}</Typography>\n ) : null}\n </Box>\n\n <Box padding={disabledContentPadding ? '' : '24px'}>\n {content || null}\n </Box>\n\n {rejectCopy || acceptCopy ? (\n <Box className={classes.bottomSection}>\n <Button onClick={handleAlertReject}>\n {rejectCopy || 'Reject'}\n </Button>\n <Button onClick={handleAlertAccept} color=\"primary\" autoFocus>\n {acceptCopy || 'Accept'}\n </Button>\n </Box>\n ) : null}\n </Box>\n </Dialog>\n );\n};\n\nexport default AlertDialog;\n","import { Button, Dialog, DialogActions, DialogContent } from '@mui/material';\n\ninterface AlertDialogFullScreenProps {\n acceptCopy?: any;\n content?: any;\n fullScreen?: any;\n handleAlertAccept?: any;\n handleAlertReject?: any;\n open?: any;\n rejectCopy?: any;\n}\n\nconst AlertDialogFullScreen = ({\n handleAlertAccept,\n handleAlertReject,\n fullScreen,\n open,\n rejectCopy,\n acceptCopy,\n content,\n}: AlertDialogFullScreenProps) => (\n <Dialog\n aria-describedby=\"alert-dialog-description\"\n aria-labelledby=\"alert-dialog-title\"\n fullScreen={fullScreen}\n open={open || false}\n >\n <div>\n <DialogContent style={{ padding: 0 }}>{content}</DialogContent>\n {(rejectCopy || acceptCopy) && (\n <DialogActions style={{ padding: 24 }}>\n <Button onClick={handleAlertReject}>{rejectCopy || 'Reject'}</Button>\n <Button onClick={handleAlertAccept} color=\"primary\" autoFocus>\n {acceptCopy || 'Accept'}\n </Button>\n </DialogActions>\n )}\n </div>\n </Dialog>\n);\n\nexport default AlertDialogFullScreen;\n","import { Box, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n wrapper: {\n opacity: 0.7,\n },\n asset: {\n color: colors.contrast,\n height: 10,\n },\n name: {\n fontWeight: 600,\n textTransform: 'uppercase',\n maxWidth: 100,\n lineHeight: 1.2,\n },\n}));\n\ninterface IAppLabel {\n appName: string;\n}\n\nconst AppLabel = ({ appName }: IAppLabel) => {\n const { classes } = useStyles();\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 1,\n paddingRight: 2,\n }}\n >\n <div className={classes.wrapper}>\n <Typography className={classes.name} variant=\"subtitle2\">\n {appName}\n </Typography>\n </div>\n </Box>\n );\n};\n\nexport default AppLabel;\n","import { FC, useMemo, useRef } from 'react';\n\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport { Box, Button, Chip, IconButton, Typography } from '@mui/material';\n\nimport { useDynamicScroll } from '@/hooks/useDynamicScroll/useDynamicScroll';\nimport { getFlattenedFiltersLabels } from '@/utils/flattenTableFilters/flattenTableFilters';\n\nimport { LabeledValueList } from '../LabeledValueList/LabeledValueList';\nimport { HeadCell, HeaderFilters } from '../TableDesktop/TableDesktop';\n\ntype AppliedTableFiltersDisplayProps = {\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n hasAnyFiltersApplied: boolean;\n onOpenClearFiltersDialog: () => void;\n};\n\nexport const AppliedTableFiltersDisplay: FC<\n AppliedTableFiltersDisplayProps\n> = ({\n headCells,\n headerFilters,\n hasAnyFiltersApplied,\n onOpenClearFiltersDialog,\n}) => {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const appliedFiltersComponents = useMemo(\n () =>\n headCells.map(({ id, label, fieldName }) => {\n const filterValues = getFlattenedFiltersLabels(\n headerFilters[id] ?? [],\n fieldName ?? '',\n );\n\n return filterValues.length ? (\n <Chip\n key={id}\n sx={{ height: 24 }}\n label={\n <LabeledValueList values={filterValues} label={label ?? ''} />\n }\n />\n ) : null;\n }),\n [headCells],\n );\n\n const { isScrollable, scroll } = useDynamicScroll({\n scrollRef,\n effectDependencies: [appliedFiltersComponents],\n });\n\n return hasAnyFiltersApplied ? (\n <Box\n sx={{\n pt: 2,\n gap: 1,\n display: 'flex',\n alignItems: 'center',\n maxWidth: { xs: '100%', sm: 'calc(100% - 222px)' },\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Typography whiteSpace=\"nowrap\" variant=\"body2\">\n Applied Filters:\n </Typography>\n\n <Box\n sx={{\n display: 'flex',\n maxWidth: '100%',\n }}\n >\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-left\"\n sx={{ padding: 0 }}\n onClick={() => scroll('left')}\n >\n <KeyboardArrowLeft />\n </IconButton>\n )}\n\n <Box\n ref={scrollRef}\n sx={{\n gap: 1,\n display: 'flex',\n overflowX: 'auto',\n whiteSpace: 'nowrap',\n scrollBehavior: 'smooth',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {appliedFiltersComponents}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-right\"\n sx={{ padding: 0 }}\n onClick={() => scroll('right')}\n >\n <KeyboardArrowRight />\n </IconButton>\n )}\n </Box>\n\n <Button\n disableRipple\n variant=\"text\"\n type=\"button\"\n onClick={onOpenClearFiltersDialog}\n sx={{\n textWrap: 'nowrap',\n minWidth: 'min-content',\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'inherit',\n textDecoration: 'underline',\n },\n }}\n >\n Clear Filters\n </Button>\n </Box>\n ) : null;\n};\n","import { FC, ReactElement, useRef } from 'react';\n\nimport { Box, Tooltip } from '@mui/material';\n\nimport { useCheckOverflow } from '@/hooks/useCheckOverflow/useCheckOverflow';\n\nexport type DynamicOverflowTooltipProps = {\n arrow?: boolean;\n maxWidth?: number | string;\n children: ReactElement | string | number | null;\n tooltipDescription: string;\n};\n\nexport const DynamicOverflowTooltip: FC<DynamicOverflowTooltipProps> = ({\n arrow = false,\n maxWidth = 'auto',\n children,\n tooltipDescription,\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const { isOverflowed } = useCheckOverflow({\n targetRef: ref,\n effectDependencies: [children, tooltipDescription],\n });\n\n return (\n <Tooltip arrow={arrow} title={isOverflowed ? tooltipDescription : ''}>\n <Box\n ref={ref}\n sx={{\n maxWidth,\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {children}\n </Box>\n </Tooltip>\n );\n};\n","import { RefObject, useEffect, useState } from 'react';\n\ntype useCheckOverflowParams = {\n targetRef: RefObject<HTMLDivElement | null>;\n effectDependencies?: unknown[];\n};\n\nexport const useCheckOverflow = ({\n targetRef,\n effectDependencies,\n}: useCheckOverflowParams) => {\n const [isOverflowed, setIsOverflowed] = useState(false);\n\n useEffect(() => {\n const ref = targetRef.current;\n\n if (ref) {\n setIsOverflowed(ref.scrollWidth > ref.clientWidth);\n }\n }, effectDependencies);\n\n return { isOverflowed };\n};\n","import { FC } from 'react';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\n\ntype LabeledValueListProps = {\n label: string;\n values: (string | number)[];\n};\n\nexport const LabeledValueList: FC<LabeledValueListProps> = ({\n label,\n values,\n}) => {\n const valuesString = values?.join(', ');\n\n return (\n <DynamicOverflowTooltip tooltipDescription={valuesString}>\n <>\n <span style={{ color: colors.muiPrimaryBlack }}>{label}: </span>\n <span style={{ fontWeight: 'lighter' }}>{valuesString}</span>\n </>\n </DynamicOverflowTooltip>\n );\n};\n","import { FC } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport {\n Box,\n Button,\n Chip,\n Divider,\n Skeleton,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport ExtendedButton from '../Buttons/ExtendedButton/ExtendedButton';\nimport { FilterOptionsCheckboxes } from '../FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nimport { SearchFieldDebounced } from '../SearchFieldDebounced/SearchFieldDebounced';\nimport {\n HeadCell,\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type AutocompleteFilterMenuContentProps = {\n columnId: string;\n labelFieldName: string;\n selectedFilterOptions: HeaderFilterOptions;\n isLoading?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n onApplyFiltersClick: (shouldSave: boolean) => void;\n filterOptions: HeadCell['filterOptions'];\n onAutocompleteSearch: HeadCell['onAutocompleteSearch'];\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const AutocompleteFilterMenuContent: FC<\n AutocompleteFilterMenuContentProps\n> = ({\n columnId,\n labelFieldName,\n selectedFilterOptions,\n isLoading = false,\n maxWidth = 208,\n maxHeight = 500,\n onFilterOptionChange,\n onApplyFiltersClick,\n shouldShowCheckOnFilter,\n onAutocompleteSearch,\n filterOptions,\n}) => {\n const renderLoading = () => (\n <Skeleton variant=\"rounded\" height={26} sx={{ m: 1 }} />\n );\n\n const renderOptions = () =>\n filterOptions?.length ? (\n <FilterOptionsCheckboxes\n columnId={columnId}\n maxWidth={maxWidth}\n labelFieldName={labelFieldName}\n filterOptions={filterOptions}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={onFilterOptionChange}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n sx={{ p: 1, maxWidth: 260 }}\n >\n Start searching (minimum 3 characters) to view the results.\n </Typography>\n );\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <SearchFieldDebounced\n hideSearchIcon\n variant=\"standard\"\n minCharacters={3}\n sx={{ backgroundColor: colors.neutral200 }}\n onSearch={(value) => {\n onAutocompleteSearch?.(value);\n }}\n />\n\n <Box\n sx={{\n maxHeight,\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n {selectedFilterOptions.length ? (\n <>\n <Box\n sx={{\n px: 1,\n pt: 1,\n pb: 0.5,\n gap: 1,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {selectedFilterOptions?.map(\n (option: string | HeaderFilterObject) => {\n const filterId = resolveObjectType(option, 'id');\n const filterLabel = resolveObjectType(option, labelFieldName);\n\n return (\n <Box\n key={filterId}\n sx={{\n pl: 1,\n pr: 1.25,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <Box sx={{ maxWidth }}>\n <Chip\n size=\"small\"\n label={filterLabel}\n onDelete={() => onFilterOptionChange(option)}\n />\n </Box>\n\n {shouldShowCheckOnFilter?.(columnId, option) ? (\n <Tooltip title=\"This filter is saved as default\">\n <CheckIcon fontSize=\"small\" color=\"action\" />\n </Tooltip>\n ) : null}\n </Box>\n );\n },\n )}\n </Box>\n\n <Divider sx={{ my: 0.5 }} />\n </>\n ) : null}\n\n <Box sx={{ p: 1 }}>{isLoading ? renderLoading() : renderOptions()}</Box>\n </Box>\n\n <Divider />\n\n <Box\n sx={{\n px: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n onClick={() => onApplyFiltersClick(false)}\n sx={{\n px: 1,\n minWidth: 'min-content',\n }}\n >\n APPLY\n </Button>\n\n <ExtendedButton\n copy=\"SAVE AS DEFAULT\"\n color=\"primary\"\n buttonType=\"submit\"\n onClick={() => onApplyFiltersClick(true)}\n tooltip=\"Persists those filters for future visits\"\n />\n </Box>\n </Box>\n );\n};\n","export const resolveObjectType = <T extends Record<string, any>>(\n object: string | number | T,\n fieldName: keyof T,\n): string | number | T[keyof T] => {\n if (!object || typeof object !== 'object') {\n return object;\n }\n return object[fieldName] ?? '';\n};\n","import { memo } from 'react';\nimport * as React from 'react';\n\nimport {\n Add,\n ChildCare,\n CloudUpload,\n Delete,\n Edit,\n ImportExport,\n Notes,\n Print,\n Save,\n Refresh,\n GetApp,\n Publish,\n Apps as AppsIcon,\n} from '@mui/icons-material';\nimport { Box, Button, Tooltip } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport SvgIconCompare from '@/components/icons/IconCompare';\nimport { colors, isDarkModeEnabled } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n default: {\n boxShadow: 'none',\n borderRadius: 25,\n border: `1px solid ${colors.neutral400}`,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n },\n noOutline: {\n boxShadow: 'none',\n borderRadius: 25,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n },\n primary: {\n boxShadow: 'none',\n color: isDarkModeEnabled ? 'black' : 'white',\n background: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n maxHeight: 36,\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n textTransform: 'capitalize',\n '&:hover': {\n background: theme.palette.primary.dark,\n },\n '&:disabled': {\n background: colors.blackOpacity50,\n },\n },\n icon: {\n marginRight: 8,\n color: colors.muiPrimary,\n },\n copy: {\n display: 'flex',\n flexDirection: 'column',\n lineHeight: 'initial',\n textTransform: 'uppercase',\n whiteSpace: 'nowrap',\n '& span': {\n fontSize: '.750rem',\n fontWeight: 200,\n },\n },\n}));\n\ninterface IExtendedButton {\n buttonType?: 'button' | 'submit';\n className?: string;\n color?:\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'warning'\n | 'default'\n | 'noOutline'\n | undefined;\n copy: string;\n disabled?: boolean;\n href?: string;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n subcopy?: string;\n tooltip?: string;\n component?: React.ElementType;\n type?:\n | 'add'\n | 'apps'\n | 'childCare'\n | 'delete'\n | 'edit'\n | 'importExport'\n | 'notes'\n | 'print'\n | 'save'\n | 'upload'\n | 'refresh'\n | 'download'\n | 'publish'\n | 'compare';\n variant?: 'contained' | 'outlined' | 'text';\n copyColor?: string;\n}\n\nconst ExtendedButton = ({\n buttonType = 'button',\n color = 'noOutline',\n disabled = false,\n href,\n tooltip = '',\n component = 'button',\n type,\n className,\n onClick,\n copy,\n subcopy,\n variant = 'outlined',\n copyColor,\n}: IExtendedButton) => {\n const { classes, cx } = useStyles();\n const icons = {\n add: Add,\n apps: AppsIcon,\n childCare: ChildCare,\n delete: Delete,\n edit: Edit,\n importExport: ImportExport,\n notes: Notes,\n print: Print,\n save: Save,\n upload: CloudUpload,\n refresh: Refresh,\n download: GetApp,\n publish: Publish,\n compare: SvgIconCompare,\n };\n\n const IconComponent = icons[type || 'add'];\n\n return (\n <Tooltip title={tooltip}>\n <Box>\n <Button\n className={cx(classes[color], className)}\n color={color === 'noOutline' ? 'default' : (color as any)}\n component={component}\n data-testid={\n copy ? `extended-button-${copy.toLowerCase()}` : 'extended-button'\n }\n disabled={disabled}\n href={href ? href : undefined}\n onClick={onClick}\n type={buttonType}\n variant={variant}\n >\n {type ? (\n <IconComponent\n fontSize=\"small\"\n className={classes.icon}\n fill={colors.muiPrimary}\n />\n ) : null}\n\n <div\n className={classes.copy}\n style={{ color: copyColor || 'inherit' }}\n >\n {copy}\n <span>{subcopy}</span>\n </div>\n </Button>\n </Box>\n </Tooltip>\n );\n};\n\nexport default memo(ExtendedButton);\n","import { SVGProps } from 'react';\n\nconst SvgIconCompare = (props: SVGProps<SVGSVGElement>) => {\n const { fill } = props;\n\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M9.75 17.25H8.25V0.75H9.75V17.25ZM6.75 14.25H3.75V3.75H6.75V2.25H3.75C2.9175 2.25 2.25 2.9175 2.25 3.75V14.25C2.25 15.0825 2.925 15.75 3.75 15.75H6.75V14.25ZM14.25 5.25V6.75H15.75V5.25H14.25ZM14.25 3.75H15.75C15.75 2.9175 15.075 2.25 14.25 2.25V3.75ZM15.75 11.25H14.25V12.75H15.75V11.25ZM14.25 8.25V9.75H15.75V8.25H14.25ZM12.75 2.25H11.25V3.75H12.75V2.25ZM14.25 15.75C15.0825 15.75 15.75 15.0825 15.75 14.25H14.25V15.75ZM12.75 14.25H11.25V15.75H12.75V14.25Z\"\n fill={fill ?? '#1976D2'}\n />\n </svg>\n );\n};\n\nexport default SvgIconCompare;\n","import { FC } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport { Box, Checkbox, Tooltip } from '@mui/material';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type FilterOptionsCheckboxesProps = {\n columnId: string;\n labelFieldName: string;\n maxWidth?: number;\n filterOptions: HeaderFilterOptions;\n selectedFilterOptions: HeaderFilterOptions;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const FilterOptionsCheckboxes: FC<FilterOptionsCheckboxesProps> = ({\n columnId,\n labelFieldName,\n maxWidth = 200,\n filterOptions,\n selectedFilterOptions,\n onFilterOptionChange,\n shouldShowCheckOnFilter,\n}) => {\n const isOptionChecked = (filterId: string | number) =>\n selectedFilterOptions.some(\n (value: string | HeaderFilterObject) =>\n resolveObjectType(value, 'id') === filterId,\n ) ?? false;\n\n return filterOptions?.map((option: string | HeaderFilterObject) => {\n const filterId = resolveObjectType(option, 'id');\n const filterLabel = resolveObjectType(option, labelFieldName);\n\n return (\n <Box\n key={filterId}\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n }}\n >\n <Checkbox\n disableRipple\n onChange={() => onFilterOptionChange(option)}\n checked={isOptionChecked(filterId)}\n />\n\n <Box\n sx={{\n maxWidth,\n gap: 2,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <DynamicOverflowTooltip\n tooltipDescription={String(filterLabel)}\n arrow\n >\n {filterLabel}\n </DynamicOverflowTooltip>\n\n {shouldShowCheckOnFilter?.(columnId, option) ? (\n <Tooltip title=\"This filter is saved as default\">\n <CheckIcon fontSize=\"small\" color=\"action\" />\n </Tooltip>\n ) : null}\n </Box>\n </Box>\n );\n });\n};\n","import React, { useState, useRef, useEffect } from 'react';\n\nimport Search from '@mui/icons-material/Search';\nimport { TextField, InputAdornment, Box, SxProps, Theme } from '@mui/material';\n\nexport type SearchFieldDebouncedProps = {\n onSearch?: (value: string) => void;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n variant?: 'outlined' | 'filled' | 'standard';\n hideSearchIcon?: boolean;\n initialValue?: string;\n debounceDelay?: number;\n minCharacters?: number;\n sx?: SxProps<Theme>;\n width?: number;\n inputProps?: {\n sx: SxProps<Theme>;\n };\n};\n\nexport const SearchFieldDebounced: React.FC<SearchFieldDebouncedProps> = ({\n onSearch,\n value: controlledValue,\n onChange: onChangeControlled,\n onKeyDown,\n variant = 'outlined',\n hideSearchIcon = false,\n initialValue = '',\n debounceDelay = 500,\n minCharacters = 0,\n sx,\n width = 285,\n inputProps,\n}) => {\n const [internalValue, setInternalValue] = useState(initialValue);\n const debounceRef = useRef<number | null>(null);\n\n const inputSx = inputProps?.sx;\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const executeSearch = (inputValue: string) => {\n const trimmedInput = inputValue.trim();\n\n if (trimmedInput.length > 0 && trimmedInput.length < minCharacters) {\n return;\n }\n\n onSearch?.(trimmedInput);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target.value;\n\n if (!isControlled) {\n setInternalValue(input);\n }\n\n onChangeControlled?.(e);\n\n if (debounceRef.current) {\n clearTimeout(debounceRef.current);\n }\n\n debounceRef.current = window.setTimeout(() => {\n executeSearch(input);\n }, debounceDelay);\n };\n\n useEffect(() => {\n return () => {\n if (!debounceRef.current) {\n return;\n }\n clearTimeout(debounceRef.current);\n };\n }, []);\n\n return (\n <Box sx={{ width }}>\n <TextField\n fullWidth\n variant={variant}\n placeholder=\"Search\"\n value={value}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n sx={sx}\n slotProps={{\n input: {\n sx: {\n maxHeight: 5,\n px: 2,\n py: 2.5,\n ...inputSx,\n },\n startAdornment: !hideSearchIcon ? (\n <InputAdornment position=\"start\">\n <Search fontSize=\"small\" />\n </InputAdornment>\n ) : null,\n },\n }}\n />\n </Box>\n );\n};\n","import * as React from 'react';\nimport { useNavigate } from 'react-router';\n\nimport KeyboardBackspace from '@mui/icons-material/KeyboardBackspace';\nimport { Box, Button, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3),\n borderBottom: `1px solid ${colors.neutral400}`,\n backgroundColor: colors.neutral100,\n },\n icon: {\n color: colors.muiPrimary,\n },\n button: {\n padding: 0,\n '&:hover': {\n background: 'inherit',\n },\n },\n text: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n textTransform: 'none',\n },\n}));\n\ninterface BackHeaderProps {\n appName: string;\n onGoBackClick?: () => void;\n sideComponent?: React.ReactElement;\n}\n\nconst BackHeader: React.FC<BackHeaderProps> = ({\n appName,\n onGoBackClick,\n sideComponent = null,\n}) => {\n const { classes } = useStyles();\n const navigate = useNavigate();\n\n const handleBackClick = () => {\n if (onGoBackClick) {\n return onGoBackClick();\n }\n\n return navigate(-1);\n };\n\n return (\n <Box component=\"header\" className={classes.header}>\n <Button className={classes.button} onClick={handleBackClick}>\n <Box component=\"span\" className={classes.text}>\n <KeyboardBackspace className={classes.icon} />\n <Typography variant=\"body1\" color=\"textPrimary\">\n {appName}\n </Typography>\n </Box>\n </Button>\n\n {sideComponent}\n </Box>\n );\n};\n\nexport default BackHeader;\n","import * as React from 'react';\n\nimport { Box, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n footer: {\n backgroundColor: colors.neutral100,\n borderRadius: theme.spacing(0, 0, 0.5, 0.5),\n borderTop: `1px solid ${colors.neutral250}`,\n padding: theme.spacing(2),\n },\n insideWrapper: {\n height: '100%',\n },\n button: {\n margin: 0,\n },\n}));\n\ninterface BottomBarProps {\n className?: string;\n children?: React.ReactNode;\n isLoading?: boolean;\n onRefreshClick?: (() => void) | null;\n}\n\nconst BottomBar = ({\n className = '',\n children = null,\n isLoading = false,\n onRefreshClick = null,\n}: BottomBarProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Paper className={cx(classes.footer, className)} elevation={1}>\n <Box\n className={classes.insideWrapper}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n {onRefreshClick && (\n <ExtendedButton\n className={classes.button}\n copy=\"Refresh\"\n disabled={isLoading}\n onClick={onRefreshClick}\n type=\"refresh\"\n variant=\"outlined\"\n />\n )}\n {children}\n </Box>\n </Paper>\n );\n};\n\nexport default BottomBar;\n","import { memo } from 'react';\n\nimport { Grid, Typography, ButtonBase } from '@mui/material';\nimport { green, orange, red } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n boxTab: {\n minWidth: 130,\n width: '100%',\n textAlign: 'start',\n alignItems: 'normal',\n flexDirection: 'column',\n padding: theme.spacing(1),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(1.5),\n backgroundColor: colors.neutral100,\n borderRadius: theme.spacing(0.5),\n boxShadow: `0px 3px 1px -2px ${colors.blackOpacity20}, 0px 2px 2px 0px ${colors.blackOpacity10}, 0px 1px 5px 0px ${colors.blackOpacity10}`,\n '& .MuiGrid-container': {\n marginTop: theme.spacing(0.5),\n },\n },\n none: {},\n main: {\n borderColor: theme.palette.primary.main,\n borderWidth: 3,\n borderStyle: 'solid',\n },\n green: {\n borderColor: green['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n red: {\n borderColor: red['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n orange: {\n borderColor: orange['500'],\n borderWidth: 3,\n borderStyle: 'solid',\n },\n c_box_button__extra: {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n}));\n\ninterface BoxButtonProps {\n label?: any;\n onClick?: any;\n main?: any;\n extra?: any;\n borderColor?: any;\n}\n\nconst BoxButton = (props: BoxButtonProps) => {\n const { classes } = useStyles();\n\n const { label, onClick, main, extra, borderColor } = props;\n\n return (\n <ButtonBase\n component=\"button\"\n className={[classes.boxTab, classes[borderColor]].join(' ')}\n onClick={onClick}\n >\n <Typography variant=\"button\">{label}</Typography>\n <Grid\n container\n direction=\"row\"\n sx={{\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Grid size={9}>{main}</Grid>\n <Grid className={classes.c_box_button__extra} size={3}>\n {extra}\n </Grid>\n </Grid>\n </ButtonBase>\n );\n};\n\nexport default memo(BoxButton);\n","import React, { memo } from 'react';\n\nimport { CircularProgress, Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n button: {\n background: colors.default,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n margin: theme.spacing(1),\n borderRadius: 25,\n '&:disabled': {\n color: colors.neutral100,\n opacity: '0.32',\n },\n },\n primary: {\n color: colors.neutral100,\n background: colors.muiPrimary,\n '&:disabled': {\n color: colors.neutral100,\n opacity: '0.32',\n },\n },\n secondary: {\n color: theme.palette.primary.light,\n background: `linear-gradient(45deg, ${theme.palette.secondary.main}, ${theme.palette.secondary.dark})`,\n '&:hover': {\n background: `linear-gradient(45deg, ${theme.palette.secondary.main} 40%, ${theme.palette.secondary.dark})`,\n },\n },\n success: {\n color: colors.neutral100,\n background: theme.palette.success.main,\n '&:hover': {\n background: theme.palette.success.main,\n },\n },\n disabled: {\n color: colors.neutral100,\n background: '#A8A8A8',\n '&:disabled': {\n opacity: '1',\n },\n },\n default: {\n background: colors.neutral100,\n color: theme.palette.common.black,\n '&:disabled': {\n opacity: '1',\n },\n },\n loading: {\n paddingRight: theme.spacing(1.5),\n },\n loadingText: {\n marginLeft: theme.spacing(1),\n },\n}));\n\ninterface IFilledButton {\n autoFocus?: boolean;\n className?: string;\n color?:\n | 'default'\n | 'error'\n | 'info'\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning';\n copy: string;\n isLoading?: boolean;\n disabled?: boolean;\n href?: string;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n type?: 'button' | 'submit';\n variant?: 'contained' | 'outlined' | 'text';\n}\n\nconst FilledButton = ({\n autoFocus = false,\n className,\n color = 'primary',\n copy,\n disabled = false,\n href,\n isLoading = false,\n onClick,\n type = 'button',\n variant = 'contained',\n}: IFilledButton) => {\n const { classes, cx } = useStyles();\n\n return (\n <Button\n autoFocus={autoFocus}\n className={cx(classes.button, className, classes[color], {\n [classes.loading]: isLoading,\n })}\n disabled={disabled || isLoading}\n focusRipple={autoFocus}\n href={href || undefined}\n onClick={onClick}\n type={type}\n variant={variant}\n >\n {copy}\n {isLoading && (\n <CircularProgress\n className={classes.loadingText}\n color=\"inherit\"\n size={18}\n />\n )}\n </Button>\n );\n};\n\nexport default memo(FilledButton);\n","import { memo } from 'react';\n\nimport { Box, CircularProgress, Button } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface FilledButtonLgProps {\n classes?: any;\n disabled?: any;\n variant?: string;\n color?: string;\n copy?: any;\n handleClick?: any;\n loading?: boolean;\n loadingProps?: {\n color?: 'primary' | 'secondary' | 'inherit';\n size?: number;\n style?: string;\n };\n}\n\nconst FilledButtonLg = ({\n classes,\n disabled,\n variant,\n color,\n copy,\n handleClick,\n loading = false,\n loadingProps,\n}: FilledButtonLgProps) => (\n <Button\n variant={variant as any}\n className={classes[color as any]}\n onClick={handleClick}\n disabled={disabled || loading}\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {copy}\n {loading && (\n <CircularProgress\n color={loadingProps?.color || 'inherit'}\n size={loadingProps?.size || 22}\n style={{ marginLeft: '15px', ...(loadingProps?.style as any) }}\n />\n )}\n </Box>\n </Button>\n);\n\nconst ActionButtonLg = withStyles(FilledButtonLg, (theme) => ({\n default: {\n backgroundColor: colors.default,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n // boxShadow: `0px 3px 1px -2px ${colors.blackOpacity20}, 0px 2px 2px 0px ${colors.blackOpacity10}, 0px 1px 5px 0px ${colors.blackOpacity10}`,\n // '&:hover': {\n // background: `linear-gradient(45deg, ${colors.whiteOpacity10} 40%, ${colors.whiteOpacity20})`,\n // },\n },\n primary: {\n color: colors.neutral100,\n background: colors.muiPrimary,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n '&:hover': {\n background: colors.muiPrimaryHover,\n },\n '&:disabled': {\n color: 'white',\n opacity: '0.32',\n },\n },\n secondary: {\n color: theme.palette.primary.light,\n background: `linear-gradient(45deg, ${theme.palette.secondary.main}, ${theme.palette.secondary.dark})`,\n borderRadius: 48,\n paddingLeft: 22,\n paddingRight: 22,\n margin: 16,\n minHeight: 56,\n height: 56,\n fontWeight: 600,\n minWidth: 'calc(100% - 32px)',\n fontSize: '1.3rem',\n display: 'block',\n '&:hover': {\n background: `linear-gradient(45deg, ${theme.palette.secondary.main} 40%, ${theme.palette.secondary.dark})`,\n },\n '&:disabled': {\n color: 'white',\n opacity: '0.32',\n },\n },\n}));\n\nexport default memo(ActionButtonLg);\n","import { memo } from 'react';\n\nimport { Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n image: {\n position: 'relative',\n height: 50,\n },\n imageSrc: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundSize: 'cover',\n backgroundPosition: 'center 40%',\n height: 50,\n width: 50,\n },\n}));\n\ninterface ImageButtonProps {\n src?: any;\n onClick?: any;\n value?: any;\n}\n\nconst ImageButton = (props: ImageButtonProps) => {\n const { src, onClick, value } = props;\n const { classes } = useStyles();\n\n const handleClick = () => {\n const e = { target: { value } };\n onClick(e);\n };\n\n return (\n <Button onClick={handleClick} className={classes.image}>\n <img className={classes.imageSrc} src={src} alt=\"a_image\" />\n </Button>\n );\n};\n\nexport default memo(ImageButton);\n","import Add from '@mui/icons-material/Add';\nimport ChevronRight from '@mui/icons-material/ChevronRight';\nimport { Typography, Button } from '@mui/material';\nimport { colors } from 'resources/styles/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n add: {\n backgroundColor: colors.neutral100,\n },\n default: {\n width: 88,\n height: 88,\n padding: theme.spacing(1.5),\n },\n forward: {},\n hasContentLeftSide: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n icon: {\n color: 'rgba(7, 129, 206, 1)',\n },\n text: {\n fontWeight: 700,\n },\n textWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n },\n}));\n\ninterface SquareButtonProps {\n children: any;\n disabled?: any;\n hasContentLeftSide?: any;\n onClick: any;\n type: any;\n}\n\nconst SquareButton = ({\n children,\n disabled = false,\n hasContentLeftSide = false,\n onClick,\n type,\n}: SquareButtonProps) => {\n const { classes, cx } = useStyles();\n\n const icon = {\n add: <Add className={classes.icon} />,\n forward: <ChevronRight className={classes.icon} />,\n };\n\n return (\n <Button\n className={cx(\n classes.default,\n classes[type],\n hasContentLeftSide && classes.hasContentLeftSide,\n )}\n disabled={disabled}\n disableElevation={hasContentLeftSide}\n onClick={onClick}\n variant=\"contained\"\n >\n <span className={classes.textWrapper}>\n {icon[type]}\n <Typography className={classes.text} variant=\"button\">\n {children}\n </Typography>\n </span>\n </Button>\n );\n};\n\nexport default SquareButton;\n","import { useRef, useState, forwardRef } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\n\ninterface UploadButtonProps {\n name?: string;\n onChange?(...args: any[]): any;\n onBlur?(...args: any[]): any;\n}\n\nconst UploadButton = forwardRef<HTMLElement, UploadButtonProps>(\n (props, ref) => {\n const [file, setFile] = useState<File | undefined>();\n const sharedRef = useRef<any>(null);\n\n const handleFileInput = (e) => {\n const fileItem = e.target.files[0];\n setFile(fileItem);\n props.onChange?.(e);\n };\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <input\n {...props}\n type=\"file\"\n ref={(e) => {\n (ref as any)(e);\n sharedRef.current = e;\n }}\n onChange={handleFileInput}\n style={{ display: 'none' }}\n />\n <ExtendedButton\n buttonType=\"button\"\n variant=\"outlined\"\n color=\"default\"\n type=\"upload\"\n copy={file?.name ?? 'Upload Document'}\n onClick={() => {\n sharedRef?.current?.click();\n }}\n />\n </Box>\n );\n },\n);\n\nexport default UploadButton;\n","import React, { memo } from 'react';\n\nimport { Button, CircularProgress } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n default: {\n boxShadow: 'none',\n borderRadius: 25,\n border: `1px solid ${colors.neutral400}`,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 500,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.common.black,\n '&:hover': {\n background:\n theme.palette.mode === 'dark'\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.08)',\n },\n },\n primary: {\n color: colors.muiPrimary,\n boxShadow: 'none',\n border: `1px solid ${colors.muiPrimary}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 600,\n '&:hover': {\n background: colors.primaryOpacity30,\n },\n },\n secondary: {\n color: colors.muiSecondaryAlternate,\n boxShadow: 'none',\n border: `1px solid ${colors.muiSecondaryAlternate}`,\n borderRadius: 25,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n minHeight: 36,\n minWidth: 'min-content',\n margin: 8,\n fontWeight: 600,\n '&:hover': {\n background: colors.secondaryAlternateOpacity30,\n },\n },\n copy: {\n display: 'flex',\n flexDirection: 'column',\n lineHeight: 'initial',\n '& span': {\n fontSize: '.750rem',\n fontWeight: 200,\n textTransform: 'capitalize',\n },\n },\n loading: {\n paddingRight: theme.spacing(1.5),\n },\n loadingCopy: {\n flexDirection: 'row',\n },\n loadingIcon: {\n marginLeft: theme.spacing(1),\n },\n}));\n\ninterface OutlinedButtonProps {\n className?: any;\n color?: any;\n copy: any;\n disabled?: any;\n href?: any;\n isLoading?: any;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n startIcon?: any;\n style?: any;\n subcopy?: any;\n type?: any;\n}\n\nconst OutlinedButton = ({\n className,\n color,\n copy,\n disabled,\n href,\n isLoading,\n onClick,\n startIcon,\n style,\n subcopy,\n type = 'button',\n}: OutlinedButtonProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Button\n className={cx(color ? classes[color] : classes.default, className, {\n [classes.loading]: isLoading,\n })}\n disabled={disabled || isLoading}\n href={href || undefined}\n onClick={onClick}\n startIcon={startIcon}\n style={style}\n type={type}\n variant=\"outlined\"\n >\n <div\n className={cx(classes.copy, {\n [classes.loadingCopy]: isLoading,\n })}\n >\n {copy}\n {subcopy && <span>{subcopy}</span>}\n {isLoading && (\n <CircularProgress\n className={classes.loadingIcon}\n color=\"primary\"\n size={18}\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default memo(OutlinedButton);\n","import { memo } from 'react';\n\nimport { Button } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\ninterface AButtonProps {\n classes?: any;\n variant?: string;\n color?: string;\n copy?: any;\n}\n\nconst AButton = ({ classes, variant, color, copy }: AButtonProps) => (\n <Button variant={variant as any} className={classes[color as any]}>\n {copy}\n </Button>\n);\n\nconst FilterButtonLg = withStyles(AButton, (theme) => ({\n default: {\n boxShadow: 'none',\n color: '#555',\n backgroundColor: '#fff',\n borderRadius: 25,\n border: '1px solid #cecece',\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n primary: {\n boxShadow: 'none',\n color: theme.palette.primary.main,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 25,\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '&:hover': {\n background: 'rgba(7, 129, 206, .24)',\n },\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n secondary: {\n boxShadow: 'none',\n color: theme.palette.secondary.dark,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.secondary.dark}`,\n borderRadius: 25,\n paddingLeft: 32,\n paddingRight: 32,\n margin: 16,\n height: 48,\n fontWeight: 600,\n fontSize: '1rem',\n '&:hover': {\n background: 'rgba(236, 97, 60, .24)',\n },\n '& .MuiButton-label': {\n paddingTop: 2,\n },\n },\n}));\n\nexport default memo(FilterButtonLg);\n","import React from 'react';\n\nimport {\n Add,\n Apps,\n ArrowBack,\n ArrowForward,\n BackspaceOutlined,\n Block,\n CallSplit,\n ChevronRight,\n Close,\n Comment,\n Done,\n Delete,\n Edit,\n Email,\n GroupAdd,\n History,\n KeyboardArrowUp,\n KeyboardArrowDown,\n Menu,\n MoreHoriz,\n PlayArrowRounded,\n Refresh,\n Remove,\n Search,\n Send,\n ThumbDown,\n ThumbUp,\n Undo,\n SwapHoriz,\n} from '@mui/icons-material';\nimport { Fab, Tooltip } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport customIcons from '@/components/icons';\nimport IconAirplane from '@/components/icons/IconAirplane';\nimport IconAvocado from '@/components/icons/IconAvocado';\nimport IconBanana from '@/components/icons/IconBanana';\nimport SvgBicycle from '@/components/icons/IconBicycle';\nimport IconBus from '@/components/icons/IconBus';\nimport IconCar from '@/components/icons/IconCar';\nimport IconFork from '@/components/icons/IconFork';\nimport IconGrape from '@/components/icons/IconGrape';\nimport IconHeart from '@/components/icons/IconHeart';\nimport IconKnife from '@/components/icons/IconKnife';\nimport IconSpoon from '@/components/icons/IconSpoon';\nimport IconStrawberry from '@/components/icons/IconStrawberry';\nimport BulkIcon from '@/resources/icons/BulkIcon';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n base: {\n backgroundColor: 'transparent',\n zIndex: 'auto',\n },\n default: {\n border: `1px solid ${colors.roundButton.default.border}`,\n color: colors.roundButton.default.color,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n filled: {\n backgroundColor: colors.roundButton.filled.background,\n color: colors.roundButton.filled.color,\n fontWeight: 600,\n '&:hover': {\n background: colors.roundButton.filled.hover.background,\n },\n },\n active: {\n color: colors.roundButton.active.color,\n '&:hover': {\n backgroundColor: colors.roundButton.active.hover.background,\n borderColor: 'transparent',\n },\n },\n focused: {\n backgroundColor: colors.roundButton.focused.background,\n color: colors.roundButton.focused.color,\n borderColor: 'transparent',\n '&:hover': {\n backgroundColor: colors.roundButton.focused.hover.background,\n borderColor: 'transparent',\n },\n },\n constrat: {\n borderColor: colors.roundButton.contrast.border,\n color: colors.roundButton.contrast.color,\n '&:hover': {\n backgroundColor: colors.roundButton.contrast.hover.background,\n },\n },\n tableButton: {\n color: colors.roundButton.tableButton.color,\n },\n noStroke: {\n border: 'none',\n },\n defaultPrimary: {\n border: `1px solid ${colors.roundButton.focused.color}`,\n color: colors.roundButton.focused.color,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n defaultError: {\n border: `1px solid ${colors.roundButton.error}`,\n color: colors.roundButton.error,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: colors.roundButton.default.hover.background,\n },\n '&:disabled': {\n color: colors.roundButton.default.disabled.color,\n },\n },\n\n /**\n * Overrides the size schema of MUI\n */\n small: {\n maxWidth: 36,\n maxHeight: 36,\n },\n medium: {\n maxWidth: 42,\n maxHeight: 42,\n },\n large: {\n fontSize: '1rem',\n },\n double: {\n width: 125,\n maxHeight: 56,\n fontSize: '1rem',\n borderRadius: 50,\n background: colors.roundButton.filled.hover.background,\n },\n}));\n\ninterface IRoundButton {\n active?: boolean;\n children?: string;\n className?: string;\n disabled?: boolean;\n focused?: boolean;\n icon?:\n | 'add'\n | 'apps'\n | 'arrowBack'\n | 'arrowForward'\n | 'avocado'\n | 'backspaceOutlined'\n | 'banana'\n | 'block'\n | 'bulk'\n | 'callSplit'\n | 'chevronRight'\n | 'chevronUp'\n | 'chevronDown'\n | 'close'\n | 'delete'\n | 'done'\n | 'edit'\n | 'email'\n | 'grape'\n | 'groupAdd'\n | 'history'\n | 'menu'\n | 'notes'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'send'\n | 'strawberry'\n | 'thumbDown'\n | 'threeDots'\n | 'thumbUp'\n | 'undo'\n | 'play'\n | 'snail'\n | 'bus'\n | 'spoon'\n | 'fork'\n | 'car'\n | 'knife'\n | 'bicycle'\n | 'heart'\n | 'airplane'\n | 'threeDots'\n | 'swapHoriz';\n iconColor?:\n | 'inherit'\n | 'disabled'\n | 'primary'\n | 'secondary'\n | 'action'\n | 'error';\n isContrast?: boolean;\n isTableButton?: boolean;\n noStrokes?: boolean;\n // eslint-disable-next-line no-unused-vars\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large' | 'double';\n tooltip?: string;\n variant?:\n | 'default'\n | 'defaultPrimary'\n | 'defaultError'\n | 'filled'\n | 'primary'\n | 'secondary';\n testID?: string;\n}\n\n/**\n * A Rounded button component that is abstracted from MUI Fab component.\n * Can render an icon or a single character.\n * https://v4.mui.com/api/fab/#fab-api.\n */\nconst RoundButton = ({\n active = false,\n children,\n className = '',\n disabled = false,\n focused = false,\n icon = undefined,\n iconColor = 'inherit',\n isContrast = false,\n isTableButton = false,\n noStrokes = false,\n onClick,\n size = 'medium',\n tooltip = '',\n variant = 'default',\n testID,\n}: IRoundButton) => {\n const { classes, cx } = useStyles();\n\n const iconSize = size === 'small' ? 'small' : 'medium';\n\n const iconComponentMap = {\n add: <Add fontSize={iconSize} />,\n apps: <Apps fontSize={iconSize} />,\n arrowBack: <ArrowBack fontSize={iconSize} />,\n arrowForward: <ArrowForward fontSize={iconSize} />,\n avocado: <IconAvocado />,\n backspaceOutlined: <BackspaceOutlined fontSize={iconSize} />,\n banana: <IconBanana />,\n block: <Block fontSize={iconSize} />,\n bulk: <BulkIcon fill={colors.contrast} />,\n callSplit: <CallSplit fontSize={iconSize} />,\n chevronRight: <ChevronRight fontSize={iconSize} />,\n chevronUp: <KeyboardArrowUp fontSize={iconSize} />,\n chevronDown: <KeyboardArrowDown fontSize={iconSize} />,\n close: <Close fontSize={iconSize} />,\n delete: <Delete fontSize={iconSize} fill={colors.neutral800} />,\n done: <Done fontSize={iconSize} />,\n edit: <Edit fontSize={iconSize} />,\n email: <Email fontSize={iconSize} />,\n grape: <IconGrape />,\n groupAdd: <GroupAdd fontSize={iconSize} />,\n history: <History fontSize={iconSize} />,\n menu: <Menu fontSize={iconSize} />,\n threeDots: <MoreHoriz fontSize={iconSize} color={iconColor} />,\n notes: <Comment fontSize={iconSize} />,\n refresh: <Refresh fontSize={iconSize} />,\n remove: <Remove fontSize={iconSize} />,\n search: <Search fontSize={iconSize} />,\n send: <Send fontSize={iconSize} />,\n strawberry: <IconStrawberry />,\n thumbDown: <ThumbDown fontSize={iconSize} />,\n thumbUp: <ThumbUp fontSize={iconSize} />,\n undo: <Undo fontSize={iconSize} />,\n play: <PlayArrowRounded fontSize={iconSize} />,\n snail: (\n <customIcons.SvgIconSnail fontSize={iconSize} fill={colors.muiPrimary} />\n ),\n bus: <IconBus />,\n spoon: <IconSpoon />,\n fork: <IconFork />,\n car: <IconCar />,\n knife: <IconKnife />,\n bicycle: <SvgBicycle />,\n heart: <IconHeart />,\n airplane: <IconAirplane />,\n swapHoriz: <SwapHoriz fontSize={iconSize} />,\n };\n const filteredSize = size === 'double' ? undefined : size;\n\n const handleClick = (e) => {\n if (onClick) {\n onClick(e);\n }\n };\n\n const Button = (\n <Fab\n className={cx(\n classes.base,\n classes[variant],\n classes[size],\n {\n [classes.active]: active,\n [classes.constrat]: isContrast,\n [classes.focused]: focused,\n [classes.noStroke]: noStrokes,\n [classes.tableButton]: isTableButton,\n },\n className,\n )}\n disabled={disabled}\n onClick={handleClick}\n size={filteredSize}\n variant=\"circular\"\n data-testid={testID}\n >\n {icon ? iconComponentMap[icon] : children || ''}\n </Fab>\n );\n\n return tooltip ? <Tooltip title={tooltip}>{Button}</Tooltip> : Button;\n};\n\nexport default RoundButton;\n","const SvgBallsLogo = (props) => (\n <svg viewBox=\"0 0 1024 305.8\" {...props} fill=\"currentColor\">\n <path d=\"M586.9,152.3c0,82.2-66,148.1-148.1,148.1s-148.1-66-148.1-148.1S356.6,4.2,438.8,4.2C520.9,2.9,586.9,70.2,586.9,152.3\" />\n <path d=\"M5.6,4.2c80.9,0,146.9,66,146.9,146.9S86.5,297.9,5.6,297.9C5.6,297.9,5.6,4.2,5.6,4.2z\" />\n <path d=\"M1018.9,152.3c0-82.2-66-148.1-148.1-148.1s-148.1,66-148.1,148.1s66,148.1,148.1,148.1L1018.9,152.3z\" />\n </svg>\n);\n\nexport default SvgBallsLogo;\n","const SvgEmptyGlassIcon = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"140\"\n height=\"140\"\n viewBox=\"0 0 140 140\"\n fill=\"none\"\n {...props}\n >\n <g id=\"Frame\" clipPath=\"url(#clip0_454_24067)\">\n <g id=\"Clip path group\">\n <mask\n id=\"mask0_454_24067\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"140\"\n height=\"140\"\n >\n <g id=\"__lottie_element_11\">\n <path id=\"Vector\" d=\"M140 0H0V140H140V0Z\" fill=\"white\" />\n </g>\n </mask>\n <g mask=\"url(#mask0_454_24067)\">\n <g id=\"Group\">\n <g id=\"Clip path group_2\">\n <mask\n id=\"mask1_454_24067\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"140\"\n height=\"140\"\n >\n <g id=\"__lottie_element_13\">\n <path id=\"Vector_2\" d=\"M0 0H140V140H0V0Z\" fill=\"white\" />\n </g>\n </mask>\n <g mask=\"url(#mask1_454_24067)\">\n <g id=\"Group_2\">\n <g id=\"Group_3\">\n <g id=\"Group_4\">\n <path\n id=\"Vector_3\"\n d=\"M18.3421 33.0791C16.7957 33.0791 15.5421 34.3327 15.5421 35.8791C15.5421 37.4255 16.7957 38.6791 18.3421 38.6791C19.8886 38.6791 21.1421 37.4255 21.1421 35.8791C21.1421 34.3327 19.8886 33.0791 18.3421 33.0791Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_5\">\n <path\n id=\"Vector_4\"\n d=\"M108.08 14C107.307 14 106.68 14.6269 106.68 15.4C106.68 16.1731 107.307 16.8 108.08 16.8C108.853 16.8 109.48 16.1731 109.48 15.4C109.48 14.6269 108.853 14 108.08 14Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_6\">\n <path\n id=\"Vector_5\"\n d=\"M70.28 15.3994C41.6715 15.3994 18.48 38.591 18.48 67.1994C18.48 95.8079 41.6715 118.999 70.28 118.999C98.8884 118.999 122.08 95.8079 122.08 67.1994C122.08 38.591 98.8884 15.3994 70.28 15.3994Z\"\n fill=\"#F1F1F2\"\n />\n </g>\n <g id=\"Group_7\">\n <path\n id=\"Vector_6\"\n d=\"M116.48 12.9854C113.6 12.9854 111.266 15.3199 111.266 18.1999C111.266 21.0798 113.6 23.4144 116.48 23.4144C119.36 23.4144 121.695 21.0798 121.695 18.1999C121.695 15.3199 119.36 12.9854 116.48 12.9854Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_8\">\n <path\n id=\"Vector_7\"\n d=\"M122.927 31.1133C121.381 31.1133 120.127 32.3668 120.127 33.9133C120.127 35.4597 121.381 36.7133 122.927 36.7133C124.473 36.7133 125.727 35.4597 125.727 33.9133C125.727 32.3668 124.473 31.1133 122.927 31.1133Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_9\">\n <path\n id=\"Vector_8\"\n d=\"M110.403 100.27C108.964 100.27 107.796 101.438 107.796 102.877C107.796 104.317 108.964 105.485 110.403 105.485C111.843 105.485 113.011 104.317 113.011 102.877C113.011 101.438 111.843 100.27 110.403 100.27ZM24.3639 80.7158C21.4839 80.7158 19.1494 83.0504 19.1494 85.9303C19.1494 88.8103 21.4839 91.1448 24.3639 91.1448C27.2439 91.1448 29.5784 88.8103 29.5784 85.9303C29.5784 83.0504 27.2439 80.7158 24.3639 80.7158Z\"\n fill=\"#F6D977\"\n />\n </g>\n <g id=\"Group_10\" opacity=\"0.655813\">\n <path\n id=\"Vector_9\"\n d=\"M35.28 116.2C33.7335 116.2 32.48 117.454 32.48 119C32.48 120.546 33.7335 121.8 35.28 121.8C36.8264 121.8 38.08 120.546 38.08 119C38.08 117.454 36.8264 116.2 35.28 116.2Z\"\n fill=\"#B6B2D8\"\n />\n </g>\n <g id=\"Group_11\">\n <path\n id=\"Vector_10\"\n d=\"M26.18 68.5996C24.2472 68.5996 22.68 70.1668 22.68 72.0996C22.68 74.0324 24.2472 75.5996 26.18 75.5996C28.1128 75.5996 29.68 74.0324 29.68 72.0996C29.68 70.1668 28.1128 68.5996 26.18 68.5996Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n <g id=\"Group_12\">\n <path\n id=\"Vector_11\"\n d=\"M32.6867 90.4473C31.9136 90.4473 31.2867 91.0739 31.2867 91.8473C31.2867 92.6206 31.9136 93.2473 32.6867 93.2473C33.4598 93.2473 34.0867 92.6206 34.0867 91.8473C34.0867 91.0739 33.4598 90.4473 32.6867 90.4473Z\"\n fill=\"#EECB3A\"\n />\n </g>\n <g id=\"Group_13\">\n <path\n id=\"Vector_12\"\n d=\"M112.28 43.3994C111.507 43.3994 110.88 44.0263 110.88 44.7994C110.88 45.5725 111.507 46.1994 112.28 46.1994C113.053 46.1994 113.68 45.5725 113.68 44.7994C113.68 44.0263 113.053 43.3994 112.28 43.3994Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n <g id=\"Group_14\">\n <g id=\"Group_15\">\n <path\n id=\"Vector_13\"\n d=\"M109.38 118.149C108.369 121.418 104.765 123.318 101.497 122.307C99.7765 121.774 98.4414 120.607 97.6098 119.03L84.8399 92.0818C84.365 91.1808 84.6845 90.1484 85.5855 89.6735L91.4423 86.5854C92.343 86.1103 93.3751 86.4295 93.8503 87.3308L108.819 113.264C109.704 114.668 109.86 116.601 109.38 118.149Z\"\n fill=\"#BF7F42\"\n />\n </g>\n <g id=\"Group_16\">\n <path\n id=\"Vector_14\"\n d=\"M90.7249 86.9195L86.2654 89.2707L82.7382 82.5815L87.1975 80.2295L90.7249 86.9195Z\"\n fill=\"#C2D1E0\"\n />\n </g>\n <g id=\"Group_17\">\n <path\n id=\"Vector_15\"\n d=\"M81.0593 33.0454C66.7827 28.6265 51.691 36.5844 47.272 50.861C42.8531 65.1379 50.8107 80.2296 65.0876 84.6489C79.3642 89.0676 94.4565 81.11 98.8752 66.8333C103.294 52.5564 95.3363 37.4644 81.0593 33.0454ZM66.6847 79.4882C55.3321 75.9742 48.9184 63.8113 52.4324 52.4584C55.9461 41.1055 68.1093 34.6916 79.4622 38.2056C90.8151 41.7193 97.2285 53.8833 93.7145 65.2359C90.2008 76.5888 78.0376 83.0022 66.6847 79.4882Z\"\n fill=\"#D2E0EA\"\n />\n </g>\n <g id=\"Group_18\">\n <path\n id=\"Vector_16\"\n d=\"M79.4625 38.2053C90.8624 41.7339 97.2433 53.8355 93.7148 65.2354C90.1865 76.6353 78.0843 83.0165 66.6844 79.4879C55.2845 75.9594 48.9036 63.8575 52.4321 52.4576C55.9604 41.0579 68.0626 34.6767 79.4625 38.2053Z\"\n fill=\"#8EC5EA\"\n />\n </g>\n <g id=\"Group_19\">\n <path\n id=\"Vector_17\"\n d=\"M53.6196 54.7106C57.1336 43.358 69.2971 36.9443 80.6497 40.4583C85.9823 42.1086 89.9877 45.6103 92.8137 49.8778C90.3604 44.406 85.6547 40.1223 79.4622 38.2057C68.1096 34.6917 55.9458 41.1054 52.4321 52.4583C50.5152 58.6505 51.5638 65.0068 54.5206 70.0686C52.5959 65.3262 51.969 60.0429 53.6196 54.7106Z\"\n fill=\"#70AFDE\"\n />\n </g>\n <g id=\"Group_20\">\n <path\n id=\"Vector_18\"\n d=\"M108.7 113.039L107.935 111.859C108.475 113.158 108.565 114.693 108.139 116.069C107.447 118.306 104.428 118.314 103.36 116.287L90.889 92.6353C90.1764 91.2838 88.628 90.8044 87.2767 91.5173L85.0244 92.7048L97.5443 118.633C98.2572 119.985 99.3669 121.271 100.69 121.869C102.529 122.626 104.634 122.524 106.21 121.693C107.787 120.861 109.061 119.182 109.475 117.237C109.9 115.86 109.413 114.39 108.7 113.039Z\"\n fill=\"#B5713E\"\n />\n </g>\n <g id=\"Group_21\" opacity=\"0.2\">\n <path\n id=\"Vector_19\"\n d=\"M72.9785 53.375C69.8053 53.375 67.2329 55.9474 67.2329 59.1206C67.2329 62.2938 69.8053 64.8662 72.9785 64.8662C76.1518 64.8662 78.7244 62.2938 78.7244 59.1206C78.7244 55.9474 76.1518 53.375 72.9785 53.375Z\"\n fill=\"#FFFEFF\"\n />\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_454_24067\">\n <rect width=\"140\" height=\"140\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default SvgEmptyGlassIcon;\n","const SvgIconAccount = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-account_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-account_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-account_svg__st1\"\n d=\"M27.3 27.8c1.6 0 3.1-.6 4.2-1.7 1.2-1.2 1.7-2.5 1.7-4.2 0-1.5-.6-2.9-1.7-4.2-1.1-1.1-2.5-1.7-4.2-1.7s-3.1.6-4.2 1.7-1.7 2.5-1.7 4.2.6 3.1 1.7 4.2 2.6 1.7 4.2 1.7zm0-9.4c1 0 1.8.3 2.4.9.5.5 1 1.4 1 2.5s-.3 1.8-1 2.5-1.5 1-2.5 1-1.8-.3-2.5-1-1-1.5-1-2.5.3-1.8 1-2.5c.8-.6 1.6-.9 2.6-.9z\"\n />\n <path\n className=\"icon-account_svg__st1\"\n d=\"M37.8 33.4c-.1-.6-.2-1.1-.4-1.6-.1-.5-.4-1-.6-1.6-.3-.6-.5-.9-1-1.4-.1-.1-.2-.1-.3-.2-.3-.2-.6-.5-1.1-.6-.5-.1-1-.3-1.7-.3-.2 0-.3.1-.5.2-.1.1-.2.1-.3.2l-1 .9c-.4.2-1 .5-1.6.7-.6.2-1.3.4-1.9.4-.6 0-1.4-.1-1.9-.4-.6-.2-1.2-.5-1.6-.7l-1.1-.8c-.1-.1-.2-.1-.3-.2-.2-.1-.3-.2-.5-.2-.6 0-1.2 0-1.7.3-.5.1-.9.4-1.4.9-.1.1-.2.3-.3.4-.2.3-.4.5-.6.9-.3.5-.5 1-.6 1.5-.1.5-.3 1-.4 1.6l-.1.3c-.1.5-.2.9-.2 1.4v1.5c0 1.3.4 2.2 1.2 3.1.9.7 1.8 1.1 3 1.1h13c1.4 0 2.3-.3 3.1-1.1.8-.8 1.2-1.8 1.2-3.1.1-1.1-.4-3.1-.4-3.2zm-16.5-3.1l1.2.7c.6.4 1.3.7 2 1 .8.3 1.9.5 2.8.5.9 0 2-.2 2.8-.5.8-.3 1.5-.6 2-1l1.1-.7c.2 0 .3.1.5.1.1 0 .2.1.2.2.1.1.1.1.2.1.1.2.2.3.4.6.2.4.4.8.5 1.1.1.5.2.9.3 1.5v.1c.1.5.4 2 .4 2.6 0 .7-.2 1-.5 1.3-.2.2-.4.4-1.3.4H21c-.7 0-1.1-.2-1.4-.4-.3-.3-.4-.6-.4-1.3v-1.5c0-.2.1-.5.1-.9l.1-.3c.1-.6.2-1 .4-1.5.1-.3.3-.6.5-1.1.1-.1.2-.3.3-.5.1-.1.2-.2.2-.3l.1-.1c.1 0 .3-.1.4-.1z\"\n />\n </svg>\n);\n\nexport default SvgIconAccount;\n","const SvgIconAccounts = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-accounts_svg__st0\"\n d=\"M21.6 27.2h-2.4v8.3h2.4v-8.3zm7.1 0h-2.4v8.3h2.4v-8.3zm10.1 10.6H16.2v2.4h22.5v-2.4zm-3-10.6h-2.4v8.3h2.4v-8.3zm-8.3-8l6.2 3.3H21.3l6.2-3.3m0-2.7l-11.3 5.9v2.4h22.5v-2.4l-11.2-5.9z\"\n />\n </svg>\n);\n\nexport default SvgIconAccounts;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconAvocado = () => (\n <svg\n width=\"20\"\n height=\"24\"\n viewBox=\"0 0 20 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 14.3511C19 20.3582 14.9662 22.875 10 22.875C5.03376 22.875 1 20.3582 1 14.3511C1 8.34393 5.03376 1.125 10 1.125C14.9662 1.125 19 8.34393 19 14.3511Z\"\n stroke={colors.neutral800}\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n <path\n d=\"M10 19.125C12.8995 19.125 15.25 16.7745 15.25 13.875C15.25 10.9755 12.8995 8.625 10 8.625C7.1005 8.625 4.75 10.9755 4.75 13.875C4.75 16.7745 7.1005 19.125 10 19.125Z\"\n stroke={colors.neutral800}\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n);\n\nexport default SvgIconAvocado;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBanana = () => (\n <svg\n width=\"24\"\n height=\"22\"\n viewBox=\"0 0 24 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_0_2321)\">\n <path\n d=\"M23.0247 5.42267C22.7775 5.12356 22.4901 4.88302 22.1652 4.70103V0H18.8424V4.69592C18.6156 4.83467 18.3894 5.00524 18.1656 5.20705C17.4915 5.81607 16.9872 6.58066 16.7601 7.05064C16.4487 7.6948 15.6291 8.61014 15.3399 8.90835L15.3258 8.92337C13.0806 11.3673 9.5079 12.0928 6.9063 12.2709C4.0155 12.4691 1.6404 12.0544 1.617 12.0502L1.0053 11.9406L0 14.7755L0.1854 15.0752C0.633 15.7983 1.3155 16.438 2.2134 16.977C2.5812 17.1978 2.9691 17.3996 3.3732 17.584L3.2196 20.0912L3.4806 20.3279C4.1103 20.8991 4.9428 21.3252 5.9544 21.5949C6.9639 21.864 8.0517 22 9.1911 22C9.261 22 9.3315 21.9994 9.402 21.9985C12.8361 21.9483 16.1847 20.7919 18.831 18.7423C20.19 17.6897 21.3129 16.4416 22.1685 15.0325C23.0745 13.5403 23.6568 11.9039 23.8992 10.1681C24.0639 8.99004 24.1692 6.80679 23.0247 5.42237V5.42267ZM20.3082 1.46701H20.7V4.25027H20.3082V1.46701ZM4.203 15.2238C3.7473 14.9506 3.3876 14.6454 3.1308 14.3145L3.4125 13.5208C4.1535 13.6166 5.6514 13.7586 7.4016 13.6412C8.8503 13.5442 10.1715 13.2877 11.3289 12.8793C12.8013 12.3598 14.0127 11.5916 14.9295 10.5958C14.9484 10.5763 15.0021 10.5201 15.0792 10.4363C15.0783 10.4384 15.0771 10.4408 15.0762 10.4429C15.0687 10.4588 15.0612 10.4745 15.054 10.4898C15.0525 10.4928 15.051 10.4961 15.0495 10.4991C15.0219 10.5567 14.9958 10.6105 14.9715 10.6585C14.9709 10.6597 14.9703 10.661 14.9697 10.6622C14.9625 10.6769 14.9553 10.6907 14.9484 10.7045C14.9475 10.7063 14.9466 10.7081 14.9457 10.7102C14.9391 10.7234 14.9328 10.7357 14.9265 10.7477C14.9256 10.7492 14.925 10.7507 14.9241 10.7522C14.9103 10.779 14.8974 10.8033 14.8863 10.8243L14.8788 10.8387C14.8509 10.8946 14.8224 10.9498 14.793 11.0045C14.7834 11.0225 14.7732 11.0402 14.7633 11.0583C14.7432 11.0946 14.7234 11.1309 14.7027 11.167C14.6901 11.1886 14.6772 11.2099 14.6646 11.2312C14.646 11.2628 14.6274 11.2946 14.6082 11.3258C14.5941 11.3487 14.5797 11.3712 14.5653 11.3937C14.5467 11.4231 14.5284 11.4526 14.5095 11.4814C14.4945 11.5045 14.4786 11.5273 14.4633 11.5505C14.4444 11.5784 14.4261 11.6066 14.4069 11.6343C14.3907 11.6574 14.3742 11.6802 14.358 11.703C14.3388 11.7297 14.3199 11.7568 14.3004 11.7835C14.2836 11.8066 14.2659 11.8292 14.2488 11.8523C14.2293 11.8781 14.2098 11.9042 14.19 11.9298C14.1723 11.9526 14.154 11.9751 14.136 11.9976C14.1162 12.0229 14.0961 12.0481 14.076 12.0727C14.0574 12.0952 14.0388 12.1174 14.0199 12.14C13.9995 12.1643 13.9791 12.1889 13.9584 12.2129C13.9392 12.2352 13.9197 12.2574 13.9002 12.2793C13.8795 12.3027 13.8588 12.3265 13.8378 12.3499C13.818 12.3718 13.7976 12.3934 13.7775 12.4154C13.7562 12.4382 13.7352 12.4613 13.7136 12.4838C13.6932 12.5054 13.6722 12.5268 13.6515 12.5481C13.6299 12.5703 13.6083 12.5928 13.5864 12.6148C13.5654 12.6361 13.5441 12.6568 13.5228 12.6778C13.5009 12.6994 13.4787 12.7214 13.4565 12.7427C13.4349 12.7634 13.413 12.7841 13.3911 12.8049C13.3686 12.8259 13.3464 12.8472 13.3236 12.8679C13.3014 12.8883 13.2792 12.9085 13.2567 12.9286C13.2339 12.9493 13.2111 12.9697 13.1883 12.9901C13.1658 13.0103 13.1427 13.0301 13.1199 13.0499C13.0968 13.07 13.0737 13.0898 13.0506 13.1097C13.0275 13.1295 13.0041 13.1487 12.9807 13.1682C12.9573 13.1877 12.9339 13.207 12.9105 13.2262C12.8868 13.2454 12.8631 13.2643 12.8394 13.2835C12.8157 13.3025 12.792 13.3214 12.768 13.34C12.744 13.3589 12.7197 13.3775 12.6957 13.3959C12.6717 13.4142 12.6477 13.4328 12.6234 13.4508C12.5991 13.4691 12.5745 13.4875 12.5499 13.5055C12.5256 13.5235 12.5013 13.5412 12.477 13.5589C12.4521 13.5769 12.4272 13.595 12.4023 13.6127C12.378 13.6301 12.3534 13.6472 12.3288 13.6646C12.3036 13.6824 12.2781 13.6998 12.2526 13.7172C12.228 13.734 12.2034 13.7508 12.1785 13.7673C12.153 13.7845 12.1272 13.8016 12.1014 13.8187C12.0765 13.8352 12.0516 13.8514 12.0267 13.8676C12.0009 13.8845 11.9748 13.9013 11.9487 13.9178C11.9238 13.9337 11.8986 13.9496 11.8737 13.9652C11.8476 13.9818 11.8212 13.998 11.7948 14.0142C11.7696 14.0295 11.7444 14.0448 11.7192 14.0601C11.6925 14.0761 11.6661 14.0923 11.6394 14.1079C11.6142 14.1229 11.589 14.1376 11.5635 14.1523C11.5368 14.168 11.5098 14.1836 11.4831 14.1989C11.4579 14.2133 11.4324 14.2277 11.4069 14.2421C11.3799 14.2574 11.3529 14.2725 11.3256 14.2878C11.3001 14.3019 11.2749 14.3157 11.2494 14.3298C11.2221 14.3448 11.1948 14.3596 11.1675 14.3743C11.1423 14.3878 11.1168 14.4013 11.0916 14.4148C11.064 14.4295 11.0364 14.4439 11.0088 14.4584C10.9836 14.4716 10.9581 14.4845 10.9329 14.4974C10.9053 14.5115 10.8774 14.5259 10.8495 14.5397C10.8243 14.5526 10.7988 14.565 10.7733 14.5776C10.7454 14.5914 10.7175 14.6052 10.6896 14.6187C10.6644 14.631 10.6389 14.643 10.6137 14.6554C10.5858 14.6689 10.5576 14.6824 10.5297 14.6956C10.5045 14.7076 10.4793 14.7193 10.4541 14.731C10.4259 14.7442 10.3977 14.7572 10.3695 14.7701C10.3446 14.7815 10.3194 14.7926 10.2945 14.804C10.266 14.8169 10.2375 14.8298 10.209 14.8424C10.1841 14.8536 10.1595 14.8641 10.1346 14.8749C10.1061 14.8875 10.0773 14.8998 10.0488 14.9121C10.0239 14.9226 9.9993 14.9331 9.9747 14.9437C9.9462 14.9557 9.9174 14.968 9.8889 14.98C9.8646 14.9902 9.8403 15.0001 9.816 15.01C9.7872 15.022 9.7584 15.0337 9.7293 15.0455C9.705 15.0554 9.681 15.065 9.6567 15.0746C9.6279 15.086 9.5991 15.0977 9.5703 15.1091C9.5466 15.1184 9.5232 15.1274 9.4995 15.1364C9.4701 15.1479 9.441 15.1593 9.4116 15.1704C9.3888 15.1791 9.3663 15.1875 9.3435 15.1959C9.3138 15.207 9.2838 15.2184 9.2541 15.2295C9.2319 15.2377 9.2097 15.2458 9.1878 15.2539C9.1578 15.265 9.1275 15.2761 9.0975 15.2866C9.0765 15.2941 9.0555 15.3016 9.0345 15.3088C9.0036 15.3199 8.9727 15.3307 8.9418 15.3416C8.922 15.3485 8.9025 15.3551 8.883 15.362C8.8512 15.3731 8.8191 15.3839 8.7876 15.3947C8.7702 15.4004 8.7531 15.4061 8.736 15.4121C8.7021 15.4235 8.6682 15.435 8.6346 15.4461C8.6274 15.4485 8.6199 15.4509 8.6127 15.4533C8.4822 15.4962 8.3535 15.5368 8.2266 15.5755C8.2137 15.5794 8.2005 15.5836 8.1876 15.5875C8.1573 15.5965 8.1276 15.6055 8.0976 15.6142C8.0787 15.6199 8.0598 15.6257 8.0409 15.6311C8.0133 15.6392 7.986 15.647 7.9587 15.6548C7.938 15.6608 7.917 15.6671 7.8963 15.6728C7.8696 15.6803 7.8432 15.6878 7.8165 15.6953C7.7958 15.701 7.7748 15.7073 7.7541 15.713C7.728 15.7202 7.7025 15.7272 7.6767 15.7344C7.6557 15.7401 7.6347 15.7461 7.6137 15.7515C7.5888 15.7581 7.5639 15.7647 7.5393 15.7713C7.5183 15.777 7.497 15.7827 7.476 15.7881C7.4517 15.7944 7.4277 15.8007 7.4037 15.807C7.3827 15.8124 7.3614 15.8181 7.3407 15.8233C7.3176 15.8293 7.2948 15.835 7.2717 15.8407C7.2504 15.8461 7.2291 15.8515 7.2078 15.8566C7.1853 15.8623 7.1631 15.8677 7.1409 15.8731C7.1199 15.8782 7.0989 15.8833 7.0782 15.8884C7.0563 15.8938 7.0347 15.8989 7.0128 15.904C6.9921 15.9088 6.9714 15.9139 6.951 15.9188C6.9297 15.9239 6.9087 15.9287 6.8874 15.9335C6.8673 15.938 6.8472 15.9428 6.8274 15.9473C6.8067 15.9521 6.7863 15.9566 6.7656 15.9611C6.7458 15.9656 6.726 15.9701 6.7065 15.9743C6.6867 15.9788 6.6675 15.983 6.648 15.9872C6.6282 15.9914 6.6084 15.9959 6.5889 16.0001C6.5703 16.004 6.552 16.0079 6.5337 16.0118C6.5139 16.0161 6.4941 16.0203 6.4746 16.0245C6.4569 16.0281 6.4395 16.0317 6.4224 16.0353C6.4029 16.0392 6.3834 16.0434 6.3645 16.0473C6.3477 16.0506 6.3312 16.0539 6.3147 16.0575C6.2958 16.0614 6.2769 16.065 6.2583 16.0689C6.2421 16.0722 6.2262 16.0752 6.2106 16.0782C6.1992 16.0803 6.1881 16.0827 6.1767 16.0848C5.4552 15.8656 4.7916 15.5758 4.2021 15.222L4.203 15.2238ZM21.7242 10.2258C20.9643 15.6665 15.8076 19.8363 9.7296 19.9252C8.7369 19.9396 7.7952 19.8303 6.9309 19.5999C6.3408 19.4429 5.847 19.22 5.4582 18.936L5.5173 17.969C5.667 17.9458 5.8437 17.917 6.0429 17.8813H6.0441L6.2007 17.8524C6.2448 17.8443 6.2895 17.8356 6.3348 17.8269C7.1979 17.6608 8.3028 17.4002 9.4947 16.9987C10.2474 16.7449 11.0349 16.4353 11.8182 16.0575C14.3601 14.8319 16.1742 13.2211 17.2134 11.2679C17.247 11.2048 17.2797 11.1414 17.3115 11.0778C17.3808 10.9474 18.063 9.64561 18.2292 8.68012C18.2418 8.60624 18.2598 8.52546 18.282 8.44017C18.4971 7.61582 19.1388 6.35333 19.86 6.35333C19.9008 6.35333 19.9443 6.35453 19.9962 6.35723C20.5296 6.38366 20.9292 6.56594 21.2172 6.9146C21.7362 7.54285 21.9258 8.78042 21.7239 10.2258H21.7242Z\"\n fill={colors.neutral800}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_0_2321\">\n <rect width=\"24\" height=\"22\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default SvgIconBanana;\n","const SvgIconBuying = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-buying_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-buying_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM39 18.7c-.3-.1-.7-.1-.9-.1H21.2c-.5 0-.6-.1-.7-.4-.1-.3-.3-.6-.4-.8-.1-.2-.2-.5-.4-.8l-.1-.1c-.1-.1-.2-.3-.3-.3h-3.9v2.7h2.1c.2 0 .4 0 .5.3.5.9.9 1.9 1.4 2.8.9 1.8 1.9 3.7 2.7 5.7 0 0 .1.1.1.2s0 .2-.1.2c-.2.5-.5 1-.8 1.5-.2.3-.3.5-.5.9-.5.9-.6 2-.1 2.8.5.8 1.3 1.3 2.4 1.3h14.4V32H23.4c-.3 0-.5 0-.5-.1s.1-.3.1-.5c.3-.3.5-.7.7-1.2.2-.3.4-.4.8-.4h8.3c1.1 0 2-.5 2.6-1.7.7-1.3 1.4-2.7 2.3-4.1.6-1.1 1.3-2.3 1.9-3.5.4-.8-.1-1.5-.6-1.8zm-2.2 2.1c-.4.7-.8 1.4-1.1 2-.8 1.4-1.6 2.8-2.3 4.1-.3.5-.4.5-.6.5H24.2c0-.3-.1-.7-.3-.9-.8-2-1.8-3.8-2.7-5.7v-.1h15.6zM22.8 35.5c-1.4 0-2.6 1.2-2.6 2.6s1.2 2.6 2.6 2.6 2.6-1.2 2.6-2.6-1.2-2.6-2.6-2.6z\"\n />\n <circle className=\"icon-buying_svg__st0\" cx={34.7} cy={38.1} r={2.6} />\n </svg>\n);\n\nexport default SvgIconBuying;\n","const IconContentManagement = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props} fill=\"0000\" strokeWidth=\"0px\">\n <path\n className=\"cls-1\"\n d=\"M33,38.1c0,1.2-1.2,2.2-2.8,2.2h-11c-1.6,0-2.8-1.2-2.8-2.8v-18.3c0-1.5,1.1-2.8,2.5-2.9,1.1-.1,3.2-.1,4.4-.1h1.6v2.1h-5.2c-1.2,0-1.3.1-1.3,1.3v16.9c0,1.1.2,1.3,1.3,1.3h9.7c1.2,0,1.3,0,1.3-1.4v-5.9h2.2v2.6c0,1.7.2,3.4,0,5Z\"\n />\n <rect className=\"cls-1\" x=\"21.6\" y=\"34.1\" width=\"3.6\" height=\"5.2\" />\n <path\n className=\"cls-1\"\n d=\"M31.9,23.5c-.5,0-1-.2-1.3-.5-.3-.3-.5-.8-.5-1.3s.2-.9.5-1.3c.3-.3.8-.5,1.3-.5s1,.2,1.3.5c.3.3.5.8.5,1.3s-.2.9-.5,1.3c-.3.3-.8.5-1.3.5ZM35.8,22.2c0-.2,0-.3,0-.5s0-.3,0-.5l1.1-.8c0,0,.1-.2,0-.3l-1.1-1.8c0-.1-.2-.2-.3-.1l-1.3.5c-.3-.2-.6-.4-.9-.5l-.2-1.4c0-.1-.1-.2-.3-.2h-2.1c-.1,0-.2,0-.3.2l-.2,1.4c-.3.1-.6.3-.9.5l-1.3-.5c-.1,0-.3,0-.3.1l-1.1,1.8c0,.1,0,.3,0,.3l1.1.8c0,.2,0,.3,0,.5s0,.3,0,.5l-1.1.8c0,0-.1.2,0,.3l1.1,1.8c0,.1.2.2.3.1l1.3-.5c.3.2.6.4.9.5l.2,1.4c0,.1.1.2.3.2h2.1c.1,0,.2,0,.3-.2l.2-1.4c.3-.1.6-.3.9-.5l1.3.5c.1,0,.3,0,.3-.1l1.1-1.8c0-.1,0-.3,0-.3l-1.1-.8Z\"\n />\n </svg>\n);\n\nexport default IconContentManagement;\n","const SvgIconGoodsin = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM19.5 34.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c0-1.6-1.3-3-2.9-3zM30.4 34.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c-.1-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-goodsin_svg__st0\"\n d=\"M19.3 28.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.3 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.1.1.2 0 .3 0m.7-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.2-.8-.7-1.2-1.4-1.2zm-15.6 9.9V19h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2V27c0-.8-.1-.9-.9-.9-.7.1-1.2.1-1.9.1z\"\n />\n </svg>\n);\n\nexport default SvgIconGoodsin;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconGrape = (props) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M21 12C20.9984 10.6744 20.4711 9.40355 19.5338 8.46621C18.5964 7.52888 17.3256 7.00158 16 6.99999C14.9141 7.00504 13.86 7.36695 13 8.02999C13 8.02099 13.005 8.01399 13.005 8.00499C12.9832 7.60549 13.0456 7.20586 13.1882 6.83205C13.3309 6.45824 13.5506 6.11862 13.833 5.83523C14.1154 5.55185 14.4543 5.33104 14.8277 5.18714C15.201 5.04325 15.6004 4.97948 16 4.99999C16.2652 4.99999 16.5196 4.89464 16.7071 4.7071C16.8946 4.51956 17 4.26521 17 3.99999C17 3.73478 16.8946 3.48042 16.7071 3.29289C16.5196 3.10535 16.2652 2.99999 16 2.99999C15.3032 2.96439 14.6071 3.08408 13.9622 3.35041C13.3173 3.61675 12.7396 4.02307 12.271 4.53999C11.8704 3.47457 11.1471 2.56079 10.2022 1.92617C9.25727 1.29156 8.1378 0.967771 6.99999 0.999994C6.73478 0.999994 6.48042 1.10535 6.29289 1.29289C6.10535 1.48042 5.99999 1.73478 5.99999 1.99999C5.99703 3.81487 6.5846 5.58144 7.67399 7.03299C6.45538 7.10841 5.30691 7.62879 4.44673 8.49528C3.58655 9.36177 3.07458 10.514 3.00807 11.7331C2.94156 12.9523 3.32514 14.1534 4.08596 15.1083C4.84677 16.0632 5.93182 16.7055 7.13499 16.913C7.04927 17.2691 7.00398 17.6337 6.99999 18C6.99557 18.7054 7.14048 19.4038 7.4252 20.0493C7.70991 20.6947 8.12799 21.2726 8.65196 21.745C9.17592 22.2174 9.79392 22.5735 10.4653 22.79C11.1367 23.0065 11.8464 23.0785 12.5476 23.0012C13.2488 22.924 13.9257 22.6992 14.5339 22.3417C15.142 21.9841 15.6676 21.502 16.0762 20.9268C16.4847 20.3517 16.7669 19.6967 16.9042 19.0047C17.0416 18.3127 17.0309 17.5995 16.873 16.912C18.0277 16.7072 19.0738 16.1031 19.8282 15.2052C20.5826 14.3073 20.9974 13.1728 21 12ZM10.882 6.85099C8.99399 6.30899 8.34299 4.40599 8.11799 3.15099C10.006 3.69099 10.657 5.59299 10.882 6.85099ZM4.99999 12C4.99999 11.2043 5.31606 10.4413 5.87867 9.87867C6.44128 9.31606 7.20434 8.99999 7.99999 8.99999C8.79564 8.99999 9.55871 9.31606 10.1213 9.87867C10.6839 10.4413 11 11.2043 11 12C11 15.975 4.99999 15.976 4.99999 12ZM12 21C11.2043 21 10.4413 20.6839 9.87867 20.1213C9.31606 19.5587 8.99999 18.7956 8.99999 18C8.9999 17.5953 9.08544 17.1952 9.25099 16.826C10.3394 16.5388 11.3007 15.8961 11.982 15C12.4994 15.0066 13.0067 15.1437 13.457 15.3985C13.9073 15.6534 14.286 16.0178 14.558 16.458C14.8368 16.911 14.9893 17.4304 14.9996 17.9622C15.01 18.494 14.8778 19.0189 14.6167 19.4824C14.3557 19.9459 13.9754 20.331 13.5152 20.5979C13.0551 20.8648 12.5319 21.0036 12 21ZM16 15H15.982C15.3229 14.1283 14.3951 13.4979 13.342 13.206C13.311 13.197 13.282 13.182 13.251 13.174C13.0854 12.8047 12.9999 12.4047 13 12C13 11.4066 13.1759 10.8266 13.5056 10.3333C13.8352 9.83994 14.3038 9.45542 14.8519 9.22835C15.4001 9.00129 16.0033 8.94188 16.5853 9.05764C17.1672 9.17339 17.7018 9.45912 18.1213 9.87867C18.5409 10.2982 18.8266 10.8328 18.9424 11.4147C19.0581 11.9967 18.9987 12.5999 18.7716 13.148C18.5446 13.6962 18.1601 14.1648 17.6667 14.4944C17.1734 14.824 16.5933 15 16 15Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconGrape;\n","const SvgIconHome = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-home_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-home_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-home_svg__st1\"\n d=\"M38 24.3l-9.1-7.6c-.4-.4-.9-.6-1.4-.6-.5 0-1 .2-1.3.5l-9.4 7.9c-.6.5-.8 1.5-.6 2.2.3.9 1.2 1.4 2 1.4h.1v9.2c0 1.9 1.5 3.4 3.4 3.4h2.8c.6 0 1.2-.5 1.2-1.2v-5.7H29v5.7c0 .6.5 1.2 1.2 1.2h3.1c1.9 0 3.4-1.5 3.4-3.4V28h.2c1.1 0 2-1 2-2 0-.7-.4-1.4-.9-1.7zm-4.7 14h-1.9v-4.9c0-1.1-.9-1.9-1.9-1.9h-4.1c-1.1 0-1.9.9-1.9 1.9v4.9h-1.7c-.6 0-1-.5-1-1v-13l6.7-5.7 6.9 5.7v13c-.1.5-.6 1-1.1 1z\"\n />\n </svg>\n);\n\nexport default SvgIconHome;\n","const SvgIconImport = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-8 -8 40 40\" {...props}>\n <path\n className=\"icon-runs_svg__st0\"\n d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6m-.5 14v3h-3v-3H8l4-4 4 4h-2.5M13 9V3.5L18.5 9H13Z\"\n />\n </svg>\n);\n\nexport default SvgIconImport;\n","const SvgIconLocation = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-location_svg__st0\"\n d=\"M36.8 25.4c-.1-2.5-1.1-4.8-2.9-6.5-1.8-1.8-4.1-2.7-6.6-2.7-5.1 0-9.2 4.2-9.2 9.3 0 1.8.5 3.5 1.6 5.1 1.6 2.6 3.4 5.3 5.5 8.5.8 1.1 1.7 1.4 2.3 1.4h.1c.6 0 1.5-.3 2.2-1.4.5-.7.9-1.4 1.4-2.2l.1-.2c1.2-1.9 2.5-3.8 3.7-5.7 1.3-1.7 1.9-3.6 1.8-5.6zm-9.4-6.6h.1c1.7 0 3.4.7 4.6 1.9 1.3 1.3 2.1 3 2.1 4.8.1 1.7-.7 3.1-1.3 4l-.1.1c-1.2 1.9-2.4 3.8-3.7 5.7-.5.8-1 1.5-1.5 2.3-.1.1-.1.2-.2.2l-.2-.2c-2.1-3.1-3.8-5.8-5.5-8.4-.8-1.1-1.1-2.4-1.1-3.7.1-3.7 3.1-6.7 6.8-6.7zm.1 21.3z\"\n />\n <path\n className=\"icon-location_svg__st0\"\n d=\"M27.6 30.2c-2.5 0-4.6-2.1-4.6-4.6 0-2.5 2.1-4.6 4.6-4.6 2.6 0 4.7 2.1 4.6 4.6l-4.6 4.6z\"\n />\n </svg>\n);\n\nexport default SvgIconLocation;\n","const SvgIconLogin = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-login_svg__st0\"\n d=\"M24.4 35.7h-4.1c-1.4 0-2.2-.9-2.2-2.2v-9.9c0-1.4.9-2.2 2.2-2.2h4.2c.6 0 1-.4 1-1v-.5c0-.8-.4-1-1-1H20c-1 0-2 .4-2.9 1.2-.8.7-1.2 1.8-1.4 2.6v11.4c0 .1 0 .2.1.3v.1c.4 1.9 2.1 3.4 3.9 3.4h4.8c.2 0 .6 0 .6-.3.1-.4.2-1 .1-1.3 0-.5-.7-.6-.8-.6z\"\n />\n <path\n className=\"icon-login_svg__st0\"\n d=\"M39.2 28.1c-.2-.2-.2-.3-.3-.4-.1-.1-.1-.2-.2-.2l-7.9-7.9c-.4-.4-1-.6-1.4-.4-.8.3-.8 1-.8 1.3v3.9h-6.1c-1.1 0-1.5.4-1.5 1.5v5.2c0 1.1.4 1.5 1.5 1.5h6.2v3.9c0 .5.3.9.8 1.1.2.1.3.1.5.1.3 0 .5-.1.8-.4l.2-.2c.9-.9 1.7-1.7 2.6-2.5 1.7-1.6 3.4-3.3 5-5 .1-.1.2-.2.3-.4l.3-.3.1-.1v-.1c0-.1 0-.3-.1-.6zm-10.2 2h-5.4v-3.2h5.3c1.2 0 2.2-1 2.2-2.2v-1.2l5.1 5.1-4.3 4.3-.6.6v-1.1c0-1.3-1-2.3-2.3-2.3z\"\n />\n </svg>\n);\n\nexport default SvgIconLogin;\n","const SvgIconNotification = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-notification_svg__st0\"\n d=\"M33 38.1c-.1 1.2-1.2 2.2-2.8 2.2h-11c-1.6 0-2.8-1.2-2.8-2.8V19.2c0-1.5 1.1-2.8 2.5-2.9 1.1-.1 3.2-.1 4.4-.1H24.9v2.1H19.7c-1.2 0-1.3.1-1.3 1.3v16.9c0 1.1.2 1.3 1.3 1.3h9.7c1.2 0 1.3-.1 1.3-1.4v-5.9h2.2v2.6c.1 1.7.2 3.4.1 5z\"\n />\n <path\n className=\"icon-notification_svg__st0\"\n d=\"M21.6 34.1h6.6v2.2h-6.6zM37.2 26.8H26.7v-.5l1.2-1.2v-3.4c0-1.9 1.2-3.5 3.1-3.9v-.4c0-.5.4-.9.9-.9.6 0 .9.4.9.9v.4c1.8.4 3.1 2 3.1 3.9v3.4l1.2 1.2.1.5z\"\n />\n </svg>\n);\n\nexport default SvgIconNotification;\n","const SvgIconOpsMetrics = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\" />\n <path d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3s2.9.9 3.7 2.4c.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM39.5 40.7H29V28.2h10.5v12.5zm-8-2.5H37v-7.5h-5.5v7.5zm-6 2.5H15v-8.5h10.5v8.5zm-8-2.5H23v-3.5h-5.5v3.5zm8-9.5H15V16.2h10.5v12.5zm-8-2.5H23v-7.5h-5.5v7.5zm22-1.5H29v-8.5h10.5v8.5zm-8-2.5H37v-3.5h-5.5v3.5z\" />\n </svg>\n);\n\nexport default SvgIconOpsMetrics;\n","const SvgIconOrders = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-orders_svg__st0\"\n d=\"M36.1 23.3l-6.6-6.6c-.2-.2-.5-.3-.8-.3h-8.8c-1.8 0-3.3 1.5-3.3 3.3v17.7c0 1.8 1.5 3.3 3.3 3.3h13.2c1.8 0 3.3-1.5 3.3-3.3V24.1c0-.3-.1-.6-.3-.8zm-1.9 14.1c0 .6-.5 1.1-1.1 1.1H19.9c-.6 0-1.1-.5-1.1-1.1V19.7c0-.6.5-1.1 1.1-1.1h8.4l6 6-.1 12.8z\"\n />\n <path\n className=\"icon-orders_svg__st0\"\n d=\"M22.1 33h8.8v2.2h-8.8zM22.1 28.6h8.8v2.2h-8.8zM26.8 25.9h6l-6-6.1z\"\n />\n </svg>\n);\n\nexport default SvgIconOrders;\n","const SvgIconPhone = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-phone_svg__st0\"\n d=\"M34 22.9c-3 0-5.5 2.5-5.5 5.5 0 1.3.5 2.6 1.3 3.5h-4.5c.8-.9 1.3-2.2 1.3-3.5 0-3-2.5-5.5-5.5-5.5s-5.5 2.5-5.5 5.5 2.5 5.5 5.5 5.5h13c3 0 5.5-2.5 5.5-5.5S37 22.9 34 22.9zm-13 9c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm13 0c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z\"\n />\n </svg>\n);\n\nexport default SvgIconPhone;\n","const SvgIconPriceList = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-price-list_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-price-list_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1z\"\n />\n <path\n className=\"icon-price-list_svg__st1\"\n d=\"M27.3 33c2.6 0 4.8-2.1 4.8-4.7 0-2.5-2.1-4.6-4.8-4.6-2.6 0-4.8 2.1-4.8 4.7 0 1.2.5 2.3 1.4 3.2.9.9 2.1 1.4 3.4 1.4zm-2.4-4.6c0-1.3 1.1-2.3 2.4-2.3 1.3 0 2.4 1 2.4 2.2 0 1.3-1.1 2.3-2.4 2.3-.7 0-1.3-.3-1.7-.7-.5-.4-.7-1-.7-1.5z\"\n />\n <path\n className=\"icon-price-list_svg__st1\"\n d=\"M39.4 33.9l-2-1.8c.5-1.2.7-2.5.7-3.7 0-1.4-.2-2.6-.7-3.9l1.9-1.9c.4-.4.6-.9.6-1.5s-.3-1.1-.7-1.5l-3.2-3c-.8-.8-2.2-.7-2.9.1l-1.7 1.8c-.7-.3-1.3-.5-2-.6-1-.2-1.9-.2-3-.1-1 .1-2 .3-3 .7l-1.3-1.2-.1-.1-.6-.6c-.8-.7-2.1-.6-2.9.1l-3 3.1c-.4.4-.6.9-.6 1.5s.3 1.1.7 1.5l1.7 1.6c-.5 1.2-.7 2.5-.7 3.8 0 1.4.2 2.6.7 3.9l-1.8 1.8c-.4.4-.6.9-.6 1.5v.6c0 .6.2 1.2.7 1.5l3 2.8c.8.7 2.1.7 2.9-.1l1.9-1.9c1.2.5 2.6.8 4 .8s2.8-.3 4-.8l2.1 2c.4.4.9.6 1.4.6.6 0 1.1-.2 1.5-.6l3-3.1c.4-.4.6-1 .6-1.5.1-.9-.2-1.4-.6-1.8zm-22.1 1.5l2.8-2.9-.1-.2c-.7-1.4-1.1-2.7-1.1-4.2s.4-2.9 1.2-4.1l.1-.2-2.8-2.6 2.7-2.8.5.4 2.4 2.3.2-.1c1.1-.6 2.2-1 3.5-1.1.9-.1 1.6-.1 2.3.1.9.2 1.9.5 2.8 1.1l.2.1 2.7-2.8 2.9 2.7-3 2.9.1.2c.7 1.4 1.1 2.7 1.1 4.2 0 1.4-.4 2.8-1.2 4.1l-.1.2 3.1 2.8-2.7 2.8-3.1-2.9-.2.1c-1.3.8-2.7 1.2-4.3 1.2s-3-.4-4.3-1.2v-.2l-3 3-2.8-2.5v-.4z\"\n />\n </svg>\n);\n\nexport default SvgIconPriceList;\n","const SvgIconProducts = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-products_svg__st0\"\n d=\"M23.2 30.2c0-.9-.6-1.5-1.5-1.5-.8 0-1.7.8-1.7 1.5 0 1 .8 1.6 1.6 1.7h.2c.3 0 .6-.1.8-.3.4-.3.6-.8.6-1.4zM23.1 32c-.3-.1-.6 0-.8.1-.3.2-.5.6-.5 1 .1.5.3 1 1.1 1 .7 0 1.1-.4 1.1-1.1 0-.7-.6-.9-.9-1zM22.5 23.4c-1.4 0-2.5 1.1-2.5 2.5s1 2.3 2.5 2.4h.2c.6 0 1.2-.3 1.7-.8.4-.5.6-1.1.5-1.6-.2-1.5-1.1-2.5-2.4-2.5z\"\n />\n <path\n className=\"icon-products_svg__st0\"\n d=\"M38.7 10.5c-2.5-.4-4.3-.4-5.8 0-2.7.7-4.6 2.6-5.1 5.2-.1-.2-.1-.4-.2-.6l-.3-.5c-.4-.6-.7-1.2-1.2-1.8-.1-.1-.6-.3-.8-.2l-.3.1v.1c-.1.2-.1.4-.1.7 0 .3.2.5.3.6h.1c.8 1 1 1.7 1.2 2.8-.4.1-1.2.2-1.4.2-5.6.8-9.9 6.4-9.1 12.1.8 5.8 5.2 9.8 10.9 9.8.7 0 1.4-.1 2.1-.2 2.8-.5 5.3-2.2 7-4.8 1.7-2.5 2.2-5.7 1.5-8.5-1.1-4.7-4.7-7.8-9.5-8.5 0-.3-.1-.6-.2-.9h.2c.6-.1 1.2-.2 1.9-.2 1.2-.1 2.4-.2 3.4-.5 2-.5 3.5-1.3 4.4-2.5.3-.4.5-.7.7-1.1.1-.3.3-.5.5-.8l.2-.3-.4-.2zM35.4 26c.5 2.3.1 4.7-1.2 6.8-1.3 2-3.2 3.3-5.4 3.8-.6.1-1.2.2-1.7.2-4.5 0-8-3.1-8.6-7.8-.6-4.4 2.7-8.8 7-9.5.6 0 1.2-.2 1.6-.3.2.1.3.1.5.2h.3c3.7.4 6.5 2.8 7.5 6.6zm-8.5-8.9z\"\n />\n </svg>\n);\n\nexport default SvgIconProducts;\n","const SvgIconPromoCode = (props) => (\n <svg viewBox=\"0 0 42.5 42.5\" {...props}>\n <path\n className=\"promo_code_svg_st0\"\n d=\"M11.5,15.9c1.2,0,0.8-1,0.8-1.7c0-1.5,0.2-1.5,1.7-1.7c0.7,0,1.7,0.3,1.7-0.8c0,0,0,0,0-0.1\n c0-0.3-0.1-0.4-0.2-0.5c-0.3-0.4-1.1-0.2-1.5-0.2c-2.7,0-3.5,0.8-3.3,3.3c0,0.3,0,0.6,0,0.8C10.7,15.6,10.8,16,11.5,15.9z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M14.9,17.5C14.9,17.6,14.9,17.6,14.9,17.5C14.9,17.6,14.9,17.6,14.9,17.5c0,1.5,1.1,2.5,2.5,2.5c0,0,0,0,0,0\n c0,0,0,0,0,0s0,0,0,0c1.4,0,2.5-1.1,2.5-2.4c0,0,0-0.1,0-0.1c0-1.4-1.1-2.5-2.5-2.5c0,0,0,0,0,0s0,0,0,0c0,0,0,0,0,0\n C16,15.1,14.9,16.2,14.9,17.5z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M26.7,24.4C26.7,24.4,26.7,24.4,26.7,24.4C26.7,24.4,26.7,24.4,26.7,24.4c0-1.4-1.1-2.5-2.5-2.5\n c-0.1,0-0.1,0-0.2,0c-1.4,0-2.5,1.2-2.5,2.7c0,1.4,1.2,2.5,2.7,2.5C25.6,27,26.8,25.9,26.7,24.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M30,18.4c-0.5,0-0.8,0.4-0.8,0.8v0v3.5v0c0,0.5,0.4,0.8,0.8,0.8s0.8-0.4,0.8-0.8v0v-1.7v0v0v-1.8v0\n C30.9,18.8,30.5,18.4,30,18.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M25.9,16.8c0-0.3-0.2-0.5-0.5-0.7c-0.5-0.3-0.8,0-1.2,0.3c0,0-0.1,0.1-0.1,0.1L16,24.6\n c-0.1,0.1-0.2,0.1-0.3,0.2c-0.2,0.3-0.2,0.8,0.1,1c0,0,0,0,0.1,0.1c0.5,0.5,1,0.2,1.3-0.2l0.2-0.2c0,0,0,0,0,0l8-8\n C25.7,17.4,25.9,17.1,25.9,16.8z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M19,12.6L19,12.6C19.1,12.6,19.1,12.6,19,12.6c0.1,0,0.1,0,0.2,0h3.3c0.4,0,0.8-0.3,0.8-0.7c0,0,0-0.1,0-0.1\n c0-0.4-0.3-0.8-0.7-0.8c0,0-0.1,0-0.1,0h-0.2c0,0,0,0,0,0h-1.5h-1.7c-0.7,0-1,0.2-1,0.8c0,0,0,0.1,0,0.1\n C18.2,12.3,18.6,12.6,19,12.6z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M12.4,19.2c0-0.4-0.4-0.8-0.8-0.7c0,0-0.1,0-0.1,0c-0.4,0-0.8,0.4-0.7,0.8v0.2v3.2v0.1v0.1\n c0,0.4,0.3,0.8,0.7,0.8c0,0,0.1,0,0.1,0c0.4,0,0.8-0.3,0.8-0.7c0,0,0-0.1,0-0.1l0-1.7v-1.7c0,0,0,0,0,0V19.2\n C12.4,19.2,12.4,19.2,12.4,19.2z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M22.4,29.4H22h-1.3h-1.2h-0.3c-0.5,0-0.9,0.3-1,0.8c0,0.4,0.3,0.8,0.7,0.8c0,0,0.1,0,0.1,0h0.3h2.8h0.3\n c0,0,0.1,0,0.1,0c0.4,0,0.8-0.4,0.7-0.8C23.3,29.8,22.9,29.4,22.4,29.4z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M27.5,12.6L27.5,12.6c1.5,0,1.7,0.2,1.7,1.6v0.1c0,0.7-0.3,1.6,0.8,1.6c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0\n c0.2,0,0.3,0,0.4-0.1c0,0,0,0,0,0c0.6-0.2,0.4-1,0.4-1.6l0-0.2c0.1-0.8-0.1-1.6-0.5-2.3c-1.1-0.9-2.6-1.2-4-0.8\n c-0.1,0-0.1,0.1-0.1,0.1c-0.2,0.1-0.4,0.3-0.4,0.7C25.9,12.9,26.9,12.6,27.5,12.6z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M30.1,26.1C30.1,26.1,30.1,26.1,30.1,26.1C30,26.1,30,26.1,30.1,26.1c-1.2,0-0.8,1-0.8,1.7\n c0,0.5,0,0.9-0.1,1.1c0,0.1-0.1,0.2-0.2,0.3c0,0,0,0,0,0c-0.1,0.1-0.2,0.1-0.3,0.2c-0.2,0.1-0.6,0.1-1.1,0.1h-0.1\n c-0.4,0-0.9-0.1-1.2,0c-0.3,0.1-0.6,0.4-0.6,0.7c0,0,0,0.1,0,0.1c0,0.5,0.3,0.7,0.7,0.8c1.6,0.5,2.8,0.2,3.6-0.6\n c0.4-0.4,0.7-0.9,0.8-1.6c0,0,0,0,0,0c0-0.2,0.1-0.5,0.1-0.7c0-0.1,0-0.1,0-0.2v-0.2C30.9,27.1,31.2,26.1,30.1,26.1z\"\n />\n <path\n className=\"promo_code_svg_st0\"\n d=\"M15.7,30.3c0-1.2-1-0.8-1.7-0.8c-1.5,0-1.7-0.2-1.7-1.7c0-0.7,0.3-1.7-0.8-1.7c-0.8,0-0.9,0.5-0.9,1\n c-0.4,1.2-0.2,2.3,0.5,3.1c0.1,0.1,0.2,0.2,0.2,0.3c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.5,0.3,1.2,0.5,2,0.5h0h0.8\n c0.3,0,0.6-0.1,0.8-0.4c0,0,0,0,0,0c0,0,0-0.1,0.1-0.1c0,0,0-0.1,0-0.2c0,0,0-0.1,0-0.1C15.7,30.4,15.7,30.4,15.7,30.3\n C15.7,30.3,15.7,30.3,15.7,30.3z\"\n />\n </svg>\n);\n\nexport default SvgIconPromoCode;\n","const SvgIconQc = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-qc_svg__st0\"\n d=\"M19.4 24h-4.6v14h4.6V24zM28.6 19.6l-.6 2.9c-.2.8 0 1.5.5 2.1.5.6 1.2.9 2 .9h7.2V27c0 .1-.1.1-.1.2l-3.5 8.1h-10V24l4.5-4.4M29.9 14.7l-7.7 7.7c-.4.4-.6 1-.6 1.7v11.6c0 1.3 1 2.3 2.3 2.3h10.5c.8 0 1.7-.6 2-1.4l3.6-8.3c.1-.4.3-.5.3-.9v-2.2c0-1.2-.9-2.2-2.2-2.2h-7.5l1.2-5.4v-.4c0-.5-.1-.9-.5-1.3l-1.4-1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconQc;\n","const SvgIconReports = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-reports_svg__st0\"\n d=\"M36.3 18.4l-1.8-1.8-1.8 1.8-1.7-1.8-1.8 1.8-1.8-1.8-1.8 1.8-1.6-1.8-1.8 1.8-1.8-1.8-1.8 1.8-1.8-1.8v23.5l1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8 1.8-1.8 1.8 1.8V16.6l-2.1 1.8zm-.6 18.3H19.3V20h16.4v16.7zm-15.2-4.8h14.1v2.3H20.5v-2.3zm0-4.7h14.1v2.3H20.5v-2.3zm0-4.7h14.1v2.3H20.5v-2.3z\"\n />\n </svg>\n);\n\nexport default SvgIconReports;\n","const SvgIconRetail = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M38.2 25.5c1 0 1.7-.2 2.5-1 .7-.7 1-1.5 1-2.5s-.4-1.7-1-2.5c-.7-.7-1.6-1-2.5-1-1 0-1.7.2-2.5 1-.6.6-1 1.5-1 2.5s.2 1.7 1 2.5 1.6 1 2.5 1zm-1.1-4.6c.3-.3.5-.4 1.1-.4.4 0 .7.1 1 .4.4.5.5.8.5 1.1 0 .6-.1.8-.4 1.1-.3.3-.5.4-1.1.4-.5 0-.8-.1-1.1-.4-.3-.3-.4-.5-.4-1.1 0-.4.2-.8.4-1.1zM27.5 28.5c1.1 0 2.1-.4 3-1.2.9-.9 1.2-1.7 1.2-3 0-1.1-.5-2.1-1.2-3-.9-.9-1.9-1.2-3-1.2s-2.1.4-3 1.2c-.9.9-1.2 1.9-1.2 3s.4 2.1 1.2 3c.9.8 1.9 1.2 3 1.2zm-1.6-5.8c.5-.5.9-.7 1.6-.7.6 0 1.1.2 1.5.6.5.6.7 1.1.7 1.6 0 .7-.2 1.1-.7 1.6-.5.5-.9.7-1.6.7-.6 0-1.1-.2-1.6-.7-.5-.5-.7-.9-.7-1.6.2-.6.4-1.1.8-1.5zM16.8 25.7c1 0 1.7-.2 2.5-1 .7-.7 1-1.5 1-2.5s-.4-1.7-1-2.5c-.7-.7-1.6-1-2.5-1-1 0-1.7.2-2.5 1-.6.6-1 1.5-1 2.5s.2 1.7 1 2.5 1.6 1 2.5 1zm-1.1-4.5c.3-.3.5-.4 1.1-.4.4 0 .7.1 1 .4.4.5.5.8.5 1.1 0 .6-.1.8-.4 1.1-.3.3-.5.4-1.1.4-.5 0-.8-.1-1.1-.4-.3-.3-.4-.5-.4-1.1 0-.5.2-.8.4-1.1z\"\n />\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M44.4 29.1c-.1-.4-.1-.7-.2-1-.1-.2-.2-.6-.4-.9-.1-.2-.2-.5-.5-.7-.2-.2-.5-.4-.7-.5-.2 0-.6-.1-1-.1-.1 0-.1 0-.4.2-.2.2-.5.2-.7.5s-.6.4-1 .5c-.4.1-.9.2-1.2.2s-.9 0-1.2-.2c-.4-.2-.7-.4-1-.5-.2-.2-.5-.4-.7-.5-.4-.1-.4-.2-.6-.2-.4 0-.7 0-1 .1s-.5.2-.7.5c-.1.2-.4.5-.5.7-.1.2-.2.6-.4.9-.1.2-.1.5-.2.8.2 0 .4.1.6.1.4.1.7.4 1 .6.2.4.4.6.6 1 .2.4.4.7.5 1.1.1.4.2.7.2 1.1 0 0 .1.1.1.4h-.9c-.7 0-1.2-.2-1.7-.6-.5-.4-.7-1-.7-1.7V30c0-.2 0-.6.1-1h-.4c-.1 0-.2 0-.5.2-.2.2-.6.4-.9.6s-.7.4-1.2.6c-.5.1-1 .2-1.5.2s-1 0-1.5-.2-1-.4-1.2-.6c-.2-.2-.6-.4-.9-.6-.2-.1-.4-.2-.5-.2h-.4c.1.1.1.2.1.4 0 0 .2 1.1.2 1.9s-.1 1.2-.6 1.7c-.4.5-1 .6-1.7.7h-1.1c0-.2.1-.4.1-.6 0-.5.1-.9.2-1.2 0-.1.1-.3.1-.4v-.2.2l.3-.6c.1-.4.4-.7.6-1 .4-.4.6-.5 1-.6.2-.1.5-.1.7-.1h-.1c0-.2-.1-.4-.1-.6-.1-.2-.2-.6-.4-.9-.1-.2-.2-.5-.5-.7s-.5-.4-.7-.5c-.2 0-.6-.1-1-.1-.1 0-.1.1-.4.2-.2.2-.5.2-.7.5-.2.2-.6.4-1 .5s-.9.2-1.2.2-.9-.1-1.2-.2c-.4-.2-.7-.4-1-.5-.2-.2-.5-.4-.7-.5s-.2-.2-.4-.2c-.4 0-.7 0-1 .1-.2.1-.5.2-.7.5-.1.2-.4.5-.5.7-.1.2-.2.6-.4.9-.1.2-.1.6-.2 1 0 .4-.1.7-.1 1v.9c0 .7.2 1.2.7 1.7.4.4 1 .6 1.7.6h6.8c-.1.2-.1.4-.1.6v1.1c0 .9.2 1.5.9 2.1.5.5 1.1.7 2.1.7h9.8c.9 0 1.5-.2 2.1-.7.6-.5.9-1.1.9-2.1 0-.6-.1-1.5-.2-2h7.1c.7 0 1.2-.1 1.7-.6s.7-1 .7-1.7c.1-.9-.2-2.1-.2-2.1zm-25.6.5c-.3.3-.6.8-.6 1.3 0 .1-.1.2-.1.3 0 .1-.1.2-.1.4h-5.5c-.2-.2-.2-.2-.2-.3v-.8-.1c0-.2.1-.4.1-.6 0-.2.1-.3.1-.5v-.1c.1-.1.1-.3.2-.5 0-.1.1-.2.1-.2l.1-.1v-.1c.2.2.3.3.5.4.1.1.2.1.4.2s.3.1.4.2c.1.1.3.2.5.2.5.2 1.2.4 1.9.4s1.4-.2 1.9-.4c.2-.1.4-.1.6-.2-.1.1-.2.3-.3.5zm14.5 6.2c-.4.3-.6.4-.9.4h-9.8c-.5 0-.6-.1-.7-.2-.2-.2-.2-.3-.3-.4.8-.2 1.7-.4 2.5-1.3.6-.6.9-1.2 1.1-1.9.9.4 1.6.4 2.2.4.7 0 1.4-.2 2-.3.1 0 .3-.1.4-.2.1 0 .1 0 .2-.1.2.8.7 1.5 1.4 2 .5.4 1.1.8 2.1.9v.2c-.2.4-.2.5-.2.5zm9.2-4.5h-5.8c0-.1-.1-.2-.1-.2-.1-.4-.3-1-.7-1.6-.1-.2-.2-.3-.3-.4-.1-.2-.2-.4-.4-.6 0 0 .1 0 .2.1.2.1.3.1.4.2.9.6 1.8.6 2.4.6.7 0 1.4-.2 1.9-.4s1.1-.4 1.7-.9c.1 0 .1-.1.2-.1 0 0 0 .1.1.1 0 .1.1.2.1.3.1.2.1.3.2.5v.1c0 .2.1.4.1.6.1.5.2 1.1.2 1.4 0 .1 0 .1-.2.3z\"\n />\n <path\n className=\"icon-retail_svg__st0\"\n d=\"M32 28.9h-.2v.1c.1 0 .1 0 .2-.1z\"\n />\n </svg>\n);\n\nexport default SvgIconRetail;\n","const SvgIconRuns = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-runs_svg__st0\"\n d=\"M37.2 23.5h-3.7v-4.9h-17c-1.3 0-2.4 1.1-2.4 2.4v13.4h2.4c0 2 1.6 3.7 3.7 3.7s3.7-1.6 3.7-3.7h7.3c0 2 1.6 3.7 3.7 3.7s3.7-1.6 3.7-3.7H41v-6.1l-3.8-4.8zm-.6 1.8l2.4 3h-5.4v-3h3zM20.2 35.7c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2zm2.7-3.7c-.7-.7-1.6-1.2-2.7-1.2s-2 .5-2.7 1.2h-.9V21h14.6v11h-8.3zm11.9 3.7c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconRuns;\n","const SvgIconScales = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-scales_svg__st0\"\n d=\"M27.7 28.9c-2.7 0-4.9 2.2-4.9 4.9s2.2 4.9 4.9 4.9 4.9-2.2 4.9-4.9-2.2-4.9-4.9-4.9z\"\n />\n <path\n className=\"icon-scales_svg__st0\"\n d=\"M34.1 25.5h-2.5c-.1-.2-.2-.3-.2-.5 0-.3.2-.6.4-.9 3.2-.6 4.6-1.7 4.6-1.7 1.8-1.3 2-2.4 2-2.8 0-.6-.5-1.1-1.1-1.1H18.2c-.6 0-1.1.5-1.1 1.1 0 .5.3 1.5 2 2.8.2.1 1.6 1.1 4.7 1.7.2.3.4.6.4.9 0 .2-.1.4-.2.5h-2.7c-1.4 0-2.6 1.2-2.6 2.5l-1.5 11.4v.1c0 1.4 1.2 2.6 2.6 2.6h15.9c1.4 0 2.6-1.2 2.6-2.7L36.7 28c0-1.4-1.2-2.5-2.6-2.5zm.7-4.8c-.5.3-2.6 1.6-7.1 1.6-.2 0-1.3 0-2.3-.1h-.2c-2.7-.4-4.2-1.1-4.6-1.4h14.2zm.8 19.1H19.7c-.2 0-.4-.2-.4-.3l1.5-11.3v-.1c0-.2.2-.4.4-.4h12.9c.2 0 .4.2.4.4L36 39.4c0 .3-.2.4-.4.4z\"\n />\n <path\n className=\"icon-scales_svg__st1\"\n d=\"M28.2 32.8v-1.1c0-.3-.2-.5-.5-.5s-.5.2-.5.5v1.1c-.3.2-.5.5-.5.9 0 .6.5 1 1 1s1-.5 1-1c0-.3-.2-.7-.5-.9z\"\n />\n </svg>\n);\n\nexport default SvgIconScales;\n","const SvgIconSearchCategories = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-search-categories_svg__st0\"\n d=\"M32.9,31h-1l-0.4-0.4c1.3-1.4,2-3.3,2-5.3c0-4.5-3.7-8.2-8.2-8.2s-8.2,3.7-8.2,8.2s3.7,8.2,8.2,8.2\n\tc2,0,3.9-0.8,5.3-2l0.4,0.4v1l6.3,6.3l1.9-1.9L32.9,31z M25.3,31c-3.1,0-5.7-2.5-5.7-5.7s2.5-5.7,5.7-5.7s5.7,2.5,5.7,5.7\n\tS28.4,31,25.3,31z\"\n />\n </svg>\n);\n\nexport default SvgIconSearchCategories;\n","const SvgIconSetting = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-setting_svg__st0\"\n d=\"M36.3 29.5c0-.4.1-.8.1-1.2 0-.4 0-.8-.1-1.2l2.5-2c.2-.2.3-.5.1-.8l-2.4-4.1c-.1-.2-.3-.3-.5-.3h-.2l-3 1.2c-.6-.5-1.3-.9-2-1.2l-.3-2.9c0-.3-.3-.5-.6-.5h-4.7c-.3 0-.5.2-.6.5l-.5 3.1c-.7.3-1.4.7-2 1.2l-3-1.2h-.2c-.2 0-.4.1-.5.3L16 24.5c-.2.3-.1.6.1.8l2.5 2c0 .4-.1.8-.1 1.2 0 .4 0 .8.1 1.2l-2.5 2c-.1-.1-.2.3-.1.5l2.4 4.1c.1.2.3.3.5.3h.2l3-1.2c.6.5 1.3.9 2 1.2l.5 3.1c0 .3.3.5.6.5h4.7c.3 0 .5-.2.6-.5l.5-3.1c.7-.3 1.4-.7 2-1.2l3 1.2h.2c.2 0 .4-.1.5-.3l2.4-4.1c.1-.3.1-.6-.1-.8l-2.7-1.9zm-2.3-2c0 .4.1.6.1.9 0 .2 0 .5-.1.9l-.2 1.3 1.1.8 1.3 1-.8 1.4-1.5-.6-1.2-.5-1.1.8c-.5.4-1 .7-1.5.9l-1.3.5-.2 1.3-.2 1.6h-1.7l-.2-1.6-.2-1.3-1.3-.5c-.5-.2-1-.5-1.5-.8l-1.1-.8-1.3.5-1.5.6-.8-1.4 1.3-1 1.1-.8-.2-1.5c0-.4-.1-.6-.1-.9 0-.2 0-.5.1-.9l.2-1.3-1.1-.8-1.3-1 .8-1.4 1.5.6 1.2.5 1.1-.8c.5-.4 1-.7 1.5-.9l1.3-.5.2-1.3.2-1.6h1.6l.2 1.6.2 1.3 1.3.5c.5.2 1 .5 1.5.8l1.1.8 1.3-.5 1.5-.6.8 1.4-1.3 1-1.1.8c.1.1.3 1.5.3 1.5zm-6.5-3.9c-2.6 0-4.7 2.1-4.7 4.7s2.1 4.7 4.7 4.7 4.7-2.1 4.7-4.7-2.1-4.7-4.7-4.7zm0 7.1c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4s2.4 1.1 2.4 2.4c0 1.4-1.1 2.4-2.4 2.4z\"\n />\n </svg>\n);\n\nexport default SvgIconSetting;\n","const SvgIconSnail = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M20.31 8.03L21.24 4.95C21.67 4.85 22 4.47 22 4C22 3.45 21.55 3 21 3C20.45 3 20 3.45 20 4C20 4.26 20.11 4.5 20.27 4.68L19.5 7.26L18.73 4.68C18.89 4.5 19 4.26 19 4C19 3.45 18.55 3 18 3C17.45 3 17 3.45 17 4C17 4.47 17.33 4.85 17.76 4.95L18.69 8.03C17.73 8.18 17 9 17 10V12.25C15.65 9.16 12.63 7 9.11 7C5.19 7 2 10.26 2 14.26C2 16.1 2.82 17.75 4.1 18.85L2.88 19C2.38 19.06 2 19.5 2 20C2 20.55 2.45 21 3 21H19.12C20.16 21 21 20.16 21 19.12V11.72C21.6 11.38 22 10.74 22 10C22 9 21.27 8.18 20.31 8.03ZM15.6 17.41L12.07 17.86C12.5 17.1 12.8 16.21 12.8 15.26C12.8 12.94 10.95 11.06 8.67 11.06C8.14 11.06 7.62 11.18 7.14 11.41C6.65 11.66 6.44 12.26 6.69 12.75C6.93 13.25 7.53 13.45 8.03 13.21C8.23 13.11 8.45 13.06 8.67 13.06C9.85 13.06 10.8 14.04 10.8 15.26C10.8 16.92 9.5 18.27 7.89 18.27C5.75 18.27 4 16.47 4 14.26C4 11.36 6.29 9 9.11 9C12.77 9 15.75 12.06 15.75 15.82C15.75 16.36 15.69 16.89 15.6 17.41Z\" />\n </svg>\n);\n\nexport default SvgIconSnail;\n","const SvgIconSpecialPrice = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M672.6 1136.6c-1.6 0-3 1.3-3 2.9s1.4 3 3 3 3-1.4 2.9-2.9c-.1-1.6-1.3-3-2.9-3zM683.4 1136.5c-1.7 0-3 1.4-3 3s1.4 3 3 3 3-1.4 3-3.1c0-1.7-1.4-2.9-3-2.9z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M672.4 1130.2h.9v1.2c0 1.1.9 2 2 2h6.9c-1.6.3-3 1.3-4 2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7-1.2 0-2.3.3-3.3.9v-3.7-.1c.1 0 .2-.1.7-.2m17.2 3.1v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4 0 .7-.1 1.2-.2.2.1.3 0 .3 0m.8-15.1c-.7 0-1.3.5-1.4 1.1v12.1c-.4.1-.7.1-.9.1-.4 0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1 0-1.6.3-1.6 1.6v8.1c-1.6.2-2.4 1-2.4 2.3v6.8c0 .2.2.7.5.7.1 0 .3.1.5.1s.4-.1.6-.4c.8-1.6 2.1-2.4 3.8-2.4s2.9.8 3.7 2.3c.1.3.3.5.7.5h1.9c.5 0 .6-.2.8-.6.8-1.5 2.1-2.3 3.8-2.3 1.7 0 2.9.9 3.7 2.4.5.9.5 1.8.2 3h5.4c.7 0 1.1-.6 1.1-1 0-.7-.3-1.1-.9-1.4-.2-.1-.6-.1-.8-.1h-2.9v-1.1-16.9-.7c-.3-.8-.7-1.2-1.4-1.2zm-15.6 9.9v-7.2h5.5c.1 0 .3.1.3.3 1.4 3.3 2.9 6.6 4.2 9.9v.1h-7.2v-2.3c0-.8-.1-.9-.9-.9-.7.1-1.3.1-1.9.1zM28.5 38.1h-.1c-.7-.4-6.9-6.2-8.9-8.7-2.1-2.6-2.6-5.6-2.6-5.6l-.2-1.3-.3 1.3c-.7 3.2 4.9 15.6 5.6 16.3.3.3.8.5 1.3.5.4 0 .7-.1.7-.1 4.7-1.9 4.7-1.9 4.7-2.1l-.2-.3z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M38.5 28.6l-.1-.1.1-.1-10.3-10.3c-2.1-1.2-4.2-1.9-6.3-1.9-2.3 0-3.6.7-3.7.7l-.4.4v.1c-.1.2-2.2 4.2 1.1 10l10.2 10.2c.1.1.4.6 1 .6.4 0 .7-.2 1.1-.6l7.2-7.2c.8-.8.3-1.5.1-1.8zm-2.6.7L30 35.2 20.8 26c-1.9-3.4-1.4-5.9-1.1-7 .4-.1 1.2-.3 2.1-.3 1.6 0 3.2.5 4.8 1.4l9.3 9.2z\"\n />\n <path\n className=\"icon-special-price_svg__st0\"\n d=\"M21.4 19.3c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2c.7 0 1.2-.6 1.2-1.2s-.5-1.2-1.2-1.2z\"\n />\n </svg>\n);\n\nexport default SvgIconSpecialPrice;\n","const SvgIconStock = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-stock_svg__st0\"\n d=\"M29.5 16.4v8.8H38v-8.8h-8.5zm6.6 6.8h-4.5v-4.8h4.5v4.8zM29.5 36H38v-8.9h-8.5V36zm2-6.9H36V34h-4.5v-4.9zM18.9 36.2h8.5v-8.9h-8.5v8.9zm2-6.9h4.5v4.9h-4.5v-4.9z\"\n />\n <path\n className=\"icon-stock_svg__st0\"\n d=\"M40.2 40.3H14.8V21.6h2.3v16.5h23.1z\"\n />\n </svg>\n);\n\nexport default SvgIconStock;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconStrawberry = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.4598 4.6821C11.999 4.10603 10.1634 4.03624 8.44724 4.89439C6.74737 5.74439 5.63985 7.23414 4.94838 9.30462C4.24917 11.3983 3.99976 14.0213 3.99976 16.9999C3.99976 17.6747 4.34721 18.4332 4.95687 19.0428C5.56652 19.6525 6.32499 20 6.99976 20C9.8827 20 12.505 19.7575 14.6233 19.06C16.7233 18.3687 18.253 17.258 19.1056 15.5528C19.9679 13.8281 19.9189 11.9841 19.3567 10.5262C19.108 9.88118 18.7767 9.34894 18.4078 8.94001L18.9806 11.8039C19.0889 12.3454 18.7377 12.8723 18.1961 12.9806C17.6546 13.0889 17.1277 12.7377 17.0194 12.1961L16.6363 10.2806L15.9138 11.9061C15.6895 12.4108 15.0985 12.6381 14.5939 12.4138C14.0892 12.1895 13.8619 11.5985 14.0862 11.0939L15.0302 8.96981L12.9061 9.91382C12.4014 10.1381 11.8105 9.91081 11.5862 9.40612C11.3619 8.90143 11.5892 8.31048 12.0939 8.08618L13.7195 7.36372L11.8039 6.98058C11.2623 6.87225 10.9111 6.34542 11.0194 5.80387C11.1277 5.26231 11.6546 4.9111 12.1961 5.01942L14.9778 5.57579C14.5776 5.23353 14.0688 4.92224 13.4598 4.6821ZM18.7737 6.64046C19.8668 7.33898 20.7216 8.50708 21.2227 9.80662C21.9674 11.7378 22.0321 14.1719 20.8944 16.4472C19.7338 18.7684 17.6849 20.1577 15.2488 20.9597C12.8311 21.7557 9.95984 22 6.99976 22C5.67452 22 4.43299 21.3474 3.54265 20.4571C2.6523 19.5667 1.99976 18.3252 1.99976 16.9999C1.99976 13.9461 2.25047 11.0693 3.05138 8.67108C3.86003 6.24973 5.25264 4.25571 7.55276 3.10556C9.83658 1.96357 12.2699 2.06296 14.1936 2.82154C15.4792 3.32855 16.6391 4.17819 17.3412 5.24451L18.2926 4.29301C18.6831 3.90247 19.3163 3.90243 19.7068 4.29293C20.0974 4.68343 20.0974 5.31659 19.7069 5.70714L18.7737 6.64046ZM13 17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17C11 16.4477 11.4477 16 12 16C12.5523 16 13 16.4477 13 17ZM17 16C17.5523 16 18 15.5523 18 15C18 14.4477 17.5523 14 17 14C16.4477 14 16 14.4477 16 15C16 15.5523 16.4477 16 17 16ZM12 13C12 13.5523 11.5523 14 11 14C10.4477 14 10 13.5523 10 13C10 12.4477 10.4477 12 11 12C11.5523 12 12 12.4477 12 13ZM7 13C7.55228 13 8 12.5523 8 12C8 11.4477 7.55228 11 7 11C6.44772 11 6 11.4477 6 12C6 12.5523 6.44772 13 7 13ZM8 17C8 17.5523 7.55228 18 7 18C6.44772 18 6 17.5523 6 17C6 16.4477 6.44772 16 7 16C7.55228 16 8 16.4477 8 17ZM9 7.99999C9.55228 7.99999 10 7.55228 10 6.99999C10 6.44771 9.55228 5.99999 9 5.99999C8.44772 5.99999 8 6.44771 8 6.99999C8 7.55228 8.44772 7.99999 9 7.99999Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconStrawberry;\n","const SvgIconSupplier = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M18.3 27.5c-2.9 0-5.3 2.4-5.3 5.3s2.3 5.3 5.3 5.3 5.4-2.3 5.3-5.2c.1-2.9-2.3-5.4-5.3-5.4zm-.1 7.6c-1.2 0-2.1-1-2.1-2.1 0-1.2 1-2.1 2.1-2.1 1.3 0 2.2 1 2.1 2.1.1 1.1-.9 2.1-2.1 2.1z\"\n />\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M32.9 29.2c1.2-1.2 2.6-1.6 4.2-1.6 0-1.1-.6-1.8-1.8-1.9-.8 0-1.4-.1-2.2-.1-1.4-.1-2.7-.1-4.1-.2-.1-1.6-.2-3.1-.3-4.7 0-.2.1-.4.2-.5.4-.4.3-.8-.1-1.1-.3-.1-.8-.3-1.1-.3-2.3-.1-4.4-.1-6.6-.1-1.4 0-1.7.4-1.8 1.8-.1 1.4-.2 2.8-.4 4.3h-2.4c-1.4.1-1.9 1-1.6 2.3 2.5-1.6 5-1.6 7.4-.2 2.6 1.4 3.2 3.9 2.9 6.8h6.4c-.2-1.8.3-3.4 1.3-4.5zm-10-4.2c-1.2-.1-1.8-.1-3.1-.2.1-1.6.2-3.1.3-4.6h2.8V25zm3.5 4.2c-.1-.1-.3-.2-.4-.4-.6-1.1-1.4-2.2-2-3.3-.1-.2-.2-.4-.2-.6v-4.6h4.4c.1 2.9.3 5.9.5 9.1-.9-.2-1.6-.2-2.3-.2z\"\n />\n <path\n className=\"icon-supplier_svg__st0\"\n d=\"M37.4 29.2c-2.4 0-4.5 2-4.5 4.6s2 4.5 4.6 4.5c2.4 0 4.5-2 4.5-4.6 0-2.5-2-4.5-4.6-4.5zm-.1 6.5c-1.1 0-1.9-.9-1.9-1.9 0-1 .9-1.9 1.9-1.9 1.1 0 1.9.9 1.9 1.9.1 1-.8 1.9-1.9 1.9z\"\n />\n </svg>\n);\n\nexport default SvgIconSupplier;\n","const SvgIconSupplierPrices = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M13.9 30.6c.2 0 5.7-2.6 7.7-4 2-1.3 2.9-3.2 2.9-3.2-.2 2.1-6.2 9.1-6.8 9.4-.6.3-1.2-.1-1.2-.1s-2.7-2.2-2.6-2.1z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M20.3 18.8c1.5 0 2.5.5 3 .8 0 .7-.2 2.4-2.1 4.2l-7.8 4.1-1.2-2.2-.2-.3-1.2-2.3 7.8-4.1c.7-.1 1.2-.2 1.7-.2m0-1.6c-.7 0-1.4.1-2.2.3l-8.7 4.6c0 .2-.8.4-.3 1.2.5.9 1.6 2.9 1.6 2.9l.2.3s1.1 2.1 1.6 2.9c.2.4.5.5.7.5.3 0 .5-.2.5-.2l8.7-4.6c3.3-3.1 2.7-6.2 2.7-6.2l-.2-.3c-.1.1-1.7-1.4-4.6-1.4z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M21.5 19.9c-.3 0-.6.2-.6.5-.1.4.1.7.4.8h.2c.3 0 .6-.2.6-.5.1-.4-.1-.7-.4-.8h-.2z\"\n />\n <g>\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M24.2 29.7c-2.7 0-4.9 2.2-4.9 4.9s2.2 4.9 4.9 4.9 5-2.2 4.9-4.8c0-2.8-2.2-5-4.9-5zm-.1 7c-1.1 0-2-.9-2-2s.9-2 2-2c1.2 0 2.1.9 2 2 0 1.1-.9 2-2 2z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M37.7 31.2c1.1-1.1 2.4-1.5 3.9-1.5 0-1-.6-1.7-1.7-1.8-.7 0-1.3-.1-2-.1-1.3-.1-2.5-.1-3.8-.2-.1-1.5-.2-2.9-.3-4.4 0-.2.1-.4.2-.5.4-.4.3-.7-.1-1-.3-.1-.7-.3-1-.3-2.1-.1-4.1-.1-6.1-.1-1.3 0-1.6.4-1.7 1.7-.1 1.3-.2 2.6-.4 4h-2.2c-1.3.1-1.8.9-1.5 2.1 2.3-1.5 4.6-1.5 6.9-.2 2.4 1.3 3 3.6 2.7 6.3h5.9c-.2-1.5.2-2.9 1.2-4zm-9.3-3.9c-1.1-.1-1.7-.1-2.9-.2.1-1.5.2-2.9.3-4.3h2.6v4.5zm3.2 3.9c-.1-.1-.3-.2-.4-.4-.6-1-1.3-2-1.9-3.1-.1-.2-.2-.4-.2-.6v-4.3h4.1c.1 2.7.3 5.5.5 8.4h-2.1z\"\n />\n <path\n className=\"icon-supplier-prices_svg__st0\"\n d=\"M41.8 31.2c-2.3 0-4.1 1.9-4.1 4.2 0 2.3 1.9 4.1 4.2 4.1 2.3 0 4.1-1.9 4.1-4.2.1-2.2-1.8-4.1-4.2-4.1zm-.1 6c-1 0-1.8-.8-1.8-1.8 0-.9.8-1.7 1.8-1.7s1.8.8 1.8 1.7c0 1-.8 1.8-1.8 1.8z\"\n />\n </g>\n </svg>\n);\n\nexport default SvgIconSupplierPrices;\n","import React, { SVGProps } from 'react';\n\nconst SvgIconTableEdit = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M21.7 13.35L20.7 14.35L18.65 12.3L19.65 11.3C19.86 11.08 20.21 11.08 20.42 11.3L21.7 12.58C21.92 12.79 21.92 13.14 21.7 13.35ZM12 18.94L18.07 12.88L20.12 14.93L14.06 21H12V18.94ZM4 2H18C18.5304 2 19.0391 2.21071 19.4142 2.58579C19.7893 2.96086 20 3.46957 20 4V8.17L16.17 12H12V16.17L10.17 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V4C2 3.46957 2.21071 2.96086 2.58579 2.58579C2.96086 2.21071 3.46957 2 4 2ZM4 6V10H10V6H4ZM12 6V10H18V6H12ZM4 12V16H10V12H4Z\" />\n </svg>\n);\n\nexport default SvgIconTableEdit;\n","const SvgIconUserManagement = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 55 56.7\">\n <g>\n <g id=\"Layer_1\">\n <path d=\"M672.6,1136.6c-1.6,0-3,1.3-3,2.9s1.4,3,3,3,3-1.4,2.9-2.9c0-1.6-1.3-3-2.9-3h0Z\" />\n <path d=\"M683.4,1136.5c-1.7,0-3,1.4-3,3s1.4,3,3,3,3-1.4,3-3.1-1.4-2.9-3-2.9h0Z\" />\n <path d=\"M672.4,1130.2h.9v1.2c0,1.1.9,2,2,2h6.9c-1.6.3-3,1.3-4,2.7h-.5c-1.5-2.2-3.5-2.7-5.1-2.7s-2.3.3-3.3.9v-3.7h0c0,0,.2-.2.7-.3M687.2,1133.4v1.3c-.6-.5-1.2-.8-1.8-1.1h.3c.4,0,.7,0,1.2-.2.2,0,.3,0,.3,0M688,1118.3c-.7,0-1.3.5-1.4,1.1v12.1c-.4,0-.7,0-.9,0-.4,0-.5-.2-.8-.9-1.6-3.7-3.1-7.4-4.7-11.1-.2-.7-.8-1-1.6-1h-7.3c-1.1,0-1.6.3-1.6,1.6v8.1c-1.6.2-2.4,1-2.4,2.3v6.8c0,.2.2.7.5.7s.3,0,.5,0,.4,0,.6-.4c.8-1.6,2.1-2.4,3.8-2.4s2.9.8,3.7,2.3c0,.3.3.5.7.5h1.9c.5,0,.6-.2.8-.6.8-1.5,2.1-2.3,3.8-2.3s2.9.9,3.7,2.4c.5.9.5,1.8.2,3h5.4c.7,0,1.1-.6,1.1-1,0-.7-.3-1.1-.9-1.4-.2,0-.6,0-.8,0h-2.9v-18.7c-.3-.8-.7-1.2-1.4-1.2h0ZM672.4,1128.2v-7.2h5.5c0,0,.3,0,.3.3,1.4,3.3,2.9,6.6,4.2,9.9h0c-2.3,0-4.7,0-7.2,0v-2.3c0-.8,0-.9-.9-.9-.7,0-1.3,0-1.9,0h0Z\" />\n <path d=\"M29.3,26.7c1-1.3,1.5-3,1.5-4.6s-.5-3.3-1.5-4.6c.9-.6,2-.9,3.1-.9,1.5,0,2.9.6,3.9,1.6,1,1,1.6,2.5,1.6,3.9s-.6,2.9-1.6,3.9-2.5,1.6-3.9,1.6c-1.1,0-2.2-.3-3.1-.9ZM17.3,22.1c0-1.1.3-2.2.9-3.1.6-.9,1.5-1.6,2.5-2,1-.4,2.1-.5,3.2-.3,1.1.2,2.1.7,2.8,1.5.8.8,1.3,1.8,1.5,2.8.2,1.1.1,2.2-.3,3.2-.4,1-1.1,1.9-2,2.5-.9.6-2,.9-3.1.9s-2.9-.6-3.9-1.6-1.6-2.5-1.6-3.9ZM20.5,22.1c0,.5.1.9.4,1.3.3.4.6.7,1.1.9.4.2.9.2,1.4.1.5,0,.9-.3,1.2-.7.3-.3.6-.8.7-1.2,0-.5,0-.9-.1-1.4-.2-.4-.5-.8-.9-1.1-.4-.3-.9-.4-1.3-.4s-1.2.3-1.7.7c-.4.4-.7,1.1-.7,1.7ZM34,37.1v3.2H11.8v-3.2s0-6.3,11.1-6.3,11.1,6.3,11.1,6.3ZM30.8,37.1c-.2-1.2-2.1-3.2-7.9-3.2s-7.8,2.1-7.9,3.2M33.9,30.8c1,.8,1.8,1.7,2.3,2.8.6,1.1.9,2.3.9,3.5v3.2h6.3v-3.2s0-5.8-9.6-6.3h0Z\" />\n </g>\n </g>\n </svg>\n);\n\nexport default SvgIconUserManagement;\n","const SvgIconVkc = (props) => (\n <svg viewBox=\"0 0 55 56.7\" {...props}>\n <path\n className=\"icon-vkc_svg__st0\"\n d=\"M32.8 16.6h.9c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.4 1.4h-.9c-.8 0-1.4-.7-1.4-1.4s.6-1.4 1.4-1.4zM17.3 16.6h9.2c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.4 1.4h-9.2c-.8 0-1.4-.7-1.4-1.4s.6-1.4 1.4-1.4zM18.2 40.1h-.9c-.8 0-1.4-.7-1.4-1.4 0-.8.7-1.4 1.4-1.4h.9c.8 0 1.4.7 1.4 1.4s-.6 1.4-1.4 1.4zM26.5 40.1h-.9c-.8 0-1.4-.7-1.4-1.4 0-.8.7-1.4 1.4-1.4h.9c.8 0 1.4.7 1.4 1.4.1.7-.6 1.4-1.4 1.4zM38.6 39.7c-.3.3-.7.4-1 .4-.4 0-.8-.1-1-.4-.3-.3-.4-.7-.4-1 0-.4.1-.8.4-1 .5-.5 1.4-.5 2 0 .3.3.4.7.4 1 0 .3-.1.6-.4 1zM37.6 33.2H17.3c-.8 0-1.4-.7-1.4-1.4s.7-1.4 1.4-1.4h20.4c.8 0 1.4.7 1.4 1.4-.1.7-.7 1.4-1.5 1.4zM37.6 26.4H17.3c-.8 0-1.4-.7-1.4-1.4s.7-1.4 1.4-1.4h20.4c.8 0 1.4.7 1.4 1.4s-.7 1.4-1.5 1.4z\"\n />\n </svg>\n);\n\nexport default SvgIconVkc;\n","const SvgSamsaraLogo = (props) => (\n <svg viewBox=\"0 0 36 52.4\" {...props}>\n <path\n className=\"samsara_logo_svg__st0\"\n d=\"M27.2 17.6c-.4.9-1 1.6-1.8 2.2-.7.5-1.5.7-2.4.7-.4 0-.7-.3-.7-.6 0-.4.3-.7.6-.7.6 0 1.2-.2 1.7-.5.6-.4 1-.9 1.3-1.6.2-.4.1-.8-.1-1.2-.2-.4-.6-.6-1-.6-.9-.1-1.6.2-2.2.8-.9 1-1.3 2.7-1.5 3.4-.1.6-1.7 7.4-2.3 10.1-.1.4-.5.7-.9.7s-.8-.3-.9-.7l-.2-1c-.7-3.1-2-8.6-2.1-9.1-.2-.7-.5-2.4-1.5-3.4-.6-.6-1.3-.9-2.2-.8-.4 0-.8.2-1 .6-.2.4-.3.8-.1 1.2.3.7.7 1.2 1.3 1.6.5.3 1.1.5 1.7.5.4 0 .7.3.6.7 0 .4-.3.7-.7.6-.9 0-1.7-.3-2.4-.7-.8-.5-1.4-1.2-1.8-2.2-.3-.8-.3-1.7.2-2.5.4-.7 1.2-1.2 2.1-1.3 1.3-.1 2.4.3 3.2 1.2 1.2 1.2 1.7 3.2 1.8 4 .1.5 1.2 5.3 2 8.4.7-3.2 1.8-7.9 2-8.4.2-.8.6-2.8 1.8-4 .8-.9 2-1.3 3.2-1.2.8 0 1.6.5 2.1 1.3s.6 1.7.2 2.5M21.3 7c-.9 0-1.8.2-2.7.5-.4.1-.9.1-1.3 0-.8-.4-1.7-.5-2.6-.5-5.1 0-9.4 5.2-9.4 11.3 0 6.8 5.1 12.8 12.5 14.6h.5c7.4-1.8 12.5-7.8 12.5-14.6C30.7 12.1 26.4 7 21.3 7\"\n />\n <path\n className=\"samsara_logo_svg__st0\"\n d=\"M18.5 34.2c-.2 0-.4.1-.5.1-.2 0-.4 0-.5-.1-8-1.9-13.5-8.5-13.5-16C4 11.3 8.9 5.5 14.7 5.5c1 0 2.1.2 3.1.5h.4c1-.3 2.1-.5 3.1-.5 5.8 0 10.7 5.8 10.7 12.7 0 7.5-5.5 14.1-13.5 16zm12.8-1.8c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2 2.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-2.1c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7V40c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.3c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.3-6.4c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-2.1c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7V40c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.3c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm-4.2-6.4c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zm0 4.2c0 .4-.3.7-.7.7-.4 0-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7.4 0 .7.3.7.7v.9zM6 32.4c0 .3-.3.6-.6.6s-.7-.3-.7-.7v-.9c0-.4.3-.7.7-.7s.6.4.6.7v1zm0 4.2c0 .4-.3.7-.7.7s-.6-.3-.6-.7v-.9c0-.4.3-.7.7-.7s.6.3.6.7v.9zM18 2.2C8.9 2.2 1.5 9.7 1.5 18.9v14.5c0 9.2 7.4 16.7 16.5 16.7s16.5-7.5 16.5-16.7V18.9c0-9.2-7.4-16.7-16.5-16.7z\"\n />\n </svg>\n);\n\nexport default SvgSamsaraLogo;\n","import SvgBallsLogo from './BallsLogo';\nimport SvgEmptyGlassIcon from './EmptyGlassIcon';\nimport SvgIconAccount from './IconAccount';\nimport SvgIconAccounts from './IconAccounts';\nimport SvgIconAvocado from './IconAvocado';\nimport SvgIconBanana from './IconBanana';\nimport SvgIconBuying from './IconBuying';\nimport SvgIconContentManagement from './IconContentManagement';\nimport SvgIconGoodsin from './IconGoodsin';\nimport SvgIconGrape from './IconGrape';\nimport SvgIconHome from './IconHome';\nimport SvgIconImport from './IconImport';\nimport SvgIconLocation from './IconLocation';\nimport SvgIconLogin from './IconLogin';\nimport SvgIconNotification from './IconNotification';\nimport SvgIconOpsMetrics from './IconOpsMetrics';\nimport SvgIconOrders from './IconOrders';\nimport SvgIconPhone from './IconPhone';\nimport SvgIconPriceList from './IconPriceList';\nimport SvgIconProducts from './IconProducts';\nimport SvgIconPromoCode from './IconPromoCode';\nimport SvgIconQc from './IconQc';\nimport SvgIconReports from './IconReports';\nimport SvgIconRetail from './IconRetail';\nimport SvgIconRuns from './IconRuns';\nimport SvgIconScales from './IconScales';\nimport SvgIconSearchCategories from './IconSearchCategories';\nimport SvgIconSetting from './IconSetting';\nimport SvgIconSnail from './IconSnail';\nimport SvgIconSpecialPrice from './IconSpecialPrice';\nimport SvgIconStock from './IconStock';\nimport SvgIconStrawberry from './IconStrawberry';\nimport SvgIconSupplier from './IconSupplier';\nimport SvgIconSupplierPrices from './IconSupplierPrices';\nimport SvgIconTableEdit from './IconTableEdit';\nimport SvgIconUserManagement from './IconUserManagement';\nimport SvgIconVkc from './IconVkc';\nimport SvgSamsaraLogo from './SamsaraLogo';\n\nconst icons = {\n SvgSamsaraLogo,\n SvgIconHome,\n SvgIconNotification,\n SvgIconPhone,\n SvgIconAccount,\n SvgIconOrders,\n SvgIconPriceList,\n SvgIconSpecialPrice,\n SvgIconBuying,\n SvgIconContentManagement,\n SvgIconProducts,\n SvgIconStock,\n SvgIconSupplier,\n SvgIconSupplierPrices,\n SvgIconGoodsin,\n SvgIconVkc,\n SvgIconLocation,\n SvgIconScales,\n SvgIconQc,\n SvgIconRetail,\n SvgIconRuns,\n SvgIconAccounts,\n SvgIconReports,\n SvgIconSetting,\n SvgIconLogin,\n SvgBallsLogo,\n SvgIconAvocado,\n SvgIconBanana,\n SvgIconGrape,\n SvgIconStrawberry,\n SvgIconPromoCode,\n SvgIconOpsMetrics,\n SvgIconSearchCategories,\n SvgIconImport,\n SvgIconSnail,\n SvgEmptyGlassIcon,\n SvgIconUserManagement,\n SvgIconTableEdit,\n};\n\nexport default icons;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconAirplane = (props) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M20.56 3.90998C21.15 4.49998 21.15 5.44998 20.56 6.02998L16.67 9.91998L18.79 19.11L17.38 20.53L13.5 13.1L9.6 17L9.96 19.47L8.89 20.53L7.13 17.35L3.94 15.58L5 14.5L7.5 14.87L11.37 11L3.94 7.08998L5.36 5.67998L14.55 7.79998L18.44 3.90998C19 3.32998 20 3.32998 20.56 3.90998Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconAirplane;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBicycle = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 10C18.44 10 17.91 10.11 17.41 10.28L14.46 4.5H11V6H13.54L14.42 7.72L12 13.13L10.23 8.95C10.5 8.85 10.74 8.58 10.74 8.25C10.74 7.84 10.41 7.5 10 7.5H8C7.58 7.5 7.24 7.84 7.24 8.25C7.24 8.66 7.58 9 8 9H8.61L10.86 14.25H9.92C9.56 11.85 7.5 10 5 10C2.24 10 0 12.24 0 15C0 17.76 2.24 20 5 20C7.5 20 9.56 18.15 9.92 15.75H12.5L15.29 9.43L16.08 10.96C14.82 11.87 14 13.34 14 15C14 17.76 16.24 20 19 20C21.76 20 24 17.76 24 15C24 12.24 21.76 10 19 10ZM5 18.5C3.07 18.5 1.5 16.93 1.5 15C1.5 13.07 3.07 11.5 5 11.5C6.67 11.5 8.07 12.68 8.41 14.25H4V15.75H8.41C8.07 17.32 6.67 18.5 5 18.5ZM19 18.5C17.07 18.5 15.5 16.93 15.5 15C15.5 13.92 16 12.97 16.77 12.33L18.57 15.85L19.89 15.13L18.1 11.63C18.39 11.56 18.69 11.5 19 11.5C20.93 11.5 22.5 13.07 22.5 15C22.5 16.93 20.93 18.5 19 18.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconBicycle;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconBus = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 4C1.89 4 1 4.89 1 6V17H3C3 17.7956 3.31607 18.5587 3.87868 19.1213C4.44129 19.6839 5.20435 20 6 20C6.79565 20 7.55871 19.6839 8.12132 19.1213C8.68393 18.5587 9 17.7956 9 17H15C15 17.7956 15.3161 18.5587 15.8787 19.1213C16.4413 19.6839 17.2044 20 18 20C18.7956 20 19.5587 19.6839 20.1213 19.1213C20.6839 18.5587 21 17.7956 21 17H23V14C23 12.89 22.11 12 21 12H19V9.5H23V6C23 4.89 22.11 4 21 4H3ZM2.5 5.5H6.5V8H2.5V5.5ZM8 5.5H12V8H8V5.5ZM13.5 5.5H17.5V8H13.5V5.5ZM19 5.5H21.5V8H19V5.5ZM13.5 9.5H17.5V12H13.5V9.5ZM2.5 9.5H6.5V12H2.5V9.5ZM8 9.5H12V12H8V9.5ZM6 15.5C6.39782 15.5 6.77936 15.658 7.06066 15.9393C7.34196 16.2206 7.5 16.6022 7.5 17C7.5 17.3978 7.34196 17.7794 7.06066 18.0607C6.77936 18.342 6.39782 18.5 6 18.5C5.60218 18.5 5.22064 18.342 4.93934 18.0607C4.65804 17.7794 4.5 17.3978 4.5 17C4.5 16.6022 4.65804 16.2206 4.93934 15.9393C5.22064 15.658 5.60218 15.5 6 15.5ZM18 15.5C18.3978 15.5 18.7794 15.658 19.0607 15.9393C19.342 16.2206 19.5 16.6022 19.5 17C19.5 17.3978 19.342 17.7794 19.0607 18.0607C18.7794 18.342 18.3978 18.5 18 18.5C17.6022 18.5 17.2206 18.342 16.9393 18.0607C16.658 17.7794 16.5 17.3978 16.5 17C16.5 16.6022 16.658 16.2206 16.9393 15.9393C17.2206 15.658 17.6022 15.5 18 15.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconBus;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconCar = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 6H16L19 10H21C22.11 10 23 10.89 23 12V15H21C21 15.7956 20.6839 16.5587 20.1213 17.1213C19.5587 17.6839 18.7956 18 18 18C17.2044 18 16.4413 17.6839 15.8787 17.1213C15.3161 16.5587 15 15.7956 15 15H9C9 15.7956 8.68393 16.5587 8.12132 17.1213C7.55871 17.6839 6.79565 18 6 18C5.20435 18 4.44129 17.6839 3.87868 17.1213C3.31607 16.5587 3 15.7956 3 15H1V8C1 6.89 1.89 6 3 6ZM2.5 7.5V10H10.5V7.5H2.5ZM12 7.5V10H17.14L15.25 7.5H12ZM6 13.5C5.60218 13.5 5.22064 13.658 4.93934 13.9393C4.65804 14.2206 4.5 14.6022 4.5 15C4.5 15.3978 4.65804 15.7794 4.93934 16.0607C5.22064 16.342 5.60218 16.5 6 16.5C6.39782 16.5 6.77936 16.342 7.06066 16.0607C7.34196 15.7794 7.5 15.3978 7.5 15C7.5 14.6022 7.34196 14.2206 7.06066 13.9393C6.77936 13.658 6.39782 13.5 6 13.5ZM18 13.5C17.6022 13.5 17.2206 13.658 16.9393 13.9393C16.658 14.2206 16.5 14.6022 16.5 15C16.5 15.3978 16.658 15.7794 16.9393 16.0607C17.2206 16.342 17.6022 16.5 18 16.5C18.3978 16.5 18.7794 16.342 19.0607 16.0607C19.342 15.7794 19.5 15.3978 19.5 15C19.5 14.6022 19.342 14.2206 19.0607 13.9393C18.7794 13.658 18.3978 13.5 18 13.5Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconCar;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconFork = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.17501 19.235L0.765015 17.825L10.415 8.16502L10.215 7.94501C9.43501 7.17501 9.43501 5.91501 10.215 5.13501L14.555 0.765015L15.485 1.68501L12.245 4.94501L13.205 5.88501L16.445 2.63501L17.365 3.55501L14.115 6.79502L15.055 7.75502L18.315 4.50501L19.235 5.44501L14.865 9.78502C14.085 10.565 12.825 10.565 12.055 9.78502L11.835 9.58502L2.17501 19.235Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconFork;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconHeart = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 19.175L8.55 17.855C3.4 13.185 0 10.095 0 6.32501C0 3.23501 2.42 0.825012 5.5 0.825012C7.24 0.825012 8.91 1.63501 10 2.90501C11.09 1.63501 12.76 0.825012 14.5 0.825012C17.58 0.825012 20 3.23501 20 6.32501C20 10.095 16.6 13.185 11.45 17.855L10 19.175Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconHeart;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconKnife = (props) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M18.6191 0C21.9691 5.61 10.4691 18.15 10.4691 18.15L7.5991 15.28L2.9091 20L0.769104 17.86L18.6191 0Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconKnife;\n","import { colors } from '@/resources/styles/colors';\n\nconst SvgIconSpoon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.093 9.31795L2.33303 19.0779L0.923035 17.6679L10.683 7.90795C9.97303 6.37795 10.473 4.22795 12.063 2.63795C13.973 0.717946 16.713 0.357947 18.173 1.81795C19.643 3.28795 19.283 6.02795 17.363 7.93795C15.773 9.52795 13.623 10.0279 12.093 9.31795Z\"\n fill={colors.neutral800}\n />\n </svg>\n);\n\nexport default SvgIconSpoon;\n","const BulkIcon = (props) => (\n <svg\n height={24}\n viewBox=\"0 0 24 24\"\n width={24}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4 3h14a2 2 0 012 2v7.08a6.01 6.01 0 00-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 01-2-2V5c0-1.1.9-2 2-2zm0 4v4h6V7H4zm8 0v4h6V7h-6zm-8 6v4h6v-4H4zM18 19h-2l3 3 3-3h-2v-4h-2v4z\" />\n </svg>\n);\n\nexport default BulkIcon;\n","import { memo } from 'react';\n\nimport { Pin } from 'mdi-material-ui';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n opacity: 0.5,\n },\n selected: {\n opacity: 0.75,\n },\n}));\n\nconst PinButton = () => {\n const { classes } = useStyles();\n\n return <Pin className={classes.root} />;\n};\n\nexport default memo(PinButton);\n","import { Fab, Icon } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(1),\n },\n },\n extendedIcon: {\n marginRight: theme.spacing(1),\n },\n}));\n\ninterface ActionButtonProps {\n app?: any;\n}\n\nexport default function ActionButton(props: ActionButtonProps) {\n const { app } = props;\n const { classes } = useStyles();\n\n return (\n <div className={classes.root}>\n <Fab color=\"primary\" aria-label=\"add\">\n <Icon>{app.icon}</Icon>\n </Fab>\n </div>\n );\n}\n","import { FC } from 'react';\n\nimport {\n Box,\n Button,\n Checkbox,\n Divider,\n FormControlLabel,\n Skeleton,\n Typography,\n} from '@mui/material';\n\nimport ExtendedButton from '../Buttons/ExtendedButton/ExtendedButton';\nimport { FilterOptionsCheckboxes } from '../FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type CheckboxFilterMenuContentProps = {\n columnId: string;\n labelFieldName: string;\n isLoading?: boolean;\n selectedFilterOptions: HeaderFilterOptions;\n filterOptions: HeaderFilterOptions;\n maxHeight?: number;\n width?: number;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n onSelectAllChange: (checked: boolean) => void;\n onFilterOptionChange: (option: string | HeaderFilterObject) => void;\n onApplyFiltersClick: (shouldSave: boolean) => void;\n};\n\nexport const CheckboxFilterMenuContent: FC<CheckboxFilterMenuContentProps> = ({\n columnId,\n labelFieldName,\n isLoading = false,\n selectedFilterOptions,\n filterOptions,\n maxHeight = 500,\n width = 276,\n shouldShowCheckOnFilter,\n onSelectAllChange,\n onFilterOptionChange,\n onApplyFiltersClick,\n}) => {\n const renderLoading = () => (\n <Box sx={{ width }}>\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Divider />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n <Divider />\n <Skeleton variant=\"rounded\" height={24} sx={{ m: 1 }} />\n </Box>\n );\n\n const renderContent = () => (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <Box sx={{ px: 2, pt: 1 }}>\n <FormControlLabel\n label=\"Select All\"\n control={\n <Checkbox\n disableRipple\n checked={selectedFilterOptions.length === filterOptions?.length}\n indeterminate={\n selectedFilterOptions.length > 0 &&\n selectedFilterOptions.length < filterOptions?.length\n }\n onChange={({ target: { checked } }) => {\n onSelectAllChange(checked);\n }}\n />\n }\n />\n </Box>\n\n <Divider sx={{ my: 0.5 }} />\n\n <Box\n sx={{\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n <Box\n sx={{\n pl: 0.5,\n pr: 2,\n maxHeight,\n }}\n >\n {filterOptions?.length ? (\n <FilterOptionsCheckboxes\n columnId={columnId}\n labelFieldName={labelFieldName}\n filterOptions={filterOptions}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={onFilterOptionChange}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n sx={{ py: 1, px: 2 }}\n >\n No options available.\n </Typography>\n )}\n </Box>\n </Box>\n\n <Divider sx={{ mt: 0.5 }} />\n\n <Box\n sx={{\n px: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n onClick={() => onApplyFiltersClick(false)}\n sx={{\n px: 1,\n minWidth: 'min-content',\n }}\n >\n APPLY\n </Button>\n\n <ExtendedButton\n copy=\"SAVE AS DEFAULT\"\n color=\"primary\"\n buttonType=\"submit\"\n onClick={() => onApplyFiltersClick(true)}\n tooltip=\"Persists those filters for future visits\"\n />\n </Box>\n </Box>\n );\n\n if (isLoading) {\n return renderLoading();\n }\n\n return renderContent();\n};\n","import { FC } from 'react';\n\nimport {\n Box,\n Alert,\n AlertTitle,\n RadioGroup,\n FormControlLabel,\n Radio,\n Typography,\n} from '@mui/material';\n\nimport ConfirmationDialog from '../ConfirmationDialog/ConfirmationDialog';\n\nexport type ClearFiltersConfirmationDialogProps = {\n isOpen: boolean;\n clearFiltersMode: 'unsaved' | 'saved';\n hasAnyUnsavedFilters: boolean;\n onClose: () => void;\n onConfirm: () => void;\n onChangeClearFiltersMode: (mode: 'unsaved' | 'saved') => void;\n};\n\nexport const ClearFiltersConfirmationDialog: FC<\n ClearFiltersConfirmationDialogProps\n> = ({\n isOpen,\n clearFiltersMode,\n hasAnyUnsavedFilters,\n onClose,\n onConfirm,\n onChangeClearFiltersMode,\n}) => {\n return (\n <ConfirmationDialog\n title=\"Clear Filters\"\n isOpen={isOpen}\n closeModal={onClose}\n onConfirm={onConfirm}\n content={\n <Box sx={{ gap: 2, display: 'flex', flexDirection: 'column' }}>\n <Alert severity=\"warning\">\n <AlertTitle>\n Do you want to clear all filters or only the ones you&apos;ve\n recently applied?\n </AlertTitle>\n\n {clearFiltersMode === 'unsaved'\n ? 'Only recently applied filters will be cleared. Your saved filters will remain.'\n : \"This will remove all filters, including any you've previously saved.\"}\n </Alert>\n\n <RadioGroup\n row\n value={clearFiltersMode}\n onChange={({ target: { value } }) =>\n onChangeClearFiltersMode(value as 'unsaved' | 'saved')\n }\n >\n <FormControlLabel\n value=\"unsaved\"\n label=\"Only clear unsaved filters\"\n control={<Radio />}\n disabled={!hasAnyUnsavedFilters}\n />\n\n <FormControlLabel\n value=\"saved\"\n label=\"Clear all filters (including saved filters)\"\n control={<Radio />}\n />\n </RadioGroup>\n\n <Typography variant=\"body1\" sx={{ pb: 2 }}>\n Please confirm if you wish to proceed.\n </Typography>\n </Box>\n }\n />\n );\n};\n","import * as React from 'react';\n\nimport { Box, Dialog, DialogActions, Divider, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButton from '@/components/Buttons/FilledButton/FilledButton';\n\nconst useStyles = makeStyles()((theme) => ({\n content: {\n width: '660px',\n },\n title: {\n paddingInline: theme.spacing(3),\n paddingTop: theme.spacing(4),\n marginBottom: theme.spacing(3),\n },\n button: {\n margin: 0,\n },\n footer: {\n padding: theme.spacing(3),\n justifyContent: 'center',\n gap: theme.spacing(3),\n },\n}));\n\ninterface ConfirmationDialogProps {\n ctaText?: string;\n hideCancel?: boolean;\n isLoading?: boolean;\n hideConfirm?: boolean;\n closeModal: () => void;\n content: string | string[] | React.JSX.Element;\n cancelCopy?: string;\n isOpen: boolean;\n onConfirm?: () => void;\n title: string;\n disableContentPadding?: boolean;\n}\n\nconst ConfirmationDialog = ({\n ctaText,\n hideCancel,\n isLoading,\n hideConfirm,\n closeModal,\n content,\n cancelCopy,\n isOpen,\n onConfirm,\n title,\n disableContentPadding,\n}: ConfirmationDialogProps) => {\n const { classes } = useStyles();\n\n const handleConfirm = () => {\n onConfirm?.();\n };\n\n const contentComponent = () => {\n if (typeof content === 'string') {\n return <Typography variant=\"body1\">{content}</Typography>;\n }\n\n return content;\n };\n\n return (\n <Dialog onClose={closeModal} open={isOpen} maxWidth=\"lg\">\n <Box className={classes.content}>\n <Typography className={classes.title} variant=\"h6\">\n {title}\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n paddingInline: disableContentPadding ? '' : '24px',\n }}\n >\n {contentComponent()}\n </Box>\n </Box>\n\n <Divider />\n\n <DialogActions className={classes.footer}>\n {!hideCancel && (\n <FilledButton\n className={classes.button}\n color=\"default\"\n copy={cancelCopy || 'Cancel'}\n disabled={isLoading}\n onClick={closeModal}\n />\n )}\n\n {!hideConfirm && (\n <FilledButton\n className={classes.button}\n color=\"primary\"\n copy={ctaText || 'Confirm'}\n disabled={isLoading}\n onClick={handleConfirm}\n />\n )}\n </DialogActions>\n </Dialog>\n );\n};\n\nConfirmationDialog.defaultProps = {\n ctaText: '',\n hideCancel: false,\n hideConfirm: false,\n cancelCopy: 'Cancel',\n isLoading: false,\n};\n\nexport default ConfirmationDialog;\n","import { makeStyles } from 'tss-react/mui';\n\ninterface ICompanyLogo {\n size: 'small' | 'medium';\n color: 'light' | 'dark';\n imageLogoDarkSmall: string;\n imageLogoLightSmall: string;\n}\n\nconst useStyles = makeStyles<\n Pick<ICompanyLogo, 'imageLogoDarkSmall' | 'imageLogoLightSmall'>\n>()((theme, { imageLogoDarkSmall, imageLogoLightSmall }) => ({\n logoSmall: {\n height: 46,\n width: 112,\n },\n logoMedium: {\n height: 72,\n width: 160,\n },\n logoDark: {\n backgroundImage: `url(${imageLogoDarkSmall})`,\n },\n logoLight: {\n backgroundImage: `url(${imageLogoLightSmall})`,\n },\n}));\n\nconst CompanyLogo = ({\n size,\n color,\n imageLogoDarkSmall,\n imageLogoLightSmall,\n}: ICompanyLogo) => {\n const { classes, cx } = useStyles({\n imageLogoDarkSmall,\n imageLogoLightSmall,\n });\n const className = cx({\n [classes.logoSmall]: size === 'small',\n [classes.logoMedium]: size === 'medium',\n [classes.logoLight]: color === 'light',\n [classes.logoDark]: color === 'dark',\n });\n return <div className={className} />;\n};\n\nexport default CompanyLogo;\n","import * as React from 'react';\nimport { Control, Controller, ControllerRenderProps } from 'react-hook-form';\n\nimport { Checkbox, FormControlLabel, Tooltip } from '@mui/material';\n\nexport interface ControlledCheckboxProps {\n name: string;\n label: string;\n id: string;\n control: Control<any, any>;\n className?: string;\n tooltipDescription?: string;\n 'data-testid'?: string;\n color?: 'primary' | 'secondary' | 'default';\n handleChange: (\n // eslint-disable-next-line no-unused-vars\n checked: boolean,\n // eslint-disable-next-line no-unused-vars\n field: ControllerRenderProps<any, string>,\n ) => void;\n disabled?: boolean;\n}\n\nconst ControlledCheckbox: React.FC<ControlledCheckboxProps> = ({\n name,\n label,\n id,\n control,\n className,\n tooltipDescription,\n 'data-testid': dataTestId,\n color,\n handleChange,\n disabled,\n}) => (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const checkbox = (\n <FormControlLabel\n label={label}\n className={className}\n control={\n <Checkbox\n {...field}\n id={id}\n data-testid={dataTestId ?? `${id.replace(/_/g, '-')}-checkbox`}\n color={color}\n checked={!!field.value}\n onChange={({ target: { checked } }) =>\n handleChange(checked, field)\n }\n disabled={disabled}\n />\n }\n />\n );\n\n return tooltipDescription ? (\n <Tooltip title={tooltipDescription}>\n <span>{checkbox}</span>\n </Tooltip>\n ) : (\n checkbox\n );\n }}\n />\n);\n\nexport default ControlledCheckbox;\n","import { Control, Controller } from 'react-hook-form';\n\nimport { TextField } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledNumberInputProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * mininum number allowed\n * */\n min?: number;\n /**\n * maximum number allowed\n * */\n max?: number;\n /**\n * step to change the number\n * */\n step?: number;\n /**\n * optional error message\n * */\n error?: string;\n /**\n * should shrink the label name\n * */\n shrink?: boolean;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n}\n\nconst ControlledNumberInput = ({\n name,\n control,\n label,\n min = 0,\n max,\n step = 1,\n error,\n shrink = false,\n className,\n}: ControlledNumberInputProps) => {\n const { classes } = useStyles();\n\n const blockInvalidChar = (input) =>\n ![\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'Backspace',\n 'Tab',\n ].includes(input.key) && input.preventDefault();\n\n return (\n <Controller\n control={control}\n name={name}\n render={({ field: { onChange, value }, fieldState }) => (\n <TextField\n variant=\"standard\"\n className={className || classes.selectInput}\n type=\"text\"\n label={label}\n value={value}\n error={!!fieldState.error}\n onKeyDown={blockInvalidChar}\n helperText={fieldState.error?.message || error}\n onChange={(e) => {\n const inputValue = Number(e.target.value);\n if (max === undefined || inputValue <= max) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: { step, min, max },\n inputLabel: {\n shrink,\n },\n }}\n />\n )}\n />\n );\n};\n\nexport default ControlledNumberInput;\n","import { useMemo } from 'react';\nimport * as React from 'react';\nimport {\n Control,\n Controller,\n ControllerFieldState,\n ControllerRenderProps,\n} from 'react-hook-form';\n\nimport {\n KeyboardArrowDown as KeyboardArrowDownIcon,\n KeyboardArrowUp as KeyboardArrowUpIcon,\n} from '@mui/icons-material';\nimport {\n Box,\n IconButton,\n InputAdornment,\n TextField,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst convertUnderscoreToHyphen = (str: string) => str.replace(/_/g, '-');\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n textFieldButtons: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginBottom: theme.spacing(0.5),\n },\n arrowButton: {\n padding: theme.spacing(0),\n },\n}));\n\ninterface ControlledNumericFieldProps {\n control: Control<any>;\n label: string;\n min?: number;\n max?: number;\n step?: number;\n fullWidth?: boolean;\n margin?: 'dense' | 'normal' | 'none';\n helperText?: string;\n variant?: 'standard' | 'outlined' | 'filled';\n onChange?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n ) => void;\n onArrowClick?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n ) => void;\n onBlur?: (\n field: ControllerRenderProps<any, string>,\n value: number | string,\n fieldState: ControllerFieldState,\n ) => void;\n className?: string;\n fieldName: string;\n 'data-testid'?: string;\n}\n\nconst ControlledNumericField: React.FC<ControlledNumericFieldProps> = ({\n control,\n label,\n min,\n max,\n step = 1,\n fullWidth = false,\n margin,\n helperText,\n variant = 'standard',\n onChange,\n onArrowClick,\n onBlur,\n className,\n 'data-testid': dataTestId,\n fieldName,\n}) => {\n const { classes } = useStyles();\n\n const isLowerThanMinimum = (value: number) =>\n min !== undefined && min > value;\n const isGreaterThanMaximum = (value: number) =>\n max !== undefined && max < value;\n\n const handleChange = (\n field: ControllerRenderProps<any, string>,\n value: number,\n ) => {\n if (onChange) {\n onChange(field, value);\n } else {\n field.onChange(value);\n }\n };\n\n const handleOnArrowClick = (\n field: ControllerRenderProps<any, string>,\n value: number,\n ) => {\n if (onArrowClick) {\n onArrowClick(field, value);\n } else {\n field.onChange(value);\n }\n };\n\n const handleBlur = (\n field: ControllerRenderProps<any, string>,\n value: number,\n fieldState: ControllerFieldState,\n ) => {\n if (onBlur) {\n onBlur(field, value, fieldState);\n }\n };\n\n const incrementValue = (field: ControllerRenderProps<any, string>) => () => {\n const isNumber = /^\\d$/.test(field.value);\n\n if (!isNumber && !field.value) {\n handleOnArrowClick(field, min ?? 0);\n return;\n }\n\n let numericValue = parseInt(field.value);\n numericValue += step;\n\n if (isGreaterThanMaximum(numericValue)) return;\n\n handleOnArrowClick(field, numericValue);\n };\n\n const decrementValue = (field: ControllerRenderProps<any, string>) => () => {\n const isNumber = /^\\d$/.test(field.value);\n\n if (!isNumber && !field.value) {\n handleOnArrowClick(field, min ?? 0);\n return;\n }\n\n let numericValue = parseInt(field.value);\n numericValue -= step;\n\n if (isLowerThanMinimum(numericValue)) return;\n\n handleOnArrowClick(field, numericValue);\n };\n\n const allowedKeys = useMemo(\n () => [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n ...(min === undefined || min < 0 || max === undefined || max < 0\n ? ['-']\n : []),\n ],\n [min, max],\n );\n\n const handleKeyDown =\n (field: ControllerRenderProps<any, string>) =>\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const isNumber = /^\\d$/.test(e.key);\n\n if (!isNumber && !allowedKeys.includes(e.key)) {\n e.preventDefault();\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n incrementValue(field)();\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n decrementValue(field)();\n }\n };\n\n return (\n <Box\n className={className}\n data-testid={dataTestId || `${convertUnderscoreToHyphen(fieldName)}`}\n >\n <Controller\n control={control}\n name={fieldName}\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n type=\"text\"\n value={field?.value ?? ''}\n fullWidth={fullWidth}\n variant={variant}\n label={label}\n autoComplete=\"off\"\n onKeyDown={handleKeyDown(field)}\n error={!!fieldState.error}\n margin={margin}\n helperText={fieldState?.error?.message || helperText}\n onBlur={({ target: { value } }) => {\n const numericValue = parseInt(value);\n\n if (\n isLowerThanMinimum(numericValue) ||\n isGreaterThanMaximum(numericValue)\n ) {\n return;\n }\n\n handleBlur(field, numericValue, fieldState);\n }}\n onChange={({ target: { value } }) => {\n if (value === '' || value === '-') {\n field.onChange(value);\n return;\n }\n\n const numericValue = parseInt(value);\n\n if (\n isLowerThanMinimum(numericValue) ||\n isGreaterThanMaximum(numericValue)\n ) {\n return;\n }\n\n handleChange(field, numericValue);\n }}\n slotProps={{\n htmlInput: { min, max, step },\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box className={classes.textFieldButtons}>\n <IconButton\n disableRipple\n className={classes.arrowButton}\n onClick={incrementValue(field)}\n data-testid=\"arrow-up\"\n >\n <KeyboardArrowUpIcon sx={{ fontSize: 15 }} />\n </IconButton>\n <IconButton\n disableRipple\n className={classes.arrowButton}\n onClick={decrementValue(field)}\n data-testid=\"arrow-down\"\n >\n <KeyboardArrowDownIcon sx={{ fontSize: 15 }} />\n </IconButton>\n </Box>\n </InputAdornment>\n ),\n },\n }}\n />\n )}\n />\n </Box>\n );\n};\n\nexport default ControlledNumericField;\n","import { Control, Controller, UseFormTrigger } from 'react-hook-form';\n\nimport { FormControl, FormHelperText, InputLabel, Select } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledSelectWithArrayProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * options to be rendered in the dropbown\n * */\n options?: (string | number)[];\n /**\n * optional error message\n * */\n error?: string;\n /**\n * optional onChange event\n * */\n onChange?: (value: any) => void;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n /**\n * opcional function to revalidate the form when changing the dropdown value ( trigger function )\n * */\n revalidateFormFunction?: UseFormTrigger<any>;\n}\n\nconst ControlledSelectWithArray = ({\n name,\n control,\n label,\n options,\n error,\n onChange,\n className,\n revalidateFormFunction,\n}: ControlledSelectWithArrayProps) => {\n const { classes } = useStyles();\n return (\n <Controller\n control={control}\n name={name}\n render={({\n field: { onChange: fieldOnChange, ...field },\n fieldState,\n }) => (\n <FormControl\n className={className || classes.selectInput}\n variant=\"standard\"\n >\n <InputLabel shrink error={!!fieldState.error}>\n {label}\n </InputLabel>\n <Select\n variant=\"standard\"\n native\n {...field}\n value={field.value ?? ''}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (onChange) {\n onChange(selectedValue);\n }\n fieldOnChange(e);\n if (revalidateFormFunction) {\n revalidateFormFunction();\n }\n }}\n error={!!fieldState.error}\n >\n <option aria-label=\"None\" />\n {options?.map((item) => (\n <option key={item} value={item}>\n {item}\n </option>\n ))}\n </Select>\n <FormHelperText error={!!fieldState.error}>\n {fieldState.error?.message || error}\n </FormHelperText>\n </FormControl>\n )}\n />\n );\n};\n\nexport default ControlledSelectWithArray;\n","import { Control, Controller, UseFormTrigger } from 'react-hook-form';\n\nimport { FormControl, FormHelperText, InputLabel, Select } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n selectInput: {\n minWidth: 122,\n },\n}));\n\ninterface ControlledSelectWithObjectProps {\n /**\n * control from react-hook-form\n * */\n control: Control<any>;\n /**\n * name in the form data\n * */\n name: string;\n /**\n * label name to be shown in the component\n * */\n label: string;\n /**\n * options to be rendered in the dropbown\n * */\n options?: { value: string | number; label: string }[];\n /**\n * optional error message\n * */\n error?: string;\n /**\n * optional onChange event\n * */\n onChange?: (value: any) => void;\n /**\n * opcional className to customize the component\n * */\n className?: string;\n /**\n * opcional boolean to disable the dropdown option (based on the options.value)\n * */\n listToDisableFromOptions?: Array<any>;\n /**\n * opcional function to revalidate the form when changing the dropdown value ( trigger function )\n * */\n revalidateFormFunction?: UseFormTrigger<any>;\n}\n\nconst ControlledSelectWithObject = ({\n name,\n control,\n label,\n options,\n error,\n onChange,\n className,\n listToDisableFromOptions = [],\n revalidateFormFunction,\n}: ControlledSelectWithObjectProps) => {\n const { classes } = useStyles();\n return (\n <Controller\n control={control}\n name={name}\n render={({\n field: { onChange: fieldOnChange, ...field },\n fieldState,\n }) => (\n <FormControl\n className={className || classes.selectInput}\n variant=\"standard\"\n >\n <InputLabel error={!!fieldState.error}>{label}</InputLabel>\n <Select\n variant=\"standard\"\n native\n {...field}\n value={field.value ?? ''}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (onChange) {\n onChange(selectedValue);\n }\n fieldOnChange(e);\n if (revalidateFormFunction) {\n revalidateFormFunction();\n }\n }}\n error={!!fieldState.error}\n >\n <option aria-label=\"None\" />\n {options?.map((option) => (\n <option\n disabled={\n listToDisableFromOptions\n ? listToDisableFromOptions.includes(option.value)\n : false\n }\n key={option.value}\n value={option.value}\n >\n {option.label}\n </option>\n ))}\n </Select>\n <FormHelperText error={!!fieldState.error}>\n {fieldState.error?.message || error}\n </FormHelperText>\n </FormControl>\n )}\n />\n );\n};\n\nexport default ControlledSelectWithObject;\n","import { useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { Paper, Skeleton } from '@mui/material';\nimport { DataGrid as MUIDataGrid } from '@mui/x-data-grid';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n justifyContent: 'space-between',\n display: 'flex',\n justifyItems: 'stretch',\n maxHeight: 'calc(100vh - 245px)',\n },\n paper: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n '& .MuiDataGrid-row': {\n backgroundColor: colors.neutral100,\n },\n '& .MuiDataGrid-row.Mui-odd:not(:hover)': {\n backgroundColor: colors.neutral100,\n },\n '& .MuiDataGrid-columnHeaderTitle': {\n fontWeight: 600,\n fontSize: '.875rem',\n },\n '& .MuiDataGrid-iconSeparator': {\n display: 'none',\n },\n },\n}));\n\ninterface DataGridProps {\n isLoading?: boolean;\n children?: React.ReactElement;\n height: string;\n sortField?: string;\n sortDir?: string;\n columns: any;\n rows: any;\n handleCellEdition?: any;\n}\n\nconst DataGrid = ({\n columns,\n rows,\n handleCellEdition,\n sortField,\n sortDir,\n isLoading,\n height,\n children,\n}: DataGridProps) => {\n const { classes } = useStyles();\n const [sortModel, setSortModel] = useState([\n {\n field: sortField || 'id',\n sort: sortDir || 'desc',\n },\n ]);\n\n const rowHeight = 56;\n const headerAndFooterHeight = 52 + 56;\n\n return (\n <div\n className={classes.root}\n style={{\n height: height || rows.length * rowHeight + headerAndFooterHeight,\n }}\n >\n <Paper className={classes.paper}>\n {isLoading ? (\n <div>\n {[...Array(Math.floor(10))].map((i) => (\n <Skeleton\n animation=\"pulse\"\n style={{ margin: '8px', opacity: 0.4 }}\n variant=\"rectangular\"\n height={rowHeight}\n key={i}\n />\n ))}\n </div>\n ) : (\n <>\n <MUIDataGrid\n rows={rows}\n columns={columns}\n // onCellEditCommit={handleCellEdition as any}\n loading={isLoading}\n sortModel={sortModel as any}\n onSortModelChange={(model) => setSortModel(model as any)}\n />\n {children}\n </>\n )}\n </Paper>\n </div>\n );\n};\n\nexport default DataGrid;\n","import moment from 'moment';\n\nimport constants from '@/config/constants';\n\nimport 'moment/dist/locale/en-gb';\nimport 'moment/dist/locale/fr';\n\nconst localizedMoment = moment;\nlocalizedMoment.locale(constants.locale);\n\nexport default localizedMoment;\n","import { grey } from '@mui/material/colors';\nimport { createTheme } from '@mui/material/styles';\n\nimport { colors, isDarkModeEnabled } from '../colors';\n\nconst defaultTheme = createTheme({\n typography: {\n fontFamily: 'ProximaNova, Arial',\n },\n palette: {\n mode: isDarkModeEnabled ? 'dark' : 'light',\n default: {\n main: colors.neutral800,\n background: colors.neutral100,\n },\n primary: {\n main: colors.muiPrimary,\n alternate: colors.muiPrimaryAlternate,\n light: grey['100'],\n contrastText: grey['50'],\n },\n secondary: {\n main: colors.muiSecondary,\n alternate: colors.muiSecondaryAlternate,\n dark: grey['900'],\n light: grey['50'],\n },\n success: {\n main: colors.muiSuccess,\n alternate: colors.muiSuccessAlternate,\n },\n },\n components: {\n MuiPickersDay: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n color: colors.black,\n backgroundColor: `${colors.muiPrimary} !important`,\n '&:hover': {\n backgroundColor: `${colors.muiPrimaryHover} !important`,\n },\n },\n },\n },\n },\n MuiListItem: {\n styleOverrides: {\n root: {\n cursor: 'pointer',\n transition: 'background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n '&:hover': {\n backgroundColor: isDarkModeEnabled\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.04)',\n },\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n cursor: 'pointer',\n transition: 'background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n '&:hover': {\n backgroundColor: isDarkModeEnabled\n ? 'rgba(255, 255, 255, 0.08)'\n : 'rgba(0, 0, 0, 0.04)',\n },\n },\n },\n },\n },\n});\n\nexport default defaultTheme;\n","import defaultTheme from '@/resources/styles/themes/default';\n\nexport const WIDTH_TO_SHRINK = defaultTheme.breakpoints.values.md;\n\nconst constants = {\n locale: process.env.REACT_APP_LOCALE,\n};\n\nexport default constants;\n","import * as React from 'react';\n\nimport moment from '@/lib/moment';\n\ninterface DateProps {\n datetime: string | Date;\n format?: string;\n}\n\nconst Date: React.FC<DateProps> = ({ datetime, format = 'L' }) => {\n const formattedDate = moment(datetime).format(format);\n return <span>{formattedDate === 'Invalid date' ? '-' : formattedDate}</span>;\n};\n\nexport default Date;\n","import { memo } from 'react';\n\nimport { Alert, AlertTitle, Typography, Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n alert: { marginBottom: 16 },\n bottomBar: {\n marginTop: '12px',\n display: 'flex',\n justifyContent: 'center',\n borderTop: `1px solid ${colors.neutral400}`,\n padding: '12px 0px 0px',\n gap: '12px',\n },\n}));\n\ninterface IDeleteSubstitutionDialogContent {\n closeDialog: () => void;\n deleteSubstitution: () => void;\n substitutionName: string;\n}\n\nconst DeleteSubstitutionDialogContent = ({\n closeDialog,\n substitutionName,\n deleteSubstitution,\n}: IDeleteSubstitutionDialogContent) => {\n const { classes } = useStyles();\n\n return (\n <>\n <Alert severity=\"warning\" className={classes.alert}>\n <AlertTitle>\n Are you sure you want to delete the substitution “{substitutionName}”?\n </AlertTitle>\n This action will permanently remove all data and history associated with\n this substitution, and it cannot be undone.\n </Alert>\n <Typography variant=\"body1\">\n Please confirm if you wish to proceed.\n </Typography>\n <Box className={classes.bottomBar}>\n <ExtendedButton copy=\"Cancel\" onClick={closeDialog} />\n <ExtendedButton\n copy=\"Confirm\"\n color=\"primary\"\n buttonType=\"button\"\n onClick={deleteSubstitution}\n />\n </Box>\n </>\n );\n};\n\nexport default memo(DeleteSubstitutionDialogContent);\n","import { memo } from 'react';\n\nimport { Alert, AlertTitle, Typography, Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n alert: { marginBottom: 16 },\n bottomBar: {\n marginTop: '12px',\n display: 'flex',\n justifyContent: 'center',\n borderTop: `1px solid ${colors.neutral400}`,\n padding: '12px 0px 0px',\n gap: '12px',\n },\n}));\n\ninterface IDeleteUserDialogContent {\n closeDialog: () => void;\n deleteUser: () => void;\n userName: string;\n}\n\nconst DeleteUserDialogContent = ({\n closeDialog,\n userName,\n deleteUser,\n}: IDeleteUserDialogContent) => {\n const { classes } = useStyles();\n\n return (\n <>\n <Alert severity=\"warning\" className={classes.alert}>\n <AlertTitle>\n Are you sure you want to delete the user {userName}?\n </AlertTitle>\n This action will permanently remove all data and history associated with\n this user, and it cannot be undone.\n </Alert>\n <Typography variant=\"body1\">\n Please confirm if you wish to proceed.\n </Typography>\n <Box className={classes.bottomBar}>\n <ExtendedButton color=\"default\" copy=\"Cancel\" onClick={closeDialog} />\n <ExtendedButton\n copy=\"Confirm\"\n color=\"primary\"\n buttonType=\"button\"\n onClick={deleteUser}\n />\n </Box>\n </>\n );\n};\n\nexport default memo(DeleteUserDialogContent);\n","import { Controller, FieldValues, Path, UseFormReturn } from 'react-hook-form';\n\nimport {\n Box,\n FormControlLabel,\n Checkbox,\n alpha,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport ControlledValidTextInput from '../ControlledValidTextInput/ControlledValidTextInput';\n\ntype BaseDeliveryInstructionsFormFields = {\n alarm_code?: string | null;\n door_code?: string | null;\n keys_code?: string | null;\n preferred_delivery_window?: string | null;\n invoice_signature_required?: boolean;\n delivery_instructions?: string | null;\n};\n\nexport type DeliveryInstructionsFormFieldsProps<\n T extends BaseDeliveryInstructionsFormFields & FieldValues,\n> = {\n form: UseFormReturn<T>;\n onTextFieldsBlur?: (fieldName: Path<T>) => void;\n onInvoiceSignatureCheckboxChange?: (checked: boolean) => void;\n};\n\nconst CODE_FIELDS = [\n { name: 'alarm_code', label: 'Alarm Code', maxLength: 10 },\n { name: 'door_code', label: 'Door Code', maxLength: 20 },\n { name: 'keys_code', label: 'Key Code', maxLength: 10 },\n];\n\nexport const DeliveryInstructionsFormFields = <\n T extends BaseDeliveryInstructionsFormFields & FieldValues,\n>({\n form,\n onTextFieldsBlur,\n onInvoiceSignatureCheckboxChange,\n}: DeliveryInstructionsFormFieldsProps<T>) => {\n const { control } = form;\n\n const handleBlur = (fieldName: Path<T>) => {\n onTextFieldsBlur?.(fieldName);\n };\n\n return (\n <Box>\n <Typography variant=\"subtitle1\" fontWeight={500} fontSize={18}>\n Delivery Instructions\n </Typography>\n\n <Box\n sx={{\n mt: 1,\n gap: 3,\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n }}\n >\n {CODE_FIELDS.map(({ name, label, maxLength }) => {\n return (\n <ControlledValidTextInput\n key={name}\n label={label}\n fieldName={name}\n maxLength={maxLength}\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur(name as Path<T>);\n }}\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n />\n );\n })}\n </Box>\n\n <Box\n sx={{\n mt: 3,\n gap: 3,\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n }}\n >\n <ControlledValidTextInput\n label=\"Preferred Delivery Time\"\n fieldName=\"preferred_delivery_window\"\n helperText=\"This is the time window the customer prefers to receive their delivery. Actual delivery times may vary based on availability and logistics.\"\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur('preferred_delivery_window' as Path<T>);\n }}\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n />\n\n <Controller\n name={'invoice_signature_required' as Path<T>}\n control={control}\n render={({ field }) => (\n <Tooltip\n title=\"Select this if a signature is mandatory for the delivery.\"\n placement=\"left\"\n >\n <FormControlLabel\n label=\"Required signature upon delivery\"\n sx={{\n flex: '1 1 calc(33.33% - 16px)',\n minWidth: 150,\n }}\n control={\n <Checkbox\n color=\"primary\"\n checked={Boolean(field.value)}\n {...field}\n onChange={(e) => {\n field.onChange(e.target.checked);\n onInvoiceSignatureCheckboxChange?.(e.target.checked);\n }}\n />\n }\n />\n </Tooltip>\n )}\n />\n </Box>\n\n <ControlledValidTextInput\n label=\"Delivery Instructions\"\n fieldName=\"delivery_instructions\"\n helperText=\"Add specific instructions to assist with the delivery, such as parking details or alternative contacts.\"\n maxLength={500}\n form={form}\n customHandleBlurValidationAndSubmit={() => {\n handleBlur('delivery_instructions' as Path<T>);\n }}\n sx={{\n backgroundColor: (theme) => alpha(theme.palette.primary.main, 0.04),\n padding: '24px',\n marginTop: '20px',\n marginBottom: '24px',\n width: '100%',\n }}\n />\n </Box>\n );\n};\n","import DescriptionIcon from '@mui/icons-material/Description';\nimport { Typography, Box } from '@mui/material';\n\nconst getFileMetadata = (file) => {\n const fullFilename = file.substring(file.lastIndexOf('/') + 1);\n const extension = file.substring(file.lastIndexOf('.'));\n const filename = fullFilename.substring(0, fullFilename.indexOf(extension));\n\n return { filename, extension };\n};\n\ninterface FileCardProps {\n document: string;\n}\n\nconst FileCard = ({ document }: FileCardProps) => {\n const metadata = getFileMetadata(document);\n\n const handleOpenDocument = () => {\n window.open(document, '_blank');\n };\n\n return (\n <Box\n onClick={handleOpenDocument}\n sx={{\n display: 'flex',\n border: '1px solid #E3E7EB',\n borderRadius: '8px',\n padding: '8px',\n gap: '12px',\n minWidth: '250px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <DescriptionIcon fontSize=\"medium\" color=\"action\" />\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Typography variant=\"body1\">\n {metadata.filename}\n {metadata.extension}\n </Typography>\n </Box>\n </Box>\n );\n};\n\nexport default FileCard;\n","import { memo } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { brown, teal } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n siteOne: {\n backgroundColor: teal['50'],\n color: teal['500'],\n padding: theme.spacing(0.5),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n borderRadius: '0 24px 24px 0',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n width: 'fit-content',\n },\n siteTwo: {\n backgroundColor: brown['50'],\n color: brown['500'],\n padding: theme.spacing(0.5),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n borderRadius: '0 24px 24px 0',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n width: 'fit-content',\n },\n}));\n\ninterface FilledLabelProps {\n color?: string;\n copy?: any;\n}\n\nconst FilledLabel = (props: FilledLabelProps) => {\n const { color, copy } = props;\n const { classes } = useStyles();\n return (\n <Typography variant=\"caption\" className={classes[color as any]}>\n {copy}\n </Typography>\n );\n};\n\nexport default memo(FilledLabel);\n","import { useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Typography,\n Menu,\n MenuItem,\n Checkbox,\n ListItemText,\n Divider,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n filterOptions: {\n height: 450,\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.common.black\n : theme.palette.grey[500],\n },\n },\n}));\n\ntype IFilterGroupSelector = {\n name?: string;\n categoryIdentification?: string;\n selectedOptions: string[];\n setSelectedOptions: React.Dispatch<React.SetStateAction<string[]>>;\n handleClickOnApply: () => void;\n optionsList?: {\n category: string;\n options: string[];\n }[];\n};\n\nconst FilterGroupSelector = ({\n name = 'Filter Selector',\n categoryIdentification,\n selectedOptions,\n setSelectedOptions,\n handleClickOnApply,\n optionsList = [{ category: 'Category', options: ['Option 1'] }],\n}: IFilterGroupSelector) => {\n const { classes } = useStyles();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [values, setValues] = useState<string[]>([]);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const toggleOption = (option: string) => {\n setValues((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n setSelectedOptions((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n };\n\n return (\n <>\n <ActiveFiltersIconButton\n label={name}\n numActiveFilters={selectedOptions.length}\n handleClick={handleClick}\n />\n\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Box p={2} mt={-1} sx={{ backgroundColor: colors.neutral200 }}>\n <Typography variant=\"button\">{`Search ${name}`}</Typography>\n </Box>\n <Divider />\n\n <Box className={classes.filterOptions}>\n {optionsList.map(({ category, options }, index) => (\n <Box key={category}>\n <Typography\n variant=\"subtitle2\"\n sx={{ px: 2, pt: index === 0 ? 1 : 2 }}\n >\n {category}\n </Typography>\n {options.map((value) => {\n const key = `${category\n .replaceAll(' ', '_')\n .toLocaleLowerCase()}${\n categoryIdentification ? `_${categoryIdentification}` : ''\n }: ${value}`;\n\n return (\n <MenuItem key={value} onClick={() => toggleOption(key)}>\n <Checkbox checked={values.includes(key)} />\n <ListItemText primary={value} />\n </MenuItem>\n );\n })}\n </Box>\n ))}\n </Box>\n <Box display=\"flex\">\n <ExtendedButton\n variant=\"text\"\n copy=\"Deselect All\"\n disabled={!values.length}\n onClick={() => {\n setSelectedOptions([]);\n setValues([]);\n }}\n />\n <ExtendedButton\n color=\"primary\"\n variant=\"text\"\n copy=\"Apply\"\n onClick={() => {\n handleClickOnApply();\n handleClose();\n }}\n />\n </Box>\n </Menu>\n </>\n );\n};\n\nexport default FilterGroupSelector;\n","import { useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Typography,\n Menu,\n MenuItem,\n Checkbox,\n ListItemText,\n Divider,\n Theme,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n filterOptions: {\n height: 450,\n overflowY: 'auto',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.common.black\n : theme.palette.grey[500],\n },\n },\n}));\n\ntype IFilterSimpleSelector = {\n name?: string;\n options?: string[];\n selectedOptions: string[];\n setSelectedOptions: React.Dispatch<React.SetStateAction<string[]>>;\n handleClickOnApply: () => void;\n};\n\nconst FilterSimpleSelector = ({\n name = 'Filter Selector',\n options = ['No Options'],\n selectedOptions,\n setSelectedOptions,\n handleClickOnApply,\n}: IFilterSimpleSelector) => {\n const { classes } = useStyles();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [values, setValues] = useState<string[]>([]);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const toggleOption = (option: string) => {\n setValues((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n setSelectedOptions((prev) =>\n prev.includes(option)\n ? prev.filter((o) => o !== option)\n : [...prev, option],\n );\n };\n\n return (\n <>\n <ActiveFiltersIconButton\n label={name}\n numActiveFilters={selectedOptions.length}\n handleClick={handleClick}\n />\n\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Box p={2} mt={-1} sx={{ backgroundColor: colors.neutral200 }}>\n <Typography variant=\"button\">{`Search ${name}`}</Typography>\n </Box>\n <Divider />\n <Box className={classes.filterOptions}>\n {options.map((option) => (\n <MenuItem key={option} onClick={() => toggleOption(option)}>\n <Checkbox checked={values.includes(option)} />\n <ListItemText primary={option} />\n </MenuItem>\n ))}\n </Box>\n <Divider />\n <Box display=\"flex\">\n <ExtendedButton\n variant=\"text\"\n copy=\"Deselect All\"\n disabled={!values.length}\n onClick={() => {\n setSelectedOptions([]);\n setValues([]);\n }}\n />\n <ExtendedButton\n color=\"primary\"\n variant=\"text\"\n copy=\"Apply\"\n onClick={() => {\n handleClickOnApply();\n handleClose();\n }}\n />\n </Box>\n </Menu>\n </>\n );\n};\n\nexport default FilterSimpleSelector;\n","import * as React from 'react';\n\nimport { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst footerHeight = '64px';\nconst useStyles = makeStyles()((theme) => ({\n root: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n display: 'flex',\n alignItems: 'center',\n backgroundColor: colors.neutral100,\n borderTop: `1px solid ${colors.neutral400}`,\n width: '100%',\n height: footerHeight,\n padding: theme.spacing(0, 2),\n zIndex: 999,\n },\n fixedOffset: {\n height: footerHeight,\n backgroundColor: 'white',\n },\n}));\n\ninterface FixedFooterProps {\n children: React.ReactNode;\n justifyContent?: string;\n}\n\nconst FixedFooter = ({ justifyContent, children }: FixedFooterProps) => {\n const { classes } = useStyles();\n\n return (\n <Box>\n <Box className={classes.fixedOffset} />\n <Box\n className={classes.root}\n sx={{\n justifyContent,\n }}\n >\n {children}\n </Box>\n </Box>\n );\n};\n\nexport default React.memo(FixedFooter);\n","import type { KeyboardEvent, Ref } from 'react';\nimport { memo } from 'react';\n\nimport CloseRoundedIcon from '@mui/icons-material/CloseRounded';\nimport SearchRoundedIcon from '@mui/icons-material/SearchRounded';\nimport {\n Box,\n IconButton,\n InputBase,\n Paper,\n SxProps,\n Theme,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type GlobalSearchTriggerProps = {\n onClick?: () => void;\n onFocus?: () => void;\n // eslint-disable-next-line no-unused-vars\n onChange?: (value: string) => void;\n // eslint-disable-next-line no-unused-vars\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n readOnly?: boolean;\n placeholder?: string;\n ariaLabel?: string;\n shortcutLabel?: string;\n value?: string;\n minWidth?: number | string;\n sx?: SxProps<Theme>;\n ref?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n};\n\nconst GlobalSearchTrigger = ({\n onClick,\n onFocus,\n onChange,\n onKeyDown,\n readOnly = true,\n placeholder = 'Search',\n ariaLabel = 'Global search',\n shortcutLabel = '⌘ K',\n value = '',\n minWidth = 220,\n sx,\n ref,\n inputRef,\n}: GlobalSearchTriggerProps) => {\n const showClearButton = !readOnly && value.length > 0;\n\n return (\n <Paper\n ref={ref}\n elevation={0}\n onClick={onClick}\n role=\"search\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n border: `1px solid ${alpha(colors.white, 0.22)}`,\n borderRadius: 1,\n px: 1.5,\n py: 0.75,\n minWidth,\n backgroundColor: alpha(colors.black, 0.2),\n color: alpha(colors.white, 0.82),\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\n '&:hover': {\n borderColor: alpha(colors.white, 0.38),\n backgroundColor: alpha(colors.black, 0.35),\n },\n '&:focus-within': {\n borderColor: alpha(colors.muiPrimary, 0.95),\n backgroundColor: alpha(colors.black, 0.35),\n },\n ...sx,\n }}\n >\n <SearchRoundedIcon sx={{ fontSize: 19, color: colors.muiPrimary }} />\n <InputBase\n inputRef={inputRef}\n value={value}\n readOnly={readOnly}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n onChange={(event) => onChange?.(event.target.value)}\n placeholder={placeholder}\n inputProps={{ 'aria-label': ariaLabel }}\n sx={{\n flexGrow: 1,\n color: alpha(colors.white, 0.82),\n fontSize: 14,\n '& input::placeholder': {\n color: alpha(colors.white, 0.62),\n opacity: 1,\n },\n }}\n />\n {showClearButton ? (\n <IconButton\n size=\"small\"\n aria-label=\"Clear search\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => onChange?.('')}\n sx={{\n color: alpha(colors.white, 0.72),\n p: 0.25,\n '&:hover': {\n color: colors.white,\n },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: 18 }} />\n </IconButton>\n ) : (\n <Box\n sx={{\n border: `1px solid ${alpha(colors.white, 0.32)}`,\n borderRadius: '5px',\n px: 0.6,\n py: 0.2,\n fontSize: 11,\n lineHeight: 1,\n }}\n >\n {shortcutLabel}\n </Box>\n )}\n </Paper>\n );\n};\n\nexport default memo(GlobalSearchTrigger);\n","import { memo, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Box } from '@mui/material';\n\ntype IframeMessage = {\n source?: string;\n type?: string;\n route?: string;\n height?: number;\n};\n\nexport type GlobalSearchProps = {\n // eslint-disable-next-line no-unused-vars\n onNavigate?(route: string): void;\n // eslint-disable-next-line no-unused-vars\n shouldUseWindowLocation?(path: string): boolean;\n};\n\nconst IFRAME_MESSAGE_SOURCE = 'global-search-iframe';\nconst HOST_SOURCE = 'global-search-host';\n\nconst COLLAPSED_HEIGHT = 44;\nconst MAX_WIDTH = 760;\nconst MIN_WIDTH = 280;\nconst MAX_HEIGHT = 820;\n\nconst WIDGET_SRC = '/react/search/widget';\n\nconst isEditableElement = (target: EventTarget | null) => {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n if (target.isContentEditable) {\n return true;\n }\n\n const tagName = target.tagName.toLowerCase();\n const role = target.getAttribute('role');\n\n return (\n tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n role === 'textbox'\n );\n};\n\nconst GlobalSearch = ({\n onNavigate,\n shouldUseWindowLocation = (path) =>\n path.startsWith('/react/') || path.startsWith('/#/'),\n}: GlobalSearchProps) => {\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const [height, setHeight] = useState(COLLAPSED_HEIGHT);\n\n const widgetSrc = WIDGET_SRC;\n const widgetOrigin = new URL(widgetSrc, window.location.origin).origin;\n\n const postToIframe = useCallback(\n (\n type:\n | 'GLOBAL_SEARCH_OPEN'\n | 'GLOBAL_SEARCH_CLOSE'\n | 'GLOBAL_SEARCH_TOGGLE',\n ) => {\n const targetWindow = iframeRef.current?.contentWindow;\n if (!targetWindow) {\n return;\n }\n\n targetWindow.postMessage(\n {\n source: HOST_SOURCE,\n type,\n },\n widgetOrigin,\n );\n },\n [widgetOrigin],\n );\n\n const close = useCallback(() => {\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n postToIframe('GLOBAL_SEARCH_CLOSE');\n }, [postToIframe]);\n\n const toggle = useCallback(() => {\n // Avoid a one-frame scrollbar flash while the iframe content expands\n // and before it sends back a measured height.\n setOpen(true);\n setHeight(MAX_HEIGHT);\n postToIframe('GLOBAL_SEARCH_TOGGLE');\n }, [postToIframe]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n const isCommandOrCtrl = event.metaKey || event.ctrlKey;\n\n if (isCommandOrCtrl && event.key.toLowerCase() === 'k') {\n if (isEditableElement(event.target) && !open) {\n return;\n }\n\n event.preventDefault();\n toggle();\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n close();\n }\n };\n\n window.addEventListener('keydown', onKeyDown);\n return () => window.removeEventListener('keydown', onKeyDown);\n }, [close, open, toggle]);\n\n useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n const onPointerDown = (event: PointerEvent) => {\n const wrapper = wrapperRef.current;\n if (!wrapper) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof Node)) {\n return;\n }\n\n if (!wrapper.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('pointerdown', onPointerDown, true);\n return () =>\n document.removeEventListener('pointerdown', onPointerDown, true);\n }, [close, open]);\n\n useEffect(() => {\n const onMessage = (event: MessageEvent<IframeMessage>) => {\n if (event.origin !== widgetOrigin) {\n return;\n }\n\n const iframeWindow = iframeRef.current?.contentWindow;\n if (iframeWindow && event.source !== iframeWindow) {\n return;\n }\n\n const data = event.data;\n if (!data || data.source !== IFRAME_MESSAGE_SOURCE) {\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_CLOSE') {\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_RESIZE') {\n const nextHeight = Math.max(\n COLLAPSED_HEIGHT,\n Math.min(MAX_HEIGHT, Math.ceil(Number(data.height || 0))),\n );\n setHeight(nextHeight);\n setOpen(nextHeight > COLLAPSED_HEIGHT + 1);\n return;\n }\n\n if (data.type === 'GLOBAL_SEARCH_NAVIGATE') {\n const rawRoute = data.route;\n if (!rawRoute || !rawRoute.startsWith('/')) {\n return;\n }\n\n setOpen(false);\n setHeight(COLLAPSED_HEIGHT);\n\n const nextRoute =\n rawRoute.startsWith('/react/') || rawRoute.startsWith('/#/')\n ? rawRoute\n : `/react${rawRoute}`;\n\n // Always use a full navigation for routes under `/react/*`.\n // This avoids basename issues when GlobalSearch is rendered inside micro-frontends.\n if (\n nextRoute.startsWith('/react/') ||\n shouldUseWindowLocation(rawRoute)\n ) {\n window.location.assign(nextRoute);\n return;\n }\n\n onNavigate?.(nextRoute);\n }\n };\n\n window.addEventListener('message', onMessage);\n return () => window.removeEventListener('message', onMessage);\n }, [onNavigate, shouldUseWindowLocation, widgetOrigin]);\n\n return (\n <Box\n ref={wrapperRef}\n sx={{\n position: 'relative',\n overflow: 'visible',\n width: '100%',\n maxWidth: MAX_WIDTH,\n minWidth: MIN_WIDTH,\n flex: '1 1 420px',\n height: COLLAPSED_HEIGHT,\n }}\n >\n <iframe\n ref={iframeRef}\n title=\"Global Search\"\n data-testid=\"global-search-widget-iframe\"\n src={widgetSrc}\n scrolling=\"no\"\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%',\n height,\n border: 0,\n display: 'block',\n backgroundColor: 'transparent',\n }}\n />\n </Box>\n );\n};\n\nexport default memo(GlobalSearch);\n","import { Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n margin: theme.spacing(1),\n },\n header: {\n height: 80,\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n alignItems: 'center',\n gap: theme.spacing(4),\n padding: theme.spacing(1),\n },\n rightContent: {\n width: '100%',\n },\n}));\n\ninterface HeaderProps {\n appName: any;\n children?: any;\n wrappedHeader?: any;\n}\n\nconst Header = ({\n appName,\n children = null,\n wrappedHeader = false,\n}: HeaderProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <Paper\n className={cx({\n [classes.container]: !wrappedHeader,\n })}\n elevation={wrappedHeader ? 0 : 1}\n >\n <header className={classes.header}>\n <AppLabel appName={appName} />\n\n {children ? (\n <div className={classes.rightContent}>{children}</div>\n ) : null}\n </header>\n </Paper>\n );\n};\n\nexport default Header;\n","import { FixedSizeList } from 'react-window';\n\nimport { ListItem, ListItemText } from '@mui/material';\n\ninterface ListHeaderProps {\n headers?: any;\n}\n\nconst ListHeader = (props: ListHeaderProps) => {\n const headers = props.headers || [];\n\n return (\n <ListItem>\n {headers.map((header, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <ListItemText primary={header.text} key={i} />\n ))}\n </ListItem>\n );\n};\n\ninterface VirtualizedListProps {\n headers?: any;\n items?: any;\n renderItem?: any;\n}\n\nexport default function VirtualizedList(props: VirtualizedListProps) {\n const { innerWidth, innerHeight } = window;\n const { headers, items, renderItem } = props;\n\n return (\n <>\n <ListHeader headers={headers} />\n <FixedSizeList\n height={innerHeight - 150}\n width={innerWidth}\n itemSize={46}\n itemCount={items.length}\n itemData={items}\n >\n {renderItem}\n </FixedSizeList>\n </>\n );\n}\n","import { Fragment } from 'react';\n\nimport { Box, Chip, Typography } from '@mui/material';\nimport { purple } from '@mui/material/colors';\nimport classNames from 'classnames';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n },\n smallTitle: {\n opacity: 0.8,\n whiteSpace: 'nowrap',\n fontSize: 12,\n },\n locationText: {\n opacity: 0.8,\n whiteSpace: 'nowrap',\n fontSize: 13,\n },\n defaultChip: {\n backgroundColor: colors.neutral100,\n height: 22,\n },\n stockChip: {\n backgroundColor: colors.neutral100,\n borderColor: colors.neutral100,\n },\n pickingStockChip: {\n backgroundColor: purple[50],\n color: purple[500],\n },\n}));\n\ninterface ILocationsSectionInfo {\n principalLocation: string;\n secondaryLocation?: string[];\n isPicking?: boolean;\n isStock?: boolean;\n}\n\nconst LocationsSectionInfo = ({\n principalLocation,\n secondaryLocation,\n isPicking,\n isStock,\n}: ILocationsSectionInfo) => {\n const { classes } = useStyles();\n\n const getLocationLabel = () => {\n if (isPicking && isStock) {\n return 'PICKING & STOCK';\n }\n if (isPicking) {\n return 'PICKING';\n }\n\n return 'STOCK';\n };\n\n return (\n <Box className={classes.container}>\n <Chip\n className={classNames(classes.defaultChip, {\n [classes.stockChip]: isStock,\n [classes.pickingStockChip]: isPicking && isStock,\n })}\n variant=\"outlined\"\n label={getLocationLabel()}\n />\n <Typography className={classes.locationText} color=\"primary\">\n {principalLocation}\n </Typography>\n {secondaryLocation?.map((loc) => (\n <Fragment key={loc}>\n <Typography className={classes.smallTitle}>/</Typography>\n <Typography className={classes.locationText}>{loc}</Typography>\n </Fragment>\n ))}\n </Box>\n );\n};\n\nexport default LocationsSectionInfo;\n","import { useEffect, useState } from 'react';\n\nimport { FormControl, Input, InputAdornment, InputLabel } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n padding: theme.spacing(3),\n backgroundColor: colors.blueOpacity08,\n },\n}));\n\ninterface NotesProps {\n initialNotes?: any;\n isDisabled?: any;\n isEditable?: any;\n isLoading?: any;\n maxLength?: any;\n onBlur?: any;\n onChange?: any;\n onClearNotes?: any;\n}\n\nconst Notes = ({\n initialNotes = null,\n isDisabled = false,\n isEditable = true,\n isLoading = false,\n maxLength,\n onBlur,\n onChange,\n onClearNotes,\n}: NotesProps) => {\n const [notes, setNotes] = useState('');\n\n useEffect(() => {\n if (!initialNotes) {\n return;\n }\n\n setNotes(initialNotes);\n }, [initialNotes]);\n\n const handleClearNotes = () => {\n setNotes('');\n\n if (onClearNotes) {\n onClearNotes();\n }\n };\n\n const handleNotesBlur = () => {\n if (onBlur) {\n onBlur(notes);\n }\n };\n\n const handleNotesChanges = (event) => {\n const { value } = event.target;\n setNotes(value);\n\n if (onChange) {\n onChange(value);\n }\n };\n\n const { classes } = useStyles();\n\n return (\n <div className={classes.wrapper}>\n <FormControl fullWidth>\n <InputLabel htmlFor=\"notes\">Notes</InputLabel>\n <Input\n disabled={isDisabled || isLoading}\n endAdornment={\n isEditable &&\n notes.length > 0 && (\n <InputAdornment position=\"end\">\n <RoundButton\n disabled={isLoading}\n icon=\"close\"\n noStrokes\n onClick={handleClearNotes}\n size=\"small\"\n />\n </InputAdornment>\n )\n }\n fullWidth\n id=\"notes\"\n inputProps={{\n maxLength,\n }}\n onBlur={handleNotesBlur}\n onInput={handleNotesChanges}\n type=\"text\"\n value={notes}\n />\n </FormControl>\n </div>\n );\n};\n\nexport default Notes;\n","import RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\ninterface NumpadProps {\n handleClick: any;\n handleUndo: any;\n}\n\nconst Numpad = ({ handleClick, handleUndo }: NumpadProps) => (\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n border: `1px solid ${colors.neutral250}`,\n borderRadius: 8,\n padding: 8,\n }}\n >\n <div>\n <div>\n <RoundButton\n onClick={() => handleClick('1')}\n size=\"large\"\n variant=\"filled\"\n >\n 1\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('2')}\n size=\"large\"\n variant=\"filled\"\n >\n 2\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('3')}\n size=\"large\"\n variant=\"filled\"\n >\n 3\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('4')}\n size=\"large\"\n variant=\"filled\"\n >\n 4\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('5')}\n size=\"large\"\n variant=\"filled\"\n >\n 5\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('6')}\n size=\"large\"\n variant=\"filled\"\n >\n 6\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('7')}\n size=\"large\"\n variant=\"filled\"\n >\n 7\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('8')}\n size=\"large\"\n variant=\"filled\"\n >\n 8\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('9')}\n size=\"large\"\n variant=\"filled\"\n >\n 9\n </RoundButton>\n </div>\n <div>\n <RoundButton\n onClick={() => handleClick('0')}\n size=\"large\"\n variant=\"filled\"\n >\n 0\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('.')}\n size=\"large\"\n variant=\"filled\"\n >\n .\n </RoundButton>\n </div>\n </div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderLeft: `1px solid ${colors.neutral250}`,\n }}\n >\n <RoundButton\n icon=\"backspaceOutlined\"\n onClick={handleUndo}\n size=\"large\"\n variant=\"filled\"\n />\n </div>\n </div>\n);\n\nexport default Numpad;\n","import { memo, useState } from 'react';\n\nimport { TextField, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButtonLg from '@/components/Buttons/FilledButton/FilledButtonLg';\nimport Numpad from '@/components/Numpad/Numpad';\n\nconst useStyles = makeStyles()(() => ({\n c_numpadinput__textfield: {\n '& .MuiInputLabel-outlined.MuiInputLabel-shrink': {\n transform: 'translate(18px, -13px) scale(0.75)',\n },\n '& .MuiInputLabel-outlined': {\n transform: 'translate(14px, 14px) scale(1)',\n },\n '& .MuiOutlinedInput-input': {\n padding: '18.5px 18px',\n },\n },\n c_numpadinput__body: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'space-between',\n justifyItems: 'center',\n justifyContent: 'space-around',\n margin: 16,\n padding: 16,\n backgroundColor: '#f0f0f0',\n },\n}));\n\ninterface NumpadInputProps {\n handleNextClick?(...args: any[]): any;\n inputLabel?: string;\n children?: any;\n}\n\nconst NumpadInput = (props: NumpadInputProps) => {\n const { handleNextClick, inputLabel, children } = props;\n const { classes } = useStyles();\n const [state, setState] = useState('');\n\n const handleNumpadClick = (value) => {\n setState(state + value);\n };\n\n const handleUndo = () => {\n setState(state.substring(0, state.length - 1));\n };\n\n function handleSubmit() {\n handleNextClick?.(state);\n }\n\n const DefaultInput = (\n <div>\n <Typography variant=\"h5\" style={{ padding: '16px 0 3rem' }}>\n {inputLabel}\n </Typography>\n\n <form noValidate autoComplete=\"off\">\n <TextField\n id=\"outlined-basic\"\n label={<Typography style={{ fontSize: '1.5rem' }}>Insert</Typography>}\n value={state}\n variant=\"outlined\"\n autoFocus\n helperText=\"\"\n className={classes.c_numpadinput__textfield}\n slotProps={{\n htmlInput: {\n style: { fontSize: '1.5rem', width: '160px' },\n },\n }}\n />\n </form>\n\n {children}\n </div>\n );\n\n return (\n <div>\n <div className={classes.c_numpadinput__body}>\n {children || DefaultInput}\n <Numpad handleClick={handleNumpadClick} handleUndo={handleUndo} />\n </div>\n\n {state ? (\n <FilledButtonLg\n color=\"primary\"\n copy=\"next\"\n handleClick={handleSubmit}\n />\n ) : (\n <FilledButtonLg copy=\"next\" disabled />\n )}\n </div>\n );\n};\n\nexport default memo(NumpadInput);\n","import { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n numpadContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n border: `2px solid ${colors.neutral250}`,\n borderRadius: 8,\n padding: 8,\n },\n numpadNumbersContainer: {\n display: 'flex',\n flexDirection: 'column',\n padding: 8,\n gap: 8,\n },\n numpadRow: {\n display: 'flex',\n padding: 8,\n gap: 8,\n },\n numpadBackspace: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderLeft: `1px solid ${colors.neutral250}`,\n padding: '16px 8px',\n gap: 8,\n },\n}));\n\ninterface NumpadPlusProps {\n handleClick: any;\n handleUndo: any;\n}\n\nconst NumpadPlus = ({ handleClick, handleUndo }: NumpadPlusProps) => {\n const { classes: styles } = useStyles();\n return (\n <Box className={styles.numpadContainer}>\n <Box className={styles.numpadNumbersContainer}>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('1')}\n size=\"large\"\n variant=\"filled\"\n >\n 1\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('2')}\n size=\"large\"\n variant=\"filled\"\n >\n 2\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('3')}\n size=\"large\"\n variant=\"filled\"\n >\n 3\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('4')}\n size=\"large\"\n variant=\"filled\"\n >\n 4\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('5')}\n size=\"large\"\n variant=\"filled\"\n >\n 5\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('6')}\n size=\"large\"\n variant=\"filled\"\n >\n 6\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('7')}\n size=\"large\"\n variant=\"filled\"\n >\n 7\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('8')}\n size=\"large\"\n variant=\"filled\"\n >\n 8\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('9')}\n size=\"large\"\n variant=\"filled\"\n >\n 9\n </RoundButton>\n </Box>\n <Box className={styles.numpadRow}>\n <RoundButton\n onClick={() => handleClick('0')}\n size=\"large\"\n variant=\"filled\"\n >\n 0\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('.')}\n size=\"large\"\n variant=\"filled\"\n >\n .\n </RoundButton>\n <RoundButton\n onClick={() => handleClick('-')}\n size=\"large\"\n variant=\"filled\"\n >\n -\n </RoundButton>\n </Box>\n </Box>\n <Box className={styles.numpadBackspace}>\n <RoundButton\n icon=\"backspaceOutlined\"\n onClick={handleUndo}\n size=\"large\"\n variant=\"filled\"\n />\n </Box>\n </Box>\n );\n};\n\nexport default NumpadPlus;\n","import { Pagination, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst paginationHeight = '56px';\n\nconst useStyles = makeStyles()((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n borderTop: `1px solid ${colors.neutral300}`,\n backgroundColor: colors.neutral100,\n borderRadius: '0 0 4px 4px',\n width: '100%',\n height: paginationHeight,\n '& > *': {\n margin: theme.spacing(2),\n },\n '& .MuiTypography-body1': {\n fontSize: '.850rem',\n },\n },\n fixed: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n },\n fixedOffset: {\n height: paginationHeight,\n backgroundColor: 'white',\n },\n}));\n\ninterface PaginationForTableProps {\n appliedFilters?: any;\n className?: any;\n page?: any;\n pagination?: any;\n position?: any;\n style?: any;\n updateFilters: any;\n}\n\nconst PaginationForTable = ({\n appliedFilters,\n className = '',\n page,\n pagination,\n position = 'relative',\n style,\n updateFilters,\n}: PaginationForTableProps) => {\n const { classes, cx } = useStyles();\n\n const handleChange = (event, value) => {\n updateFilters({ ...appliedFilters, page: value });\n };\n\n const isFixed = position === 'fixed';\n\n return (\n <Paper>\n {/* {isFixed && <div className={classes.fixedOffset} />} */}\n <div\n style={style}\n className={cx(classes.root, className, {\n [classes.fixed]: isFixed,\n })}\n >\n <Typography variant=\"body1\">Page: {page}</Typography>\n <Pagination\n count={pagination.num_pages}\n page={page}\n onChange={handleChange}\n />\n </div>\n </Paper>\n );\n};\n\nexport default PaginationForTable;\n","import { useCallback, useEffect } from 'react';\nimport { Controller, useForm, useWatch } from 'react-hook-form';\n\nimport {\n FormControlLabel,\n FormGroup,\n TextField,\n Typography,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n position: 'relative',\n /**\n * Hides the step arrows on number inputs\n * Works for every browser\n * https://www.w3schools.com/howto/howto_css_hide_arrow_number.asp\n */\n '& input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& input[type=number]': {\n MozAppearance: 'textfield',\n },\n },\n formControlLabel: {\n margin: 0,\n },\n errorText: {\n position: 'absolute',\n left: theme.spacing(4),\n bottom: theme.spacing(-3),\n },\n wrapper: {\n display: 'grid',\n gridTemplateAreas: `\"minus input plus\"`,\n alignItems: 'center',\n gap: theme.spacing(1.5),\n },\n leftButtons: {\n gridTemplateAreas: `\"minus plus input\"`,\n },\n rightButtons: {\n gridTemplateAreas: `\"input minus plus\"`,\n // FIXME: Didn't find a better way to override error CSS when it has a parent modifier\n '& #input-error': {\n left: 0,\n bottom: theme.spacing(-2.5),\n },\n },\n plus: {\n gridArea: 'plus',\n },\n minus: {\n gridArea: 'minus',\n },\n input: {\n gridArea: 'input',\n },\n}));\n\ninterface PlusMinusInputProps {\n allowNegative?: any;\n buttonsPosition?: any;\n disabled?: any;\n initialValue?: any;\n inputSize?: any;\n label: any;\n updateInputValue: any;\n}\n\nconst PlusMinusInput = ({\n allowNegative = false,\n buttonsPosition = 'default',\n disabled = false,\n initialValue = 0,\n inputSize = 70,\n label,\n updateInputValue,\n}: PlusMinusInputProps) => {\n const {\n clearErrors,\n control,\n formState: { errors },\n reset,\n setError,\n setValue,\n } = useForm({\n defaultValues: {\n inputValue: 0,\n },\n });\n\n const inputValue = useWatch({ control, name: 'inputValue' });\n\n const setInputValue = useCallback(\n (newValue) => {\n if (Number.isNaN(newValue) || newValue < 0) {\n return;\n }\n\n setValue('inputValue', Number(newValue));\n },\n [setValue],\n );\n\n useEffect(() => {\n clearErrors('inputValue');\n\n if ((inputValue as any) === '') {\n setError('inputValue', {\n type: 'custom',\n message: `${label} is empty`,\n });\n return;\n }\n\n if ((!inputValue && Number(inputValue !== 0)) || Number(inputValue) < 0) {\n setError('inputValue', {\n type: 'custom',\n message: `${label} is invalid`,\n });\n\n if (!allowNegative) {\n updateInputValue(0);\n setValue('inputValue', 0);\n }\n }\n }, [clearErrors, inputValue, setError]);\n\n useEffect(() => {\n if (typeof initialValue !== 'number') {\n return;\n }\n\n setInputValue(initialValue);\n }, [initialValue, setInputValue]);\n\n const clearInput = () => {\n reset();\n updateInputValue(0);\n };\n\n const increaseInput = () => {\n if (Number(inputValue) < 0) {\n clearInput();\n return;\n }\n\n setInputValue(Number(inputValue) + 1);\n updateInputValue(Number(inputValue) + 1);\n };\n\n const decreaseInput = () => {\n if (Number(inputValue) < 0) {\n clearInput();\n return;\n }\n\n setInputValue(Number(inputValue) - 1);\n updateInputValue(Number(inputValue) - 1);\n };\n\n const onInputChange = (event, onChange) => {\n onChange(event);\n\n const { value } = event.target;\n\n if (value) {\n updateInputValue(Number(event.target.value));\n return;\n }\n\n updateInputValue(value);\n };\n\n const { classes, cx } = useStyles();\n\n return (\n <div className={classes.container}>\n <FormGroup\n className={cx(classes.wrapper, {\n [classes.leftButtons]: buttonsPosition === 'left',\n [classes.rightButtons]: buttonsPosition === 'right',\n })}\n >\n <RoundButton\n className={classes.minus}\n disabled={inputValue <= 0 || disabled}\n icon=\"remove\"\n onClick={() => decreaseInput()}\n size=\"small\"\n />\n <div>\n <Controller\n control={control}\n name=\"inputValue\"\n render={({ field }) => (\n <FormControlLabel\n {...field}\n className={classes.formControlLabel}\n control={\n <TextField\n className={classes.input}\n disabled={disabled}\n id=\"filled-basic\"\n label={label}\n style={{ width: `${inputSize}px` }}\n type=\"number\"\n />\n }\n label=\"\"\n onChange={(e) => onInputChange(e, field.onChange)}\n />\n )}\n />\n {errors.inputValue && (\n <Typography\n className={classes.errorText}\n color=\"error\"\n id=\"input-error\"\n variant=\"caption\"\n >\n {errors.inputValue.message}\n </Typography>\n )}\n </div>\n <RoundButton\n className={classes.plus}\n disabled={disabled}\n icon=\"add\"\n onClick={() => increaseInput()}\n size=\"small\"\n />\n </FormGroup>\n </div>\n );\n};\n\nexport default PlusMinusInput;\n","import { ComponentType, useState } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport ProductImage from '@/components/ProductImage/ProductImage';\n\ninterface PBustProps {\n buttonData?: any;\n classes?: any;\n locationData?: any;\n locationId?: any;\n primaryData?: any;\n product?: any;\n secondaryData?: any;\n size?: any;\n LocationHistoryDialog: ComponentType<any>;\n}\n\n// FIXME: Please, if you ever touch this component... REFACTOR IT\n// The person that created it didn't know how React works and created this Frankenstein 🤡\nconst PBust = ({\n classes,\n size,\n product = null,\n locationData,\n primaryData,\n secondaryData,\n buttonData = null,\n locationId,\n LocationHistoryDialog,\n}: PBustProps) => {\n let imageSize;\n let titleSize;\n let subtitle1Size;\n let subtitle2Size;\n let headingSize;\n\n switch (size) {\n case 'small':\n imageSize = 'c_productbust__image_sm';\n titleSize = 'c_productbust__typography_h6';\n subtitle1Size = 'c_productbust__typography_subtitle2';\n subtitle2Size = 'c_productbust__typography_subtitle2';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n case 'medium':\n imageSize = 'c_productbust__image_md';\n titleSize = 'c_productbust__typography_h6';\n subtitle1Size = 'c_productbust__typography_subtitle2';\n subtitle2Size = 'c_productbust__typography_subtitle2';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n case 'large':\n imageSize = 'c_productbust__image_lg';\n titleSize = 'c_productbust__typography_h4';\n subtitle1Size = 'c_productbust__typography_subtitle1';\n subtitle2Size = 'c_productbust__typography_h6';\n headingSize = 'c_productbust__typography_headingSize';\n break;\n default:\n break;\n }\n\n const [historyVisible, setHistoryVisible] = useState(false);\n\n const historyDataIcon = () => (\n <RoundButton\n icon=\"history\"\n onClick={() => setHistoryVisible(true)}\n size=\"small\"\n />\n );\n\n return (\n <div className={classes.c_productbust}>\n <ProductImage\n image={product?.image}\n status={product?.status}\n size={imageSize}\n />\n\n <div className={classes.c_productbust__container}>\n <div className={classes.c_productbust__heading}>\n <div>\n <Typography\n component=\"span\"\n color=\"textSecondary\"\n className={classes[headingSize]}\n >\n {!!locationData && locationData}\n </Typography>\n <Typography component=\"span\" className={classes[titleSize]}>\n {product?.name}\n </Typography>\n {!product && (\n <Typography component=\"span\" className={classes[titleSize]}>\n Empty Position\n </Typography>\n )}\n {primaryData || (\n <>\n <Typography\n style={{ color: '#555' }}\n className={classes[subtitle1Size]}\n >\n {product?.category.name}\n </Typography>\n <Typography\n style={{ color: '#A42966', textTransform: 'uppercase' }}\n className={classes[subtitle2Size]}\n >\n {product?.attributes}\n </Typography>\n </>\n )}\n </div>\n <div className={classes.c_productbust__btns}>\n <div>{buttonData}</div>\n <div>{!!locationId && historyDataIcon()}</div>\n </div>\n </div>\n <div>{!!secondaryData && secondaryData}</div>\n </div>\n\n <LocationHistoryDialog\n handleVisible={setHistoryVisible}\n locationId={locationId}\n productName={product?.name}\n visible={historyVisible}\n />\n </div>\n );\n};\n\nconst ProductBust = withStyles(PBust, (theme) => ({\n c_productbust: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n '& > div': {\n margin: 8,\n display: 'flex',\n },\n },\n c_productbust__container: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: '100%',\n },\n c_productbust__heading: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n },\n c_productbust__btns: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n },\n c_productbust__typography_body1: {\n fontSize: '1rem',\n fontWeight: 500,\n lineHeight: 1.334,\n letterSpacing: '0.0075em',\n },\n c_productbust__typography_h6: {\n fontSize: '1.25rem',\n fontWeight: 500,\n lineHeight: 1.334,\n letterSpacing: '0.0075em',\n maxWidth: 400,\n },\n c_productbust__typography_h5: {\n fontSize: '1.5rem',\n fontWeight: 400,\n lineHeight: 1.334,\n letterSpacing: '0em',\n maxWidth: 400,\n },\n c_productbust__typography_h4: {\n fontSize: '2.125rem',\n fontWeight: 400,\n lineHeight: 1.235,\n letterSpacing: '0.00735em',\n maxWidth: 400,\n },\n c_productbust__typography_subtitle1: {\n fontSize: '1rem',\n fontWeight: 400,\n lineHeight: 1.75,\n letterSpacing: '0.00938em',\n },\n c_productbust__typography_subtitle2: {\n fontSize: '.875rem',\n fontWeight: 500,\n lineHeight: 1.57,\n letterSpacing: '0.00714em',\n },\n c_productbust__typography_headingSize: {\n textTransform: 'uppercase',\n marginBottom: theme.spacing(0.5),\n '& .MuiTypography-body1': {\n fontSize: '.750rem',\n },\n },\n c_productbust__image_sm: {\n width: 100,\n height: 132,\n maxWidth: 132,\n borderRadius: theme.spacing(0.5),\n },\n c_productbust__image_md: {\n width: 160,\n height: 120,\n maxWidth: 160,\n borderRadius: theme.spacing(0.5),\n },\n}));\n\nexport default ProductBust;\n","import { CardMedia } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface PImageProps {\n classes?: any;\n image?: any;\n size?: any;\n status?: any;\n}\n\nconst PImage = ({\n classes,\n image,\n size = 'c_productbust__image_xs',\n status,\n}: PImageProps) => (\n <div className={classes.c_productbust__image}>\n <CardMedia\n className={classes[size]}\n image={image || '@/resources/img/peas.jpg'}\n />\n {status && status !== 'ACTIVE' && (\n <div className={classes.c_productbust__label_status}>{status}</div>\n )}\n </div>\n);\n\nconst ProductImage = withStyles(PImage, (theme) => ({\n c_productbust__label_status: {\n position: 'absolute',\n color: 'white',\n left: '50%',\n top: 0,\n transform: 'translateX(-50%)',\n fontSize: 12,\n fontWeight: 700,\n width: '100%',\n textAlign: 'center',\n padding: '4px 0',\n backgroundColor: '#A42966',\n borderRadius: '4px 4px 0 0',\n },\n c_productbust__image_sm: {\n height: 100,\n width: 132,\n minWidth: 132,\n maxWidth: 132,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 100,\n width: 132,\n maxWidth: 132,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_xs: {\n height: 84,\n width: 112,\n minWidth: 112,\n maxWidth: 112,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 84,\n width: 112,\n maxWidth: 112,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_md: {\n height: 120,\n width: 160,\n minWidth: 160,\n maxWidth: 160,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 120,\n width: 160,\n maxWidth: 160,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image_lg: {\n height: 140,\n width: 186,\n minWidth: 186,\n maxWidth: 186,\n backgroundColor: colors.neutral400,\n borderRadius: theme.spacing(0.5),\n '& img': {\n height: 140,\n width: 186,\n maxWidth: 186,\n borderRadius: theme.spacing(0.5),\n },\n },\n c_productbust__image: {\n position: 'sticky',\n left: 0,\n zIndex: 9,\n },\n}));\n\nexport default ProductImage;\n","import { Avatar, Badge, Box, Typography } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\ninterface IRenderAvatar {\n active?: boolean;\n}\nconst RenderAvatar = ({ active }: IRenderAvatar) => {\n const StyledBadge = withStyles(Badge, () => ({\n root: {\n '.MuiBadge-dot': {\n backgroundColor: active ? colors.muiSuccess : colors.neutral700,\n },\n },\n }));\n\n return (\n <Box\n sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}\n >\n <StyledBadge\n overlap=\"circular\"\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n variant=\"dot\"\n >\n <Avatar />\n </StyledBadge>\n <Typography variant=\"caption\">\n {active ? 'Active' : 'Disabled'}\n </Typography>\n </Box>\n );\n};\n\nexport default RenderAvatar;\n","import { useEffect, useState, useRef } from 'react';\n\nimport WarningAmber from '@mui/icons-material/WarningAmber';\nimport {\n List,\n ListItemButton,\n ListItemText,\n ListSubheader,\n Tooltip,\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\nimport { transformNameToID } from '@/utils/useGetActiveSection';\n\nconst useStyles = makeStyles<void, 'selected'>()(\n (_theme, _params, classes) => ({\n root: {\n [`&.${classes.selected}`]: {\n backgroundColor: colors.primaryOpacity10,\n '&:hover': {\n backgroundColor: colors.primaryOpacity20,\n },\n },\n },\n selected: {},\n }),\n);\n\ninterface IRenderContentList {\n items: string[];\n warningItems?: string[] | null;\n warningMessage?: string;\n activeSection: string;\n}\n\nconst RenderContentList = ({\n items,\n activeSection,\n warningItems,\n warningMessage = 'Missing information on this section',\n}: IRenderContentList) => {\n const { classes } = useStyles();\n const [active, setActive] = useState(activeSection);\n const observer = useRef<IntersectionObserver | null>(null);\n const isScrolling = useRef(false); // Avoids flickering from IntersectionObserver\n const timeoutScrolling = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (!activeSection) {\n return undefined;\n }\n\n isScrolling.current = true;\n\n const targetId = transformNameToID(activeSection);\n setActive(targetId);\n\n const element = document.getElementById(targetId);\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n\n if (timeoutScrolling.current) {\n clearTimeout(timeoutScrolling.current);\n }\n\n timeoutScrolling.current = setTimeout(() => {\n isScrolling.current = false;\n }, 1000);\n\n return () => {\n if (timeoutScrolling.current) clearTimeout(timeoutScrolling.current);\n };\n }, [activeSection]);\n\n useEffect(() => {\n const sections = items\n .map((item) => ({\n id: transformNameToID(item),\n element: document.getElementById(transformNameToID(item)),\n }))\n .filter(({ element }) => element !== null);\n\n if (observer.current) {\n observer.current.disconnect();\n }\n\n if (sections.length === 0) {\n return undefined;\n }\n\n observer.current = new IntersectionObserver(\n (entries) => {\n if (isScrolling.current) {\n return;\n }\n\n const visibleSection = entries.find((entry) => entry.isIntersecting);\n if (visibleSection) {\n setActive(visibleSection.target.id);\n }\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: 0.6,\n },\n );\n\n sections.forEach(({ element }) => {\n if (element) observer.current?.observe(element);\n });\n\n return () => {\n observer.current?.disconnect();\n };\n }, [items]);\n\n const handleMenuClick = (id: string) => {\n isScrolling.current = true;\n setActive(id);\n\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n\n if (timeoutScrolling.current) clearTimeout(timeoutScrolling.current);\n timeoutScrolling.current = setTimeout(() => {\n isScrolling.current = false;\n }, 1000);\n };\n\n return (\n <List\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n subheader={\n <ListSubheader component=\"div\" id=\"nested-list-subheader\">\n Contents\n </ListSubheader>\n }\n >\n {items.map((item) => {\n const id = transformNameToID(item);\n return (\n <ListItemButton\n key={id}\n selected={active === id}\n classes={{ root: classes.root, selected: classes.selected }}\n onClick={() => handleMenuClick(id)}\n >\n <ListItemText primary={item} />\n\n {(warningItems?.includes(item) || warningItems?.includes(id)) && (\n <Tooltip title={warningMessage}>\n <WarningAmber color=\"warning\" />\n </Tooltip>\n )}\n </ListItemButton>\n );\n })}\n </List>\n );\n};\n\nexport default RenderContentList;\n","import { useEffect, useState } from 'react';\n\ninterface IUseGetActiveSection {\n containerId: string;\n contentList: string[];\n offset: number;\n}\n\nexport const transformNameToID = (name: string) =>\n name.replaceAll(' ', '_').toLocaleLowerCase();\n\nconst useGetActiveSection = ({\n containerId,\n contentList,\n offset = 175,\n}: IUseGetActiveSection) => {\n const [activeSection, setActiveSection] = useState(contentList[0]);\n\n useEffect(() => {\n const containerElement = document.getElementById(containerId);\n\n const handleScroll = () => {\n if (!containerElement) {\n return;\n }\n\n const scrollPosition = containerElement.scrollTop + offset;\n const currentSection = contentList.find((section) => {\n const element = document.getElementById(transformNameToID(section));\n return (\n element &&\n element.offsetTop <= scrollPosition &&\n element.offsetTop + element.offsetHeight > scrollPosition\n );\n });\n\n if (currentSection && currentSection !== activeSection) {\n setActiveSection(currentSection);\n }\n };\n\n containerElement?.addEventListener('scroll', handleScroll);\n\n return () => {\n containerElement?.removeEventListener('scroll', handleScroll);\n };\n }, [activeSection, containerId, contentList, offset]);\n\n return activeSection;\n};\n\nexport default useGetActiveSection;\n","import * as React from 'react';\n\nimport { Box, Divider, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ProductImage from '@/components/ProductImage/ProductImage';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n padding: theme.spacing(1),\n },\n divider: {\n margin: theme.spacing(1, 0),\n },\n smallTitle: {\n color: colors.rowProductCard.locationSubtitle,\n whiteSpace: 'nowrap',\n },\n upperRow: {\n width: '100%',\n },\n content: {\n width: '100%',\n },\n onlyProductName: {\n display: 'flex',\n alignItems: 'center',\n },\n}));\n\ntype ProductSize = 'small' | 'medium' | 'large';\n\ninterface Column {\n title: string;\n value: string | React.ReactNode;\n}\n\ninterface Product {\n image: string;\n name: string;\n status?: string;\n}\n\ninterface RowProductCardProps {\n /**\n * Possible actions or buttons that the card can have\n */\n children?: React.ReactNode;\n /**\n * Details about the product\n */\n columns?: Column[];\n /**\n * Where is the product location\n */\n location?: string;\n /**\n * Product information\n */\n product: Product;\n /**\n * Size of the product image\n */\n size?: ProductSize;\n}\n\n/**\n * A card on row format that can display informations about a product\n * It can be very detailed or lean\n */\nconst RowProductCard = ({\n children = null,\n columns = [],\n location = '',\n product,\n size = 'medium',\n}: RowProductCardProps) => {\n const { classes, cx } = useStyles();\n\n const hasColumns = columns.length >= 1;\n\n // TODO: Refactor <ProductImage /> to receive the desired size instead of the class\n const imageSize: Record<ProductSize, string> = {\n small: 'c_productbust__image_sm',\n medium: 'c_productbust__image_md',\n large: 'c_productbust__image_lg',\n };\n\n return (\n <Paper className={classes.wrapper}>\n <ProductImage\n image={product.image}\n status={product.status}\n size={imageSize[size]}\n />\n <div\n className={cx(classes.content, {\n [classes.onlyProductName]: !hasColumns && !location,\n })}\n >\n <Box\n className={classes.upperRow}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n {location ? (\n <Typography className={classes.smallTitle} variant=\"caption\">\n {`Location: ${location}`}\n </Typography>\n ) : null}\n\n <Typography variant=\"h6\">{product.name}</Typography>\n </div>\n {children}\n </Box>\n\n {hasColumns ? (\n <>\n <Divider className={classes.divider} />\n\n <Box\n sx={{\n display: 'flex',\n gap: '24px',\n }}\n >\n {columns.map((column) => (\n <div key={column.title}>\n <Typography className={classes.smallTitle} variant=\"caption\">\n {column.title}\n </Typography>\n {typeof column.value === 'string' ? (\n <Typography variant=\"body1\">{column.value}</Typography>\n ) : (\n column.value\n )}\n </div>\n ))}\n </Box>\n </>\n ) : null}\n </div>\n </Paper>\n );\n};\n\nexport default RowProductCard;\n","import React, { ReactNode, useEffect, useRef, useState } from 'react';\n\nimport { Box, Dialog, Divider, Fade, Paper, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n dialog: {\n margin: '0 auto',\n [theme.breakpoints.up('md')]: {\n maxWidth: 835,\n },\n },\n wrapper: {\n height: '100%',\n backgroundColor: colors.neutral100,\n },\n header: {\n padding: theme.spacing(3, 3, 0),\n },\n body: {\n paddingLeft: theme.spacing(3),\n },\n title: {\n margin: theme.spacing(3, 0),\n },\n scrollableContainer: {\n overflowY: 'auto',\n height: '100%',\n paddingRight: theme.spacing(3),\n },\n smallContainer: {\n paddingBottom: theme.spacing(3),\n },\n footer: {\n padding: theme.spacing(2, 3, 3),\n },\n}));\n\ninterface ScrollableDialogProps {\n body: ReactNode;\n footer?: ReactNode;\n header?: ReactNode;\n isOpen: boolean;\n title: string;\n}\n\nconst ScrollableDialog = ({\n body,\n footer = null,\n header = null,\n isOpen,\n title,\n}: ScrollableDialogProps) => {\n const [bodyHeight, setBodyHeight] = useState(0);\n const [hasScrollBar, setHasScrollBar] = useState(false);\n const [maxDialogHeight, setMaxDialogHeight] = useState(0);\n\n const { classes, cx } = useStyles();\n\n const headerRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n const titleRef = useRef<HTMLDivElement | null>(null);\n const bodyRef = useRef<HTMLDivElement | null>(null);\n\n const DIALOG_MARGIN = 65;\n const DEFAULT_MAX_HEIGHT = 728;\n const TITLE_MARGIN = 48;\n\n useEffect(() => {\n const handleResize = () => {\n const screenHeight = window.innerHeight;\n const newMaxHeight =\n screenHeight < DEFAULT_MAX_HEIGHT + DIALOG_MARGIN\n ? screenHeight - DIALOG_MARGIN\n : DEFAULT_MAX_HEIGHT;\n setMaxDialogHeight(newMaxHeight);\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const measureHeights = () => {\n const titleHeight = titleRef.current?.clientHeight || 0;\n const headerHeight = headerRef.current?.clientHeight || 0;\n const footerHeight = footerRef.current?.clientHeight || 0;\n\n const contentHeight =\n maxDialogHeight -\n titleHeight -\n headerHeight -\n footerHeight -\n TITLE_MARGIN;\n\n setBodyHeight(contentHeight);\n\n const scrollHeight = bodyRef.current?.scrollHeight || 0;\n setHasScrollBar(scrollHeight > contentHeight);\n };\n\n useEffect(() => {\n if (isOpen) {\n requestAnimationFrame(measureHeights);\n }\n }, [isOpen, header, footer, title, maxDialogHeight]);\n return (\n <Dialog className={classes.dialog} fullWidth maxWidth={false} open={isOpen}>\n <Fade\n in={isOpen}\n onEntered={() => {\n requestAnimationFrame(measureHeights);\n }}\n >\n <Paper className={classes.wrapper}>\n {header ? (\n <div className={classes.header} id=\"dialog-header\">\n {header}\n </div>\n ) : null}\n\n <div className={classes.body}>\n <Typography\n className={classes.title}\n id=\"dialog-title\"\n variant=\"h6\"\n >\n {title}\n </Typography>\n <div\n className={cx(classes.scrollableContainer, {\n [classes.smallContainer]: !hasScrollBar,\n })}\n id=\"dialog-body\"\n style={{\n maxHeight: bodyHeight,\n }}\n >\n {body}\n </div>\n </div>\n\n <Divider />\n\n {footer ? (\n <Box\n className={classes.footer}\n id=\"dialog-footer\"\n sx={{\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {footer}\n </Box>\n ) : null}\n </Paper>\n </Fade>\n </Dialog>\n );\n};\n\nexport default ScrollableDialog;\n","/* eslint-disable no-unused-vars */\nimport * as React from 'react';\n\nimport { Box, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\nimport SearchWithFilters from '@/components/SearchWithFilters/SearchWithFilters';\nimport { WIDTH_TO_SHRINK } from '@/config/constants';\n\ninterface ISearchAndFilterHeaderProps {\n appName: string;\n enterPressedInSearch?: () => void;\n extraButton?: React.ReactNode;\n filtersComponent?: React.ReactNode;\n appliedFiltersComponent?: React.ReactNode;\n filterClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n showFilters: boolean;\n updateFilters?: (filters: any) => void;\n searchValue?: string;\n}\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n alignContent: 'baseline',\n flexDirection: 'row',\n padding: theme.spacing(1),\n justifyContent: 'space-between',\n [theme.breakpoints.down(WIDTH_TO_SHRINK)]: {\n flexDirection: 'column',\n justifyContent: 'start',\n alignItems: 'flex-start',\n },\n },\n leftSection: {\n display: 'flex',\n },\n}));\n\nconst SearchAndFilterHeader = ({\n appName,\n enterPressedInSearch,\n extraButton,\n filterClick,\n showFilters,\n updateFilters,\n filtersComponent,\n appliedFiltersComponent,\n searchValue,\n}: ISearchAndFilterHeaderProps) => {\n const { classes } = useStyles();\n\n return (\n <Paper>\n <Box className={classes.wrapper}>\n <Box className={classes.container}>\n <Box className={classes.leftSection}>\n <AppLabel appName={appName} />\n <SearchWithFilters\n searchValue={searchValue}\n enterPressedInSearch={enterPressedInSearch}\n filterClick={filterClick}\n showFilters={showFilters}\n updateFilters={updateFilters}\n />\n </Box>\n <Box>{extraButton}</Box>\n </Box>\n\n {showFilters ? <Box>{filtersComponent}</Box> : null}\n {appliedFiltersComponent}\n </Box>\n </Paper>\n );\n};\n\nexport default SearchAndFilterHeader;\n","import { useState, ChangeEvent, KeyboardEvent, useEffect } from 'react';\nimport * as React from 'react';\n\nimport {\n ArrowDropDown as ArrowDropDownIcon,\n ArrowDropUp as ArrowDropUpIcon,\n Search as SearchIcon,\n} from '@mui/icons-material';\nimport { Button, Divider, InputBase, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n searchContainer: {\n height: 46,\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n width: 400,\n border: `1px solid ${colors.neutral400}`,\n boxShadow: 'none',\n '&:hover, &:focus, &:active': {\n boxShadow: '0 1px 6px rgba(32,33,36,0.28)',\n },\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n },\n icon: {\n margin: '4px 8px',\n opacity: 0.5,\n },\n filterButton: {\n textTransform: 'capitalize',\n padding: 0,\n marginLeft: 8,\n '&:hover': {\n background: 'none',\n },\n },\n divider: {\n height: 28,\n margin: 4,\n },\n}));\n\ninterface ISearchWithFiltersProps {\n enterPressedInSearch?: () => void;\n filterClick?: React.MouseEventHandler<HTMLButtonElement>;\n handleClick?: () => void;\n searchValue?: string;\n showFilters: boolean;\n updateFilters?: (filters: { search: string }) => void;\n disabled?: boolean;\n}\n\nconst SearchWithFilters = ({\n enterPressedInSearch,\n filterClick,\n handleClick,\n searchValue = '',\n showFilters,\n updateFilters = () => {},\n disabled = false,\n}: ISearchWithFiltersProps) => {\n const [searchText, setSearchText] = useState(searchValue);\n const { classes } = useStyles();\n\n const handleTextChange = (e: ChangeEvent<HTMLInputElement>) => {\n const { value } = e.target;\n setSearchText(value);\n updateFilters({ search: value });\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n enterPressedInSearch?.();\n }\n };\n\n useEffect(() => {\n setSearchText(searchValue);\n }, [searchValue]);\n\n return (\n <Paper className={classes.searchContainer}>\n <SearchIcon className={classes.icon} fontSize=\"small\" />\n <InputBase\n className={classes.input}\n placeholder=\"Search\"\n value={searchText}\n onChange={handleTextChange}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n inputProps={{ 'aria-label': 'search' }}\n />\n <Divider className={classes.divider} orientation=\"vertical\" />\n <Button\n className={classes.filterButton}\n onClick={filterClick}\n disabled={disabled}\n >\n Filters\n {showFilters ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}\n </Button>\n </Paper>\n );\n};\n\nexport default React.memo(SearchWithFilters);\n","import * as React from 'react';\n\nimport { Box } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport AppLabel from '@/components/AppLabel/AppLabel';\nimport OutlinedButton from '@/components/Buttons/OutlinedButton/OutlinedButton';\nimport { WIDTH_TO_SHRINK } from '@/config/constants';\n\nimport SearchWithFiltersForTable from '../SearchWithFilters/SearchWithFiltersForTable';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n alignContent: 'baseline',\n flexDirection: 'row',\n padding: theme.spacing(1),\n justifyContent: 'space-between',\n [theme.breakpoints.down(WIDTH_TO_SHRINK)]: {\n flexDirection: 'column',\n justifyContent: 'start',\n alignItems: 'flex-start',\n },\n },\n leftSection: {\n display: 'flex',\n },\n}));\n\ninterface SearchAndFilterHeaderForTableProps {\n appName: string;\n button?: React.ReactNode;\n copy?: string;\n enterPressedInSearch?(...args: any[]): any;\n isOpen?: boolean;\n onFilterButtonClick?(...args: any[]): any;\n searchedValue?: string;\n showFilterButton?: boolean;\n updateSearch?(...args: any[]): any;\n}\n\nconst SearchAndFilterHeaderForTable = (\n props: SearchAndFilterHeaderForTableProps,\n) => {\n const {\n appName,\n copy,\n updateSearch,\n isOpen,\n onFilterButtonClick,\n showFilterButton,\n enterPressedInSearch,\n button,\n searchedValue,\n } = props;\n const { classes } = useStyles();\n\n return (\n <Box className={classes.container}>\n <Box className={classes.leftSection}>\n <AppLabel appName={appName} />\n\n <SearchWithFiltersForTable\n onFilterButtonClick={onFilterButtonClick}\n isOpen={isOpen}\n updateSearch={updateSearch}\n showFilterButton={showFilterButton}\n enterPressedInSearch={enterPressedInSearch}\n searchedValue={searchedValue}\n />\n\n {copy && (\n <Box\n sx={{\n margin: 0.5,\n }}\n >\n <OutlinedButton copy={copy} />\n </Box>\n )}\n </Box>\n <Box>{button}</Box>\n </Box>\n );\n};\n\nexport default React.memo(SearchAndFilterHeaderForTable);\n","import { useState, memo } from 'react';\n\nimport {\n ArrowDropDown as ArrowDropDownIcon,\n ArrowDropUp as ArrowDropUpIcon,\n Search as SearchIcon,\n} from '@mui/icons-material';\nimport { Box, Button, Divider, InputBase, Paper } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n c_search: {\n height: 46,\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n width: 400,\n boxShadow: 'none',\n border: '1px solid',\n borderColor: colors.neutral400,\n margin: '8px 16px',\n '&:hover': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n '&:focus': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n '&:active': {\n boxShadow: '0 1px 6px 0 rgba(32,33,36,0.28)',\n },\n },\n c_search__input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n },\n c_search__icon: {\n padding: '4px 8px',\n opacity: 0.5,\n alignContent: 'center',\n display: 'flex',\n },\n c_search__bt_icon_filter: {\n padding: 0,\n marginLeft: 8,\n },\n c_search__bt_filter: {\n textTransform: 'capitalize',\n '&:hover': {\n background: 'none',\n },\n },\n c_search__divider: {\n height: 28,\n margin: 4,\n },\n icon: {\n fill: colors.iconSearch,\n },\n}));\n\ninterface SearchWithFiltersForTableProps {\n onFilterButtonClick?(...args: any[]): any;\n isOpen?: boolean;\n updateSearch?(...args: any[]): any;\n enterPressedInSearch?(...args: any[]): any;\n showFilterButton?: boolean;\n searchedValue?: string;\n}\n\nconst SearchWithFiltersForTable = (props: SearchWithFiltersForTableProps) => {\n const {\n onFilterButtonClick,\n isOpen,\n updateSearch,\n showFilterButton,\n enterPressedInSearch,\n searchedValue,\n } = props;\n const { classes } = useStyles();\n const [searchText, setSearchText] = useState('');\n\n const handleTextChange = (e) => {\n const { value } = e.target;\n\n setSearchText(value);\n updateSearch?.(value);\n };\n\n const handleFilterButtonClick = () => {\n onFilterButtonClick?.(!isOpen);\n };\n\n const handleKeyPress = (e) => {\n if (e.key === 'Enter' && typeof enterPressedInSearch === 'function') {\n enterPressedInSearch();\n }\n };\n\n const ArrowIcon = isOpen ? ArrowDropUpIcon : ArrowDropDownIcon;\n return (\n <Paper className={classes.c_search}>\n <Box className={classes.c_search__icon}>\n <SearchIcon className={classes.icon} fontSize=\"small\" />\n </Box>\n\n <InputBase\n className={classes.c_search__input}\n placeholder=\"Search\"\n value={searchedValue || searchText}\n onChange={handleTextChange}\n onKeyDown={handleKeyPress}\n />\n\n {showFilterButton && (\n <>\n <Divider\n className={classes.c_search__divider}\n orientation=\"vertical\"\n />\n\n <Button\n className={classes.c_search__bt_filter}\n onClick={handleFilterButtonClick}\n >\n Filters\n <ArrowIcon className={classes.c_search__bt_icon_filter} />\n </Button>\n </>\n )}\n </Paper>\n );\n};\n\nexport default memo(SearchWithFiltersForTable);\n","import React, { ReactNode } from 'react';\n\nimport { Box, Paper } from '@mui/material';\n\nimport { SearchFieldDebounced } from '../SearchFieldDebounced/SearchFieldDebounced';\n\nexport type SearchHeaderProps = {\n renderButton?: ReactNode;\n renderExtraAction?: ReactNode;\n children?: ReactNode;\n onSearch?: (value: string) => void;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n width?: number;\n};\n\nexport const SearchHeader = ({\n renderButton,\n renderExtraAction,\n children,\n onSearch,\n value,\n onChange,\n onKeyDown,\n width,\n}: SearchHeaderProps) => {\n return (\n <Paper\n sx={{\n display: 'flex',\n flexDirection: 'column',\n padding: 2,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <SearchFieldDebounced\n width={width}\n onSearch={onSearch}\n value={value}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n\n {renderExtraAction}\n </Box>\n\n {renderButton}\n </Box>\n\n {children}\n </Paper>\n );\n};\n","import React from 'react';\n\nimport HistoryIcon from '@mui/icons-material/History';\nimport InfoIcon from '@mui/icons-material/Info';\nimport { Box, Divider, IconButton, Tooltip, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport ExtendedButton from '@/components/Buttons/ExtendedButton/ExtendedButton';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'space-between',\n },\n titleContainer: {\n display: 'flex',\n padding: '48px 0px 8px 0px',\n gap: '8px',\n alignItems: 'center',\n alignSelf: 'stretch',\n },\n icon: {\n color: colors.neutral500,\n },\n typography: {\n cursor: 'pointer',\n textDecoration: 'none',\n color: colors.muiPrimaryBlack,\n },\n actionButtons: {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n marginBottom: 8,\n },\n addButton: {\n color: theme.palette.primary.main,\n },\n}));\n\nexport interface SectionNameProps {\n name: string;\n tooltipDescription?: string;\n sectionId?: string;\n buttonText?: string;\n buttonType?:\n | 'add'\n | 'apps'\n | 'childCare'\n | 'delete'\n | 'edit'\n | 'importExport'\n | 'notes'\n | 'print'\n | 'save'\n | 'upload'\n | 'refresh'\n | 'download'\n | 'publish';\n handleButtonClick?: () => void;\n buttonDisabled?: boolean;\n openHistoryLog?: () => void;\n}\n\nconst SectionName = ({\n name,\n tooltipDescription,\n sectionId,\n handleButtonClick,\n buttonText,\n buttonType = 'add',\n buttonDisabled,\n openHistoryLog,\n}: SectionNameProps) => {\n const { classes } = useStyles();\n\n const handleScroll = (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n e.preventDefault();\n\n if (sectionId) {\n const targetId = sectionId.startsWith('#')\n ? sectionId.slice(1)\n : sectionId;\n const element = document.getElementById(targetId);\n\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }\n }\n };\n\n return (\n <Box className={classes.container}>\n <Box className={classes.titleContainer}>\n <Typography\n variant=\"h5\"\n onClick={handleScroll}\n className={classes.typography}\n >\n {name}\n </Typography>\n {tooltipDescription ? (\n <Tooltip title={tooltipDescription} placement=\"right\">\n <InfoIcon\n fontSize=\"small\"\n data-testid=\"InfoIcon\"\n className={classes.icon}\n />\n </Tooltip>\n ) : null}\n </Box>\n\n <Box className={classes.actionButtons}>\n {buttonText ? (\n <ExtendedButton\n type={buttonType}\n buttonType=\"button\"\n className={classes.addButton}\n color=\"inherit\"\n copy={buttonText || ''}\n disabled={buttonDisabled}\n onClick={handleButtonClick}\n variant=\"text\"\n />\n ) : null}\n\n {openHistoryLog && buttonText && (\n <Divider orientation=\"vertical\" sx={{ height: '24px' }} />\n )}\n\n {openHistoryLog && (\n <IconButton size=\"small\" onClick={() => openHistoryLog()}>\n <HistoryIcon />\n </IconButton>\n )}\n </Box>\n </Box>\n );\n};\n\nexport default SectionName;\n","import { FC, useState } from 'react';\n\nimport {\n Box,\n Checkbox,\n CircularProgress,\n FormControl,\n FormHelperText,\n InputLabel,\n ListItemText,\n MenuProps,\n Select,\n SelectProps,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport { Option } from '../SmartSelect/SmartSelect';\n\nexport type SmartMultipleSelectProps = {\n inputLabel?: string;\n variant?: SelectProps['variant'];\n size?: SelectProps['size'];\n error?: boolean;\n values?: Option[];\n defaultValues?: Option[];\n onOpen?: () => void;\n onChange?: (values: Option[]) => void;\n onClose?: (values: Option[]) => void;\n menuOptions?: Option[];\n isLoading?: boolean;\n disabled?: boolean;\n emptyMessage?: string;\n helperText?: string;\n menuProps?: Partial<MenuProps>;\n};\n\nexport const SmartMultipleSelect: FC<SmartMultipleSelectProps> = ({\n inputLabel,\n variant = 'standard',\n size,\n error,\n values,\n defaultValues,\n onChange,\n onOpen,\n onClose,\n menuOptions,\n isLoading,\n disabled,\n emptyMessage = 'No options.',\n helperText,\n menuProps,\n}) => {\n const [localValues, setLocalValues] = useState<Option[]>(defaultValues ?? []);\n\n const handleChangeOption = (option: Option) => {\n let newValues: Option[] = [];\n\n const selectedIndex = localValues.findIndex(\n (val) => val.value === option.value,\n );\n if (selectedIndex === -1) {\n newValues = [...localValues, option];\n } else {\n newValues = localValues.filter((_, i) => i !== selectedIndex);\n }\n setLocalValues(newValues);\n onChange?.(newValues);\n };\n\n const renderMenuContent = () =>\n !menuOptions?.length ? (\n <Box\n sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}\n >\n <Typography>{emptyMessage}</Typography>\n </Box>\n ) : (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {menuOptions?.map((option, index) => {\n const selectedValues = values ?? localValues ?? [];\n const isSelected = selectedValues.some(\n (selected) => selected.value === option.value,\n );\n\n return (\n <Box\n key={option.value ?? index}\n onClick={() => handleChangeOption(option)}\n sx={{\n p: 0.5,\n display: 'flex',\n cursor: 'pointer',\n backgroundColor: isSelected\n ? colors.lightBlueBackground\n : undefined,\n }}\n >\n <Checkbox disableRipple sx={{ py: 0.5 }} checked={isSelected} />\n\n <ListItemText primary={option.label} />\n </Box>\n );\n })}\n </Box>\n );\n\n return (\n <FormControl\n fullWidth\n variant={variant}\n size={size}\n disabled={disabled}\n error={error}\n >\n <InputLabel>{inputLabel}</InputLabel>\n\n <Select\n multiple\n label={inputLabel}\n error={error}\n value={values ?? localValues}\n defaultValue={defaultValues}\n MenuProps={menuProps}\n onOpen={onOpen}\n onClose={() => onClose?.(localValues)}\n renderValue={(selectedValues) => {\n const valuesString = selectedValues.map((v) => v.label)?.join(', ');\n\n return (\n <DynamicOverflowTooltip tooltipDescription={valuesString}>\n {valuesString}\n </DynamicOverflowTooltip>\n );\n }}\n >\n {isLoading ? (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <CircularProgress size={24} />\n </Box>\n ) : (\n renderMenuContent()\n )}\n </Select>\n\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { memo } from 'react';\n\nimport { Typography } from '@mui/material';\nimport { red } from '@mui/material/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()((theme) => ({\n red: {\n backgroundColor: red['50'],\n color: red['500'],\n padding: theme.spacing(1.5),\n borderRadius: '5px',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n marginRight: theme.spacing(2),\n width: 'fit-content',\n },\n}));\n\ninterface SquareLabelProps {\n color?: string;\n copy?: any;\n}\n\nconst SquareLabel = ({ color, copy }: SquareLabelProps) => {\n const { classes } = useStyles();\n return <Typography className={classes[color as any]}>{copy}</Typography>;\n};\n\nexport default memo(SquareLabel);\n","import { memo } from 'react';\n\nimport { Grid, Switch } from '@mui/material';\nimport { withStyles } from 'tss-react/mui';\n\ninterface LSwitchProps {\n classes?: any;\n checked?: any;\n labelOn?: any;\n labelOff?: any;\n handleChange?: any;\n disabled: any;\n}\n\nconst LSwitch = ({\n checked,\n labelOn,\n labelOff,\n handleChange,\n classes,\n disabled,\n}: LSwitchProps) => (\n <div className={classes.c_switch}>\n <Grid\n component=\"label\"\n container\n spacing={1}\n sx={{\n alignItems: 'center',\n }}\n >\n {labelOff && <Grid>{labelOff}</Grid>}\n <Grid>\n <Switch\n checked={checked}\n color=\"primary\"\n onChange={handleChange}\n disabled={disabled}\n />\n </Grid>\n {labelOn && <Grid>{labelOn}</Grid>}\n </Grid>\n </div>\n);\n\nconst LabelledSwitch = withStyles(LSwitch, (theme) => ({\n c_switch: {},\n default: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n primary: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n secondary: {\n margin: 16,\n padding: 0,\n fontSize: '1rem',\n },\n}));\n\nexport default memo(LabelledSwitch);\n","import React, { useState, useEffect } from 'react';\n\nimport { Menu } from '@mui/material';\nimport classNames from 'classnames';\n\nimport { ActiveFiltersIconButton } from '../ActiveFiltersIconButton/ActiveFiltersIconButton';\nimport { AutocompleteFilterMenuContent } from '../AutocompleteFilterMenuContent/AutocompleteFilterMenuContent';\nimport { CheckboxFilterMenuContent } from '../CheckboxFilterMenuContent/CheckboxFilterMenuContent';\nimport {\n HeaderFilterObject,\n HeaderFilterOptions,\n HeaderFilters,\n HeadCell,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nconst MAX_WIDTH = 276;\n\nexport type SmartTableHeaderFilterMenuProps = {\n headCell: HeadCell;\n headerFilters: HeaderFilters;\n numActiveFilters: number;\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n onApplyFilters?: TableDesktopProps['onApplyFilters'];\n};\n\nconst findFilterIndex = (\n filters: HeaderFilterOptions,\n filterOption: string | HeaderFilterObject,\n) =>\n filters.findIndex((item: string | HeaderFilterObject) => {\n if (typeof item === 'string' && typeof filterOption === 'string') {\n return item === filterOption;\n }\n if (typeof item === 'object' && typeof filterOption === 'object') {\n return item.id === filterOption.id;\n }\n return false;\n });\n\nexport const SmartTableHeaderFilterMenu = ({\n headCell,\n numActiveFilters,\n headerFilters,\n shouldShowCheckOnFilter,\n onApplyFilters,\n}: SmartTableHeaderFilterMenuProps) => {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [filterOptionsData, setFilterOptionsData] = useState<\n HeaderFilterOptions | undefined\n >();\n const [selectedFilterOptions, setSelectedFilterOptions] =\n useState<HeaderFilterOptions>(headerFilters[headCell.id] ?? []);\n\n const numFilterOptions = filterOptionsData?.length ?? 0;\n\n useEffect(() => {\n if (headCell.filterOptions) {\n setFilterOptionsData(headCell.filterOptions);\n } else if (headCell.filterType === 'boolean') {\n setFilterOptionsData([\n { id: 'true', label: 'Yes' },\n { id: 'false', label: 'No' },\n ]);\n }\n }, [headCell.filterOptions]);\n\n const handleFilterMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\n if (!numFilterOptions && headCell.filterType === 'default') {\n headCell.refetchFilterOptions?.();\n }\n setAnchorEl(event.currentTarget);\n };\n\n const handleFilterMenuClose = () => {\n setSelectedFilterOptions(headerFilters[headCell.id]);\n setAnchorEl(null);\n };\n\n const handleSelectAllChange = (checked: boolean) => {\n if (checked) {\n setSelectedFilterOptions([\n ...(filterOptionsData ?? []),\n ] as HeaderFilterOptions);\n return;\n }\n\n setSelectedFilterOptions([]);\n };\n\n const handleFilterOptionChange = (option: string | HeaderFilterObject) => {\n const selectedIndex = findFilterIndex(selectedFilterOptions, option);\n\n let newSelected: HeaderFilterOptions;\n\n if (selectedIndex === -1) {\n if (typeof option === 'string') {\n newSelected = [...(selectedFilterOptions as string[]), option];\n } else {\n newSelected = [\n ...(selectedFilterOptions as HeaderFilterObject[]),\n option,\n ];\n }\n } else {\n newSelected = selectedFilterOptions.filter(\n (_, index) => index !== selectedIndex,\n ) as HeaderFilterOptions;\n }\n\n setSelectedFilterOptions(newSelected);\n };\n\n const handleApplyFiltersClick = (shouldSave: boolean) => {\n const updatedFilters: HeaderFilters = {\n ...headerFilters,\n [headCell.id]: [...selectedFilterOptions] as HeaderFilterOptions,\n };\n\n onApplyFilters?.(updatedFilters, shouldSave);\n setAnchorEl(null);\n };\n\n useEffect(() => {\n setSelectedFilterOptions(headerFilters[headCell.id] ?? []);\n }, [headerFilters, headCell.id]);\n\n return (\n <>\n <ActiveFiltersIconButton\n numActiveFilters={numActiveFilters}\n handleClick={handleFilterMenuOpen}\n className={classNames('filter-menu-trigger', {\n 'has-active-filters': !!numActiveFilters || !!anchorEl,\n })}\n />\n\n <Menu\n open={!!anchorEl}\n onClose={handleFilterMenuClose}\n anchorEl={anchorEl}\n data-testid=\"filter-menu\"\n slotProps={{\n list: {\n sx: { p: 0, maxWidth: MAX_WIDTH },\n },\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n {headCell.filterType === 'autocomplete' ? (\n <AutocompleteFilterMenuContent\n columnId={headCell.id}\n labelFieldName={headCell.fieldName ?? ''}\n isLoading={headCell.isFetchingFilterOptions}\n filterOptions={filterOptionsData}\n onAutocompleteSearch={headCell.onAutocompleteSearch}\n selectedFilterOptions={selectedFilterOptions}\n onFilterOptionChange={handleFilterOptionChange}\n onApplyFiltersClick={handleApplyFiltersClick}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : (\n <CheckboxFilterMenuContent\n columnId={headCell.id}\n labelFieldName={headCell.fieldName ?? ''}\n isLoading={headCell.isFetchingFilterOptions}\n selectedFilterOptions={selectedFilterOptions}\n filterOptions={filterOptionsData ?? []}\n onSelectAllChange={handleSelectAllChange}\n onFilterOptionChange={handleFilterOptionChange}\n onApplyFiltersClick={handleApplyFiltersClick}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n )}\n </Menu>\n </>\n );\n};\n","import { MouseEvent, ChangeEvent, memo } from 'react';\n\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { SmartTableHeaderFilterMenu } from '../SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu';\nimport {\n HeaderFilters,\n HeadCell,\n Order,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\ntype SmartTableHeaderProps = {\n order: Order;\n orderBy: string;\n headCells: HeadCell[];\n numSelectedRows: number;\n numRows: number;\n enableCheckboxSelection?: boolean;\n headerFilters: HeaderFilters;\n onRequestSort: (event: MouseEvent<unknown>, property: string) => void;\n onSelectAllClick: (event: ChangeEvent<HTMLInputElement>) => void;\n onApplyFilters?: TableDesktopProps['onApplyFilters'];\n shouldShowCheckOnFilter?: TableDesktopProps['shouldShowCheckOnFilter'];\n};\n\nexport const SmartTableHeader = memo(\n ({\n order,\n orderBy,\n headCells,\n numSelectedRows,\n numRows,\n enableCheckboxSelection = false,\n headerFilters,\n onRequestSort,\n onSelectAllClick,\n onApplyFilters,\n shouldShowCheckOnFilter,\n }: SmartTableHeaderProps) => {\n const createSortHandler = (property) => (event) => {\n onRequestSort(event, property);\n };\n\n const isSortActive = (headCellId: string) => orderBy === headCellId;\n\n return (\n <TableHead>\n <TableRow>\n {enableCheckboxSelection ? (\n <TableCell\n padding=\"checkbox\"\n sx={{ backgroundColor: colors.neutral100 }}\n >\n <Checkbox\n color=\"primary\"\n disableRipple\n indeterminate={numSelectedRows > 0 && numSelectedRows < numRows}\n checked={numRows > 0 && numSelectedRows === numRows}\n onChange={onSelectAllClick}\n />\n </TableCell>\n ) : null}\n\n {headCells.map((headCell) => (\n <TableCell\n key={headCell.id}\n align=\"left\"\n width={headCell.width ?? 'auto'}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={{\n backgroundColor: colors.neutral100,\n whiteSpace: 'nowrap',\n '& .filter-menu-trigger': {\n visibility: 'hidden',\n opacity: 0,\n transition: 'visibility 0.1s, opacity 0.1s ease-in',\n },\n '&:hover .filter-menu-trigger, & .filter-menu-trigger.has-active-filters':\n {\n visibility: 'visible',\n opacity: 1,\n },\n '&:hover .MuiTableSortLabel-root': {\n '& .MuiTableSortLabel-icon': {\n opacity: 1,\n },\n },\n }}\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n gap={headCell.disableSort ? 1 : 0}\n >\n {headCell.disableSort ? (\n (headCell.renderHeader ?? (\n <Tooltip title={headCell.labelTooltip ?? ''} arrow>\n <Typography variant=\"subtitle2\" mt={0.25} mb={-0.25}>\n {headCell.label}\n </Typography>\n </Tooltip>\n ))\n ) : (\n <Tooltip title={headCell.labelTooltip ?? ''} arrow>\n <TableSortLabel\n data-testid=\"table-sort-label\"\n active={isSortActive(headCell.id)}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.renderHeader ?? headCell.label}\n\n {/* Not visible, only for accessibility purposes */}\n {orderBy === headCell.id ? (\n <span\n style={{\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n }}\n >\n {order === 'desc'\n ? 'sorted descending'\n : 'sorted ascending'}\n </span>\n ) : null}\n </TableSortLabel>\n </Tooltip>\n )}\n\n {headCell.filterType ? (\n <SmartTableHeaderFilterMenu\n headCell={headCell}\n headerFilters={headerFilters}\n numActiveFilters={headerFilters[headCell.id]?.length ?? 0}\n onApplyFilters={onApplyFilters}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n ) : null}\n </Box>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n },\n);\n","import { useLayoutEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport {\n Box,\n Paper,\n Table as MUITable,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n} from '@mui/material';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport debounce from 'lodash/debounce';\nimport { makeStyles } from 'tss-react/mui';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport TableLoading from '../TableLoading/TableLoading';\nimport { calculateRowsPerPage, getSorting, stableSort } from './helpers';\n\nconst useStyles = makeStyles()(() => ({\n root: {\n height: 'calc(100vh - 262px)',\n overflow: 'scroll',\n },\n paper: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n header: {\n '& .MuiTableSortLabel-root': {\n fontWeight: 600,\n fontSize: '.875rem',\n },\n },\n container: {\n maxHeight: 'calc(100% - 0)',\n },\n}));\n\ninterface TableProps {\n headCells?: {\n id?: string;\n label?: string;\n numeric?: boolean;\n disablePadding?: boolean;\n }[];\n data?: {}[];\n RenderItem?: React.ComponentType<any> | null;\n isLoading?: boolean;\n updateSort?(...args: any[]): any;\n page?: number;\n rowsPerPage?: number;\n onRowClick?(...args: any[]): any;\n serverRendered?: boolean;\n appliedFilters?: any;\n doNotCalculateRows?: any;\n}\n\nconst Table = ({\n appliedFilters,\n data,\n doNotCalculateRows,\n headCells,\n isLoading,\n onRowClick,\n page = 0,\n RenderItem = null,\n rowsPerPage: defaultRowsPerPage = 10,\n serverRendered,\n updateSort,\n}: TableProps) => {\n const [order, setOrder] = useState(appliedFilters?.sortDir || 'desc');\n const [orderBy, setOrderBy] = useState(\n appliedFilters?.sortField || 'delivery_date',\n );\n const [rowsPerPage, setRowsPerPage] = useState(defaultRowsPerPage);\n\n const { classes } = useStyles();\n\n const rowHeight = 56;\n const emptyRows =\n rowsPerPage - Math.min(rowsPerPage, data!.length - page * rowsPerPage);\n\n const handleRequestSort = (event, property) => {\n const isAsc = orderBy === property && order === 'asc';\n const orderDir = isAsc ? 'desc' : 'asc';\n\n setOrder(orderDir);\n setOrderBy(property);\n\n if (updateSort) {\n updateSort(property, orderDir);\n }\n };\n\n useLayoutEffect(() => {\n if (!doNotCalculateRows) {\n return;\n }\n\n function updateRowsPerPage() {\n const newRowsPerPage = calculateRowsPerPage(rowHeight);\n setRowsPerPage(newRowsPerPage);\n }\n\n updateRowsPerPage();\n const debounced = debounce(updateRowsPerPage, 150);\n window.addEventListener('resize', debounced);\n\n return () => {\n window.removeEventListener('resize', debounced);\n };\n }, [doNotCalculateRows]);\n\n const createSortHandler = (property) => (event) => {\n handleRequestSort(event, property);\n };\n\n const getTableRows = () => {\n const index = page;\n const rows = serverRendered\n ? data\n : stableSort(data, getSorting(order, orderBy)).slice(\n index * rowsPerPage,\n index * rowsPerPage + rowsPerPage,\n );\n\n const rowsComponents = rows.map((row) => {\n if (RenderItem) {\n return <RenderItem key={row.id} {...row} />;\n }\n\n return (\n <TableRow key={row.id} hover onClick={() => onRowClick?.(row)}>\n {headCells?.map((column: any) => (\n <TableCell key={column.id}>{row[column.id]}</TableCell>\n ))}\n </TableRow>\n );\n });\n\n if (emptyRows > 0 && rowsPerPage > emptyRows) {\n rowsComponents.push(\n <TableRow key={uuidv4()} style={{ height: rowHeight * emptyRows }}>\n <TableCell colSpan={8} />\n </TableRow>,\n );\n }\n\n return rowsComponents;\n };\n\n return (\n <Paper className={classes.root}>\n <Box className={classes.paper}>\n {isLoading ? (\n <TableLoading rowHeight={rowHeight} rowsPerPage={rowsPerPage} />\n ) : (\n <TableContainer className={classes.container}>\n <MUITable size=\"medium\" stickyHeader>\n <TableHead className={classes.header}>\n <TableRow>\n {headCells?.map((headCell) => (\n <TableCell\n key={headCell.id}\n align=\"left\"\n sortDirection={\n orderBy === headCell.id ? order : undefined\n }\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.label}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n\n <TableBody>\n {getTableRows()}\n {rowsPerPage === emptyRows && (\n <TableRow style={{ height: rowHeight * emptyRows }}>\n <TableCell colSpan={8} align=\"center\">\n Nothing to display\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </MUITable>\n </TableContainer>\n )}\n </Box>\n </Paper>\n );\n};\n\nexport default Table;\n","import React from 'react';\n\nimport { Box, Skeleton } from '@mui/material';\n\ninterface TableLoadingProps {\n rowsPerPage?: number;\n rowHeight?: number;\n}\n\nconst TableLoading: React.FC<TableLoadingProps> = ({\n rowsPerPage,\n rowHeight,\n}) => (\n <Box>\n {Array.from({ length: rowsPerPage ?? 0 }).map((_, index) => (\n <Skeleton\n animation=\"pulse\"\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n data-testid=\"table-loading-skeleton\"\n style={{ margin: '8px', opacity: 0.4 }}\n variant=\"rectangular\"\n height={rowHeight}\n />\n ))}\n </Box>\n);\n\nexport default TableLoading;\n","export function stableSort(array, cmp) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = cmp(a[0], b[0]);\n if (order !== 0) {\n return order;\n }\n return a[1] - b[1];\n });\n return stabilizedThis.map((el) => el[0]);\n}\n\nfunction descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getSorting(order, orderBy) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nexport function calculateRowsPerPage(rowHeight) {\n const appContainerDom = document.getElementById('mainContainer');\n const headerDom = document.getElementById('aboveTableHeader');\n\n if (appContainerDom && headerDom) {\n return Math.floor(\n (appContainerDom.clientHeight - headerDom.clientHeight - 24) / rowHeight -\n 2,\n );\n }\n return 1;\n}\n","import {\n ComponentType,\n useMemo,\n useState,\n MouseEvent,\n ReactNode,\n ChangeEvent,\n useEffect,\n useRef,\n} from 'react';\n\nimport { Paper, Table, TableBody, TableContainer, Box } from '@mui/material';\n\nimport { SmartTableHeader } from '../SmartTableHeader/SmartTableHeader';\nimport { TableDesktopFooterProps } from '../TableDesktopFooter/TableDesktopFooter';\nimport { TableDesktopLoadingState } from '../TableDesktopLoadingState/TableDesktopLoadingState';\nimport { TableDesktopNoColumnsMessage } from '../TableDesktopNoColumnsMessage/TableDesktopNoColumnsMessage';\nimport { TableDesktopRows } from '../TableDesktopRows/TableDesktopRows';\nimport { TableDesktopRowSelectionBar } from '../TableDesktopRowSelectionBar/TableDesktopRowSelectionBar';\nimport { TableDesktopToolbarProps } from '../TableDesktopToolbar/TableDesktopToolbar';\nimport TableEmptyResult from '../TableEmptyResult/TableEmptyResult';\n\nexport type Order = 'asc' | 'desc';\n\nexport type EditableCellType =\n | 'select'\n | 'multipleSelect'\n | 'checkbox'\n | 'text'\n | 'numeric'\n | 'date'\n | 'time'\n | 'tags';\n\nexport type HeaderFilterObject = {\n id: number | string;\n [key: string]: number | string;\n};\n\nexport type HeaderFilterOptions = string[] | HeaderFilterObject[];\n\nexport type HeaderFilters = {\n [key: string]: HeaderFilterOptions;\n};\n\nexport type UpdateEditableCellParams = {\n rowId?: RowId;\n columnId: string;\n value: string | number | boolean | (string | number)[] | null;\n label: string | number | boolean | (string | number)[] | null;\n};\n\nexport type RowId = string | number;\n\nexport type HeadCell = {\n id: string;\n label?: string;\n labelTooltip?: string;\n fieldName?: string;\n numeric?: boolean;\n disablePadding?: boolean;\n width?: number | string;\n enabled?: boolean;\n disableSort?: boolean;\n renderHeader?: ReactNode;\n filterType?: 'default' | 'autocomplete' | 'boolean';\n filterOptions?: HeaderFilterOptions;\n refetchFilterOptions?: () => void;\n isFetchingFilterOptions?: boolean;\n editableCellType?: EditableCellType;\n validateInput?: (value: string | null) => boolean;\n onUpdateEditableCell?: (params: UpdateEditableCellParams) => void;\n onAutocompleteSearch?: (value: string) => void;\n allowBlankSelectOption?: boolean;\n bulkUpdateDisabled?: boolean;\n};\n\nexport type TableDesktopProps = {\n data: any[];\n headCells: HeadCell[];\n RenderItem: ComponentType<any>;\n renderToolbar?: (props: TableDesktopToolbarProps) => ReactNode;\n renderFooter?: (props: {\n refetchData: TableDesktopFooterProps['refetchData'];\n isFetching: TableDesktopFooterProps['isFetching'];\n }) => ReactNode;\n appliedFilters?: any;\n headerFilters?: HeaderFilters;\n children?: ReactNode;\n height?: number | string;\n rowHeight?: number;\n rowsPerPage?: number;\n totalDataCount?: number;\n isLoading?: boolean;\n enableEditMode?: boolean;\n disableInternalSort?: boolean;\n updateSort?: (sortField: string, sortDir: Order) => void;\n showClearFilterButton?: boolean;\n handleClickOnClearFiltersButton?: () => void;\n deleteItem?: (\n id: number,\n contentTypeName?: string,\n appTypeName?: string,\n ) => void;\n keyField?: string | ((rowData: any) => string);\n tableLayout?: 'fixed' | 'auto';\n onApplyFilters?: (updatedFilters: HeaderFilters, shouldSave: boolean) => void;\n refetchData?: () => Promise<unknown>;\n shouldShowCheckOnFilter?: (\n columnId: string,\n filterOption?: string | HeaderFilterObject,\n ) => boolean;\n};\n\nconst resolveKeyValue = (\n keyField: string | ((rowData: any) => string),\n rowData: any,\n): RowId => {\n if (typeof keyField === 'string') {\n return rowData[keyField];\n }\n return keyField?.(rowData);\n};\n\nexport const TableDesktop = ({\n data = [],\n headCells,\n RenderItem,\n renderToolbar,\n renderFooter,\n appliedFilters,\n headerFilters = {},\n children,\n height,\n rowHeight = 56,\n rowsPerPage = 10,\n totalDataCount = 0,\n isLoading = false,\n enableEditMode = false,\n disableInternalSort = false,\n updateSort,\n showClearFilterButton,\n handleClickOnClearFiltersButton,\n deleteItem,\n keyField = 'id',\n tableLayout = 'auto',\n onApplyFilters,\n shouldShowCheckOnFilter,\n refetchData,\n}: TableDesktopProps) => {\n const tableToolbarMenuButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const [tableToolbarMenuAnchor, setTableToolbarMenuAnchor] =\n useState<HTMLButtonElement | null>(null);\n const [order, setOrder] = useState<Order>(appliedFilters?.sortDir || 'desc');\n const [orderBy, setOrderBy] = useState<string>(\n appliedFilters?.sortField || 'delivery_date',\n );\n const [selectedRows, setSelectedRows] = useState<Set<RowId>>(new Set());\n const [isRowsFromAllPagesSelected, setIsRowsFromAllPagesSelected] =\n useState(false);\n const [isBulkChangesMode, setIsBulkChangesMode] = useState(false);\n\n const numRows = data.length;\n const numSelectedRows = useMemo(() => {\n const currentPageIds = new Set(\n data.map((row) => resolveKeyValue(keyField, row)),\n );\n return [...selectedRows].filter((id) => currentPageIds.has(id)).length;\n }, [data, selectedRows, keyField]);\n\n const isEveryRowInPageSelected = numRows > 0 && numSelectedRows === numRows;\n\n const visibleHeadCells = useMemo(\n () => headCells.filter((headCell) => headCell?.enabled ?? true),\n [headCells],\n );\n\n const handleClickToolbarMenuOpen = () => {\n setTableToolbarMenuAnchor(tableToolbarMenuButtonRef.current);\n };\n\n const handleRequestSort = (_event: MouseEvent<unknown>, property: string) => {\n const isAsc = orderBy === property && order === 'asc';\n const orderDir = isAsc ? 'desc' : 'asc';\n setOrder(orderDir);\n setOrderBy(property);\n if (updateSort) {\n updateSort(property, orderDir);\n }\n };\n\n const selectAllRowsInPage = () => {\n const allRowsIds = new Set(\n data.map((row) => resolveKeyValue(keyField, row)),\n );\n setSelectedRows(allRowsIds);\n };\n\n const resetSelectedRows = () => {\n setSelectedRows(new Set());\n setIsRowsFromAllPagesSelected(false);\n };\n\n const handleSelectAllClick = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.checked) {\n selectAllRowsInPage();\n return;\n }\n\n resetSelectedRows();\n };\n\n const handleRowCheckboxChange = (\n event: ChangeEvent<unknown>,\n rowId: RowId,\n ) => {\n event.stopPropagation();\n setSelectedRows((prev) => {\n const newSelected = new Set(prev);\n\n if (newSelected.has(rowId)) {\n newSelected.delete(rowId);\n } else {\n newSelected.add(rowId);\n }\n\n if (newSelected.size < numRows) {\n setIsRowsFromAllPagesSelected(false);\n }\n return newSelected;\n });\n };\n\n const handleSelectRowsFromAllPagesClick = () => {\n setIsRowsFromAllPagesSelected(true);\n selectAllRowsInPage();\n };\n\n const handleClearSelectionClick = () => {\n resetSelectedRows();\n };\n\n const handleApplyFilters = (\n updatedFilters: HeaderFilters,\n shouldSave: boolean,\n ) => {\n resetSelectedRows();\n onApplyFilters?.(updatedFilters, shouldSave);\n };\n\n const handleChangeBulkChangesMode = (checked: boolean) => {\n setIsBulkChangesMode(checked);\n if (!checked) {\n resetSelectedRows();\n refetchData?.();\n }\n };\n\n useEffect(() => {\n if (isRowsFromAllPagesSelected) {\n selectAllRowsInPage();\n }\n }, [isRowsFromAllPagesSelected, data]);\n\n const renderBody = () => {\n if (isLoading) {\n return (\n <TableDesktopLoadingState\n numRows={Math.min(rowsPerPage, 10)}\n numColumns={visibleHeadCells.length + (isBulkChangesMode ? 1 : 0)}\n rowHeight={rowHeight}\n />\n );\n }\n\n if (numRows === 0) {\n return (\n <TableEmptyResult\n showClearFilterButton={showClearFilterButton}\n handleClickOnClearFiltersButton={handleClickOnClearFiltersButton}\n colSpan={\n isBulkChangesMode\n ? visibleHeadCells.length + 1\n : visibleHeadCells.length\n }\n />\n );\n }\n\n return (\n <TableDesktopRows\n data={data}\n RenderItem={RenderItem}\n visibleHeadCells={visibleHeadCells}\n getRowId={(rowData) => resolveKeyValue(keyField, rowData)}\n order={order}\n orderBy={orderBy}\n disableInternalSort={disableInternalSort}\n enableCheckboxSelection={isBulkChangesMode}\n enableEditMode={!isBulkChangesMode && enableEditMode}\n selectedRows={selectedRows}\n onRowCheckboxChange={handleRowCheckboxChange}\n rowHeight={rowHeight}\n deleteItem={deleteItem}\n />\n );\n };\n\n return (\n <Box\n sx={{\n height,\n display: 'flex',\n justifyContent: 'space-between',\n justifyItems: 'stretch',\n }}\n >\n <Paper\n sx={{\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n >\n {renderToolbar\n ? renderToolbar({\n headCells,\n headerFilters,\n selectedRows: [...selectedRows],\n isDataEmpty: numRows === 0,\n totalDataCount,\n isRowsFromAllPagesSelected,\n refetchData,\n tableToolbarMenuButtonRef,\n tableToolbarMenuAnchor,\n onCloseMenu: () => setTableToolbarMenuAnchor(null),\n onClickToolbarMenuOpen: handleClickToolbarMenuOpen,\n isBulkChangesMode,\n onChangeBulkChangesMode: handleChangeBulkChangesMode,\n })\n : null}\n\n <TableDesktopRowSelectionBar\n isEveryRowInPageSelected={isEveryRowInPageSelected}\n isRowsFromAllPagesSelected={isRowsFromAllPagesSelected}\n numSelectedRows={numSelectedRows}\n totalRowCount={totalDataCount}\n onSelectRowsFromAllPagesClick={handleSelectRowsFromAllPagesClick}\n onClearSelectionClick={handleClearSelectionClick}\n />\n\n <TableContainer\n sx={{\n flexGrow: 1,\n minHeight: 0,\n maxHeight: '100%',\n '&::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: (theme) => theme.palette.grey[100],\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: (theme) => theme.palette.grey[400],\n borderRadius: '10px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: (theme) => theme.palette.grey[500],\n },\n }}\n >\n <Table stickyHeader aria-label=\"sticky-table\" sx={{ tableLayout }}>\n {visibleHeadCells.length === 0 ? (\n <TableDesktopNoColumnsMessage\n onClickNoColumnsMessageOpenMenu={handleClickToolbarMenuOpen}\n />\n ) : (\n <>\n <SmartTableHeader\n order={order}\n orderBy={orderBy}\n numSelectedRows={numSelectedRows}\n numRows={numRows}\n enableCheckboxSelection={isBulkChangesMode}\n headCells={visibleHeadCells}\n headerFilters={headerFilters ?? {}}\n onRequestSort={handleRequestSort}\n onSelectAllClick={handleSelectAllClick}\n onApplyFilters={handleApplyFilters}\n shouldShowCheckOnFilter={shouldShowCheckOnFilter}\n />\n <TableBody>{renderBody()}</TableBody>\n </>\n )}\n </Table>\n </TableContainer>\n\n {children}\n\n {renderFooter\n ? renderFooter({\n refetchData,\n isFetching: isLoading,\n })\n : null}\n </Paper>\n </Box>\n );\n};\n","import { FC } from 'react';\n\nimport { Skeleton, TableCell, TableRow } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type TableDesktopLoadingStateProps = {\n numRows: number;\n numColumns: number;\n rowHeight?: number;\n};\n\nconst getRange = (n: number) => Array.from({ length: n }, (_, i) => i + 1);\n\nexport const TableDesktopLoadingState: FC<TableDesktopLoadingStateProps> = ({\n numRows,\n numColumns,\n rowHeight = 56,\n}) => {\n return getRange(numRows).map((rowNum) => (\n <TableRow key={rowNum}>\n {getRange(numColumns).map((colNum) => (\n <TableCell key={colNum}>\n <Skeleton\n animation=\"pulse\"\n variant=\"rounded\"\n height={rowHeight - 33}\n sx={{ bgcolor: colors.neutral100 }}\n data-testid=\"loading-skeleton\"\n />\n </TableCell>\n ))}\n </TableRow>\n ));\n};\n","import TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport Typography from '@mui/material/Typography';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { BaseIconButton } from '../Buttons/BaseButton/BaseIconButton';\nimport IconTableEdit from '../icons/IconTableEdit';\n\ntype TableDesktopNoColumnsMessageProps = {\n onClickNoColumnsMessageOpenMenu?: () => void;\n};\n\nexport const TableDesktopNoColumnsMessage = ({\n onClickNoColumnsMessageOpenMenu,\n}: TableDesktopNoColumnsMessageProps) => (\n <TableBody>\n <TableRow>\n <TableCell\n sx={{\n py: 8,\n gap: 2,\n borderBottom: 'none',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Typography variant=\"subtitle2\" fontSize={16}>\n Customise your view\n </Typography>\n\n <Typography variant=\"subtitle1\" align=\"center\" color=\"textSecondary\">\n Open the menu to customise your table and search.\n </Typography>\n\n <Typography\n variant=\"subtitle1\"\n align=\"center\"\n color=\"textSecondary\"\n sx={{\n backgroundColor: colors.neutral150,\n padding: 1,\n borderRadius: 1,\n }}\n >\n Tips: <Typography component=\"strong\">Save as default</Typography> to\n keep these columns for future views\n </Typography>\n\n <BaseIconButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onClickNoColumnsMessageOpenMenu}\n icon={<IconTableEdit fill={colors.white} />}\n >\n OPEN MENU\n </BaseIconButton>\n </TableCell>\n </TableRow>\n </TableBody>\n);\n","import { ReactNode } from 'react';\n\nimport { Button, ButtonProps } from '@mui/material';\n\ninterface BaseIconButtonProps extends ButtonProps {\n icon?: ReactNode;\n}\n\nexport const BaseIconButton = ({ icon, sx, ...props }: BaseIconButtonProps) => {\n return (\n <Button\n sx={{\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 100,\n ...sx,\n }}\n {...props}\n >\n {icon}\n {props.children}\n </Button>\n );\n};\n","import { ChangeEvent, ComponentType, FC } from 'react';\n\nimport {\n HeadCell,\n Order,\n RowId,\n TableDesktopProps,\n} from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopRowsProps = {\n data: any[];\n RenderItem: ComponentType<any>;\n visibleHeadCells: HeadCell[];\n getRowId: (rowData: any) => RowId;\n order: Order;\n orderBy: string;\n rowHeight: number;\n disableInternalSort: boolean;\n enableCheckboxSelection: boolean;\n enableEditMode: boolean;\n selectedRows: Set<RowId>;\n onRowCheckboxChange: (event: ChangeEvent<unknown>, rowId: RowId) => void;\n deleteItem?: TableDesktopProps['deleteItem'];\n};\n\nconst descendingComparator = (a: any, b: any, orderBy: string) => {\n const objA = a[orderBy];\n const objB = b[orderBy];\n\n const valA = typeof objA === 'object' ? objA?.name : objA;\n const valB = typeof objB === 'object' ? objB?.name : objB;\n\n if (!valA && !valB) {\n return 0;\n }\n if (valA && !valB) {\n return -1;\n }\n if (!valA && valB) {\n return 1;\n }\n if (valA > valB) {\n return -1;\n }\n if (valA < valB) {\n return 1;\n }\n return 0;\n};\n\nconst stableSort = (array: any[], cmp: (a: any, b: any) => number) =>\n array\n .map((el, index) => ({ el, index }))\n .sort((a, b) => {\n const order = cmp(a.el, b.el);\n return order !== 0 ? order : a.index - b.index;\n })\n .map((el) => el.el);\n\nconst getComparator = (order: Order, orderBy: string) =>\n order === 'desc'\n ? (a: any, b: any) => descendingComparator(a, b, orderBy)\n : (a: any, b: any) => -descendingComparator(a, b, orderBy);\n\nexport const TableDesktopRows: FC<TableDesktopRowsProps> = ({\n data,\n RenderItem,\n visibleHeadCells,\n getRowId,\n order,\n orderBy,\n disableInternalSort,\n enableCheckboxSelection,\n enableEditMode,\n selectedRows,\n onRowCheckboxChange,\n rowHeight,\n deleteItem,\n}) => {\n const sortedData = disableInternalSort\n ? data\n : stableSort(data, getComparator(order, orderBy));\n\n return sortedData.map((row, index) => {\n const rowId = getRowId(row);\n const isItemSelected = selectedRows.has(rowId);\n\n return (\n <RenderItem\n key={rowId ?? index}\n {...{\n ...row,\n index,\n deleteItem,\n isItemSelected,\n enableEditMode,\n enableCheckboxSelection,\n rowHeight,\n rowId,\n onRowCheckboxChange,\n visibleHeadCells,\n }}\n />\n );\n });\n};\n","import { FC } from 'react';\n\nimport { Box, Button, Typography } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nexport type TableDesktopRowSelectionBarProps = {\n isEveryRowInPageSelected: boolean;\n isRowsFromAllPagesSelected: boolean;\n numSelectedRows: number;\n totalRowCount: number;\n onSelectRowsFromAllPagesClick: () => void;\n onClearSelectionClick: () => void;\n};\n\nexport const TableDesktopRowSelectionBar: FC<\n TableDesktopRowSelectionBarProps\n> = ({\n isEveryRowInPageSelected,\n isRowsFromAllPagesSelected,\n numSelectedRows,\n totalRowCount,\n onSelectRowsFromAllPagesClick,\n onClearSelectionClick,\n}) => {\n const isAnyRowSelected = numSelectedRows > 0;\n\n const getSelectedRowsText = () => {\n if (isRowsFromAllPagesSelected) {\n return `All ${totalRowCount} rows from all pages are selected based on your filters.`;\n }\n\n if (isEveryRowInPageSelected) {\n return `All ${numSelectedRows} rows on this page are selected.`;\n }\n\n return `${numSelectedRows} row${numSelectedRows > 1 ? 's' : ''} selected.`;\n };\n\n return isAnyRowSelected ? (\n <Box\n sx={{\n p: 1,\n height: 40,\n gap: 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: colors.neutral150,\n }}\n >\n <Typography>{getSelectedRowsText()}</Typography>\n\n {!isRowsFromAllPagesSelected ? (\n <Button onClick={onSelectRowsFromAllPagesClick}>\n Select all {totalRowCount} rows from all pages based on your filters\n </Button>\n ) : null}\n\n <Button onClick={onClearSelectionClick}>Clear Selection</Button>\n </Box>\n ) : null;\n};\n","import { TableCell, TableRow, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport EmptyGlassIcon from '@/components/icons/EmptyGlassIcon';\n\nimport FilledButton from '../Buttons/FilledButton/FilledButton';\n\nconst useStyles = makeStyles()(() => ({\n tableCellIcon: { padding: 24, height: 'calc(100vh - 320px)' },\n tableCellDefault: { padding: 24 },\n}));\n\nexport interface ITableEmptyResult {\n colSpan: number;\n showClearFilterButton?: boolean;\n handleClickOnClearFiltersButton?: () => void;\n}\n\nconst TableEmptyResult = ({\n colSpan,\n showClearFilterButton = false,\n handleClickOnClearFiltersButton = () => {},\n}: ITableEmptyResult) => {\n const { classes } = useStyles();\n\n return showClearFilterButton ? (\n <TableRow>\n <TableCell\n className={classes.tableCellIcon}\n colSpan={colSpan}\n align=\"center\"\n >\n <EmptyGlassIcon />\n <Typography variant=\"h6\">No results found.</Typography>\n <Typography variant=\"subtitle1\">\n Search without applied filters?\n </Typography>\n <FilledButton\n copy=\"Search\"\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClickOnClearFiltersButton}\n />\n </TableCell>\n </TableRow>\n ) : (\n <TableRow>\n <TableCell\n className={classes.tableCellDefault}\n colSpan={colSpan}\n align=\"center\"\n >\n Nothing to display\n </TableCell>\n </TableRow>\n );\n};\n\nexport default TableEmptyResult;\n","import { FC, useEffect, useState } from 'react';\n\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { Checkbox, FormControlLabel } from '@mui/material';\nimport { DatePicker, TimePicker } from '@mui/x-date-pickers';\nimport moment from 'moment';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\nimport { TableDesktopSmartMultipleSelect } from './TableDesktopSmartMultipleSelect';\nimport { TableDesktopSmartSelect } from './TableDesktopSmartSelect';\nimport { TableDesktopTagsField } from './TableDesktopTagsField';\nimport { TableDesktopTextField } from './TableDesktopTextField';\n\nexport type TableDesktopEditableFieldProps = {\n headCell: HeadCell;\n editInitialValue?: any;\n rowId?: RowId;\n disabled?: boolean;\n showCheckboxLabel?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n onUpdateEditableCell: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopEditableField: FC<TableDesktopEditableFieldProps> = ({\n editInitialValue,\n rowId,\n disabled,\n showCheckboxLabel = false,\n variant = 'standard',\n size,\n onUpdateEditableCell,\n headCell: {\n id: columnId,\n fieldName = '',\n label: inputLabel = '',\n editableCellType,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n validateInput,\n allowBlankSelectOption,\n },\n}) => {\n const [parsedFilterOptions, setParsedFilterOptions] = useState<Option[]>();\n\n useEffect(() => {\n if (\n (filterOptions && editableCellType === 'select') ||\n editableCellType === 'multipleSelect'\n ) {\n const parsedOptions = filterOptions?.map(\n (option: HeaderFilterObject | string) => ({\n value: resolveObjectType(option, 'id'),\n label: String(resolveObjectType(option, fieldName)),\n }),\n );\n\n setParsedFilterOptions(parsedOptions);\n }\n }, [filterOptions, editableCellType]);\n\n const editableComponents = {\n select: (\n <TableDesktopSmartSelect\n rowId={rowId}\n columnId={columnId}\n fieldName={fieldName}\n disabled={disabled}\n variant={variant}\n size={size}\n allowBlankOption={allowBlankSelectOption}\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n filterOptions={parsedFilterOptions}\n refetchFilterOptions={refetchFilterOptions}\n isFetchingFilterOptions={isFetchingFilterOptions}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n multipleSelect: (\n <TableDesktopSmartMultipleSelect\n rowId={rowId}\n columnId={columnId}\n fieldName={fieldName}\n disabled={disabled}\n variant={variant}\n size={size}\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n filterOptions={parsedFilterOptions}\n refetchFilterOptions={refetchFilterOptions}\n isFetchingFilterOptions={isFetchingFilterOptions}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n checkbox: (\n <FormControlLabel\n label={showCheckboxLabel ? inputLabel : ''}\n control={\n <Checkbox\n disableRipple\n disabled={disabled}\n defaultChecked={editInitialValue}\n onChange={({ target: { checked } }) => {\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: checked,\n label: checked,\n });\n }}\n />\n }\n />\n ),\n text: (\n <TableDesktopTextField\n type=\"text\"\n rowId={rowId}\n disabled={disabled}\n variant={variant}\n size={size}\n columnId={columnId}\n initialValue={editInitialValue ?? ''}\n inputLabel={inputLabel ?? ''}\n validateInput={validateInput}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n numeric: (\n <TableDesktopTextField\n type=\"numeric\"\n rowId={rowId}\n disabled={disabled}\n variant={variant}\n size={size}\n columnId={columnId}\n initialValue={editInitialValue ?? ''}\n inputLabel={inputLabel ?? ''}\n validateInput={validateInput}\n onUpdateEditableCell={onUpdateEditableCell}\n />\n ),\n date: (\n <DatePicker\n defaultValue={\n editInitialValue ? moment(editInitialValue, 'HH:mm:ss') : undefined\n }\n label={inputLabel}\n format=\"DD/MM/YYYY\"\n onAccept={(value) => {\n const formattedValue = value?.format('YYYY-MM-DD') ?? null;\n const formattedLabel = value?.format('DD/MM/YYYY') ?? null;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: formattedValue,\n label: formattedLabel,\n });\n }}\n slots={{ clearIcon: DeleteIcon }}\n slotProps={{\n field: { clearable: true },\n clearButton: { sx: { p: 0.5 } },\n openPickerButton: { sx: { p: 0 } },\n textField: {\n variant,\n size,\n error: false,\n },\n }}\n />\n ),\n time: (\n <TimePicker\n defaultValue={\n editInitialValue ? moment(editInitialValue, 'HH:mm:ss') : undefined\n }\n label={inputLabel}\n onAccept={(value) => {\n const formattedValue = value?.format('HH:mm') ?? null;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: formattedValue,\n label: formattedValue,\n });\n }}\n slots={{ clearIcon: DeleteIcon }}\n slotProps={{\n field: { clearable: true },\n clearButton: { sx: { p: 0.5 } },\n openPickerButton: { sx: { p: 0 } },\n textField: {\n variant,\n size,\n error: false,\n },\n }}\n />\n ),\n tags: (\n <TableDesktopTagsField\n initialValue={editInitialValue}\n inputLabel={inputLabel}\n variant={variant}\n size={size}\n onUpdateEditableCell={onUpdateEditableCell}\n rowId={rowId}\n columnId={columnId}\n />\n ),\n };\n\n if (!editableCellType) {\n return null;\n }\n\n return editableComponents[editableCellType];\n};\n","import { useMemo } from 'react';\n\nimport { SmartMultipleSelect } from '../SmartMultipleSelect/SmartMultipleSelect';\nimport { Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\nexport type TableDesktopSmartMultipleSelectProps = {\n initialValue: HeaderFilterObject[];\n inputLabel: string;\n columnId: string;\n fieldName: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n filterOptions?: Option[];\n refetchFilterOptions?: HeadCell['refetchFilterOptions'];\n isFetchingFilterOptions: HeadCell['isFetchingFilterOptions'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopSmartMultipleSelect = ({\n initialValue,\n inputLabel,\n columnId,\n fieldName,\n rowId,\n disabled,\n variant = 'standard',\n size,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n onUpdateEditableCell,\n}: TableDesktopSmartMultipleSelectProps) => {\n const defaultValues = useMemo(() => {\n return initialValue?.map((val: HeaderFilterObject) => ({\n value: val.id,\n label: val[fieldName].toString(),\n }));\n }, [initialValue]);\n\n return (\n <SmartMultipleSelect\n inputLabel={inputLabel}\n size={size}\n variant={variant}\n disabled={disabled}\n defaultValues={defaultValues}\n menuOptions={filterOptions}\n menuProps={{ disableRestoreFocus: true }}\n isLoading={isFetchingFilterOptions}\n onOpen={() => {\n if (!filterOptions?.length) {\n refetchFilterOptions?.();\n }\n }}\n onClose={(values) => {\n const optionsValues = values.map((option) => option.value ?? '');\n const optionsLabels = values.map((option) => option.label ?? '');\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: optionsValues,\n label: optionsLabels,\n });\n }}\n />\n );\n};\n","import { RefObject, useState } from 'react';\n\nimport { resolveObjectType } from '@/utils/resolveObjectType/resolveObjectType';\n\nimport { SmartSelect, Option } from '../SmartSelect/SmartSelect';\nimport {\n HeadCell,\n HeaderFilterObject,\n RowId,\n} from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopSmartSelectProps = {\n ref?: RefObject<any>;\n initialValue: HeaderFilterObject | string | null;\n inputLabel: string;\n columnId: string;\n fieldName: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n allowBlankOption?: boolean;\n filterOptions?: Option[];\n refetchFilterOptions?: HeadCell['refetchFilterOptions'];\n isFetchingFilterOptions: HeadCell['isFetchingFilterOptions'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopSmartSelect = ({\n ref,\n initialValue,\n inputLabel,\n columnId,\n fieldName,\n rowId,\n disabled,\n variant = 'standard',\n size,\n allowBlankOption,\n filterOptions,\n refetchFilterOptions,\n isFetchingFilterOptions,\n onUpdateEditableCell,\n}: TableDesktopSmartSelectProps) => {\n const [value, setValue] = useState<HeaderFilterObject | string | null>(\n initialValue,\n );\n const valueId = resolveObjectType(value ?? '', 'id');\n const valueLabel = resolveObjectType(value ?? '', fieldName);\n\n return (\n <SmartSelect\n ref={ref}\n value={valueId}\n allowBlankOption={allowBlankOption}\n inputLabel={inputLabel}\n options={filterOptions}\n disabled={disabled}\n variant={variant}\n size={size}\n menuProps={{ disableRestoreFocus: true }}\n refetch={refetchFilterOptions}\n isFetching={isFetchingFilterOptions}\n defaultOption={{\n value: valueId ?? '',\n label: String(valueLabel ?? ''),\n }}\n onChange={({ value: id, label }) => {\n setValue({ id: id ?? '', name: label ?? '' });\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: id || null,\n label: label ?? '',\n });\n }}\n />\n );\n};\n","import { useEffect, useMemo, useState, useRef } from 'react';\n\nimport { HashtagInput, Tag } from '../HashtagInput/HashtagInput';\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopTagsFieldProps = {\n initialValue: Tag[];\n inputLabel: string;\n columnId: string;\n rowId?: RowId;\n disabled?: boolean;\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopTagsField = ({\n initialValue,\n inputLabel,\n columnId,\n rowId,\n disabled,\n variant = 'standard',\n size,\n onUpdateEditableCell,\n}: TableDesktopTagsFieldProps) => {\n const [error, setError] = useState<string | null>();\n const [values, setValues] = useState<string[]>([]);\n\n const valuesRef = useRef<string[]>([]);\n\n const validateTag = (tag: string) => {\n if (tag.length >= 30) {\n return false;\n }\n return true;\n };\n\n const handleManageTags = (tag: string, operation: 'ADD' | 'REMOVE') => {\n const isRemoving = operation === 'REMOVE';\n const isValid = validateTag(tag);\n\n if (!isValid) {\n setError('Tag must have at most 30 characters');\n return;\n }\n\n setError(null);\n\n const newTags = isRemoving\n ? values.filter((t) => t !== tag)\n : [...values, tag];\n\n setValues(newTags);\n valuesRef.current = newTags;\n };\n\n const initialValueTags = useMemo(() => {\n return (initialValue ?? []).map((val) => val.tag);\n }, [initialValue]);\n\n useEffect(() => {\n setValues(initialValueTags);\n valuesRef.current = initialValueTags;\n }, [initialValueTags]);\n\n return (\n <>\n <HashtagInput\n autoFocus\n label={inputLabel}\n variant={variant}\n size={size}\n disabled={disabled}\n value={values}\n error={!!error}\n helperText={error}\n onCreateTag={(tagName: string) => {\n if (!tagName) return;\n handleManageTags(tagName, 'ADD');\n }}\n onDeleteTag={(tag: string) => {\n if (!tag) return;\n handleManageTags(tag, 'REMOVE');\n }}\n onBlur={() => {\n const currentTagsString = [...valuesRef.current].sort().join(', ');\n const initialTagsString = [...initialValueTags].sort().join(', ');\n\n if (currentTagsString === initialTagsString) return;\n\n onUpdateEditableCell?.({\n rowId,\n columnId,\n value: valuesRef.current,\n label: valuesRef.current.join(', '),\n });\n }}\n />\n </>\n );\n};\n","import { useState, KeyboardEvent, FocusEvent } from 'react';\n\nimport {\n Autocomplete,\n Chip,\n TextField,\n AutocompleteProps,\n TextFieldProps,\n alpha,\n useTheme,\n} from '@mui/material';\n\nexport type Tag = {\n id: number;\n tag: string;\n};\n\ntype AutocompleteType<T extends Tag> = AutocompleteProps<\n T,\n false,\n false,\n false\n>;\n\ninterface HashtagInputProps extends Omit<\n AutocompleteType<any>,\n 'options' | 'renderInput'\n> {\n label?: TextFieldProps['label'];\n placeholder?: TextFieldProps['placeholder'];\n variant?: TextFieldProps['variant'];\n error?: TextFieldProps['error'];\n helperText?: TextFieldProps['helperText'];\n autoFocus?: TextFieldProps['autoFocus'];\n disableOnBlurCreation?: boolean;\n onCreateTag?: (tagName?: string) => void;\n onDeleteTag?: (tag?: Tag | string) => void;\n}\n\nexport const HashtagInput = ({\n label,\n placeholder,\n variant,\n error,\n helperText,\n onCreateTag,\n onDeleteTag,\n autoFocus = false,\n disableOnBlurCreation = false,\n onBlur,\n ...props\n}: HashtagInputProps) => {\n const { palette } = useTheme();\n const [inputValue, setInputValue] = useState('');\n\n const sanitizeTag = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9#]/g, '')\n .trim();\n };\n\n const handleAddTag = () => {\n const cleanedTag = sanitizeTag(inputValue);\n\n if (!cleanedTag) return;\n\n onCreateTag?.(cleanedTag);\n setInputValue('');\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLInputElement | HTMLDivElement>,\n ) => {\n if ((event.key === ' ' || event.key === 'Enter') && inputValue) {\n event.preventDefault();\n event.stopPropagation();\n\n handleAddTag();\n }\n };\n\n return (\n <Autocomplete\n {...props}\n multiple\n freeSolo\n fullWidth\n disableClearable\n value={props.value || []}\n options={[]}\n inputValue={inputValue.toLocaleLowerCase()}\n onInputChange={(_event, newInputValue) => {\n setInputValue(sanitizeTag(newInputValue));\n }}\n onChange={(_event, _newValue, reason, details) => {\n if (reason === 'removeOption' && details?.option) {\n onDeleteTag?.(details.option);\n }\n }}\n renderInput={(textFieldProps) => (\n <TextField\n {...textFieldProps}\n autoFocus={autoFocus}\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n variant={variant}\n error={error}\n onKeyDown={handleKeyDown}\n onBlur={(e) => {\n if (!disableOnBlurCreation) {\n handleAddTag();\n }\n\n onBlur?.(e as FocusEvent<HTMLDivElement, Element>);\n }}\n />\n )}\n renderValue={(value: Tag[], getTagProps) =>\n value.map((option: Tag, index: number) => {\n return (\n <Chip\n {...getTagProps({ index })}\n key={option.id}\n size=\"small\"\n label={`#${option.tag ?? option}`}\n sx={{\n paddingBlock: 0,\n color: palette.primary.main,\n fontWeight: 'bold',\n backgroundColor: alpha(palette.primary.main, 0.1),\n }}\n />\n );\n })\n }\n />\n );\n};\n","import { FC, useMemo, useState, KeyboardEvent, useRef } from 'react';\n\nimport { TextField } from '@mui/material';\n\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\n\nexport type TableDesktopTextFieldProps = {\n rowId?: RowId;\n initialValue: string;\n inputLabel: string;\n disabled?: boolean;\n columnId: string;\n type: 'text' | 'numeric';\n variant?: 'standard' | 'outlined' | 'filled';\n size?: 'medium' | 'small';\n validateInput?: HeadCell['validateInput'];\n onUpdateEditableCell?: HeadCell['onUpdateEditableCell'];\n};\n\nexport const TableDesktopTextField: FC<TableDesktopTextFieldProps> = ({\n rowId,\n initialValue,\n inputLabel,\n disabled,\n columnId,\n type,\n variant = 'standard',\n size,\n validateInput,\n onUpdateEditableCell,\n}) => {\n const [input, setInput] = useState(initialValue);\n const oldValue = useRef(initialValue);\n\n const isDirty = useMemo(\n () => input !== oldValue.current,\n [input, oldValue.current],\n );\n const hasValidationError = useMemo(\n () => isDirty && validateInput && !validateInput(input),\n [input, validateInput],\n );\n\n const commitValue = (value: string) => {\n if (hasValidationError || !onUpdateEditableCell || !isDirty) {\n setInput(oldValue.current);\n return;\n }\n\n oldValue.current = value;\n onUpdateEditableCell({ rowId, columnId, value, label: value });\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n commitValue(input);\n }\n };\n\n return (\n <TextField\n fullWidth\n variant={variant}\n size={size}\n value={input}\n label={inputLabel}\n error={hasValidationError}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n if (type === 'numeric') {\n e.target.value = e.target.value.replace(/\\D/g, '');\n }\n\n setInput(e.target.value);\n }}\n onBlur={({ target: { value } }) => {\n commitValue(value);\n }}\n slotProps={{\n input: {\n inputMode: type === 'numeric' ? 'numeric' : undefined,\n },\n htmlInput: {\n maxLength: 1000,\n },\n }}\n />\n );\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport Refresh from '@mui/icons-material/Refresh';\nimport {\n Box,\n Button,\n MenuItem,\n Pagination,\n Select,\n SelectChangeEvent,\n Stack,\n Typography,\n} from '@mui/material';\n\nimport { colors } from '../../resources/styles/colors';\n\nexport type TableDesktopFooterProps = {\n numPages: number;\n page: number;\n onPageChange: (event: ChangeEvent<unknown>, page: number) => void;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (event: SelectChangeEvent<number>) => void;\n refetchData?: () => Promise<unknown>;\n isFetching: boolean;\n};\n\nexport const TableDesktopFooter: FC<TableDesktopFooterProps> = ({\n numPages,\n page,\n pageSize,\n pageSizeOptions,\n onPageChange,\n onPageSizeChange,\n refetchData,\n isFetching,\n}) => {\n return (\n <Box\n sx={{\n py: 1,\n gap: 2,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderTop: `1px solid ${colors.neutral300}`,\n }}\n >\n {refetchData ? (\n <Button\n disableRipple\n variant=\"text\"\n onClick={() => refetchData()}\n disabled={isFetching}\n aria-label=\"refresh-button\"\n sx={{\n ml: 1,\n gap: 1,\n }}\n >\n <Refresh\n fontSize=\"small\"\n color={isFetching ? 'disabled' : 'action'}\n />\n </Button>\n ) : null}\n\n <Box sx={{ display: 'flex', ml: 'auto', py: 1 }}>\n {pageSize && pageSizeOptions && onPageSizeChange ? (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography fontSize={12}>Rows per page:</Typography>\n\n <Select\n value={pageSize}\n onChange={onPageSizeChange}\n size=\"small\"\n variant=\"standard\"\n >\n {pageSizeOptions.map((pageSizeOption) => (\n <MenuItem key={pageSizeOption} value={pageSizeOption}>\n {pageSizeOption}\n </MenuItem>\n ))}\n </Select>\n </Stack>\n ) : null}\n\n <Pagination\n color=\"standard\"\n count={numPages}\n page={page}\n onChange={onPageChange}\n />\n </Box>\n </Box>\n );\n};\n","import { FC, useEffect, useState, MouseEvent, ReactNode } from 'react';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport EditIcon from '@mui/icons-material/Edit';\nimport { IconButton, TableCell, Tooltip } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\nimport { DynamicOverflowTooltip } from '../DynamicOverflowTooltip/DynamicOverflowTooltip';\nimport { HeadCell, RowId } from '../TableDesktop/TableDesktop';\nimport { TableDesktopEditableField } from '../TableDesktopEditableField/TableDesktopEditableField';\n\ntype ReadOnlyValue = string | number | boolean | ReactNode;\n\nexport type TableDesktopCellProps = {\n editInitialValue: any;\n rowId: RowId;\n enableEditMode: boolean;\n disabled?: boolean;\n readOnlyValue: ReadOnlyValue;\n headCell: HeadCell;\n onCellClick?: (\n event: MouseEvent<HTMLTableCellElement>,\n isEditMode: boolean,\n ) => void;\n};\n\nconst getReadOnlyBooleanIcon = (value: boolean) => {\n if (value) {\n return <CheckIcon sx={{ fontSize: 16 }} />;\n }\n return '-';\n};\n\nconst renderReadOnlyValue = (value: ReadOnlyValue) => {\n if (typeof value === 'boolean') {\n return getReadOnlyBooleanIcon(value);\n }\n return value;\n};\n\nconst getCellBackgroundColor = (isCellInEditMode: boolean) => ({\n background: isCellInEditMode ? colors.lightBlueBackground : colors.neutral100,\n});\n\nexport const TableDesktopCell: FC<TableDesktopCellProps> = ({\n editInitialValue,\n rowId,\n disabled,\n enableEditMode,\n readOnlyValue,\n onCellClick,\n headCell,\n}) => {\n const [isCellHovered, setIsCellHovered] = useState(false);\n const [isCellInEditMode, setIsCellInEditMode] = useState(false);\n\n const { width, editableCellType } = headCell;\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsCellInEditMode(false);\n }\n };\n\n if (isCellInEditMode) {\n globalThis.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n globalThis.removeEventListener('keydown', handleKeyDown);\n };\n }, [isCellInEditMode]);\n\n const handleEditClick = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsCellInEditMode((prev) => !prev);\n };\n\n const isCellEditable = !!enableEditMode && !!editableCellType && !disabled;\n\n return (\n <TableCell\n align=\"left\"\n onMouseEnter={() => isCellEditable && setIsCellHovered(true)}\n onMouseLeave={() => isCellEditable && setIsCellHovered(false)}\n onClick={(event) => !disabled && onCellClick?.(event, isCellInEditMode)}\n sx={{\n padding: 2,\n width: width ?? 'auto',\n position: 'relative',\n cursor: disabled || !enableEditMode ? 'default' : 'pointer',\n ':hover': isCellEditable\n ? getCellBackgroundColor(isCellInEditMode)\n : undefined,\n background:\n enableEditMode && isCellInEditMode\n ? colors.lightBlueBackground\n : undefined,\n }}\n >\n <DynamicOverflowTooltip tooltipDescription={String(readOnlyValue)} arrow>\n <>\n {enableEditMode && isCellHovered ? (\n <Tooltip title={isCellInEditMode ? '' : 'Toggle Edit Mode'}>\n <IconButton\n onClick={handleEditClick}\n sx={{\n top: 0,\n right: 0,\n zIndex: 1,\n borderRadius: 0,\n position: 'absolute',\n background: isCellInEditMode\n ? colors.lightBlueBackground\n : colors.neutral100,\n '&:hover': {\n backgroundColor: isCellInEditMode\n ? colors.lightBlueBackground\n : colors.neutral150,\n },\n }}\n >\n {isCellInEditMode ? (\n <CloseIcon fontSize=\"small\" color=\"error\" />\n ) : (\n <EditIcon fontSize=\"small\" />\n )}\n </IconButton>\n </Tooltip>\n ) : null}\n\n {enableEditMode && isCellInEditMode && editableCellType ? (\n <TableDesktopEditableField\n editInitialValue={editInitialValue}\n rowId={rowId}\n disabled={disabled}\n headCell={headCell}\n onUpdateEditableCell={headCell.onUpdateEditableCell}\n />\n ) : (\n renderReadOnlyValue(readOnlyValue)\n )}\n </>\n </DynamicOverflowTooltip>\n </TableCell>\n );\n};\n","import {\n FC,\n useState,\n useMemo,\n useRef,\n RefObject,\n ReactNode,\n ChangeEvent,\n} from 'react';\n\nimport Download from '@mui/icons-material/Download';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport {\n Box,\n Button,\n Divider,\n FormControlLabel,\n IconButton,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport IconTableEdit from '@/components/icons/IconTableEdit';\nimport { useDynamicScroll } from '@/hooks/useDynamicScroll/useDynamicScroll';\nimport { colors } from '@/resources/styles/colors';\n\nimport {\n HeadCell,\n HeaderFilters,\n RowId,\n UpdateEditableCellParams,\n} from '../TableDesktop/TableDesktop';\nimport { TableDesktopEditableField } from '../TableDesktopEditableField/TableDesktopEditableField';\n\nexport type BulkChanges = {\n field: string;\n value: UpdateEditableCellParams['value'];\n label: UpdateEditableCellParams['label'];\n}[];\n\nexport type TableColumnConfigurationMenuProps = {\n anchorEl: HTMLElement | null;\n onCloseMenu: () => void;\n};\n\nexport type ExportCsvDialogProps = {\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n totalDataCount?: number;\n isOpen: boolean;\n onCloseDialog: () => void;\n};\n\nexport type BulkChangesDialogProps = {\n bulkChanges: BulkChanges;\n selectedRows: RowId[];\n shouldUpdateAll: boolean;\n visibleEditableColumns: HeadCell[];\n isBulkChangesDialogOpen: boolean;\n onCloseDialog: () => void;\n refetchData: () => Promise<unknown>;\n};\n\nexport type TableDesktopToolbarProps = {\n toolbarLabel?: string;\n headCells: HeadCell[];\n headerFilters: HeaderFilters;\n selectedRows: RowId[];\n isDataEmpty: boolean;\n totalDataCount?: number;\n isRowsFromAllPagesSelected: boolean;\n refetchData?: () => Promise<unknown>;\n tableToolbarMenuButtonRef: RefObject<HTMLButtonElement | null>;\n tableToolbarMenuAnchor: HTMLElement | null;\n onClickToolbarMenuOpen: () => void;\n onCloseMenu: () => void;\n disableBulkChangesMode?: boolean;\n isBulkChangesMode: boolean;\n onChangeBulkChangesMode: (checked: boolean) => void;\n onActivateBulkChangesMode?: () => void;\n renderExportCsvDialog?: (props: ExportCsvDialogProps) => ReactNode;\n renderBulkChangesDialog?: (props: BulkChangesDialogProps) => ReactNode;\n renderTableColumnConfigurationMenu?: (\n props: TableColumnConfigurationMenuProps,\n ) => ReactNode;\n renderInfoIcons?: ReactNode;\n};\n\nexport const TableDesktopToolbar: FC<TableDesktopToolbarProps> = ({\n toolbarLabel,\n headCells,\n headerFilters,\n selectedRows,\n isDataEmpty,\n totalDataCount,\n isRowsFromAllPagesSelected,\n tableToolbarMenuButtonRef,\n tableToolbarMenuAnchor,\n onCloseMenu,\n onClickToolbarMenuOpen,\n disableBulkChangesMode = false,\n isBulkChangesMode,\n onChangeBulkChangesMode,\n onActivateBulkChangesMode,\n refetchData,\n renderExportCsvDialog,\n renderBulkChangesDialog,\n renderTableColumnConfigurationMenu,\n renderInfoIcons,\n}) => {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const [bulkChanges, setBulkChanges] = useState<BulkChanges>([]);\n const [isBulkChangesDialogOpen, setIsBulkChangesDialogOpen] = useState(false);\n const [isExportCsvDialogOpen, setIsExportCsvDialogOpen] = useState(false);\n const [resetCounter, setResetCounter] = useState(0);\n\n const visibleEditableColumns = useMemo(\n () =>\n headCells.filter(\n (headCell) => headCell?.enabled && !!headCell?.editableCellType,\n ),\n [headCells],\n );\n\n const { isScrollable, scroll } = useDynamicScroll({\n scrollRef,\n effectDependencies: [visibleEditableColumns],\n });\n\n const handleChangeBulkChangesMode = (\n _: ChangeEvent<HTMLInputElement>,\n checked: boolean,\n ) => {\n setBulkChanges([]);\n onChangeBulkChangesMode(checked);\n if (checked) {\n onActivateBulkChangesMode?.();\n }\n };\n\n const handleUpdateEditableCell = ({\n columnId,\n value,\n label,\n }: UpdateEditableCellParams) => {\n setBulkChanges((prev) => {\n return [...prev, { field: columnId, value, label }];\n });\n };\n\n return (\n <Box\n sx={{\n borderBottom: '1px solid',\n borderBottomColor: colors.neutral300,\n maxWidth: '100%',\n }}\n >\n <Box\n sx={{\n py: 1,\n px: 2,\n gap: 1,\n display: 'flex',\n justifyContent: isBulkChangesMode ? 'flex-start' : 'space-between',\n background: isBulkChangesMode ? colors.neutral150 : undefined,\n }}\n >\n <Box\n sx={{\n py: 1,\n gap: 2,\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n }}\n >\n {toolbarLabel ? (\n <>\n <Typography variant=\"subtitle2\" color=\"textSecondary\">\n {toolbarLabel}\n </Typography>\n\n <Divider orientation=\"vertical\" sx={{ height: 0.75, py: 2.5 }} />\n </>\n ) : null}\n\n {renderBulkChangesDialog && refetchData ? (\n <Tooltip\n title={\n disableBulkChangesMode\n ? 'Access denied, you don’t have permission to use this feature.'\n : ''\n }\n >\n <FormControlLabel\n label=\"Bulk Changes Mode\"\n disabled={\n disableBulkChangesMode || !visibleEditableColumns.length\n }\n control={\n <Switch\n size=\"small\"\n aria-label=\"bulk-changes-mode-switch\"\n onChange={handleChangeBulkChangesMode}\n />\n }\n />\n </Tooltip>\n ) : null}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-left\"\n sx={{ padding: 0, alignSelf: 'center' }}\n onClick={() => scroll('left')}\n >\n <KeyboardArrowLeft />\n </IconButton>\n )}\n\n <Box\n ref={scrollRef}\n sx={{\n gap: 2,\n display: 'flex',\n overflowX: 'auto',\n whiteSpace: 'nowrap',\n alignItems: 'center',\n flexShrink: 0,\n scrollBehavior: 'smooth',\n flex: '0 1 auto',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {isBulkChangesMode\n ? visibleEditableColumns.map((headCell) => {\n const { id, width, editableCellType, bulkUpdateDisabled } =\n headCell;\n\n if (bulkUpdateDisabled) {\n return null;\n }\n\n return (\n editableCellType && (\n <Box\n key={`${id}-${resetCounter}`}\n sx={{ width, flex: '0 0 auto' }}\n >\n <TableDesktopEditableField\n headCell={headCell}\n size=\"small\"\n variant=\"outlined\"\n showCheckboxLabel\n onUpdateEditableCell={handleUpdateEditableCell}\n />\n </Box>\n )\n );\n })\n : null}\n </Box>\n\n {isScrollable && (\n <IconButton\n aria-label=\"scroll-right\"\n sx={{ p: 0, alignSelf: 'center' }}\n onClick={() => scroll('right')}\n >\n <KeyboardArrowRight />\n </IconButton>\n )}\n\n {isBulkChangesMode ? (\n <>\n <Button\n variant=\"outlined\"\n sx={{ borderRadius: 25, alignSelf: 'center' }}\n aria-label=\"bulk-changes-reset-button\"\n onClick={() => {\n setBulkChanges([]);\n // Remount and reset states from TableDesktopEditableComponents\n setResetCounter((prev) => prev + 1);\n }}\n >\n RESET\n </Button>\n\n <Button\n variant=\"contained\"\n aria-label=\"bulk-changes-apply-button\"\n sx={{ borderRadius: 25, alignSelf: 'center' }}\n disabled={bulkChanges.length === 0 || selectedRows.length === 0}\n onClick={() => setIsBulkChangesDialogOpen(true)}\n >\n APPLY\n </Button>\n </>\n ) : (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {renderInfoIcons}\n\n {renderExportCsvDialog ? (\n <Tooltip title=\"Download List\">\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <IconButton\n disableRipple\n disabled={isDataEmpty}\n aria-label=\"export-csv-button\"\n onClick={() => setIsExportCsvDialogOpen(true)}\n >\n <Download fill={colors.neutral750} />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n\n {renderTableColumnConfigurationMenu ? (\n <Tooltip title=\"Table Column Configuration\">\n <IconButton\n disableRipple\n aria-label=\"table-column-config-button\"\n ref={tableToolbarMenuButtonRef}\n onClick={onClickToolbarMenuOpen}\n >\n <IconTableEdit fill={colors.neutral750} />\n </IconButton>\n </Tooltip>\n ) : null}\n </Box>\n )}\n </Box>\n\n {renderTableColumnConfigurationMenu\n ? renderTableColumnConfigurationMenu({\n anchorEl: tableToolbarMenuAnchor,\n onCloseMenu,\n })\n : null}\n\n {renderExportCsvDialog\n ? renderExportCsvDialog({\n headCells,\n headerFilters,\n totalDataCount,\n isOpen: isExportCsvDialogOpen,\n onCloseDialog: () => setIsExportCsvDialogOpen(false),\n })\n : null}\n\n {renderBulkChangesDialog && refetchData\n ? renderBulkChangesDialog({\n bulkChanges,\n visibleEditableColumns,\n selectedRows,\n shouldUpdateAll: isRowsFromAllPagesSelected,\n isBulkChangesDialogOpen,\n onCloseDialog: () => setIsBulkChangesDialogOpen(false),\n refetchData,\n })\n : null}\n </Box>\n );\n};\n","import { memo, useEffect, useState } from 'react';\n\nimport ImportExportIcon from '@mui/icons-material/ImportExport';\nimport { TableCell, TableHead, TableRow, TableSortLabel } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(() => ({\n sortLabel: {\n '& .MuiTableSortLabel-icon': {\n opacity: 1,\n },\n },\n}));\n\ninterface TableHeaderProps {\n cells: any;\n onSort?: any;\n}\n\nconst TableHeader = ({ cells, onSort = null }: TableHeaderProps) => {\n const [sortableCells, setSortableCells] = useState([]);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n setSortableCells(cells);\n }, []);\n\n const getNewSortDirection = (direction) => {\n if (!direction) {\n return 'asc';\n }\n\n if (direction === 'asc') {\n return 'desc';\n }\n\n return '';\n };\n\n const handleSortClick = (sortedCell) => {\n const newDirection = getNewSortDirection(sortedCell?.direction);\n\n if (onSort) {\n onSort({\n direction: newDirection,\n name: sortedCell.name,\n });\n }\n\n const sortedCells = sortableCells.map((cell: any) => {\n if (cell.name === sortedCell.name) {\n return {\n ...cell,\n direction: newDirection,\n };\n }\n\n return {\n ...cell,\n direction: '',\n };\n });\n\n setSortableCells(sortedCells as any);\n };\n\n return (\n <TableHead>\n <TableRow>\n {sortableCells.map((cell: any, key) => (\n <TableCell key={cell.label || key}>\n {cell.isSortable ? (\n <TableSortLabel\n className={classes.sortLabel}\n direction={cell?.direction || 'asc'}\n IconComponent={ImportExportIcon}\n onClick={() => handleSortClick(cell)}\n >\n {cell.label}\n </TableSortLabel>\n ) : (\n cell.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n};\n\nexport default memo(TableHeader);\n","import * as React from 'react';\n\nimport { Box, Typography, Divider, Button } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n icon: {\n fontSize: 20,\n },\n center: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n },\n button: {\n margin: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n container: {\n width: '100%',\n },\n title: {\n fontSize: 13,\n },\n leftDivider: { flex: 1, marginRight: 8 },\n rightDivider: { flex: 1, marginLeft: 8 },\n}));\n\ninterface TextDividerProps {\n title: string;\n icon?: React.ElementType;\n onClick?: () => void;\n color?: string;\n iconPosition?: 'left' | 'right';\n titleWeight?: '400' | '500' | '600' | '700' | '800' | '900';\n}\n\nconst TextDivider: React.FC<TextDividerProps> = ({\n title,\n icon: Icon,\n onClick,\n color,\n iconPosition = 'left',\n titleWeight = '400',\n}) => {\n const { classes } = useStyles();\n const iconColor = color ?? colors.neutral900;\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n className={classes.container}\n >\n <Divider className={classes.leftDivider} />\n <Button onClick={onClick} disabled={!onClick} className={classes.button}>\n <Box className={classes.center}>\n {Icon && iconPosition === 'left' && (\n <Icon className={classes.icon} style={{ color: iconColor }} />\n )}\n <Typography\n color=\"textSecondary\"\n className={classes.title}\n style={{ color: iconColor, fontWeight: titleWeight }}\n >\n {title}\n </Typography>\n {Icon && iconPosition === 'right' && (\n <Icon className={classes.icon} style={{ color: iconColor }} />\n )}\n </Box>\n </Button>\n <Divider className={classes.rightDivider} />\n </Box>\n );\n};\n\nexport default TextDivider;\n","import { DateRangePicker, DateRangePickerShape } from 'react-dates';\n\nimport { colors } from 'resources/styles/colors';\nimport { makeStyles } from 'tss-react/mui';\n\nimport 'react-dates/initialize';\nimport 'react-dates/lib/css/_datepicker.css';\n\nconst useStyles = makeStyles()((theme) => ({\n wrapper: {\n '& .DateRangePicker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n borderRadius: 4,\n },\n '& .DateRangePickerInput__withBorder': {\n border: `1px solid ${\n theme.palette.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[400]\n }`,\n },\n '& .DateRangePickerInput': {\n backgroundColor: 'transparent',\n color:\n theme.palette.mode === 'dark'\n ? 'theme.palette.common.white'\n : theme.palette.text.primary,\n borderRadius: 4,\n paddingTop: '2px',\n },\n '& .DateInput': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n borderRadius: 4,\n },\n '& .DateInput_input': {\n backgroundColor: 'transparent',\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.common.white\n : theme.palette.text.primary,\n\n borderRadius: 4,\n fontWeight: 400,\n fontSize: 16,\n cursor: 'pointer',\n },\n '& .DateInput_input__focused': {\n borderBottom: `2px solid ${theme.palette.primary.main}`,\n },\n '& .DateInput_fangStroke': {\n fill: theme.palette.primary.main,\n stroke: theme.palette.primary.main,\n },\n '& .CalendarDay__default': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n },\n },\n '& .CalendarDay__selected': {\n backgroundColor: theme.palette.primary.main,\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n },\n '& .CalendarDay__blocked_out_of_range': {\n opacity: 0.5,\n },\n '& .CalendarDay__selected_span': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.grey[800],\n },\n '& .CalendarDay__hovered_span': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[200],\n color:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[200]\n : theme.palette.grey[800],\n },\n '& .DateRangePicker_picker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color: theme.palette.text.primary,\n },\n '& .CalendarMonthGrid': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .CalendarMonth': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .DayPicker_transitionContainer': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n },\n '& .CalendarMonth_caption': {\n color: theme.palette.text.primary,\n },\n '& .DayPickerNavigation_button__default': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[300],\n color: theme.palette.common.black,\n borderColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.grey[300],\n },\n },\n '& .DayPicker': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? theme.palette.grey[900]\n : colors.neutral100,\n borderRadius: 4,\n },\n },\n}));\n\ntype ThemedDateRangePickerProps = DateRangePickerShape & {\n className?: string;\n};\n\n/**\n * DateRangePicker component with dark mode theming support.\n * Props are forwarded directly to the underlying DateRangePicker.\n */\nconst ThemedDateRangePicker = ({\n className,\n ...props\n}: ThemedDateRangePickerProps) => {\n const { classes, cx } = useStyles();\n\n return (\n <div className={cx(classes.wrapper, className)}>\n <DateRangePicker {...props} />\n </div>\n );\n};\n\nexport default ThemedDateRangePicker;\n","import { memo, ReactNode } from 'react';\n\nimport { AppBar, Box, Toolbar } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport RoundButton from '@/components/Buttons/RoundButton/RoundButton';\nimport CompanyLogo from '@/components/CompanyLogo/CompanyLogo';\nimport { colors } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()((theme: any) => ({\n menuButton: {\n color: theme.palette.primary.contrastText,\n },\n topBar: {\n display: 'flex',\n gap: theme.spacing(1),\n backgroundColor: colors.topBar,\n [theme.breakpoints.down('xl')]: {\n gap: theme.spacing(0.5),\n },\n },\n}));\n\ntype Props = {\n imageLogoDarkSmall: string;\n imageLogoLightSmall: string;\n handleOpen: () => void;\n LeftDrawer: ReactNode;\n leftSection?: ReactNode;\n centerSection?: ReactNode;\n rightSection?: ReactNode;\n isAuthenticated?: boolean;\n};\n\nconst TheToolbar = ({\n imageLogoDarkSmall,\n imageLogoLightSmall,\n handleOpen,\n LeftDrawer,\n leftSection,\n centerSection,\n rightSection,\n isAuthenticated = true,\n}: Props) => {\n const { classes } = useStyles();\n\n return (\n <Box>\n <AppBar>\n <Toolbar className={classes.topBar}>\n {isAuthenticated ? (\n <Box sx={{ flexShrink: 0, display: 'flex' }}>\n <RoundButton\n className={classes.menuButton}\n icon=\"menu\"\n noStrokes\n onClick={handleOpen}\n />\n </Box>\n ) : null}\n <Box sx={{ display: { xs: 'none', lg: 'block' }, flexShrink: 0 }}>\n <CompanyLogo\n size=\"small\"\n color=\"light\"\n imageLogoDarkSmall={imageLogoDarkSmall}\n imageLogoLightSmall={imageLogoLightSmall}\n />\n </Box>\n <Box\n ml={{ xs: 0, lg: 2 }}\n sx={{ flexShrink: 0, display: { xs: 'none', xl: 'block' } }}\n >\n {leftSection}\n </Box>\n {centerSection ? (\n <Box\n sx={{\n flexGrow: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {centerSection}\n </Box>\n ) : (\n <Box sx={{ flexGrow: 1 }} />\n )}\n <Box sx={{ flexShrink: 0, display: { xs: 'none', xl: 'block' } }}>\n {rightSection}\n </Box>\n </Toolbar>\n </AppBar>\n {LeftDrawer}\n </Box>\n );\n};\n\nexport default memo(TheToolbar);\n","import { Alert as MuiAlert, Snackbar } from '@mui/material';\n\nimport { colors } from '@/resources/styles/colors';\n\ntype IToastMessage = {\n toastType: 'success' | 'info' | 'warning' | 'error';\n toastMessage: string;\n open: boolean;\n onClose: () => void;\n};\n\n/**\n *@param toastType 'success' | 'info' | 'warning' | 'error';.\n *@param toastMessage Value to be displayed on screen;.\n *@param open Boolean to open the toast;.\n *@param updateToast Reducer function to update the reducer value\n */\nconst ToastMessage = ({\n toastType,\n toastMessage,\n open,\n onClose,\n}: IToastMessage) => (\n <Snackbar\n open={open}\n autoHideDuration={3000}\n onClose={onClose}\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n <MuiAlert\n elevation={6}\n variant=\"filled\"\n onClose={onClose}\n severity={toastType}\n sx={{\n color: colors.neutral100,\n '& .MuiAlert-message': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n '& .MuiAlert-icon': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n '& .MuiAlert-action': {\n color: toastType === 'success' ? 'white' : 'inherit',\n },\n }}\n >\n {toastMessage}\n </MuiAlert>\n </Snackbar>\n);\n\nexport default ToastMessage;\n","/* eslint-disable no-unused-vars */\nimport { FC } from 'react';\nimport * as React from 'react';\n\nimport {\n Typography,\n Dialog,\n Backdrop,\n Box,\n Divider,\n Paper,\n Fade,\n} from '@mui/material';\nimport type { Theme } from '@mui/material/styles';\nimport { makeStyles } from 'tss-react/mui';\n\nimport FilledButton from '@/components/Buttons/FilledButton/FilledButton';\nimport Loading from '@/components/Loading/Loading';\n\nconst useStyles = makeStyles()((theme: Theme) => ({\n paper: {\n padding: theme.spacing(2),\n },\n\n mt: {\n marginTop: theme.spacing(2),\n },\n\n mb: {\n marginBottom: theme.spacing(2),\n },\n\n buttonContainer: {\n display: 'flex',\n justifyContent: 'center',\n marginTop: theme.spacing(1),\n },\n}));\n\nexport interface ITwoButtonDialogProps {\n confirmButton: () => void;\n cancelButton?: () => void;\n dialogLoading?: boolean;\n title: string;\n subtitle1?: string | React.ReactNode;\n subtitle2?: string | React.ReactNode;\n open: boolean;\n setOpen: (open: boolean) => void;\n confirmLabel?: string;\n cancelLabel?: string;\n}\n\nconst TwoButtonDialog: FC<ITwoButtonDialogProps> = ({\n confirmButton,\n dialogLoading = false,\n title,\n subtitle1,\n subtitle2,\n open,\n setOpen,\n confirmLabel = 'CONFIRM',\n cancelLabel = 'CANCEL',\n cancelButton,\n}) => {\n const { classes } = useStyles();\n\n return (\n <Dialog\n open={open}\n disableEnforceFocus\n maxWidth=\"sm\"\n fullWidth\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{ timeout: 500 }}\n >\n <Fade in={open}>\n <Paper className={classes.paper}>\n <Box className={classes.mb}>\n <Typography variant=\"h5\" component=\"div\">\n <Box\n sx={{\n fontWeight: 600,\n }}\n >\n {title}\n </Box>\n </Typography>\n <Box\n className={classes.mt}\n sx={{\n fontWeight: 600,\n }}\n >\n {subtitle1 && (\n <Typography variant=\"subtitle1\">{subtitle1}</Typography>\n )}\n {subtitle2 && (\n <Typography variant=\"subtitle1\">{subtitle2}</Typography>\n )}\n </Box>\n </Box>\n <Divider />\n <Box className={classes.buttonContainer}>\n <FilledButton\n copy={cancelLabel}\n color=\"default\"\n onClick={() => {\n if (cancelButton) {\n cancelButton();\n }\n setOpen(false);\n }}\n />\n <FilledButton\n color=\"primary\"\n copy={confirmLabel}\n onClick={confirmButton}\n />\n </Box>\n <Loading isLoading={dialogLoading} />\n </Paper>\n </Fade>\n </Dialog>\n );\n};\n\nexport default TwoButtonDialog;\n","import { ComponentProps, memo } from 'react';\n\nimport { Avatar, Typography } from '@mui/material';\n\ntype UserBustProps = {\n user: {\n profile_picture: string;\n first_name: string;\n last_name: string;\n username: string;\n };\n avatarProps: { height: number; width: number };\n typographyProps: {\n name?: {\n variant: ComponentProps<typeof Typography>['variant'];\n component: string;\n };\n username?: {\n variant: ComponentProps<typeof Typography>['variant'];\n component: string;\n };\n };\n};\n\nconst UserBust = ({ user, avatarProps, typographyProps }: UserBustProps) => (\n <div>\n <Avatar\n src={user.profile_picture}\n alt=\"user_avatar\"\n style={{ width: avatarProps.width, height: avatarProps.height }}\n />\n <div style={{ paddingTop: 16 }}>\n <Typography {...typographyProps.name}>\n {`${user.first_name} ${user.last_name}`}\n </Typography>\n <Typography {...typographyProps.username}>{user.username}</Typography>\n </div>\n </div>\n);\n\nexport default memo(UserBust);\n","import { SVGProps } from 'react';\n\nconst SvgIconChart = (props: SVGProps<SVGSVGElement>) => {\n const { fill } = props;\n\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M2.49967 11.6667L2.91634 11.725L6.72467 7.91667C6.57467 7.375 6.71634 6.75833 7.15801 6.325C7.80801 5.66667 8.85801 5.66667 9.50801 6.325C9.94967 6.75833 10.0913 7.375 9.94134 7.91667L12.083 10.0583L12.4997 10C12.6497 10 12.7913 10 12.9163 10.0583L15.8913 7.08333C15.833 6.95833 15.833 6.81667 15.833 6.66667C15.833 6.22464 16.0086 5.80072 16.3212 5.48816C16.6337 5.17559 17.0576 5 17.4997 5C17.9417 5 18.3656 5.17559 18.6782 5.48816C18.9907 5.80072 19.1663 6.22464 19.1663 6.66667C19.1663 7.10869 18.9907 7.53262 18.6782 7.84518C18.3656 8.15774 17.9417 8.33333 17.4997 8.33333C17.3497 8.33333 17.208 8.33333 17.083 8.275L14.108 11.25C14.1663 11.375 14.1663 11.5167 14.1663 11.6667C14.1663 12.1087 13.9907 12.5326 13.6782 12.8452C13.3656 13.1577 12.9417 13.3333 12.4997 13.3333C12.0576 13.3333 11.6337 13.1577 11.3212 12.8452C11.0086 12.5326 10.833 12.1087 10.833 11.6667L10.8913 11.25L8.74967 9.10833C8.48301 9.16667 8.18301 9.16667 7.91634 9.10833L4.10801 12.9167L4.16634 13.3333C4.16634 13.7754 3.99075 14.1993 3.67819 14.5118C3.36563 14.8244 2.9417 15 2.49967 15C2.05765 15 1.63372 14.8244 1.32116 14.5118C1.0086 14.1993 0.833008 13.7754 0.833008 13.3333C0.833008 12.8913 1.0086 12.4674 1.32116 12.1548C1.63372 11.8423 2.05765 11.6667 2.49967 11.6667Z\"\n fill={fill ?? '#1976D2'}\n />\n </svg>\n );\n};\n\nexport default SvgIconChart;\n"],"mappings":"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","names":["useMemo","Controller","Box","jsx","jsxs","IconButton","Box","jsx","jsxs","Box","IconButton","Box","TextField","Typography","jsx","jsxs","Box","jsx","jsxs","Box","jsx","jsxs","useMemo","Box","Controller","Box","Typography","makeStyles","jsx","jsxs","useStyles","Button","Dialog","jsx","jsxs","Box","Typography","makeStyles","jsx","useStyles","makeStyles","Box","Typography","useMemo","useRef","Box","Button","Chip","IconButton","Typography","Box","Tooltip","useEffect","jsx","Tooltip","Box","jsx","jsxs","jsx","jsxs","useRef","useMemo","Chip","Box","Typography","IconButton","Button","CheckIcon","Box","Button","Chip","Tooltip","Typography","memo","Box","Button","Tooltip","makeStyles","jsx","jsx","jsxs","useStyles","makeStyles","icons","Tooltip","Box","Button","memo","Box","Tooltip","jsx","jsxs","Box","Tooltip","useState","useRef","useEffect","TextField","Box","jsx","Fragment","jsx","jsxs","Typography","Box","Chip","Tooltip","CheckIcon","Button","Box","Button","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Button","Typography","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Typography","memo","memo","CircularProgress","Button","makeStyles","jsx","jsxs","useStyles","makeStyles","Button","CircularProgress","memo","memo","Box","CircularProgress","Button","jsx","jsxs","Button","Box","CircularProgress","memo","memo","Button","makeStyles","jsx","useStyles","Add","Typography","Button","makeStyles","jsx","jsxs","useStyles","Add","Button","Typography","useRef","useState","forwardRef","Box","jsx","jsxs","forwardRef","useState","useRef","Box","memo","Button","CircularProgress","makeStyles","jsx","jsxs","useStyles","makeStyles","Button","CircularProgress","memo","memo","Button","withStyles","jsx","Add","ChevronRight","Delete","Edit","Refresh","Search","Tooltip","makeStyles","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","useStyles","makeStyles","Add","ChevronRight","Delete","Edit","Refresh","Search","Button","Tooltip","memo","makeStyles","jsx","useStyles","Fab","makeStyles","jsx","useStyles","Box","Button","Checkbox","Divider","Skeleton","Typography","jsx","jsxs","Box","Skeleton","Divider","Checkbox","Typography","Button","Box","FormControlLabel","Typography","Box","Dialog","DialogActions","Divider","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Typography","Dialog","Box","Divider","DialogActions","jsx","jsxs","Box","FormControlLabel","Typography","makeStyles","jsx","useStyles","Controller","Checkbox","FormControlLabel","Tooltip","jsx","Controller","TextField","makeStyles","jsx","useStyles","useMemo","Controller","Box","IconButton","InputAdornment","TextField","makeStyles","jsx","jsxs","convertUnderscoreToHyphen","useStyles","Controller","FormControl","FormHelperText","InputLabel","Select","makeStyles","jsx","jsxs","useStyles","Controller","FormControl","FormHelperText","InputLabel","Select","makeStyles","jsx","jsxs","useStyles","useState","Paper","Skeleton","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Paper","Skeleton","jsx","memo","Alert","AlertTitle","Typography","Box","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Alert","AlertTitle","Typography","Box","memo","memo","Alert","AlertTitle","Typography","Box","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Alert","AlertTitle","Typography","Box","memo","Controller","Box","FormControlLabel","Checkbox","Tooltip","Typography","jsx","jsxs","Box","Typography","Controller","Tooltip","FormControlLabel","Checkbox","Typography","Box","jsx","jsxs","document","memo","Typography","makeStyles","jsx","useStyles","useState","Box","Typography","Menu","MenuItem","Checkbox","Divider","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Menu","Box","Typography","Divider","MenuItem","Checkbox","useState","Box","Typography","Menu","MenuItem","Checkbox","ListItemText","Divider","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","Menu","Box","Typography","Divider","MenuItem","Checkbox","ListItemText","React","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","Box","IconButton","Paper","alpha","jsx","jsxs","Paper","alpha","IconButton","Box","memo","memo","useCallback","useEffect","useRef","useState","Box","jsx","Paper","makeStyles","jsx","jsxs","useStyles","makeStyles","Paper","ListItemText","Fragment","jsx","jsxs","Fragment","Box","Chip","Typography","classNames","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Chip","classNames","Typography","Fragment","useEffect","useState","FormControl","InputAdornment","InputLabel","makeStyles","jsx","jsxs","useStyles","makeStyles","Notes","useState","useEffect","FormControl","InputLabel","InputAdornment","jsx","jsxs","memo","useState","TextField","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","Typography","TextField","memo","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Paper","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Paper","Typography","useCallback","useEffect","Controller","FormControlLabel","TextField","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useCallback","useEffect","Controller","FormControlLabel","TextField","Typography","useState","Typography","withStyles","withStyles","jsx","jsxs","withStyles","Fragment","jsx","jsxs","useState","Typography","withStyles","Box","Typography","withStyles","jsx","jsxs","withStyles","Box","Typography","useEffect","useState","useRef","ListItemText","Tooltip","makeStyles","useEffect","useState","jsx","jsxs","useStyles","makeStyles","useState","useRef","useEffect","ListItemText","Tooltip","Box","Divider","Paper","Typography","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","Paper","Box","Typography","Divider","useEffect","useRef","useState","Box","Dialog","Divider","Paper","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","useRef","useEffect","footerHeight","Dialog","Paper","Typography","Divider","Box","Box","Paper","makeStyles","useState","useEffect","React","Button","Divider","InputBase","Paper","makeStyles","jsx","jsxs","useStyles","makeStyles","useState","useEffect","Paper","InputBase","Divider","Button","jsx","jsxs","useStyles","makeStyles","Paper","Box","React","Box","makeStyles","useState","memo","ArrowDropDownIcon","ArrowDropUpIcon","SearchIcon","Box","Button","Divider","InputBase","Paper","makeStyles","Fragment","jsx","jsxs","useStyles","makeStyles","useState","ArrowDropUpIcon","ArrowDropDownIcon","Paper","Box","SearchIcon","InputBase","Divider","Button","memo","jsx","jsxs","useStyles","makeStyles","Box","Box","Paper","jsx","jsxs","Paper","Box","Box","Divider","IconButton","Tooltip","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","Typography","Tooltip","Divider","IconButton","useState","Box","Checkbox","CircularProgress","FormControl","FormHelperText","InputLabel","ListItemText","Select","Typography","jsx","jsxs","useState","Box","Typography","Checkbox","ListItemText","FormControl","InputLabel","Select","CircularProgress","FormHelperText","memo","Typography","red","makeStyles","jsx","useStyles","memo","Grid","withStyles","jsx","jsxs","useState","useEffect","Menu","classNames","Fragment","jsx","jsxs","MAX_WIDTH","useState","useEffect","classNames","Menu","memo","Box","Checkbox","Tooltip","Typography","jsx","jsxs","memo","Checkbox","Box","Tooltip","Typography","useState","Box","Paper","TableCell","TableHead","TableRow","TableSortLabel","makeStyles","Box","Skeleton","jsx","jsx","jsxs","useStyles","makeStyles","useState","TableRow","TableCell","Paper","Box","TableHead","TableSortLabel","useMemo","useState","useEffect","useRef","Paper","Table","TableBody","TableContainer","Box","Skeleton","TableCell","TableRow","jsx","TableRow","TableCell","Skeleton","TableBody","TableCell","TableRow","Typography","Button","jsxs","jsx","jsxs","TableBody","TableRow","TableCell","Typography","jsx","descendingComparator","stableSort","Box","Button","Typography","jsx","jsxs","Box","Typography","Button","TableCell","TableRow","Typography","makeStyles","jsx","jsxs","useStyles","makeStyles","TableRow","TableCell","Typography","Fragment","jsx","jsxs","useRef","useState","useMemo","useEffect","Box","Paper","TableContainer","Table","TableBody","useEffect","useState","Checkbox","FormControlLabel","moment","useMemo","jsx","useMemo","useState","jsx","useState","useEffect","useMemo","useState","useRef","useState","Chip","TextField","alpha","useTheme","jsx","Fragment","jsx","useState","useRef","useMemo","useEffect","useMemo","useState","useRef","TextField","jsx","jsx","useState","useEffect","FormControlLabel","Checkbox","moment","Refresh","Box","Button","MenuItem","Pagination","Select","Typography","jsx","jsxs","Box","Button","Refresh","Typography","Select","MenuItem","Pagination","useEffect","useState","CheckIcon","IconButton","TableCell","Tooltip","Fragment","jsx","jsxs","CheckIcon","useState","useEffect","TableCell","Tooltip","IconButton","useState","useMemo","useRef","KeyboardArrowLeft","KeyboardArrowRight","Box","Button","Divider","FormControlLabel","IconButton","Switch","Tooltip","Typography","Fragment","jsx","jsxs","useRef","useState","useMemo","Box","Typography","Divider","Tooltip","FormControlLabel","Switch","IconButton","KeyboardArrowLeft","KeyboardArrowRight","Button","memo","useEffect","useState","TableCell","TableHead","TableRow","TableSortLabel","makeStyles","jsx","useStyles","Box","Typography","Divider","Button","makeStyles","jsx","jsxs","useStyles","makeStyles","Icon","Box","Divider","Button","Typography","makeStyles","jsx","useStyles","memo","Box","makeStyles","jsx","jsxs","useStyles","makeStyles","Box","memo","jsx","Typography","Dialog","Box","Divider","Paper","Fade","makeStyles","jsx","jsxs","useStyles","makeStyles","Dialog","Fade","Paper","Box","Typography","Divider","memo","Avatar","Typography","jsx","jsxs","jsx"]}