UNPKG

@bigbinary/neetoui

Version:

neetoUI drives the experience at all neeto products

968 lines (951 loc) 40.7 kB
import _ConfigProvider from 'antd/lib/config-provider'; import _defineProperty from '@babel/runtime/helpers/defineProperty'; import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties'; import React__default, { useRef, forwardRef, useState, useEffect, useCallback } from 'react'; import classnames from 'classnames'; import Clock from '@bigbinary/neeto-icons/Clock'; import { useTranslation } from 'react-i18next'; import './Accordion.js'; import './ActionDropdown.js'; import { u as useId } from './useId-Jj9hXm-g.js'; import _slicedToArray from '@babel/runtime/helpers/slicedToArray'; import 'react-router-dom'; import '@bigbinary/neeto-hotkeys'; import './overlayManager.js'; import { A as ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES, a as getLocale, i as getValidDayjsValue, h as hyphenize, n as noop, j as getTimezoneAppliedDateTime } from './index-DzZtLRHp.js'; import 'qs'; import { u as useSyncedRef, T as Textarea } from './Textarea-D-SsRQdG.js'; import Button from './Button.js'; import './Modal.js'; import Typography from './Typography.js'; import { jsx, jsxs, Fragment } from 'react/jsx-runtime'; import 'avvvatars-react'; import { equals, prop, move, assocPath, pick, mergeLeft } from 'ramda'; import '@tippyjs/react'; import 'tippy.js'; import './Callout.js'; import './Checkbox.js'; import '@babel/runtime/helpers/toConsumableArray'; import '@babel/runtime/helpers/asyncToGenerator'; import '@babel/runtime/regenerator'; import '@bigbinary/neeto-icons/ColorPicker'; import 'react-colorful'; import './useRecentlyUsedColors-D3yg0Xpp.js'; import Dropdown from './Dropdown.js'; import '@bigbinary/neeto-icons/Down'; import _DatePicker from 'antd/lib/date-picker'; import { isPresent, findBy, isNotPresent, findIndexBy, modifyBy } from '@bigbinary/neeto-cist'; import Left from '@bigbinary/neeto-icons/Left'; import Right from '@bigbinary/neeto-icons/Right'; import Calendar from '@bigbinary/neeto-icons/Calendar'; import Close from '@bigbinary/neeto-icons/Close'; import './Input.js'; import Label from './Label.js'; import './MultiEmailInput.js'; import Pane from './Pane.js'; import './Popover.js'; import 'framer-motion'; import './Radio.js'; import '@babel/runtime/helpers/esm/extends'; import '@babel/runtime/helpers/objectSpread2'; import '@babel/runtime/helpers/classCallCheck'; import '@babel/runtime/helpers/createClass'; import '@babel/runtime/helpers/inherits'; import '@babel/runtime/helpers/createSuper'; import '@babel/runtime/helpers/taggedTemplateLiteral'; import '@babel/runtime/helpers/typeof'; import 'react-dom'; import 'antd/lib/slider'; import 'antd/locale/de_DE'; import 'antd/locale/en_US'; import 'antd/locale/es_ES'; import 'antd/locale/fr_FR'; import 'antd/locale/nl_NL'; import 'antd/locale/pl_PL'; import 'antd/locale/pt_PT'; import './Switch.js'; import './Tab.js'; import 'antd/lib/table'; import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal'; import 'react-drag-listview'; import Check from '@bigbinary/neeto-icons/Check'; import Ascending from '@bigbinary/neeto-icons/Ascending'; import Descending from '@bigbinary/neeto-icons/Descending'; import Pin from '@bigbinary/neeto-icons/Pin'; import InfoRound from '@bigbinary/neeto-icons/InfoRound'; import ColumnToLeft from '@bigbinary/neeto-icons/ColumnToLeft'; import ColumnToRight from '@bigbinary/neeto-icons/ColumnToRight'; import Hide from '@bigbinary/neeto-icons/Hide'; import { create } from 'zustand'; import 'react-resizable'; import '@bigbinary/neeto-icons/DownArrow'; import '@bigbinary/neeto-icons/UpArrow'; import Tag from './Tag.js'; import { ANTD_LOCALE } from './constants.js'; import './Toastr.js'; import 'i18next'; import 'antd/lib/tree'; import './TreeSelect.js'; import Select from './Select.js'; import { d as dayjs } from './index-DyUNP5G9.js'; var useFuncDebounce = function useFuncDebounce(func) { var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 350; var timer = useRef(null); var debouncedFunc = function debouncedFunc() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } clearTimeout(timer.current); timer.current = setTimeout(function () { return func.apply(void 0, args); }, delay); }; debouncedFunc.cancel = function () { return clearTimeout(timer.current); }; return debouncedFunc; }; var IconOverride = function IconOverride(_ref) { var Icon = _ref.icon; return /*#__PURE__*/jsx("span", { className: "neeto-ui-btn neeto-ui-btn--style-text neeto-ui-btn--size-medium neeto-ui-btn--icon-only", children: /*#__PURE__*/jsx(Icon, { className: "neeto-ui-btn__icon", size: 20 }) }); }; function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var Provider = function Provider(_ref) { var children = _ref.children; var _useTranslation = useTranslation(), i18n = _useTranslation.i18n; return /*#__PURE__*/jsx(_ConfigProvider, { locale: ANTD_LOCALE[i18n.language || "en"], theme: { token: _objectSpread$3({}, ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES), components: { DatePicker: { activeBg: "rgb(var(--neeto-ui-white))", activeBorderColor: "rgb(var(--neeto-ui-primary-500))", addonBg: "rgb(var(--neeto-ui-gray-100))", cellActiveWithRangeBg: "rgb(var(--neeto-ui-primary-100))", cellBgDisabled: "rgb(var(--neeto-ui-gray-100))", cellHoverBg: "rgb(var(--neeto-ui-gray-200))", cellHoverWithRangeBg: "rgb(var(--neeto-ui-primary-100))", cellRangeBorderColor: "rgb(var(--neeto-ui-primary-100))", hoverBg: "rgb(var(--neeto-ui-white))", hoverBorderColor: "rgb(var(--neeto-ui-primary-500))", // Global overrides colorBgContainer: "rgb(var(--neeto-ui-white))", colorBgElevated: "rgb(var(--neeto-ui-white))", colorPrimary: "rgb(var(--neeto-ui-primary-500))", colorPrimaryBorder: "rgb(var(--neeto-ui-primary-100))", colorPrimaryHover: "rgb(var(--neeto-ui-primary-600))", colorBorder: "rgb(var(--neeto-ui-gray-300))", colorError: "rgb(var(--neeto-ui-error-500))", colorErrorHover: "rgb(var(--neeto-ui-error-600))", colorErrorOutline: "rgb(var(--neeto-ui-error-100))", colorFillAlter: "rgb(var(--neeto-ui-gray-100))", colorIcon: "rgb(var(--neeto-ui-gray-700))", colorIconHover: "rgb(var(--neeto-ui-gray-800))", colorLink: "rgb(var(--neeto-ui-primary-500))", colorLinkHover: "rgb(var(--neeto-ui-primary-600))", colorLinkActive: "rgb(var(--neeto-ui-primary-800))", colorSplit: "rgb(var(--neeto-ui-gray-200))", colorText: "rgb(var(--neeto-ui-gray-800))", colorTextDescription: "rgb(var(--neeto-ui-gray-700))", colorTextDisabled: "rgb(var(--neeto-ui-gray-500))", colorTextHeading: "rgb(var(--neeto-ui-black))", colorTextLightSolid: "rgb(var(--neeto-ui-white))", colorTextPlaceholder: "rgb(var(--neeto-ui-gray-400))", colorTextQuaternary: "rgb(var(--neeto-ui-gray-400))", colorWarning: "rgb(var(--neeto-ui-warning-500))", colorWarningHover: "rgb(var(--neeto-ui-warning-600))", colorWarningOutline: "rgb(var(--neeto-ui-warning-100))", controlItemBgActive: "rgb(var(--neeto-ui-pastel-purple))", controlItemBgHover: "rgb(var(--neeto-ui-gray-100))", controlOutline: "rgb(var(--neeto-ui-gray-300))", // Sizes cellHeight: 32, padding: 22 } } }, children: children }); }; /* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */ var Today = function Today(_ref) { var onClick = _ref.onClick; var _useTranslation = useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; return /*#__PURE__*/jsx("button", { onClick: onClick, className: "neeto-ui-rounded-md hover:neeto-ui-bg-gray-200 px-2 py-1 text-xs font-medium transition duration-300 ease-in-out", "data-testid": "year-month-mode-today", children: getLocale(i18n, t, "neetoui.datePicker.today") }); }; var getAllowedDate = function getAllowedDate(date, minDate, maxDate) { if (isPresent(minDate) && date !== null && date !== void 0 && date.isBefore(minDate)) { return minDate; } if (isPresent(maxDate) && date !== null && date !== void 0 && date.isAfter(maxDate)) { return maxDate; } return date; }; var getAllowedRange = function getAllowedRange(dates, minDate, maxDate) { return dates.map(function (item) { return getAllowedDate(item, minDate, maxDate); }); }; var getAllowed = function getAllowed(date, minDate, maxDate) { return (Array.isArray(date) ? getAllowedRange : getAllowedDate)(date, minDate, maxDate); }; var formattedString = function formattedString(date, dateFormat) { return Array.isArray(date) ? date.map(function (item) { return item === null || item === void 0 ? void 0 : item.format(dateFormat); }) : date === null || date === void 0 ? void 0 : date.format(dateFormat); }; var TIMEZONE_OPTIONS = [{ label: "Local", value: undefined }, { label: "UTC", value: "utc" }]; var TimezoneSelect = function TimezoneSelect(_ref) { var value = _ref.value, _onChange = _ref.onChange; var id = "nui-datepicker-timezone-select"; var containerRef = useRef(null); var _useTranslation = useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; return /*#__PURE__*/jsxs("div", { className: "flex items-center gap-2", ref: containerRef, children: [/*#__PURE__*/jsx(Typography, { htmlFor: id, style: "body3", weight: "medium", children: getLocale(i18n, t, "neetoui.common.timezone") }), /*#__PURE__*/jsx(Select, { id: id, className: "w-40 py-1", "data-testid": "timezone-select", menuPortalTarget: containerRef.current, options: TIMEZONE_OPTIONS, size: "small", strategy: "fixed", value: findBy({ value: value }, TIMEZONE_OPTIONS), onChange: function onChange(option) { return _onChange(option.value); } })] }); }; var _excluded$2 = ["className", "label", "size", "dropdownClassName", "popupClassName", "dateFormat", "timeFormat", "placeholder", "onChange", "onOk", "picker", "showTime", "type", "nakedInput", "error", "defaultValue", "value", "labelProps", "required", "allowClear", "maxDate", "minDate", "timePickerProps", "timezone", "onTimezoneChange", "onOpenChange", "onKeyDown"]; function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var INPUT_SIZES$1 = { medium: "medium"}; var RangePicker$1 = _DatePicker.RangePicker; var datePickerTypes = { range: RangePicker$1, date: _DatePicker }; var DatePicker = /*#__PURE__*/forwardRef(function (_ref, ref) { var _otherProps$open; var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$label = _ref.label, label = _ref$label === void 0 ? "" : _ref$label, _ref$size = _ref.size, size = _ref$size === void 0 ? INPUT_SIZES$1.medium : _ref$size, _ref$dropdownClassNam = _ref.dropdownClassName, dropdownClassName = _ref$dropdownClassNam === void 0 ? "" : _ref$dropdownClassNam, _ref$popupClassName = _ref.popupClassName, popupClassName = _ref$popupClassName === void 0 ? "" : _ref$popupClassName, _ref$dateFormat = _ref.dateFormat, dateFormat = _ref$dateFormat === void 0 ? "DD/MM/YYYY" : _ref$dateFormat, _ref$timeFormat = _ref.timeFormat, timeFormat = _ref$timeFormat === void 0 ? "HH:mm:ss" : _ref$timeFormat, placeholder = _ref.placeholder, _ref$onChange = _ref.onChange, onChange = _ref$onChange === void 0 ? noop : _ref$onChange, _ref$onOk = _ref.onOk, onOk = _ref$onOk === void 0 ? noop : _ref$onOk, _ref$picker = _ref.picker, picker = _ref$picker === void 0 ? "date" : _ref$picker, _ref$showTime = _ref.showTime, showTime = _ref$showTime === void 0 ? false : _ref$showTime, _ref$type = _ref.type, type = _ref$type === void 0 ? "date" : _ref$type, _ref$nakedInput = _ref.nakedInput, nakedInput = _ref$nakedInput === void 0 ? false : _ref$nakedInput, _ref$error = _ref.error, error = _ref$error === void 0 ? "" : _ref$error, defaultValue = _ref.defaultValue, inputValue = _ref.value, labelProps = _ref.labelProps, _ref$required = _ref.required, required = _ref$required === void 0 ? false : _ref$required, _ref$allowClear = _ref.allowClear, allowClear = _ref$allowClear === void 0 ? true : _ref$allowClear, maxDate = _ref.maxDate, minDate = _ref.minDate, timePickerProps = _ref.timePickerProps, timezone = _ref.timezone, onTimezoneChange = _ref.onTimezoneChange, onOpenChange = _ref.onOpenChange, onKeyDown = _ref.onKeyDown, otherProps = _objectWithoutProperties(_ref, _excluded$2); var _useState = useState(inputValue), _useState2 = _slicedToArray(_useState, 2), value = _useState2[0], setValue = _useState2[1]; var _useState3 = useState(picker), _useState4 = _slicedToArray(_useState3, 2), mode = _useState4[0], setMode = _useState4[1]; var _useState5 = useState(undefined), _useState6 = _slicedToArray(_useState5, 2), pickerValue = _useState6[0], setPickerValue = _useState6[1]; var id = useId(otherProps.id); var datePickerRef = useSyncedRef(ref); var isDatePickerOpen = useRef((_otherProps$open = otherProps.open) !== null && _otherProps$open !== void 0 ? _otherProps$open : false); var Component = datePickerTypes[type === null || type === void 0 ? void 0 : type.toLowerCase()]; var format = showTime ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat; var errorId = "error_".concat(id); useEffect(function () { setValue(inputValue); }, [inputValue]); useEffect(function () { setMode(picker); }, [picker]); var getAllowedValue = useCallback(function (date) { return getAllowed(date, minDate, maxDate); }, [minDate, maxDate]); var handleOnChange = function handleOnChange(date, dateString) { if (type === "range" && isNotPresent(date)) { return onChange([], dateString); } var allowed = getAllowedValue(getTimezoneAppliedDateTime(date)); setValue(allowed); return onChange(allowed, formattedString(allowed, dateFormat)); }; var handleOnCalendarChange = function handleOnCalendarChange(date) { if (type === "range" || !date) return; var allowed = getAllowedValue(getTimezoneAppliedDateTime(date)); setValue(allowed); }; var handleOnOpenChange = function handleOnOpenChange(open) { if (!open && !equals(value, inputValue)) { onChange(value, formattedString(value, dateFormat)); } isDatePickerOpen.current = open; onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(open); }; var handleOnKeyDown = function handleOnKeyDown(e) { if (!isDatePickerOpen.current) return; e.stopPropagation(); onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e); }; var renderExtraFooter = function renderExtraFooter() { return /*#__PURE__*/jsxs("div", { className: "flex items-center justify-between px-3", children: [type !== "range" && mode !== "date" ? /*#__PURE__*/jsx(Today, { onClick: function onClick() { var today = dayjs(); setValue(today); onChange(today, formattedString(today, dateFormat)); setMode(picker); } }) : /*#__PURE__*/jsx("div", {}), onTimezoneChange ? /*#__PURE__*/jsx(TimezoneSelect, { value: timezone, onChange: onTimezoneChange }) : /*#__PURE__*/jsx("div", {})] }); }; return /*#__PURE__*/jsx(Provider, { children: /*#__PURE__*/jsxs("div", { className: "neeto-ui-input__wrapper", children: [label && /*#__PURE__*/jsx(Label, _objectSpread$2(_objectSpread$2({}, _objectSpread$2({ required: required }, labelProps)), {}, { children: label })), /*#__PURE__*/jsx(Component, _objectSpread$2(_objectSpread$2({ "data-testid": label ? "".concat(hyphenize(label), "-input") : "picker-input", defaultValue: getValidDayjsValue(defaultValue), placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : format, ref: datePickerRef, showTime: showTime && _objectSpread$2({ format: timeFormat }, timePickerProps), value: getValidDayjsValue(value), className: classnames("neeto-ui-date-input", [className], { "neeto-ui-date-input--small": size === "small", "neeto-ui-date-input--medium": size === "medium", "neeto-ui-date-input--large": size === "large", "neeto-ui-date-input--disabled": otherProps.disabled, "neeto-ui-date-input--naked": nakedInput, "neeto-ui-date-input--error": !!error }), popupClassName: classnames("neeto-ui-date-time-dropdown", [dropdownClassName, // Will be removed in the next major version popupClassName]), onCalendarChange: handleOnCalendarChange, onChange: handleOnChange, onKeyDown: handleOnKeyDown, onOpenChange: handleOnOpenChange }, _objectSpread$2(_objectSpread$2({ format: format, maxDate: maxDate, minDate: minDate, onOk: onOk, picker: picker, renderExtraFooter: renderExtraFooter }, otherProps), type === "date" && { mode: mode, pickerValue: pickerValue, onPanelChange: function onPanelChange(pickerValue, mode) { setPickerValue(pickerValue); setMode(mode); } })), {}, { getNow: dayjs, nextIcon: /*#__PURE__*/jsx(IconOverride, { icon: Right }), prevIcon: /*#__PURE__*/jsx(IconOverride, { icon: Left }), superNextIcon: /*#__PURE__*/jsx(IconOverride, { icon: Right }), superPrevIcon: /*#__PURE__*/jsx(IconOverride, { icon: Left }), allowClear: allowClear && { clearIcon: /*#__PURE__*/jsx(Close, { "data-testid": "date-time-clear-icon", size: 16 }) }, suffixIcon: timezone ? /*#__PURE__*/jsx(Tag, { className: "uppercase", label: timezone }) : /*#__PURE__*/jsx(Calendar, { size: 16 }) })), !!error && typeof error === "string" && /*#__PURE__*/jsx("p", { className: "neeto-ui-input__error", "data-testid": "".concat(hyphenize(label), "-input-error"), id: errorId, children: error })] }) }); }); DatePicker.displayName = "DatePicker"; var URL_SORT_ORDERS = { ascend: "asc", descend: "desc" }; var TABLE_SORT_ORDERS = { asc: "ascend", desc: "descend" }; var COLUMN_ADD_DIRECTION = { left: 0, right: 1 }; var SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT = 57; var SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT = 78; var COLUMN_FIXED_VALUES = { LEFT: "left"}; var TABLE_PAGINATION_HEIGHT = 64; var TABLE_DEFAULT_HEADER_HEIGHT = 40; var TABLE_ROW_HEIGHT = 52; var useTableStore = create(function (set) { return { infoPaneState: { isOpen: false, column: null }, setInfoPaneState: function setInfoPaneState(state) { return set({ infoPaneState: state }); } }; }); var _excluded$1 = ["isActive", "icon", "label"]; function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var Menu = Dropdown.Menu, MenuItem = Dropdown.MenuItem; var ActionItem = function ActionItem(_ref) { var _ref$isActive = _ref.isActive, isActive = _ref$isActive === void 0 ? false : _ref$isActive, Icon = _ref.icon, label = _ref.label, rest = _objectWithoutProperties(_ref, _excluded$1); return /*#__PURE__*/jsxs(MenuItem.Button, _objectSpread$1(_objectSpread$1({ className: "neeto-ui-flex neeto-ui-items-center neeto-ui-justify-between" }, rest), {}, { children: [/*#__PURE__*/jsxs("div", { className: "neeto-ui-flex neeto-ui-items-center neeto-ui-gap-3", children: [Icon && /*#__PURE__*/jsx(Icon, { className: "neeto-ui-text-gray-500", size: 18 }), /*#__PURE__*/jsx("span", { children: label })] }), isActive && /*#__PURE__*/jsx(Check, { className: "neeto-ui-text-success-500", size: 20 })] })); }; // eslint-disable-next-line @bigbinary/neeto/no-dumb-components-with-use-translation var HeaderCellMenu = function HeaderCellMenu(_ref2) { var onSort = _ref2.onSort, _ref2$column = _ref2.column, column = _ref2$column === void 0 ? {} : _ref2$column, sortedInfo = _ref2.sortedInfo, isSortable = _ref2.isSortable, isAddEnabled = _ref2.isAddEnabled, isFixedColumn = _ref2.isFixedColumn, isColumnDeletable = _ref2.isColumnDeletable, isColumnFreezeEnabled = _ref2.isColumnFreezeEnabled, isHidable = _ref2.isHidable, onColumnHide = _ref2.onColumnHide, isMoveToLeftEnabled = _ref2.isMoveToLeftEnabled, isMoveToRightEnabled = _ref2.isMoveToRightEnabled, onAddColumn = _ref2.onAddColumn, onColumnUpdate = _ref2.onColumnUpdate, onColumnDelete = _ref2.onColumnDelete, onColumnFreeze = _ref2.onColumnFreeze, hasMoreActions = _ref2.hasMoreActions, onMoreActionClick = _ref2.onMoreActionClick, _ref2$moreActions = _ref2.moreActions, moreActions = _ref2$moreActions === void 0 ? [] : _ref2$moreActions; var _useTranslation = useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; var setInfoPaneState = useTableStore(prop("setInfoPaneState")); var onMoveColumn = function onMoveColumn(offset) { if (!onColumnUpdate) return; onColumnUpdate(function (columns) { var index = findIndexBy({ key: column.key }, columns); var isValid = index + offset >= 0 && index + offset < columns.length; if (!isValid) return columns; return move(index, index + offset, columns); }); }; return /*#__PURE__*/jsx("div", { onClick: function onClick(event) { return event.stopPropagation(); }, children: /*#__PURE__*/jsx(Dropdown, { appendTo: function appendTo() { return document.body; }, className: "neeto-ui-flex", icon: MenuHorizontal, position: "bottom", strategy: "fixed", zIndex: 99999, buttonProps: { className: "neeto-ui-min-h-0 neeto-ui-flex-shrink-0", style: "text", size: "medium", "data-testid": "column-menu-button", "data-dropdown-button-style": "more-dropdown" }, children: /*#__PURE__*/jsxs(Menu, { className: "neeto-ui-cursor-auto", onMouseDown: function onMouseDown(event) { return event.preventDefault(); }, children: [isSortable && /*#__PURE__*/jsxs(Fragment, { children: [/*#__PURE__*/jsx(ActionItem, { "data-testid": "ascending-column-menu-button", icon: Ascending, label: getLocale(i18n, t, "neetoui.table.ascending"), isActive: sortedInfo.order === TABLE_SORT_ORDERS.asc && equals(sortedInfo.field, column.dataIndex), onClick: function onClick() { return onSort({ column: column, columnKey: column.key, field: column.dataIndex || column.key, order: TABLE_SORT_ORDERS.asc }); } }), /*#__PURE__*/jsx(ActionItem, { "data-testid": "descending-column-menu-button", icon: Descending, label: getLocale(i18n, t, "neetoui.table.descending"), isActive: sortedInfo.order === TABLE_SORT_ORDERS.desc && equals(sortedInfo.field, column.dataIndex), onClick: function onClick() { return onSort({ column: column, columnKey: column.key, field: column.dataIndex, order: TABLE_SORT_ORDERS.desc }); } })] }), isAddEnabled && /*#__PURE__*/jsxs(Fragment, { children: [/*#__PURE__*/jsx(ActionItem, { "data-testid": "insert-right-column-menu-button", label: getLocale(i18n, t, "neetoui.table.insertColRight"), onClick: function onClick() { return onAddColumn(COLUMN_ADD_DIRECTION.right); } }), /*#__PURE__*/jsx(ActionItem, { "data-testid": "insert-left-column-menu-button", label: getLocale(i18n, t, "neetoui.table.insertColLeft"), onClick: function onClick() { return onAddColumn(COLUMN_ADD_DIRECTION.left); } })] }), isHidable && /*#__PURE__*/jsx(ActionItem, { icon: Hide, label: getLocale(i18n, t, "neetoui.table.hideColumn"), onClick: function onClick() { return onColumnHide(column); } }), isColumnDeletable && /*#__PURE__*/jsx(ActionItem, { "data-testid": "delete-column-menu-button", label: getLocale(i18n, t, "neetoui.table.deleteColumn"), onClick: function onClick() { return onColumnDelete(column.id); } }), isColumnFreezeEnabled && /*#__PURE__*/jsx(ActionItem, { "data-testid": "freeze-unfreeze-column-menu-button", icon: Pin, label: isFixedColumn ? getLocale(i18n, t, "neetoui.table.unFreezeColumn") : getLocale(i18n, t, "neetoui.table.freezeColumn"), onClick: function onClick() { return onColumnFreeze(isFixedColumn, column); } }), isPresent(onColumnUpdate) && /*#__PURE__*/jsx(ActionItem, { icon: InfoRound, label: getLocale(i18n, t, "neetoui.table.editColumnInfo"), onClick: function onClick() { setInfoPaneState({ isOpen: true, column: column }); } }), isPresent(onColumnUpdate) && isMoveToLeftEnabled && /*#__PURE__*/jsx(ActionItem, { icon: ColumnToLeft, label: getLocale(i18n, t, "neetoui.table.moveColumnLeft"), onClick: function onClick() { return onMoveColumn(-1); } }), isPresent(onColumnUpdate) && isMoveToRightEnabled && /*#__PURE__*/jsx(ActionItem, { icon: ColumnToRight, label: getLocale(i18n, t, "neetoui.table.moveColumnRight"), onClick: function onClick() { return onMoveColumn(1); } }), hasMoreActions && moreActions.map(function (item, index) { return /*#__PURE__*/jsx(ActionItem, { "data-testid": "".concat(hyphenize(item.label), "-column-menu-button"), icon: item.icon, label: item.label, onClick: function onClick() { return onMoreActionClick(item.type, column); } }, index); })] }) }) }); }; var HeaderCellMenu$1 = /*#__PURE__*/React__default.memo(HeaderCellMenu); var useScrollStore = create(function (set) { return { scrollPositions: {}, setScrollPosition: function setScrollPosition(key, position) { return set(assocPath(["scrollPositions", key], position)); } }; }); var useRestoreScrollPosition = function useRestoreScrollPosition(_ref) { var tableRef = _ref.tableRef, scrollRef = _ref.scrollRef, loading = _ref.loading; var key = window.location.pathname; var scrollPositions = useScrollStore(prop("scrollPositions")); var setScrollPosition = useScrollStore(prop("setScrollPosition")); useEffect(function () { if (loading) { setScrollPosition(key, 0); return; } if (scrollRef.current === null || !scrollPositions[key]) return; setTimeout(function () { var _scrollRef$current; var position = scrollPositions[key]; (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollTo({ top: position }); }); }, [key, tableRef, loading]); var handleScroll = useFuncDebounce(function (event) { setScrollPosition(key, parseInt(event.target.scrollTop)); }); return { handleScroll: handleScroll }; }; var pickStore = pick(["infoPaneState", "setInfoPaneState"]); var TableInfoPane = function TableInfoPane(_ref) { var onColumnUpdate = _ref.onColumnUpdate; var _useTranslation = useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; var _useState = useState(""), _useState2 = _slicedToArray(_useState, 2), description = _useState2[0], setDescription = _useState2[1]; var _useTableStore = useTableStore(pickStore), infoPaneState = _useTableStore.infoPaneState, setInfoPaneState = _useTableStore.setInfoPaneState; var isOpen = infoPaneState.isOpen, column = infoPaneState.column; var onUpdateColumn = function onUpdateColumn(changes) { if (!column) return; var modifyColumn = mergeLeft(changes); var modifyColumns = modifyBy({ key: column.key }, modifyColumn); onColumnUpdate(modifyColumns); }; var onClose = function onClose() { setInfoPaneState({ isOpen: false, column: null }); }; var onSubmit = function onSubmit() { onUpdateColumn({ description: description }); onClose(); }; useEffect(function () { if (!isOpen) return undefined; setDescription((column === null || column === void 0 ? void 0 : column.description) || ""); return function () { setDescription(""); }; }, [isOpen]); return /*#__PURE__*/jsxs(Pane, { onClose: onClose, isOpen: infoPaneState.isOpen, children: [/*#__PURE__*/jsx(Pane.Header, { children: /*#__PURE__*/jsx(Typography, { style: "h3", children: column === null || column === void 0 ? void 0 : column.title }) }), /*#__PURE__*/jsx(Pane.Body, { children: /*#__PURE__*/jsx(Textarea, { className: "neeto-ui-w-full", label: getLocale(i18n, t, "neetoui.common.description"), value: description, onChange: function onChange(e) { return setDescription(e.target.value); } }) }), /*#__PURE__*/jsxs(Pane.Footer, { className: "neeto-ui-flex neeto-ui-justify-between", children: [/*#__PURE__*/jsx(Button, { style: "secondary", onClick: onClose, children: getLocale(i18n, t, "neetoui.actionBlock.cancel") }), /*#__PURE__*/jsx(Button, { onClick: onSubmit, children: getLocale(i18n, t, "neetoui.actionBlock.saveChanges") })] })] }); }; var RangePicker = _DatePicker.RangePicker; var TIME_PICKER_TYPES = { range: RangePicker, time: _DatePicker }; var _excluded = ["className", "label", "size", "dropdownClassName", "popupClassName", "format", "interval", "onChange", "type", "nakedInput", "disabled", "error", "defaultValue", "value", "labelProps", "required", "placeholder", "timezone"]; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var INPUT_SIZES = { medium: "medium"}; var TIME_PICKER_INTERVAL = { hourStep: 1, minuteStep: 1, secondStep: 1 }; var TimePicker = /*#__PURE__*/forwardRef(function (_ref, ref) { var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$label = _ref.label, label = _ref$label === void 0 ? "" : _ref$label, _ref$size = _ref.size, size = _ref$size === void 0 ? INPUT_SIZES.medium : _ref$size, _ref$dropdownClassNam = _ref.dropdownClassName, dropdownClassName = _ref$dropdownClassNam === void 0 ? "" : _ref$dropdownClassNam, _ref$popupClassName = _ref.popupClassName, popupClassName = _ref$popupClassName === void 0 ? "" : _ref$popupClassName, _ref$format = _ref.format, format = _ref$format === void 0 ? "HH:mm:ss" : _ref$format, _ref$interval = _ref.interval, interval = _ref$interval === void 0 ? TIME_PICKER_INTERVAL : _ref$interval, _ref$onChange = _ref.onChange, onChange = _ref$onChange === void 0 ? noop : _ref$onChange, _ref$type = _ref.type, type = _ref$type === void 0 ? "time" : _ref$type, _ref$nakedInput = _ref.nakedInput, nakedInput = _ref$nakedInput === void 0 ? false : _ref$nakedInput, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, _ref$error = _ref.error, error = _ref$error === void 0 ? "" : _ref$error, defaultValue = _ref.defaultValue, value = _ref.value, labelProps = _ref.labelProps, _ref$required = _ref.required, required = _ref$required === void 0 ? false : _ref$required, placeholder = _ref.placeholder, timezone = _ref.timezone, otherProps = _objectWithoutProperties(_ref, _excluded); var _useTranslation = useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; var id = useId(otherProps.id); var timePickerRef = useSyncedRef(ref); var Component = TIME_PICKER_TYPES[type.toLowerCase()]; var errorId = "error_".concat(id); var showTimeLabels = {}; if (format.includes("s")) { showTimeLabels.second = true; } if (format.includes("m")) { showTimeLabels.minute = true; } if (format.includes("H") || format.includes("h")) { showTimeLabels.hour = true; } var handleOnChange = function handleOnChange(time, timeString) { type === "range" && !time ? onChange([], timeString) : onChange(getTimezoneAppliedDateTime(time), timeString); }; var panelRender = function panelRender(originalPanel) { return /*#__PURE__*/jsxs("div", { className: "neeto-ui-date-input-custom-panel", children: [/*#__PURE__*/jsx("div", { className: "neeto-ui-date-input-custom-panel__header", children: /*#__PURE__*/jsxs("ul", { className: "neeto-ui-date-input-custom-panel__header-cols", children: [showTimeLabels.hour && /*#__PURE__*/jsx("li", { className: "neeto-ui-date-input-custom-panel__header-col", children: getLocale(i18n, t, "neetoui.timePicker.hours") }), showTimeLabels.minute && /*#__PURE__*/jsx("li", { className: "neeto-ui-date-input-custom-panel__header-col", children: getLocale(i18n, t, "neetoui.timePicker.minutes") }), showTimeLabels.second && /*#__PURE__*/jsx("li", { className: "neeto-ui-date-input-custom-panel__header-col", children: getLocale(i18n, t, "neetoui.timePicker.seconds") })] }) }), /*#__PURE__*/jsx("div", { className: "neeto-ui-date-input-custom-panel__body", children: originalPanel })] }); }; return /*#__PURE__*/jsx(_ConfigProvider, { locale: ANTD_LOCALE[i18n.language || "en"], theme: { token: _objectSpread({}, ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES), components: { DatePicker: { // Global overrides colorBgElevated: "rgb(var(--neeto-ui-white))", colorPrimary: "rgb(var(--neeto-ui-primary-500))", colorPrimaryHover: "rgb(var(--neeto-ui-primary-600))", colorBorder: "rgb(var(--neeto-ui-gray-300))", colorLink: "rgb(var(--neeto-ui-primary-500))", colorLinkHover: "rgb(var(--neeto-ui-primary-600))", colorText: "rgb(var(--neeto-ui-gray-800))", colorTextDisabled: "rgb(var(--neeto-ui-gray-500))", colorTextPlaceholder: "rgb(var(--neeto-ui-gray-400))", controlItemBgActive: "rgb(var(--neeto-ui-primary-800))", controlItemBgHover: "rgb(var(--neeto-ui-gray-100))", controlOutline: "rgb(var(--neeto-ui-gray-300))" } } }, children: /*#__PURE__*/jsxs("div", { className: "neeto-ui-input__wrapper", children: [label && /*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({}, _objectSpread({ required: required }, labelProps)), {}, { children: label })), /*#__PURE__*/jsx(Component, _objectSpread(_objectSpread({ hourStep: interval.hourStep, minuteStep: interval.minuteStep, ref: timePickerRef, secondStep: interval.secondStep, className: classnames("neeto-ui-time-input", [className], { "neeto-ui-time-input--small": size === "small", "neeto-ui-time-input--medium": size === "medium", "neeto-ui-time-input--large": size === "large", "neeto-ui-time-input--disabled": disabled, "neeto-ui-time-input--naked": nakedInput, "neeto-ui-time-input--error": error }), popupClassName: classnames("neeto-ui-date-time-dropdown", [dropdownClassName, // Will be removed in the next major version popupClassName]), onChange: handleOnChange }, _objectSpread(_objectSpread({ disabled: disabled, format: format }, otherProps), {}, { panelRender: panelRender })), {}, { defaultValue: getValidDayjsValue(defaultValue), mode: undefined, picker: "time", placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : format, value: getValidDayjsValue(value), suffixIcon: timezone ? /*#__PURE__*/jsx(Tag, { label: timezone }) : /*#__PURE__*/jsx(Clock, { size: 16 }) })), !!error && /*#__PURE__*/jsx("p", { className: "neeto-ui-input__error", "data-testid": "".concat(hyphenize(label), "-input-error"), id: errorId, children: error })] }) }); }); TimePicker.displayName = "TimePicker"; export { COLUMN_FIXED_VALUES as C, DatePicker as D, HeaderCellMenu$1 as H, SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT as S, TimePicker as T, URL_SORT_ORDERS as U, TABLE_SORT_ORDERS as a, TABLE_PAGINATION_HEIGHT as b, TABLE_ROW_HEIGHT as c, SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT as d, TABLE_DEFAULT_HEADER_HEIGHT as e, TableInfoPane as f, useRestoreScrollPosition as u }; //# sourceMappingURL=index-CJiULAZF.js.map