@natoora-libs/core 0.2.47 → 0.2.49
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/index.ts","../../src/components/ActiveFiltersIconButton/ActiveFiltersIconButton.tsx","../../src/components/AddressFormFields/AddressFormFields.tsx","../../src/components/ControlledValidTextInput/ControlledValidTextInput.tsx","../../src/components/GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete.tsx","../../src/resources/styles/colors/lightPalette.ts","../../src/resources/styles/colors.ts","../../src/components/PhoneInput/PhoneInput.tsx","../../src/components/SmartSelect/SmartSelect.tsx","../../src/utils/getSelectOptionFromKeyPress/getSelectOptionFromKeyPress.ts","../../src/components/AlertDialog/AlertDialog.tsx","../../src/components/AlertDialogFullScreen/AlertDialogFullScreen.tsx","../../src/components/AppLabel/AppLabel.tsx","../../src/components/AppliedTableFiltersDisplay/AppliedTableFiltersDisplay.tsx","../../src/hooks/useDynamicScroll/useDynamicScroll.ts","../../src/utils/flattenTableFilters/flattenTableFilters.ts","../../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/Loading/Loading.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","export { ActiveFiltersIconButton } from './ActiveFiltersIconButton/ActiveFiltersIconButton';\nexport { AddressFormFields } from './AddressFormFields/AddressFormFields';\nexport { default as AlertDialog } from './AlertDialog/AlertDialog';\nexport { default as AlertDialogFullScreen } from './AlertDialogFullScreen/AlertDialogFullScreen';\nexport { default as AppLabel } from './AppLabel/AppLabel';\nexport { AppliedTableFiltersDisplay } from './AppliedTableFiltersDisplay/AppliedTableFiltersDisplay';\nexport { AutocompleteFilterMenuContent } from './AutocompleteFilterMenuContent/AutocompleteFilterMenuContent';\nexport { default as BackHeader } from './BackHeader/BackHeader';\nexport { default as BottomBar } from './BottomBar/BottomBar';\nexport { default as BoxButton } from './BoxButton/BoxButton';\n\nexport { default as ExtendedButton } from './Buttons/ExtendedButton/ExtendedButton';\nexport { default as FilledButton } from './Buttons/FilledButton/FilledButton';\nexport { default as FilledButtonLg } from './Buttons/FilledButton/FilledButtonLg';\nexport { default as ImageButton } from './Buttons/ImageButton/ImageButton';\nexport { default as SquareButton } from './Buttons/SquareButton/SquareButton';\nexport { default as UploadButton } from './Buttons/UploadButton/UploadButton';\nexport { default as OutlinedButton } from './Buttons/OutlinedButton/OutlinedButton';\nexport { default as OutlinedButtonLg } from './Buttons/OutlinedButton/OutlinedButtonLg';\nexport { default as RoundButton } from './Buttons/RoundButton/RoundButton';\nexport { default as Pin } from './Buttons/Pin';\nexport { default as PinnedApp } from './Buttons/PinnedApp';\nexport { CheckboxFilterMenuContent } from './CheckboxFilterMenuContent/CheckboxFilterMenuContent';\nexport { ClearFiltersConfirmationDialog } from './ClearFiltersConfirmationDialog/ClearFiltersConfirmationDialog';\nexport { default as CompanyLogo } from './CompanyLogo/CompanyLogo';\nexport { default as ConfirmationDialog } from './ConfirmationDialog/ConfirmationDialog';\nexport { default as ControlledCheckbox } from './ControlledCheckbox/ControlledCheckbox';\nexport { default as ControlledNumberInput } from './ControlledNumberInput/ControlledNumberInput';\nexport { default as ControlledNumericField } from './ControlledNumericField/ControlledNumericField';\nexport { default as ControlledSelectWithArray } from './ControlledSelectWithArray/ControlledSelectWithArray';\nexport { default as ControlledSelectWithObject } from './ControlledSelectWithObject/ControlledSelectWithObject';\nexport { default as ControlledValidTextInput } from './ControlledValidTextInput/ControlledValidTextInput';\nexport { default as DataGrid } from './DataGrid/DataGrid';\nexport { default as Date } from './Date/Date';\nexport { default as DeleteSubstitutionDialogContent } from './DeleteSubstitutionDialogContent/DeleteSubstitutionDialogContent';\nexport { default as DeleteUserDialogContent } from './DeleteUserDialogContent/DeleteUserDialogContent';\nexport { DeliveryInstructionsFormFields } from './DeliveryInstructionsFormFields/DeliveryInstructionsFormFields';\nexport { DynamicOverflowTooltip } from './DynamicOverflowTooltip/DynamicOverflowTooltip';\nexport { default as FileCard } from './FileCard/FileCard';\nexport { default as FilledLabel } from './FilledLabel/FilledLabel';\n\nexport { default as FilterGroupSelector } from './FilterGroupSelector/FilterGroupSelector';\nexport { default as FilterSimpleSelector } from './FilterSimpleSelector/FilterSimpleSelector';\nexport { FilterOptionsCheckboxes } from './FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nexport { default as FixedFooter } from './FixedFooter/FixedFooter';\nexport { default as GlobalSearchTrigger } from './GlobalSearchTrigger/GlobalSearchTrigger';\nexport { default as GlobalSearch } from './GlobalSearch/GlobalSearch';\nexport {\n GooglePlacesAddressAutocomplete,\n type AddressOption,\n} from './GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete';\nexport { default as Header } from './Header/Header';\n\nexport { default as icons } from './icons';\nexport { LabeledValueList } from './LabeledValueList/LabeledValueList';\nexport { default as List } from './List/List';\nexport { default as Loading } from './Loading/Loading';\nexport { default as LocationsSectionInfo } from './LocationsSectionInfo/LocationsSectionInfo';\nexport { default as Notes } from './Notes/Notes';\nexport { default as Numpad } from './Numpad/Numpad';\nexport { default as NumpadInput } from './NumpadInput/NumpadInput';\nexport { default as NumpadPlus } from './NumpadPlus/NumpadPlus';\nexport { default as Pagination } from './Pagination/Pagination';\nexport { PhoneInput } from './PhoneInput/PhoneInput';\nexport { default as PlusMinusInput } from './PlusMinusInput/PlusMinusInput';\nexport { default as ProductBust } from './ProductBust/ProductBust';\nexport { default as ProductImage } from './ProductImage/ProductImage';\nexport { default as RenderAvatar } from './RenderAvatar/RenderAvatar';\nexport { default as RenderContentList } from './RenderContentList/RenderContentList';\nexport { default as RowProductCard } from './RowProductCard/RowProductCard';\nexport { default as ScrollableDialog } from './ScrollableDialog/ScrollableDialog';\n\nexport { default as SearchAndFilterHeader } from './SearchAndFilterHeader/SearchAndFilterHeader';\nexport { default as SearchAndFilterHeaderForTable } from './SearchAndFilterHeader/SearchAndFilterHeaderForTable';\nexport { SearchFieldDebounced } from './SearchFieldDebounced/SearchFieldDebounced';\nexport { SearchHeader } from './SearchHeader/SearchHeader';\nexport { default as SearchWithFilters } from './SearchWithFilters/SearchWithFilters';\nexport { default as SearchWithFiltersForTable } from './SearchWithFilters/SearchWithFiltersForTable';\n\nexport { default as SectionName } from './SectionName/SectionName';\nexport { SmartMultipleSelect } from './SmartMultipleSelect/SmartMultipleSelect';\nexport { SmartSelect, type Option } from './SmartSelect/SmartSelect';\nexport { default as SquareLabel } from './SquareLabel/SquareLabel';\nexport { default as Switch } from './Switch/Switch';\n\nexport { SmartTableHeaderFilterMenu } from './SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu';\nexport { SmartTableHeader } from './SmartTableHeader/SmartTableHeader';\nexport { default as Table } from './Table/Table';\nexport {\n TableDesktop,\n type HeaderFilters,\n type HeaderFilterOptions,\n type HeaderFilterObject,\n type HeadCell,\n type Order,\n type RowId,\n type EditableCellType,\n type UpdateEditableCellParams,\n} from './TableDesktop/TableDesktop';\nexport { TableDesktopEditableField } from './TableDesktopEditableField/TableDesktopEditableField';\nexport {\n TableDesktopFooter,\n type TableDesktopFooterProps,\n} from './TableDesktopFooter/TableDesktopFooter';\nexport { TableDesktopCell } from './TableDesktopCell/TableDesktopCell';\nexport {\n TableDesktopToolbar,\n type TableDesktopToolbarProps,\n type TableColumnConfigurationMenuProps,\n type BulkChanges,\n type BulkChangesDialogProps,\n type ExportCsvDialogProps,\n} from './TableDesktopToolbar/TableDesktopToolbar';\nexport { default as TableEmptyResult } from './TableEmptyResult/TableEmptyResult';\nexport { default as TableLoading } from './TableLoading/TableLoading';\n\nexport { default as TableHeader } from './TableHeader/TableHeader';\nexport { default as TextDivider } from './TextDivider/TextDivider';\nexport { default as ThemedDateRangePicker } from './ThemedDateRangePicker/ThemedDateRangePicker';\nexport { default as TheToolbar } from './TheToolbar/TheToolbar';\nexport { default as ToastMessage } from './ToastMessage/ToastMessage';\nexport { default as TwoButtonDialog } from './TwoButtonDialog/TwoButtonDialog';\nexport { default as UserBust } from './UserBust/UserBust';\nexport { HashtagInput } from './HashtagInput/HashtagInput';\n\nexport { default as IconCompare } from './icons/IconCompare';\nexport { default as IconChart } from './icons/IconChart';\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 { ThemePalette } from './interface';\n\n/**\n * Define the light palette using the ThemePalette interface.\n */\nconst lightPalette: ThemePalette = {\n // General colors\n white: '#FFFFFF',\n black: '#000000',\n\n // Neutral\n neutral50: '#F0EBE6',\n neutral100: '#FAFAFA',\n neutral150: '#F4F4F4',\n neutral200: '#F1F1F1',\n neutral250: '#ECECEC',\n neutral300: '#E0E0E0',\n neutral400: '#C8C8C8',\n neutral500: '#BDBDBD',\n neutral600: '#999999',\n neutral700: '#878787',\n neutral750: '#6c6c6c',\n neutral800: '#555555',\n neutral900: '#4D4D4D',\n\n // Input and contrast\n contrast: '#000000',\n constrastOpacity50: 'rgba(0,0,0,0.5)',\n\n // Icon and Material UI colors\n iconSearch: '#606060',\n default: '#E0E0E0',\n muiPrimary: '#0781CE',\n muiPrimaryBlack: '#000000',\n lightMuiPrimaryColorBackground: '#eff4fb',\n lightBlueBackground: '#eff4fb',\n muiPrimaryAlternate: '#07BAF1',\n muiPrimaryHover: '#1565c0',\n muiSecondary: '#A42966',\n muiSecondaryAlternate: '#EC613C',\n muiSuccess: '#4caf50',\n muiSuccessAlternate: '#357a38',\n\n // Transparency variants\n blackOpacity10: 'rgba(0,0,0,0.1)',\n blackOpacity20: 'rgba(0,0,0,0.2)',\n blackOpacity30: 'rgba(0,0,0,0.3)',\n blackOpacity50: 'rgba(0,0,0,0.5)',\n blackOpacity80: 'rgba(0,0,0,0.8)',\n primaryOpacity10: 'rgba(7, 129, 206, 0.10)',\n primaryOpacity20: 'rgba(7, 129, 206, 0.20)',\n primaryOpacity30: 'rgba(7, 129, 206, 0.30)',\n secondaryAlternateOpacity30: 'rgba(236, 97, 60, 0.3)',\n blueOpacity08: 'rgba(25, 118, 210, 0.08)',\n whiteOpacity10: 'rgba(255,255,255,0.1)',\n whiteOpacity20: 'rgba(255,255,255,0.2)',\n whiteOpacity40: 'rgba(255,255,255,0.4)',\n\n // Table rows and top bar\n topBar: '#2e3133',\n\n // Button colors\n // Round Button (default)\n buttonHoverBackground: 'rgba(0, 0, 0, 0.04)',\n // Active Button\n buttonActiveText: '#0781CE',\n // Contrast Button\n buttonContrastBorder: '#CECECE',\n buttonContrastText: '#CECECE',\n\n // Error Button\n error: '#D32F2F',\n};\n\nexport default lightPalette;\n","import lightPalette from './colors/lightPalette';\n\nexport const isDarkModeEnabled = false;\nconst palette = lightPalette;\n\ninterface Colors {\n // General colors\n white: string;\n black: string;\n\n // Neutral\n neutral50: string;\n neutral100: string;\n neutral150: string;\n neutral200: string;\n neutral250: string;\n neutral300: string;\n neutral400: string;\n neutral500: string;\n neutral600: string;\n neutral700: string;\n neutral750: string;\n neutral800: string;\n neutral900: string;\n\n // Input and contrast\n contrast: string;\n constrastOpacity50: string;\n\n // Icon and Material UI colors\n iconSearch: string;\n default: string;\n muiPrimary: string;\n muiPrimaryBlack: string;\n lightMuiPrimaryColorBackground: string;\n lightBlueBackground: string;\n muiPrimaryAlternate: string;\n muiPrimaryHover: string;\n muiSecondary: string;\n muiSecondaryAlternate: string;\n muiSuccess: string;\n muiSuccessAlternate: string;\n\n // Transparency\n blackOpacity10: string;\n blackOpacity20: string;\n blackOpacity30: string;\n blackOpacity50: string;\n blackOpacity80: string;\n primaryOpacity10: string;\n primaryOpacity20: string;\n primaryOpacity30: string;\n secondaryAlternateOpacity30: string;\n blueOpacity08: string;\n whiteOpacity10: string;\n whiteOpacity20: string;\n whiteOpacity40: string;\n\n // Table rows and top bar\n topBar: string;\n // Error Button\n error: string;\n\n roundButton: {\n default: {\n border: string;\n color: string;\n disabled: {\n color: string;\n };\n hover: {\n background: string;\n };\n };\n filled: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n active: {\n color: string;\n hover: {\n background: string;\n };\n };\n contrast: {\n border: string;\n color: string;\n hover: {\n background: string;\n };\n };\n tableButton: {\n color: string;\n };\n focused: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n error: string;\n };\n\n movementCard: {\n default: {\n background: string;\n };\n disabled: {\n background: string;\n };\n pill: {\n color: string;\n background: string;\n };\n };\n\n rowProductCard: {\n locationSubtitle: string;\n };\n}\n\nexport const colors: Colors = {\n white: palette.white,\n black: palette.black,\n\n neutral50: palette.neutral50,\n neutral100: palette.neutral100,\n neutral150: palette.neutral150,\n neutral200: palette.neutral200,\n neutral250: palette.neutral250,\n neutral300: palette.neutral300,\n neutral400: palette.neutral400,\n neutral500: palette.neutral500,\n neutral600: palette.neutral600,\n neutral700: palette.neutral700,\n neutral750: palette.neutral750,\n neutral800: palette.neutral800,\n neutral900: palette.neutral900,\n\n // Input and contrast\n contrast: palette.contrast,\n constrastOpacity50: palette.constrastOpacity50,\n\n iconSearch: palette.iconSearch,\n default: palette.default,\n muiPrimary: palette.muiPrimary,\n muiPrimaryBlack: palette.muiPrimaryBlack,\n lightMuiPrimaryColorBackground: palette.lightMuiPrimaryColorBackground,\n lightBlueBackground: palette.lightBlueBackground,\n muiPrimaryAlternate: palette.muiPrimaryAlternate,\n muiPrimaryHover: palette.muiPrimaryHover,\n muiSecondary: palette.muiSecondary,\n muiSecondaryAlternate: palette.muiSecondaryAlternate,\n muiSuccess: palette.muiSuccess,\n muiSuccessAlternate: palette.muiSuccessAlternate,\n\n // Transparency\n blackOpacity10: palette.blackOpacity10,\n blackOpacity20: palette.blackOpacity20,\n blackOpacity30: palette.blackOpacity30,\n blackOpacity50: palette.blackOpacity50,\n blackOpacity80: palette.blackOpacity80,\n primaryOpacity10: palette.primaryOpacity10,\n primaryOpacity20: palette.primaryOpacity20,\n primaryOpacity30: palette.primaryOpacity30,\n secondaryAlternateOpacity30: palette.secondaryAlternateOpacity30,\n blueOpacity08: palette.blueOpacity08,\n whiteOpacity10: palette.whiteOpacity10,\n whiteOpacity20: palette.whiteOpacity20,\n whiteOpacity40: palette.whiteOpacity40,\n\n topBar: palette.topBar,\n error: palette.error,\n\n roundButton: {\n default: {\n border: palette.neutral600,\n color: palette.contrast,\n disabled: {\n color: palette.blackOpacity20,\n },\n hover: {\n background: palette.buttonHoverBackground,\n },\n },\n filled: {\n background: palette.neutral100,\n color: palette.blackOpacity80,\n hover: {\n background: palette.neutral250,\n },\n },\n active: {\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity20,\n },\n },\n contrast: {\n border: palette.buttonContrastBorder,\n color: palette.buttonContrastText,\n hover: {\n background: palette.whiteOpacity10,\n },\n },\n tableButton: {\n color: palette.neutral800,\n },\n focused: {\n background: palette.primaryOpacity20,\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity30,\n },\n },\n error: palette.error,\n },\n\n movementCard: {\n default: {\n background: palette.neutral100,\n },\n disabled: {\n background: palette.neutral250,\n },\n pill: {\n color: palette.neutral200,\n background: palette.neutral600,\n },\n },\n\n rowProductCard: {\n locationSubtitle: palette.neutral800,\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","export interface NavigableOption {\n value?: string | number | null;\n label?: string;\n disabled?: boolean;\n}\n\nexport interface GetSelectOptionFromKeyPressParams<T extends NavigableOption> {\n key: string;\n options: T[];\n currentValue?: string | number | null;\n}\n\nconst getNextCircularIndex = ({\n isArrowUp,\n currentIndex,\n numOptions,\n iteration,\n}: {\n isArrowUp: boolean;\n currentIndex: number;\n numOptions: number;\n iteration: number;\n}) => {\n const step = isArrowUp ? -iteration : iteration;\n return (currentIndex + step + numOptions) % numOptions;\n};\n\nexport const getSelectOptionFromKeyPress = <T extends NavigableOption>({\n key,\n options,\n currentValue,\n}: GetSelectOptionFromKeyPressParams<T>): T | undefined => {\n const numOptions = options.length;\n const isArrowUp = key === 'ArrowUp';\n const isArrowDown = key === 'ArrowDown';\n const isArrow = isArrowUp || isArrowDown;\n const searchKey = key.toLowerCase();\n\n // Ignores any input that is not ArrowUp, ArrowDown or a single character.\n if (!isArrow && searchKey.length !== 1) {\n return undefined;\n }\n\n if (!numOptions) {\n return undefined;\n }\n\n const currentIndex = options.findIndex((o) => o.value === currentValue);\n\n // Generates a circular sequence of indices starting from the next item.\n // This ensures that pressing the same key repeatedly cycles through all matching options.\n const indicesToCheck = Array.from({ length: numOptions }).map((_, i) =>\n getNextCircularIndex({\n isArrowUp,\n currentIndex,\n numOptions,\n iteration: i + 1,\n }),\n );\n\n const nextMatchIndex = indicesToCheck.find((indexToCheck) => {\n const option = options[indexToCheck];\n return (\n !option.disabled &&\n (isArrow || option.label?.toLowerCase().startsWith(searchKey))\n );\n });\n\n if (nextMatchIndex !== undefined && nextMatchIndex !== currentIndex) {\n return options[nextMatchIndex];\n }\n\n return undefined;\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 { RefObject, useCallback, useEffect, useState } from 'react';\n\ntype useDynamicScrollParams = {\n scrollRef: RefObject<HTMLDivElement | null>;\n scrollAmount?: number;\n effectDependencies: unknown[];\n};\n\nexport const useDynamicScroll = ({\n scrollRef,\n scrollAmount = 300,\n effectDependencies,\n}: useDynamicScrollParams) => {\n const [isScrollable, setIsScrollable] = useState(false);\n\n const checkIfScrollNeeded = useCallback(() => {\n if (scrollRef.current) {\n const { scrollWidth, clientWidth } = scrollRef.current;\n setIsScrollable(scrollWidth > clientWidth);\n }\n }, []);\n\n const scroll = (direction: 'left' | 'right') => {\n if (scrollRef?.current) {\n scrollRef.current.scrollLeft +=\n direction === 'left' ? -scrollAmount : scrollAmount;\n }\n };\n\n useEffect(() => {\n checkIfScrollNeeded();\n\n window.addEventListener('resize', checkIfScrollNeeded);\n\n return () => {\n window.removeEventListener('resize', checkIfScrollNeeded);\n };\n }, [checkIfScrollNeeded, ...effectDependencies]);\n\n return { isScrollable, scroll };\n};\n","import {\n HeaderFilterObject,\n HeaderFilters,\n} from '@/components/TableDesktop/TableDesktop';\n\nexport type FlattenedFilterIds = {\n [key: string]: (string | number)[];\n};\n\nexport const getFlattenedFiltersLabels = (\n filters: string[] | HeaderFilterObject[],\n fieldName: string,\n): (string | number)[] => {\n return filters.map((value: string | HeaderFilterObject) => {\n if (typeof value === 'object') {\n return value[fieldName] ?? '';\n }\n return value;\n });\n};\n\nexport const getFlattenedFiltersIds = (\n filters: HeaderFilters,\n): FlattenedFilterIds =>\n Object.fromEntries(\n Object.entries(filters).map(([id, values]) => [\n id,\n values.map((value) => (typeof value === 'object' ? value.id : value)),\n ]),\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'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 { Backdrop, CircularProgress } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { isDarkModeEnabled } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n wrapper: {\n /**\n * MUI Dialogs have z-index = 1300\n */\n zIndex: 1301,\n backgroundColor: isDarkModeEnabled\n ? 'rgba(0, 0, 0, 0.5)'\n : 'rgba(255, 255, 255, 0.8)',\n },\n}));\n\ninterface ILoading {\n isLoading: boolean;\n}\n\nconst Loading = ({ isLoading }: ILoading) => {\n const { classes } = useStyles();\n\n return (\n <Backdrop\n aria-hidden={!isLoading}\n className={classes.wrapper}\n open={isLoading}\n data-testid=\"backdrop-loading\"\n >\n <CircularProgress color=\"primary\" />\n </Backdrop>\n );\n};\n\nexport default Loading;\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":["exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","Symbol","exports","module","Symbol","exports","module","exports","module","Symbol","exports","module","exports","module","exports","module","exports","module","debounce","FilterList","import_react","import_react_hook_form","import_material","import_material","import_jsx_runtime","classNames","import_react","import_material","import_jsx_runtime","GooglePlacesAutocomplete","Clear","import_material","import_jsx_runtime","ReactPhoneInput","import_react","import_material","import_jsx_runtime","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_react","import_react","import_material","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","KeyboardArrowLeft","KeyboardArrowRight","import_Check","import_material","import_react","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","useStyles","icons","AppsIcon","import_material","import_jsx_runtime","CheckIcon","import_react","import_material","import_jsx_runtime","Search","import_jsx_runtime","CheckIcon","import_material","import_mui","import_jsx_runtime","useStyles","KeyboardBackspace","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","Add","ChevronRight","import_react","import_material","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_icons_material","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","useStyles","Button","import_react","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_material","import_mui","import_jsx_runtime","useStyles","import_jsx_runtime","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_jsx_runtime","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_react_hook_form","import_icons_material","import_material","import_mui","import_jsx_runtime","convertUnderscoreToHyphen","useStyles","KeyboardArrowUpIcon","KeyboardArrowDownIcon","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","MUIDataGrid","import_colors","import_styles","moment","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_jsx_runtime","import_material","import_jsx_runtime","document","DescriptionIcon","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","React","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_styles","import_jsx_runtime","SearchRoundedIcon","CloseRoundedIcon","import_react","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_colors","import_classnames","import_mui","import_jsx_runtime","useStyles","classNames","import_react","import_material","import_mui","import_jsx_runtime","useStyles","Notes","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_mui","import_react","import_jsx_runtime","useStyles","WarningAmber","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","footerHeight","import_material","import_mui","import_react","React","import_icons_material","import_material","import_mui","import_jsx_runtime","useStyles","SearchIcon","ArrowDropUpIcon","ArrowDropDownIcon","import_jsx_runtime","useStyles","React","import_material","import_mui","import_react","import_icons_material","import_material","import_mui","import_jsx_runtime","useStyles","ArrowDropUpIcon","ArrowDropDownIcon","SearchIcon","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","InfoIcon","HistoryIcon","import_react","import_material","import_jsx_runtime","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_classnames","import_jsx_runtime","MAX_WIDTH","classNames","import_react","import_material","import_jsx_runtime","import_react","import_material","import_mui","import_material","import_jsx_runtime","import_jsx_runtime","useStyles","debounce","uuidv4","MUITable","import_react","import_material","import_material","import_jsx_runtime","import_material","import_jsx_runtime","import_jsx_runtime","TableBody","TableRow","TableCell","Typography","import_jsx_runtime","descendingComparator","stableSort","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_jsx_runtime","import_react","import_material","import_moment","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_react","import_material","import_jsx_runtime","palette","import_jsx_runtime","import_react","import_material","import_jsx_runtime","import_jsx_runtime","moment","DeleteIcon","import_material","import_jsx_runtime","Refresh","import_react","import_Check","import_material","import_jsx_runtime","CheckIcon","CloseIcon","EditIcon","import_react","import_KeyboardArrowLeft","import_KeyboardArrowRight","import_material","import_jsx_runtime","KeyboardArrowLeft","KeyboardArrowRight","Download","import_react","import_material","import_mui","import_jsx_runtime","useStyles","ImportExportIcon","import_material","import_mui","import_jsx_runtime","useStyles","Icon","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","MuiAlert","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObject.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_freeGlobal.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_root.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/now.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseTrim.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Symbol.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getRawTag.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_objectToString.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGetTag.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObjectLike.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isSymbol.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/toNumber.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/debounce.js","../../src/components/index.ts","../../src/components/ActiveFiltersIconButton/ActiveFiltersIconButton.tsx","../../src/components/AddressFormFields/AddressFormFields.tsx","../../src/components/ControlledValidTextInput/ControlledValidTextInput.tsx","../../src/components/GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete.tsx","../../src/resources/styles/colors/lightPalette.ts","../../src/resources/styles/colors.ts","../../src/components/PhoneInput/PhoneInput.tsx","../../src/components/SmartSelect/SmartSelect.tsx","../../src/utils/getSelectOptionFromKeyPress/getSelectOptionFromKeyPress.ts","../../src/components/AlertDialog/AlertDialog.tsx","../../src/components/AlertDialogFullScreen/AlertDialogFullScreen.tsx","../../src/components/AppLabel/AppLabel.tsx","../../src/components/AppliedTableFiltersDisplay/AppliedTableFiltersDisplay.tsx","../../src/hooks/useDynamicScroll/useDynamicScroll.ts","../../src/utils/flattenTableFilters/flattenTableFilters.ts","../../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/Loading/Loading.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","export { ActiveFiltersIconButton } from './ActiveFiltersIconButton/ActiveFiltersIconButton';\nexport { AddressFormFields } from './AddressFormFields/AddressFormFields';\nexport { default as AlertDialog } from './AlertDialog/AlertDialog';\nexport { default as AlertDialogFullScreen } from './AlertDialogFullScreen/AlertDialogFullScreen';\nexport { default as AppLabel } from './AppLabel/AppLabel';\nexport { AppliedTableFiltersDisplay } from './AppliedTableFiltersDisplay/AppliedTableFiltersDisplay';\nexport { AutocompleteFilterMenuContent } from './AutocompleteFilterMenuContent/AutocompleteFilterMenuContent';\nexport { default as BackHeader } from './BackHeader/BackHeader';\nexport { default as BottomBar } from './BottomBar/BottomBar';\nexport { default as BoxButton } from './BoxButton/BoxButton';\n\nexport { default as ExtendedButton } from './Buttons/ExtendedButton/ExtendedButton';\nexport { default as FilledButton } from './Buttons/FilledButton/FilledButton';\nexport { default as FilledButtonLg } from './Buttons/FilledButton/FilledButtonLg';\nexport { default as ImageButton } from './Buttons/ImageButton/ImageButton';\nexport { default as SquareButton } from './Buttons/SquareButton/SquareButton';\nexport { default as UploadButton } from './Buttons/UploadButton/UploadButton';\nexport { default as OutlinedButton } from './Buttons/OutlinedButton/OutlinedButton';\nexport { default as OutlinedButtonLg } from './Buttons/OutlinedButton/OutlinedButtonLg';\nexport { default as RoundButton } from './Buttons/RoundButton/RoundButton';\nexport { default as Pin } from './Buttons/Pin';\nexport { default as PinnedApp } from './Buttons/PinnedApp';\nexport { CheckboxFilterMenuContent } from './CheckboxFilterMenuContent/CheckboxFilterMenuContent';\nexport { ClearFiltersConfirmationDialog } from './ClearFiltersConfirmationDialog/ClearFiltersConfirmationDialog';\nexport { default as CompanyLogo } from './CompanyLogo/CompanyLogo';\nexport { default as ConfirmationDialog } from './ConfirmationDialog/ConfirmationDialog';\nexport { default as ControlledCheckbox } from './ControlledCheckbox/ControlledCheckbox';\nexport { default as ControlledNumberInput } from './ControlledNumberInput/ControlledNumberInput';\nexport { default as ControlledNumericField } from './ControlledNumericField/ControlledNumericField';\nexport { default as ControlledSelectWithArray } from './ControlledSelectWithArray/ControlledSelectWithArray';\nexport { default as ControlledSelectWithObject } from './ControlledSelectWithObject/ControlledSelectWithObject';\nexport { default as ControlledValidTextInput } from './ControlledValidTextInput/ControlledValidTextInput';\nexport { default as DataGrid } from './DataGrid/DataGrid';\nexport { default as Date } from './Date/Date';\nexport { default as DeleteSubstitutionDialogContent } from './DeleteSubstitutionDialogContent/DeleteSubstitutionDialogContent';\nexport { default as DeleteUserDialogContent } from './DeleteUserDialogContent/DeleteUserDialogContent';\nexport { DeliveryInstructionsFormFields } from './DeliveryInstructionsFormFields/DeliveryInstructionsFormFields';\nexport { DynamicOverflowTooltip } from './DynamicOverflowTooltip/DynamicOverflowTooltip';\nexport { default as FileCard } from './FileCard/FileCard';\nexport { default as FilledLabel } from './FilledLabel/FilledLabel';\n\nexport { default as FilterGroupSelector } from './FilterGroupSelector/FilterGroupSelector';\nexport { default as FilterSimpleSelector } from './FilterSimpleSelector/FilterSimpleSelector';\nexport { FilterOptionsCheckboxes } from './FilterOptionsCheckboxes/FilterOptionsCheckboxes';\nexport { default as FixedFooter } from './FixedFooter/FixedFooter';\nexport { default as GlobalSearchTrigger } from './GlobalSearchTrigger/GlobalSearchTrigger';\nexport { default as GlobalSearch } from './GlobalSearch/GlobalSearch';\nexport {\n GooglePlacesAddressAutocomplete,\n type AddressOption,\n} from './GooglePlacesAddressAutocomplete/GooglePlacesAddressAutocomplete';\nexport { default as Header } from './Header/Header';\n\nexport { default as icons } from './icons';\nexport { LabeledValueList } from './LabeledValueList/LabeledValueList';\nexport { default as List } from './List/List';\nexport { default as Loading } from './Loading/Loading';\nexport { default as LocationsSectionInfo } from './LocationsSectionInfo/LocationsSectionInfo';\nexport { default as Notes } from './Notes/Notes';\nexport { default as Numpad } from './Numpad/Numpad';\nexport { default as NumpadInput } from './NumpadInput/NumpadInput';\nexport { default as NumpadPlus } from './NumpadPlus/NumpadPlus';\nexport { default as Pagination } from './Pagination/Pagination';\nexport { PhoneInput } from './PhoneInput/PhoneInput';\nexport { default as PlusMinusInput } from './PlusMinusInput/PlusMinusInput';\nexport { default as ProductBust } from './ProductBust/ProductBust';\nexport { default as ProductImage } from './ProductImage/ProductImage';\nexport { default as RenderAvatar } from './RenderAvatar/RenderAvatar';\nexport { default as RenderContentList } from './RenderContentList/RenderContentList';\nexport { default as RowProductCard } from './RowProductCard/RowProductCard';\nexport { default as ScrollableDialog } from './ScrollableDialog/ScrollableDialog';\n\nexport { default as SearchAndFilterHeader } from './SearchAndFilterHeader/SearchAndFilterHeader';\nexport { default as SearchAndFilterHeaderForTable } from './SearchAndFilterHeader/SearchAndFilterHeaderForTable';\nexport { SearchFieldDebounced } from './SearchFieldDebounced/SearchFieldDebounced';\nexport { SearchHeader } from './SearchHeader/SearchHeader';\nexport { default as SearchWithFilters } from './SearchWithFilters/SearchWithFilters';\nexport { default as SearchWithFiltersForTable } from './SearchWithFilters/SearchWithFiltersForTable';\n\nexport { default as SectionName } from './SectionName/SectionName';\nexport { SmartMultipleSelect } from './SmartMultipleSelect/SmartMultipleSelect';\nexport { SmartSelect, type Option } from './SmartSelect/SmartSelect';\nexport { default as SquareLabel } from './SquareLabel/SquareLabel';\nexport { default as Switch } from './Switch/Switch';\n\nexport { SmartTableHeaderFilterMenu } from './SmartTableHeaderFilterMenu/SmartTableHeaderFilterMenu';\nexport { SmartTableHeader } from './SmartTableHeader/SmartTableHeader';\nexport { default as Table } from './Table/Table';\nexport {\n TableDesktop,\n type HeaderFilters,\n type HeaderFilterOptions,\n type HeaderFilterObject,\n type HeadCell,\n type Order,\n type RowId,\n type EditableCellType,\n type UpdateEditableCellParams,\n} from './TableDesktop/TableDesktop';\nexport { TableDesktopEditableField } from './TableDesktopEditableField/TableDesktopEditableField';\nexport {\n TableDesktopFooter,\n type TableDesktopFooterProps,\n} from './TableDesktopFooter/TableDesktopFooter';\nexport { TableDesktopCell } from './TableDesktopCell/TableDesktopCell';\nexport {\n TableDesktopToolbar,\n type TableDesktopToolbarProps,\n type TableColumnConfigurationMenuProps,\n type BulkChanges,\n type BulkChangesDialogProps,\n type ExportCsvDialogProps,\n} from './TableDesktopToolbar/TableDesktopToolbar';\nexport { default as TableEmptyResult } from './TableEmptyResult/TableEmptyResult';\nexport { default as TableLoading } from './TableLoading/TableLoading';\n\nexport { default as TableHeader } from './TableHeader/TableHeader';\nexport { default as TextDivider } from './TextDivider/TextDivider';\nexport { default as ThemedDateRangePicker } from './ThemedDateRangePicker/ThemedDateRangePicker';\nexport { default as TheToolbar } from './TheToolbar/TheToolbar';\nexport { default as ToastMessage } from './ToastMessage/ToastMessage';\nexport { default as TwoButtonDialog } from './TwoButtonDialog/TwoButtonDialog';\nexport { default as UserBust } from './UserBust/UserBust';\nexport { HashtagInput } from './HashtagInput/HashtagInput';\n\nexport { default as IconCompare } from './icons/IconCompare';\nexport { default as IconChart } from './icons/IconChart';\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 { ThemePalette } from './interface';\n\n/**\n * Define the light palette using the ThemePalette interface.\n */\nconst lightPalette: ThemePalette = {\n // General colors\n white: '#FFFFFF',\n black: '#000000',\n\n // Neutral\n neutral50: '#F0EBE6',\n neutral100: '#FAFAFA',\n neutral150: '#F4F4F4',\n neutral200: '#F1F1F1',\n neutral250: '#ECECEC',\n neutral300: '#E0E0E0',\n neutral400: '#C8C8C8',\n neutral500: '#BDBDBD',\n neutral600: '#999999',\n neutral700: '#878787',\n neutral750: '#6c6c6c',\n neutral800: '#555555',\n neutral900: '#4D4D4D',\n\n // Input and contrast\n contrast: '#000000',\n constrastOpacity50: 'rgba(0,0,0,0.5)',\n\n // Icon and Material UI colors\n iconSearch: '#606060',\n default: '#E0E0E0',\n muiPrimary: '#0781CE',\n muiPrimaryBlack: '#000000',\n lightMuiPrimaryColorBackground: '#eff4fb',\n lightBlueBackground: '#eff4fb',\n muiPrimaryAlternate: '#07BAF1',\n muiPrimaryHover: '#1565c0',\n muiSecondary: '#A42966',\n muiSecondaryAlternate: '#EC613C',\n muiSuccess: '#4caf50',\n muiSuccessAlternate: '#357a38',\n\n // Transparency variants\n blackOpacity10: 'rgba(0,0,0,0.1)',\n blackOpacity20: 'rgba(0,0,0,0.2)',\n blackOpacity30: 'rgba(0,0,0,0.3)',\n blackOpacity50: 'rgba(0,0,0,0.5)',\n blackOpacity80: 'rgba(0,0,0,0.8)',\n primaryOpacity10: 'rgba(7, 129, 206, 0.10)',\n primaryOpacity20: 'rgba(7, 129, 206, 0.20)',\n primaryOpacity30: 'rgba(7, 129, 206, 0.30)',\n secondaryAlternateOpacity30: 'rgba(236, 97, 60, 0.3)',\n blueOpacity08: 'rgba(25, 118, 210, 0.08)',\n whiteOpacity10: 'rgba(255,255,255,0.1)',\n whiteOpacity20: 'rgba(255,255,255,0.2)',\n whiteOpacity40: 'rgba(255,255,255,0.4)',\n\n // Table rows and top bar\n topBar: '#2e3133',\n\n // Button colors\n // Round Button (default)\n buttonHoverBackground: 'rgba(0, 0, 0, 0.04)',\n // Active Button\n buttonActiveText: '#0781CE',\n // Contrast Button\n buttonContrastBorder: '#CECECE',\n buttonContrastText: '#CECECE',\n\n // Error Button\n error: '#D32F2F',\n};\n\nexport default lightPalette;\n","import lightPalette from './colors/lightPalette';\n\nexport const isDarkModeEnabled = false;\nconst palette = lightPalette;\n\ninterface Colors {\n // General colors\n white: string;\n black: string;\n\n // Neutral\n neutral50: string;\n neutral100: string;\n neutral150: string;\n neutral200: string;\n neutral250: string;\n neutral300: string;\n neutral400: string;\n neutral500: string;\n neutral600: string;\n neutral700: string;\n neutral750: string;\n neutral800: string;\n neutral900: string;\n\n // Input and contrast\n contrast: string;\n constrastOpacity50: string;\n\n // Icon and Material UI colors\n iconSearch: string;\n default: string;\n muiPrimary: string;\n muiPrimaryBlack: string;\n lightMuiPrimaryColorBackground: string;\n lightBlueBackground: string;\n muiPrimaryAlternate: string;\n muiPrimaryHover: string;\n muiSecondary: string;\n muiSecondaryAlternate: string;\n muiSuccess: string;\n muiSuccessAlternate: string;\n\n // Transparency\n blackOpacity10: string;\n blackOpacity20: string;\n blackOpacity30: string;\n blackOpacity50: string;\n blackOpacity80: string;\n primaryOpacity10: string;\n primaryOpacity20: string;\n primaryOpacity30: string;\n secondaryAlternateOpacity30: string;\n blueOpacity08: string;\n whiteOpacity10: string;\n whiteOpacity20: string;\n whiteOpacity40: string;\n\n // Table rows and top bar\n topBar: string;\n // Error Button\n error: string;\n\n roundButton: {\n default: {\n border: string;\n color: string;\n disabled: {\n color: string;\n };\n hover: {\n background: string;\n };\n };\n filled: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n active: {\n color: string;\n hover: {\n background: string;\n };\n };\n contrast: {\n border: string;\n color: string;\n hover: {\n background: string;\n };\n };\n tableButton: {\n color: string;\n };\n focused: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n error: string;\n };\n\n movementCard: {\n default: {\n background: string;\n };\n disabled: {\n background: string;\n };\n pill: {\n color: string;\n background: string;\n };\n };\n\n rowProductCard: {\n locationSubtitle: string;\n };\n}\n\nexport const colors: Colors = {\n white: palette.white,\n black: palette.black,\n\n neutral50: palette.neutral50,\n neutral100: palette.neutral100,\n neutral150: palette.neutral150,\n neutral200: palette.neutral200,\n neutral250: palette.neutral250,\n neutral300: palette.neutral300,\n neutral400: palette.neutral400,\n neutral500: palette.neutral500,\n neutral600: palette.neutral600,\n neutral700: palette.neutral700,\n neutral750: palette.neutral750,\n neutral800: palette.neutral800,\n neutral900: palette.neutral900,\n\n // Input and contrast\n contrast: palette.contrast,\n constrastOpacity50: palette.constrastOpacity50,\n\n iconSearch: palette.iconSearch,\n default: palette.default,\n muiPrimary: palette.muiPrimary,\n muiPrimaryBlack: palette.muiPrimaryBlack,\n lightMuiPrimaryColorBackground: palette.lightMuiPrimaryColorBackground,\n lightBlueBackground: palette.lightBlueBackground,\n muiPrimaryAlternate: palette.muiPrimaryAlternate,\n muiPrimaryHover: palette.muiPrimaryHover,\n muiSecondary: palette.muiSecondary,\n muiSecondaryAlternate: palette.muiSecondaryAlternate,\n muiSuccess: palette.muiSuccess,\n muiSuccessAlternate: palette.muiSuccessAlternate,\n\n // Transparency\n blackOpacity10: palette.blackOpacity10,\n blackOpacity20: palette.blackOpacity20,\n blackOpacity30: palette.blackOpacity30,\n blackOpacity50: palette.blackOpacity50,\n blackOpacity80: palette.blackOpacity80,\n primaryOpacity10: palette.primaryOpacity10,\n primaryOpacity20: palette.primaryOpacity20,\n primaryOpacity30: palette.primaryOpacity30,\n secondaryAlternateOpacity30: palette.secondaryAlternateOpacity30,\n blueOpacity08: palette.blueOpacity08,\n whiteOpacity10: palette.whiteOpacity10,\n whiteOpacity20: palette.whiteOpacity20,\n whiteOpacity40: palette.whiteOpacity40,\n\n topBar: palette.topBar,\n error: palette.error,\n\n roundButton: {\n default: {\n border: palette.neutral600,\n color: palette.contrast,\n disabled: {\n color: palette.blackOpacity20,\n },\n hover: {\n background: palette.buttonHoverBackground,\n },\n },\n filled: {\n background: palette.neutral100,\n color: palette.blackOpacity80,\n hover: {\n background: palette.neutral250,\n },\n },\n active: {\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity20,\n },\n },\n contrast: {\n border: palette.buttonContrastBorder,\n color: palette.buttonContrastText,\n hover: {\n background: palette.whiteOpacity10,\n },\n },\n tableButton: {\n color: palette.neutral800,\n },\n focused: {\n background: palette.primaryOpacity20,\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity30,\n },\n },\n error: palette.error,\n },\n\n movementCard: {\n default: {\n background: palette.neutral100,\n },\n disabled: {\n background: palette.neutral250,\n },\n pill: {\n color: palette.neutral200,\n background: palette.neutral600,\n },\n },\n\n rowProductCard: {\n locationSubtitle: palette.neutral800,\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","export interface NavigableOption {\n value?: string | number | null;\n label?: string;\n disabled?: boolean;\n}\n\nexport interface GetSelectOptionFromKeyPressParams<T extends NavigableOption> {\n key: string;\n options: T[];\n currentValue?: string | number | null;\n}\n\nconst getNextCircularIndex = ({\n isArrowUp,\n currentIndex,\n numOptions,\n iteration,\n}: {\n isArrowUp: boolean;\n currentIndex: number;\n numOptions: number;\n iteration: number;\n}) => {\n const step = isArrowUp ? -iteration : iteration;\n return (currentIndex + step + numOptions) % numOptions;\n};\n\nexport const getSelectOptionFromKeyPress = <T extends NavigableOption>({\n key,\n options,\n currentValue,\n}: GetSelectOptionFromKeyPressParams<T>): T | undefined => {\n const numOptions = options.length;\n const isArrowUp = key === 'ArrowUp';\n const isArrowDown = key === 'ArrowDown';\n const isArrow = isArrowUp || isArrowDown;\n const searchKey = key.toLowerCase();\n\n // Ignores any input that is not ArrowUp, ArrowDown or a single character.\n if (!isArrow && searchKey.length !== 1) {\n return undefined;\n }\n\n if (!numOptions) {\n return undefined;\n }\n\n const currentIndex = options.findIndex((o) => o.value === currentValue);\n\n // Generates a circular sequence of indices starting from the next item.\n // This ensures that pressing the same key repeatedly cycles through all matching options.\n const indicesToCheck = Array.from({ length: numOptions }).map((_, i) =>\n getNextCircularIndex({\n isArrowUp,\n currentIndex,\n numOptions,\n iteration: i + 1,\n }),\n );\n\n const nextMatchIndex = indicesToCheck.find((indexToCheck) => {\n const option = options[indexToCheck];\n return (\n !option.disabled &&\n (isArrow || option.label?.toLowerCase().startsWith(searchKey))\n );\n });\n\n if (nextMatchIndex !== undefined && nextMatchIndex !== currentIndex) {\n return options[nextMatchIndex];\n }\n\n return undefined;\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 { RefObject, useCallback, useEffect, useState } from 'react';\n\ntype useDynamicScrollParams = {\n scrollRef: RefObject<HTMLDivElement | null>;\n scrollAmount?: number;\n effectDependencies: unknown[];\n};\n\nexport const useDynamicScroll = ({\n scrollRef,\n scrollAmount = 300,\n effectDependencies,\n}: useDynamicScrollParams) => {\n const [isScrollable, setIsScrollable] = useState(false);\n\n const checkIfScrollNeeded = useCallback(() => {\n if (scrollRef.current) {\n const { scrollWidth, clientWidth } = scrollRef.current;\n setIsScrollable(scrollWidth > clientWidth);\n }\n }, []);\n\n const scroll = (direction: 'left' | 'right') => {\n if (scrollRef?.current) {\n scrollRef.current.scrollLeft +=\n direction === 'left' ? -scrollAmount : scrollAmount;\n }\n };\n\n useEffect(() => {\n checkIfScrollNeeded();\n\n window.addEventListener('resize', checkIfScrollNeeded);\n\n return () => {\n window.removeEventListener('resize', checkIfScrollNeeded);\n };\n }, [checkIfScrollNeeded, ...effectDependencies]);\n\n return { isScrollable, scroll };\n};\n","import {\n HeaderFilterObject,\n HeaderFilters,\n} from '@/components/TableDesktop/TableDesktop';\n\nexport type FlattenedFilterIds = {\n [key: string]: (string | number)[];\n};\n\nexport const getFlattenedFiltersLabels = (\n filters: string[] | HeaderFilterObject[],\n fieldName: string,\n): (string | number)[] => {\n return filters.map((value: string | HeaderFilterObject) => {\n if (typeof value === 'object') {\n return value[fieldName] ?? '';\n }\n return value;\n });\n};\n\nexport const getFlattenedFiltersIds = (\n filters: HeaderFilters,\n): FlattenedFilterIds =>\n Object.fromEntries(\n Object.entries(filters).map(([id, values]) => [\n id,\n values.map((value) => (typeof value === 'object' ? value.id : value)),\n ]),\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'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 { Backdrop, CircularProgress } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { isDarkModeEnabled } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n wrapper: {\n /**\n * MUI Dialogs have z-index = 1300\n */\n zIndex: 1301,\n backgroundColor: isDarkModeEnabled\n ? 'rgba(0, 0, 0, 0.5)'\n : 'rgba(255, 255, 255, 0.8)',\n },\n}));\n\ninterface ILoading {\n isLoading: boolean;\n}\n\nconst Loading = ({ isLoading }: ILoading) => {\n const { classes } = useStyles();\n\n return (\n <Backdrop\n aria-hidden={!isLoading}\n className={classes.wrapper}\n open={isLoading}\n data-testid=\"backdrop-loading\"\n >\n <CircularProgress color=\"primary\" />\n </Backdrop>\n );\n};\n\nexport default Loading;\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, Box } 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 overflow: 'hidden',\n\n '& > *': {\n margin: theme.spacing(2),\n },\n '& .MuiPagination-root': {\n minWidth: 0,\n },\n '& .MuiPagination-ul': {\n flexWrap: 'nowrap',\n },\n '& .MuiPaginationItem-root': {\n flexShrink: 0,\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 siblingCount?: number;\n boundaryCount?: number;\n}\n\nconst PaginationForTable = ({\n appliedFilters,\n className = '',\n page,\n pagination,\n position = 'relative',\n style,\n updateFilters,\n siblingCount = 1,\n boundaryCount = 1\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 <Box\n style={style}\n className={cx(classes.root, className, {\n [classes.fixed]: isFixed,\n })}\n >\n <Typography variant=\"body1\">Page: {page}</Typography>\n <Box style={{ overflowX: 'auto', maxWidth: 400 }}>\n <Pagination\n count={pagination.num_pages}\n page={Number(page)}\n onChange={handleChange}\n siblingCount={siblingCount}\n boundaryCount={boundaryCount}\n />\n </Box>\n </Box>\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":["exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","Symbol","exports","module","Symbol","exports","module","exports","module","Symbol","exports","module","exports","module","exports","module","exports","module","debounce","FilterList","import_react","import_react_hook_form","import_material","import_material","import_jsx_runtime","classNames","import_react","import_material","import_jsx_runtime","GooglePlacesAutocomplete","Clear","import_material","import_jsx_runtime","ReactPhoneInput","import_react","import_material","import_jsx_runtime","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_react","import_react","import_material","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","KeyboardArrowLeft","KeyboardArrowRight","import_Check","import_material","import_react","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","useStyles","icons","AppsIcon","import_material","import_jsx_runtime","CheckIcon","import_react","import_material","import_jsx_runtime","Search","import_jsx_runtime","CheckIcon","import_material","import_mui","import_jsx_runtime","useStyles","KeyboardBackspace","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","Add","ChevronRight","import_react","import_material","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_icons_material","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","useStyles","Button","import_react","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_material","import_mui","import_jsx_runtime","useStyles","import_jsx_runtime","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_jsx_runtime","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_react_hook_form","import_icons_material","import_material","import_mui","import_jsx_runtime","convertUnderscoreToHyphen","useStyles","KeyboardArrowUpIcon","KeyboardArrowDownIcon","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","MUIDataGrid","import_colors","import_styles","moment","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react_hook_form","import_material","import_jsx_runtime","import_material","import_jsx_runtime","document","DescriptionIcon","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","React","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_styles","import_jsx_runtime","SearchRoundedIcon","CloseRoundedIcon","import_react","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_colors","import_classnames","import_mui","import_jsx_runtime","useStyles","classNames","import_react","import_material","import_mui","import_jsx_runtime","useStyles","Notes","import_jsx_runtime","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_react_hook_form","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_material","import_mui","import_jsx_runtime","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_mui","import_react","import_jsx_runtime","useStyles","WarningAmber","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","footerHeight","import_material","import_mui","import_react","React","import_icons_material","import_material","import_mui","import_jsx_runtime","useStyles","SearchIcon","ArrowDropUpIcon","ArrowDropDownIcon","import_jsx_runtime","useStyles","React","import_material","import_mui","import_react","import_icons_material","import_material","import_mui","import_jsx_runtime","useStyles","ArrowDropUpIcon","ArrowDropDownIcon","SearchIcon","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","InfoIcon","HistoryIcon","import_react","import_material","import_jsx_runtime","import_react","import_material","import_colors","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","import_react","import_material","import_classnames","import_jsx_runtime","MAX_WIDTH","classNames","import_react","import_material","import_jsx_runtime","import_react","import_material","import_mui","import_material","import_jsx_runtime","import_jsx_runtime","useStyles","debounce","uuidv4","MUITable","import_react","import_material","import_material","import_jsx_runtime","import_material","import_jsx_runtime","import_jsx_runtime","TableBody","TableRow","TableCell","Typography","import_jsx_runtime","descendingComparator","stableSort","import_material","import_jsx_runtime","import_material","import_mui","import_jsx_runtime","useStyles","import_jsx_runtime","import_react","import_material","import_moment","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_react","import_material","import_jsx_runtime","palette","import_jsx_runtime","import_react","import_material","import_jsx_runtime","import_jsx_runtime","moment","DeleteIcon","import_material","import_jsx_runtime","Refresh","import_react","import_Check","import_material","import_jsx_runtime","CheckIcon","CloseIcon","EditIcon","import_react","import_KeyboardArrowLeft","import_KeyboardArrowRight","import_material","import_jsx_runtime","KeyboardArrowLeft","KeyboardArrowRight","Download","import_react","import_material","import_mui","import_jsx_runtime","useStyles","ImportExportIcon","import_material","import_mui","import_jsx_runtime","useStyles","Icon","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_material","import_jsx_runtime","MuiAlert","import_material","import_mui","import_jsx_runtime","useStyles","import_react","import_material","import_jsx_runtime","import_jsx_runtime"]}
|