@coreui/react-pro 4.8.0 → 4.9.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +1 -1
  2. package/dist/components/calendar/index.d.ts +2 -0
  3. package/dist/components/calendar/utils.d.ts +23 -0
  4. package/dist/components/date-picker/CDatePicker.d.ts +1 -1
  5. package/dist/components/date-range-picker/CDateRangePicker.d.ts +2 -2
  6. package/dist/components/element-cover/CElementCover.d.ts +0 -4
  7. package/dist/components/element-cover/index.d.ts +2 -0
  8. package/dist/components/index.d.ts +1 -0
  9. package/dist/components/offcanvas/COffcanvas.d.ts +7 -1
  10. package/dist/components/smart-table/CSmartTableBody.d.ts +6 -5
  11. package/dist/components/smart-table/CSmartTableHead.d.ts +6 -3
  12. package/dist/components/smart-table/CSmartTableInterface.d.ts +30 -59
  13. package/dist/components/smart-table/types.d.ts +53 -0
  14. package/dist/components/smart-table/utils.d.ts +16 -0
  15. package/dist/components/time-picker/types.d.ts +15 -0
  16. package/dist/components/time-picker/utils.d.ts +23 -0
  17. package/dist/hooks/index.d.ts +3 -0
  18. package/dist/hooks/useForkedRef.d.ts +7 -0
  19. package/dist/hooks/useStateWithCallback.d.ts +2 -0
  20. package/dist/index.es.js +1076 -1005
  21. package/dist/index.es.js.map +1 -1
  22. package/dist/index.js +1076 -1004
  23. package/dist/index.js.map +1 -1
  24. package/dist/utils/index.d.ts +2 -1
  25. package/dist/utils/isObjectInArray.d.ts +2 -0
  26. package/package.json +11 -11
  27. package/src/components/alert/CAlert.tsx +1 -1
  28. package/src/components/backdrop/CBackdrop.tsx +1 -1
  29. package/src/components/calendar/CCalendar.tsx +351 -240
  30. package/src/components/calendar/index.ts +3 -0
  31. package/src/{utils/calendar.ts → components/calendar/utils.ts} +1 -1
  32. package/src/components/carousel/CCarousel.tsx +1 -1
  33. package/src/components/carousel/CCarouselItem.tsx +1 -1
  34. package/src/components/collapse/CCollapse.tsx +1 -1
  35. package/src/components/date-picker/CDatePicker.tsx +1 -1
  36. package/src/components/date-range-picker/CDateRangePicker.tsx +3 -3
  37. package/src/components/dropdown/CDropdown.tsx +1 -1
  38. package/src/components/dropdown/CDropdownToggle.tsx +1 -1
  39. package/src/components/element-cover/CElementCover.tsx +16 -22
  40. package/src/components/element-cover/index.ts +3 -0
  41. package/src/components/form/CFormCheck.tsx +1 -1
  42. package/src/components/index.ts +1 -0
  43. package/src/components/modal/CModal.tsx +1 -1
  44. package/src/components/nav/CNavLink.tsx +2 -1
  45. package/src/components/offcanvas/COffcanvas.tsx +35 -17
  46. package/src/components/sidebar/CSidebar.tsx +1 -1
  47. package/src/components/smart-table/CSmartTable.tsx +262 -256
  48. package/src/components/smart-table/CSmartTableBody.tsx +31 -41
  49. package/src/components/smart-table/CSmartTableCleaner.tsx +1 -1
  50. package/src/components/smart-table/CSmartTableFilter.tsx +1 -3
  51. package/src/components/smart-table/CSmartTableHead.tsx +53 -103
  52. package/src/components/smart-table/CSmartTableInterface.tsx +41 -71
  53. package/src/components/smart-table/CSmartTableItemsPerPageSelector.tsx +1 -2
  54. package/src/components/smart-table/types.tsx +65 -0
  55. package/src/components/smart-table/utils.tsx +199 -0
  56. package/src/components/tabs/CTabPane.tsx +1 -1
  57. package/src/components/time-picker/CTimePicker.tsx +50 -23
  58. package/src/components/time-picker/CTimePickerRollCol.tsx +1 -1
  59. package/src/components/time-picker/types.ts +15 -0
  60. package/src/{utils/time.ts → components/time-picker/utils.ts} +43 -2
  61. package/src/components/toast/CToast.tsx +1 -1
  62. package/src/components/virtual-scroller/CVirtualScroller.tsx +1 -1
  63. package/src/{utils/hooks → hooks}/index.ts +0 -0
  64. package/src/{utils/hooks → hooks}/useForkedRef.ts +0 -0
  65. package/src/{utils/hooks → hooks}/useStateWithCallback.ts +0 -0
  66. package/src/utils/index.ts +2 -1
  67. package/src/utils/isObjectInArray.ts +14 -0
package/dist/index.es.js CHANGED
@@ -3130,6 +3130,20 @@ var isInViewport = function (element) {
3130
3130
  Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
3131
3131
  };
3132
3132
 
3133
+ var isObjectInArray = function (array, item, ignore) {
3134
+ if (ignore === void 0) { ignore = []; }
3135
+ return array.some(function (_item) {
3136
+ var result = true;
3137
+ for (var key in item) {
3138
+ if (!ignore.includes(key) && item[key] !== _item[key]) {
3139
+ result = false;
3140
+ break;
3141
+ }
3142
+ }
3143
+ return result;
3144
+ });
3145
+ };
3146
+
3133
3147
  var CCarouselContext = createContext({});
3134
3148
  var CCarousel = forwardRef(function (_a, ref) {
3135
3149
  var children = _a.children, _b = _a.activeIndex, activeIndex = _b === void 0 ? 0 : _b, className = _a.className, controls = _a.controls, dark = _a.dark, indicators = _a.indicators, _c = _a.interval, interval = _c === void 0 ? 5000 : _c, onSlid = _a.onSlid, onSlide = _a.onSlide, _d = _a.pause, pause = _d === void 0 ? 'hover' : _d, _e = _a.touch, touch = _e === void 0 ? true : _e, transition = _a.transition, _f = _a.wrap, wrap = _f === void 0 ? true : _f, rest = __rest$1(_a, ["children", "activeIndex", "className", "controls", "dark", "indicators", "interval", "onSlid", "onSlide", "pause", "touch", "transition", "wrap"]);
@@ -7005,40 +7019,145 @@ var isToday = function (date) {
7005
7019
  date.getFullYear() === today.getFullYear());
7006
7020
  };
7007
7021
 
7022
+ var Calendar = function (props) {
7023
+ var addMonths = props.addMonths, calendarDate = props.calendarDate, dayFormat = props.dayFormat, disabledDates = props.disabledDates, endDate = props.endDate, firstDayOfWeek = props.firstDayOfWeek, hoverDate = props.hoverDate, locale = props.locale, maxDate = props.maxDate, minDate = props.minDate, onCellClick = props.onCellClick, onCellKeyDown = props.onCellKeyDown, onCellMouseEnter = props.onCellMouseEnter, onCellMouseLeave = props.onCellMouseLeave, onMonthClick = props.onMonthClick, onYearClick = props.onYearClick, selectEndDate = props.selectEndDate, startDate = props.startDate, view = props.view, weekdayFormat = props.weekdayFormat;
7024
+ var _a = useState(calendarDate), date = _a[0], setDate = _a[1];
7025
+ var _b = useState([]), listOfMonths = _b[0], setListOfMonths = _b[1];
7026
+ useEffect(function () {
7027
+ if (addMonths !== 0) {
7028
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7029
+ return;
7030
+ }
7031
+ setDate(calendarDate);
7032
+ }, [calendarDate]);
7033
+ useEffect(function () {
7034
+ setListOfMonths(createGroupsInArray(getMonthsNames(locale), 4));
7035
+ }, []);
7036
+ var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7037
+ var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7038
+ var weekDays = monthDetails[0];
7039
+ return (React__default$1.createElement("table", null,
7040
+ view === 'days' && (React__default$1.createElement("thead", null,
7041
+ React__default$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7042
+ var date = _a.date;
7043
+ return (React__default$1.createElement("th", { key: idx, className: "calendar-cell" },
7044
+ React__default$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7045
+ ? weekdayFormat(date)
7046
+ : typeof weekdayFormat === 'string'
7047
+ ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7048
+ : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat))));
7049
+ })))),
7050
+ React__default$1.createElement("tbody", null,
7051
+ view === 'days' &&
7052
+ monthDetails.map(function (week, index) {
7053
+ return (React__default$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7054
+ var _b;
7055
+ var date = _a.date, month = _a.month;
7056
+ return (React__default$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7057
+ today: month === 'current' && isToday(date),
7058
+ disabled: isDateDisabled(date, minDate, maxDate, disabledDates)
7059
+ },
7060
+ _b[month] = true,
7061
+ _b.last = isLastDayOfMonth(date),
7062
+ _b['range-hover'] = month === 'current' &&
7063
+ (hoverDate && selectEndDate
7064
+ ? isDateInRange(date, startDate, hoverDate)
7065
+ : isDateInRange(date, hoverDate, endDate)),
7066
+ _b.range = month === 'current' && isDateInRange(date, startDate, endDate),
7067
+ _b.selected = isDateSelected(date, startDate, endDate),
7068
+ _b.start = isStartDate(date, startDate, endDate),
7069
+ _b.end = isEndDate(date, startDate, endDate),
7070
+ _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7071
+ onBlur: function () { return onCellMouseLeave(); },
7072
+ onClick: function () { return onCellClick(date); },
7073
+ onFocus: function () { return onCellMouseEnter(date); },
7074
+ onKeyDown: function (event) { return onCellKeyDown(event, date); },
7075
+ onMouseEnter: function () { return onCellMouseEnter(date); },
7076
+ onMouseLeave: function () { return onCellMouseLeave(); },
7077
+ }), (month !== 'current' && {
7078
+ onMouseEnter: function () { return onCellMouseLeave(); },
7079
+ })),
7080
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7081
+ ? dayFormat(date)
7082
+ : date.toLocaleDateString(locale, { day: dayFormat }))));
7083
+ })));
7084
+ }),
7085
+ view === 'months' &&
7086
+ listOfMonths.map(function (row, index) {
7087
+ return (React__default$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7088
+ return (React__default$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () { return onMonthClick(index * 3 + idx - addMonths, 'days'); } },
7089
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7090
+ })));
7091
+ }),
7092
+ view === 'years' &&
7093
+ listOfYears.map(function (row, index) {
7094
+ return (React__default$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7095
+ return (React__default$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7096
+ return onYearClick(new Date(year, date.getMonth() - addMonths, date.getDate()), 'months');
7097
+ } },
7098
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7099
+ })));
7100
+ }))));
7101
+ };
7102
+ var Navigation = function (props) {
7103
+ var addMonths = props.addMonths, calendarDate = props.calendarDate, locale = props.locale, navigation = props.navigation, navNextDoubleIcon = props.navNextDoubleIcon, navNextIcon = props.navNextIcon, navPrevDoubleIcon = props.navPrevDoubleIcon, navPrevIcon = props.navPrevIcon, navYearFirst = props.navYearFirst, onMonthClick = props.onMonthClick, onNavigationClick = props.onNavigationClick, onYearClick = props.onYearClick, view = props.view;
7104
+ var _a = useState(), date = _a[0], setDate = _a[1];
7105
+ useEffect(function () {
7106
+ if (addMonths !== 0) {
7107
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7108
+ return;
7109
+ }
7110
+ setDate(calendarDate);
7111
+ }, [calendarDate]);
7112
+ return (React__default$1.createElement("div", { className: "calendar-nav" },
7113
+ navigation && (React__default$1.createElement("div", { className: "calendar-nav-prev" },
7114
+ React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7115
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7116
+ React__default$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7117
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && onMonthClick(); } }, date && date.toLocaleDateString(locale, { month: 'long' }))),
7118
+ React__default$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && onYearClick(); } }, (navYearFirst && { style: { order: '-1' } })), date && date.toLocaleDateString(locale, { year: 'numeric' }))),
7119
+ navigation && (React__default$1.createElement("div", { className: "calendar-nav-next" },
7120
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next'); } }, navNextIcon ? (navNextIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7121
+ React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7122
+ };
7008
7123
  var CCalendar = forwardRef(function (_a, ref) {
7009
- var calendarDate = _a.calendarDate, _b = _a.calendars, calendars = _b === void 0 ? 1 : _b, className = _a.className, _c = _a.dayFormat, dayFormat = _c === void 0 ? 'numeric' : _c, disabledDates = _a.disabledDates, endDate = _a.endDate, _d = _a.firstDayOfWeek, firstDayOfWeek = _d === void 0 ? 1 : _d, _e = _a.locale, locale = _e === void 0 ? 'default' : _e, maxDate = _a.maxDate, minDate = _a.minDate, _f = _a.navigation, navigation = _f === void 0 ? true : _f, navNextIcon = _a.navNextIcon, navNextDoubleIcon = _a.navNextDoubleIcon, navPrevIcon = _a.navPrevIcon, navPrevDoubleIcon = _a.navPrevDoubleIcon, navYearFirst = _a.navYearFirst, range = _a.range, selectEndDate = _a.selectEndDate, startDate = _a.startDate, _g = _a.weekdayFormat, weekdayFormat = _g === void 0 ? 2 : _g, onCalendarCellHover = _a.onCalendarCellHover, onCalendarDateChange = _a.onCalendarDateChange, onEndDateChange = _a.onEndDateChange, onStartDateChange = _a.onStartDateChange, onSelectEndChange = _a.onSelectEndChange, onViewChanged = _a.onViewChanged;
7124
+ var startDate = _a.startDate, endDate = _a.endDate, _b = _a.calendarDate, calendarDate = _b === void 0 ? startDate || endDate || null : _b, _c = _a.calendars, calendars = _c === void 0 ? 1 : _c, className = _a.className, _d = _a.dayFormat, dayFormat = _d === void 0 ? 'numeric' : _d, disabledDates = _a.disabledDates, _e = _a.firstDayOfWeek, firstDayOfWeek = _e === void 0 ? 1 : _e, _f = _a.locale, locale = _f === void 0 ? 'default' : _f, maxDate = _a.maxDate, minDate = _a.minDate, _g = _a.navigation, navigation = _g === void 0 ? true : _g, navNextIcon = _a.navNextIcon, navNextDoubleIcon = _a.navNextDoubleIcon, navPrevIcon = _a.navPrevIcon, navPrevDoubleIcon = _a.navPrevDoubleIcon, navYearFirst = _a.navYearFirst, range = _a.range, selectEndDate = _a.selectEndDate, _h = _a.weekdayFormat, weekdayFormat = _h === void 0 ? 2 : _h, onCalendarCellHover = _a.onCalendarCellHover, onCalendarDateChange = _a.onCalendarDateChange, onEndDateChange = _a.onEndDateChange, onStartDateChange = _a.onStartDateChange, onSelectEndChange = _a.onSelectEndChange, onViewChanged = _a.onViewChanged;
7010
7125
  var isInitialMount = useRef(true);
7011
- var _h = useState(calendarDate ? new Date(calendarDate) : startDate ? new Date(startDate) : new Date()), _calendarDate = _h[0], setCalendarDate = _h[1];
7126
+ var _j = useState(null), _calendarDate = _j[0], setCalendarDate = _j[1];
7012
7127
  useEffect(function () {
7128
+ if (calendarDate === null) {
7129
+ setCalendarDate(new Date());
7130
+ return;
7131
+ }
7013
7132
  if (calendarDate) {
7014
- var d = new Date(calendarDate);
7015
- !isSameDateAs(_calendarDate, d) && setCalendarDate(d);
7133
+ var date = new Date(calendarDate);
7134
+ !isSameDateAs(_calendarDate, date) && setCalendarDate(date);
7016
7135
  }
7017
7136
  }, [calendarDate]);
7018
- var _j = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _j[0], setStartDate = _j[1];
7137
+ var _k = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _k[0], setStartDate = _k[1];
7019
7138
  useEffect(function () {
7020
7139
  var date = startDate ? new Date(startDate) : null;
7021
7140
  if (!isSameDateAs(date, _startDate)) {
7022
7141
  setStartDate(date);
7023
7142
  }
7024
7143
  }, [startDate]);
7025
- var _k = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _k[0], setEndDate = _k[1];
7144
+ var _l = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _l[0], setEndDate = _l[1];
7026
7145
  useEffect(function () {
7027
7146
  var date = endDate ? new Date(endDate) : null;
7028
7147
  if (!isSameDateAs(date, _endDate)) {
7029
7148
  setEndDate(date);
7030
7149
  }
7031
7150
  }, [endDate]);
7032
- var _l = useState(null), _hoverDate = _l[0], setHoverDate = _l[1];
7033
- var _m = useState(maxDate ? new Date(maxDate) : null), _maxDate = _m[0], setMaxDate = _m[1];
7151
+ var _m = useState(null), _hoverDate = _m[0], setHoverDate = _m[1];
7152
+ var _o = useState(maxDate ? new Date(maxDate) : null), _maxDate = _o[0], setMaxDate = _o[1];
7034
7153
  useEffect(function () {
7035
7154
  maxDate && setMaxDate(new Date(maxDate));
7036
7155
  }, [maxDate]);
7037
- var _o = useState(minDate ? new Date(minDate) : null), _minDate = _o[0], setMinDate = _o[1];
7156
+ var _p = useState(minDate ? new Date(minDate) : null), _minDate = _p[0], setMinDate = _p[1];
7038
7157
  useEffect(function () {
7039
7158
  minDate && setMinDate(new Date(minDate));
7040
7159
  }, [minDate]);
7041
- var _p = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _p[0], setSelectEndDate = _p[1];
7160
+ var _q = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _q[0], setSelectEndDate = _q[1];
7042
7161
  useEffect(function () {
7043
7162
  setSelectEndDate(selectEndDate);
7044
7163
  }, [selectEndDate]);
@@ -7048,12 +7167,15 @@ var CCalendar = forwardRef(function (_a, ref) {
7048
7167
  onSelectEndChange &&
7049
7168
  onSelectEndChange(_selectEndDate);
7050
7169
  }, [_selectEndDate]);
7051
- var _q = useStateWithCallback('days', onViewChanged), view = _q[0], setView = _q[1];
7170
+ var _r = useStateWithCallback('days', onViewChanged), view = _r[0], setView = _r[1];
7052
7171
  useEffect(function () {
7053
7172
  isInitialMount.current = false;
7054
7173
  }, []);
7055
7174
  var setCalendarPage = function (years, months, setMonth) {
7056
7175
  if (months === void 0) { months = 0; }
7176
+ if (_calendarDate === null) {
7177
+ return;
7178
+ }
7057
7179
  var year = _calendarDate.getFullYear();
7058
7180
  var month = _calendarDate.getMonth();
7059
7181
  var d = new Date(year, month, 1);
@@ -7144,105 +7266,16 @@ var CCalendar = forwardRef(function (_a, ref) {
7144
7266
  return;
7145
7267
  }
7146
7268
  };
7147
- var Calendar = function (props) {
7148
- var addMonths = props.addMonths;
7149
- var date = _calendarDate;
7150
- if (addMonths !== 0) {
7151
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7152
- }
7153
- var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7154
- var listOfMonths = createGroupsInArray(getMonthsNames(locale), 4);
7155
- var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7156
- var weekDays = monthDetails[0];
7157
- return (React__default$1.createElement("table", null,
7158
- view === 'days' && (React__default$1.createElement("thead", null,
7159
- React__default$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7160
- var date = _a.date;
7161
- return (React__default$1.createElement("th", { key: idx, className: "calendar-cell" },
7162
- React__default$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7163
- ? weekdayFormat(date)
7164
- : typeof weekdayFormat === 'string'
7165
- ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7166
- : date
7167
- .toLocaleDateString(locale, { weekday: 'long' })
7168
- .slice(0, weekdayFormat))));
7169
- })))),
7170
- React__default$1.createElement("tbody", null,
7171
- view === 'days' &&
7172
- monthDetails.map(function (week, index) {
7173
- return (React__default$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7174
- var _b;
7175
- var date = _a.date, month = _a.month;
7176
- return (React__default$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7177
- today: month === 'current' && isToday(date),
7178
- disabled: isDateDisabled(date, _minDate, _maxDate, disabledDates)
7179
- },
7180
- _b[month] = true,
7181
- _b.last = isLastDayOfMonth(date),
7182
- _b['range-hover'] = month === 'current' &&
7183
- (_hoverDate && _selectEndDate
7184
- ? isDateInRange(date, _startDate, _hoverDate)
7185
- : isDateInRange(date, _hoverDate, _endDate)),
7186
- _b.range = month === 'current' && isDateInRange(date, _startDate, _endDate),
7187
- _b.selected = isDateSelected(date, _startDate, _endDate),
7188
- _b.start = isStartDate(date, _startDate, _endDate),
7189
- _b.end = isEndDate(date, _startDate, _endDate),
7190
- _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7191
- onBlur: function () { return handleCellMouseLeave(); },
7192
- onClick: function () { return handleCellOnClick(date); },
7193
- onFocus: function () { return handleCellMouseEnter(date); },
7194
- onKeyDown: function (event) { return handleCellKeyDown(event, date); },
7195
- onMouseEnter: function () { return handleCellMouseEnter(date); },
7196
- onMouseLeave: function () { return handleCellMouseLeave(); },
7197
- }), (month !== 'current' && {
7198
- onMouseEnter: function () { return handleCellMouseLeave(); },
7199
- })),
7200
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7201
- ? dayFormat(date)
7202
- : date.toLocaleDateString(locale, { day: dayFormat }))));
7203
- })));
7204
- }),
7205
- view === 'months' &&
7206
- listOfMonths.map(function (row, index) {
7207
- return (React__default$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7208
- return (React__default$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () {
7209
- setCalendarPage(0, 0, index * 3 + idx - addMonths);
7210
- setView('days');
7211
- } },
7212
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7213
- })));
7214
- }),
7215
- view === 'years' &&
7216
- listOfYears.map(function (row, index) {
7217
- return (React__default$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7218
- return (React__default$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7219
- setCalendarDate(new Date(year, date.getMonth() - addMonths, date.getDate()));
7220
- setView('months');
7221
- } },
7222
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7223
- })));
7224
- }))));
7225
- };
7226
- var Navigation = function (props) {
7227
- var addMonths = props.addMonths;
7228
- var date = _calendarDate;
7229
- if (addMonths !== 0) {
7230
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7231
- }
7232
- return (React__default$1.createElement("div", { className: "calendar-nav" },
7233
- navigation && (React__default$1.createElement("div", { className: "calendar-nav-prev" },
7234
- React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7235
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7236
- React__default$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7237
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && setView('months'); } }, date.toLocaleDateString(locale, { month: 'long' }))),
7238
- React__default$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && setView('years'); } }, (navYearFirst && { style: { order: '-1' } })), date.toLocaleDateString(locale, { year: 'numeric' }))),
7239
- navigation && (React__default$1.createElement("div", { className: "calendar-nav-next" },
7240
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next'); } }, navNextIcon ? (navNextIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7241
- React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7242
- };
7243
- return (React__default$1.createElement("div", { className: classNames$1('calendars', className) }, Array.from({ length: calendars }, function (_, index) { return (React__default$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7244
- Navigation({ addMonths: index }),
7245
- Calendar({ addMonths: index }))); })));
7269
+ return (React__default$1.createElement("div", { className: classNames$1('calendars', className) }, _calendarDate &&
7270
+ Array.from({ length: calendars }, function (_, index) { return (React__default$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7271
+ React__default$1.createElement(Navigation, { addMonths: index, calendarDate: _calendarDate, locale: locale, navigation: navigation, navNextDoubleIcon: navNextDoubleIcon, navNextIcon: navNextIcon, navPrevDoubleIcon: navPrevDoubleIcon, navPrevIcon: navPrevIcon, navYearFirst: navYearFirst, onMonthClick: function () { return setView('months'); }, onNavigationClick: handleNavigationOnClick, onYearClick: function () { return setView('years'); }, view: view }),
7272
+ React__default$1.createElement(Calendar, { addMonths: index, calendarDate: _calendarDate, dayFormat: dayFormat, disabledDates: disabledDates, endDate: _endDate, firstDayOfWeek: firstDayOfWeek, hoverDate: _hoverDate, locale: locale, maxDate: _maxDate, minDate: _minDate, onCellClick: handleCellOnClick, onCellKeyDown: handleCellKeyDown, onCellMouseEnter: handleCellMouseEnter, onCellMouseLeave: handleCellMouseLeave, onMonthClick: function (month, view) {
7273
+ setCalendarPage(0, 0, month);
7274
+ setView(view);
7275
+ }, onYearClick: function (date, view) {
7276
+ setCalendarDate(date);
7277
+ setView(view);
7278
+ }, selectEndDate: _selectEndDate, startDate: _startDate, view: view, weekdayFormat: weekdayFormat }))); })));
7246
7279
  });
7247
7280
  CCalendar.propTypes = {
7248
7281
  className: propTypesExports.string,
@@ -10287,46 +10320,34 @@ var getAmPm = function (date, locale) {
10287
10320
  }
10288
10321
  return date.getHours() >= 12 ? 'pm' : 'am';
10289
10322
  };
10290
- var getListOfHours = function (locale, ampm) {
10323
+ var getLocalizedTimePartials = function (locale, ampm) {
10291
10324
  if (ampm === void 0) { ampm = 'auto'; }
10292
- return Array.from({ length: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? 12 : 24 }, function (_, i) {
10293
- return {
10294
- value: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i,
10295
- label: ((ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i).toLocaleString(locale),
10296
- };
10297
- });
10298
- };
10299
- var getListOfMinutes = function (locale, valueAsString) {
10300
- if (valueAsString === void 0) { valueAsString = false; }
10301
- return Array.from({ length: 60 }, function (_, i) {
10302
- var d = new Date();
10303
- d.setMinutes(i);
10325
+ var date = new Date();
10326
+ var hour12 = ['am', 'AM', 'pm', 'PM'].some(function (el) { return date.toLocaleString(locale).includes(el); });
10327
+ var listOfHours = Array.from({ length: (ampm === 'auto' && hour12) || ampm === true ? 12 : 24 }, function (_, i) {
10304
10328
  return {
10305
- value: valueAsString ? i.toString() : i,
10306
- label: d
10307
- .toLocaleTimeString(locale, {
10308
- minute: '2-digit',
10309
- second: '2-digit',
10310
- })
10311
- .split(/[^A-Za-z0-9]/)[0],
10329
+ value: (ampm === 'auto' && hour12) || ampm === true ? i + 1 : i,
10330
+ label: ((ampm === 'auto' && hour12) || ampm === true ? i + 1 : i).toLocaleString(locale),
10312
10331
  };
10313
10332
  });
10314
- };
10315
- var getListOfSeconds = function (locale, valueAsString) {
10316
- if (valueAsString === void 0) { valueAsString = false; }
10317
- return Array.from({ length: 60 }, function (_, i) {
10318
- var d = new Date();
10319
- d.setSeconds(i);
10333
+ var listOfMinutesSeconds = Array.from({ length: 60 }, function (_, i) {
10334
+ date.setMinutes(i);
10320
10335
  return {
10321
- value: valueAsString ? i.toString() : i,
10322
- label: d
10336
+ value: i,
10337
+ label: date
10323
10338
  .toLocaleTimeString(locale, {
10324
10339
  minute: '2-digit',
10325
10340
  second: '2-digit',
10326
10341
  })
10327
- .split(/[^A-Za-z0-9]/)[1],
10342
+ .split(/[^A-Za-z0-9\u06F0-\u06F90-9]/)[0],
10328
10343
  };
10329
10344
  });
10345
+ return {
10346
+ listOfHours: listOfHours,
10347
+ listOfMinutes: listOfMinutesSeconds,
10348
+ listOfSeconds: listOfMinutesSeconds,
10349
+ hour12: hour12,
10350
+ };
10330
10351
  };
10331
10352
  var getSelectedHour = function (date, locale, ampm) {
10332
10353
  if (ampm === void 0) { ampm = 'auto'; }
@@ -10354,13 +10375,22 @@ var CTimePicker = forwardRef(function (_a, ref) {
10354
10375
  var _o = useState(null), initialDate = _o[0], setInitialDate = _o[1];
10355
10376
  var _p = useState(date ? getAmPm(new Date(date), locale) : 'am'), _ampm = _p[0], setAmPm = _p[1];
10356
10377
  var _q = useState(visible), _visible = _q[0], setVisible = _q[1];
10378
+ var _r = useState({
10379
+ listOfHours: [],
10380
+ listOfMinutes: [],
10381
+ listOfSeconds: [],
10382
+ hour12: false,
10383
+ }), localizedTimePartials = _r[0], setLocalizedTimePartials = _r[1];
10384
+ useEffect(function () {
10385
+ setLocalizedTimePartials(getLocalizedTimePartials(locale, ampm));
10386
+ }, [date]);
10357
10387
  useEffect(function () {
10358
10388
  setDate(convertTimeToDate(time));
10359
10389
  }, [time]);
10360
10390
  useEffect(function () {
10361
10391
  if (inputRef.current) {
10362
10392
  inputRef.current.value = date
10363
- ? date.toLocaleTimeString(locale, __assign$1({ hour12: (ampm === 'auto' && isAmPm(locale)) || (typeof ampm === 'boolean' && ampm) }, (!seconds && { timeStyle: 'short' })))
10393
+ ? date.toLocaleTimeString(locale, __assign$1({ hour12: localizedTimePartials && localizedTimePartials.hour12 }, (!seconds && { timeStyle: 'short' })))
10364
10394
  : '';
10365
10395
  }
10366
10396
  date && setAmPm(getAmPm(new Date(date), locale));
@@ -10381,7 +10411,7 @@ var CTimePicker = forwardRef(function (_a, ref) {
10381
10411
  }
10382
10412
  }
10383
10413
  if (set === 'hours') {
10384
- if ((ampm === 'auto' && isAmPm(locale)) || ampm === true) {
10414
+ if (localizedTimePartials && localizedTimePartials.hour12) {
10385
10415
  _date.setHours(convert12hTo24h(_ampm, parseInt(value)));
10386
10416
  }
10387
10417
  else {
@@ -10405,30 +10435,40 @@ var CTimePicker = forwardRef(function (_a, ref) {
10405
10435
  indicator && (React__default$1.createElement("span", { className: "picker-input-group-indicator" }, typeof indicator === 'boolean' ? (React__default$1.createElement("span", { className: "picker-input-group-icon time-picker-input-icon" })) : (indicator))),
10406
10436
  cleaner && date && (React__default$1.createElement("span", { className: "picker-input-group-cleaner", role: "button", onClick: function (event) { return handleClear(event); } }, typeof cleaner === 'boolean' ? (React__default$1.createElement("span", { className: "picker-input-group-icon time-picker-cleaner-icon" })) : (cleaner))))))); };
10407
10437
  var TimePickerSelect = function () {
10438
+ var _a;
10408
10439
  return (React__default$1.createElement(React__default$1.Fragment, null,
10409
10440
  React__default$1.createElement("span", { className: "time-picker-inline-icon" }),
10410
- React__default$1.createElement(CFormSelect, { disabled: disabled, options: getListOfHours(locale).map(function (option) {
10411
- return {
10412
- value: option.value.toString(),
10413
- label: option.label,
10414
- };
10415
- }), onChange: function (event) {
10441
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10442
+ ((_a = localizedTimePartials.listOfHours) === null || _a === void 0 ? void 0 : _a.map(function (option) {
10443
+ return {
10444
+ value: option.value.toString(),
10445
+ label: option.label,
10446
+ };
10447
+ })), onChange: function (event) {
10416
10448
  return handleTimeChange('hours', event.target.value);
10417
10449
  }, value: getSelectedHour(date, locale) }),
10418
10450
  React__default$1.createElement(React__default$1.Fragment, null, ":"),
10419
- React__default$1.createElement(CFormSelect, { disabled: disabled,
10420
- // @ts-expect-error the getListOfMinutes function returns corect type
10421
- options: getListOfMinutes(locale, true), onChange: function (event) {
10451
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10452
+ localizedTimePartials.listOfMinutes.map(function (option) {
10453
+ return {
10454
+ value: option.value.toString(),
10455
+ label: option.label,
10456
+ };
10457
+ }), onChange: function (event) {
10422
10458
  return handleTimeChange('minutes', event.target.value);
10423
10459
  }, value: getSelectedMinutes(date) }),
10424
10460
  seconds && (React__default$1.createElement(React__default$1.Fragment, null,
10425
10461
  React__default$1.createElement(React__default$1.Fragment, null, ":"),
10426
- React__default$1.createElement(CFormSelect, { disabled: disabled,
10427
- // @ts-expect-error the getListOfSeconds function returns corect type
10428
- options: getListOfSeconds(locale, true), onChange: function (event) {
10462
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10463
+ localizedTimePartials.listOfSeconds.map(function (option) {
10464
+ return {
10465
+ value: option.value.toString(),
10466
+ label: option.label,
10467
+ };
10468
+ }), onChange: function (event) {
10429
10469
  return handleTimeChange('seconds', event.target.value);
10430
10470
  }, value: getSelectedSeconds(date) }))),
10431
- isAmPm(locale) && (React__default$1.createElement(CFormSelect, { disabled: disabled, options: [
10471
+ localizedTimePartials && localizedTimePartials.hour12 && (React__default$1.createElement(CFormSelect, { disabled: disabled, options: [
10432
10472
  { value: 'am', label: 'AM' },
10433
10473
  { value: 'pm', label: 'PM' },
10434
10474
  ], onChange: function (event) {
@@ -10436,10 +10476,10 @@ var CTimePicker = forwardRef(function (_a, ref) {
10436
10476
  }, value: _ampm }))));
10437
10477
  };
10438
10478
  var TimePickerRoll = function () { return (React__default$1.createElement(React__default$1.Fragment, null,
10439
- React__default$1.createElement(CTimePickerRollCol, { elements: getListOfHours(locale, ampm), onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
10440
- React__default$1.createElement(CTimePickerRollCol, { elements: getListOfMinutes(locale), onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
10441
- seconds && (React__default$1.createElement(CTimePickerRollCol, { elements: getListOfSeconds(locale), onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
10442
- ((ampm === 'auto' && isAmPm(locale)) || ampm === true) && (React__default$1.createElement(CTimePickerRollCol, { elements: [
10479
+ React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfHours, onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
10480
+ React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfMinutes, onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
10481
+ seconds && (React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfSeconds, onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
10482
+ localizedTimePartials && localizedTimePartials.hour12 && (React__default$1.createElement(CTimePickerRollCol, { elements: [
10443
10483
  { value: 'am', label: 'AM' },
10444
10484
  { value: 'pm', label: 'PM' },
10445
10485
  ], onClick: function (value) { return handleTimeChange('toggle', value); }, selected: _ampm })))); };
@@ -10688,6 +10728,73 @@ CDropdownItemPlain.propTypes = {
10688
10728
  };
10689
10729
  CDropdownItemPlain.displayName = 'CDropdownItemPlain';
10690
10730
 
10731
+ var CSpinner = forwardRef(function (_a, ref) {
10732
+ var className = _a.className, color = _a.color, _b = _a.component, Component = _b === void 0 ? 'div' : _b, size = _a.size, _c = _a.variant, variant = _c === void 0 ? 'border' : _c, _d = _a.visuallyHiddenLabel, visuallyHiddenLabel = _d === void 0 ? 'Loading...' : _d, rest = __rest$1(_a, ["className", "color", "component", "size", "variant", "visuallyHiddenLabel"]);
10733
+ var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
10734
+ return (React__default$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
10735
+ React__default$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
10736
+ });
10737
+ CSpinner.propTypes = {
10738
+ className: propTypesExports.string,
10739
+ color: colorPropType,
10740
+ component: propTypesExports.string,
10741
+ size: propTypesExports.oneOf(['sm']),
10742
+ variant: propTypesExports.oneOf(['border', 'grow']),
10743
+ visuallyHiddenLabel: propTypesExports.string,
10744
+ };
10745
+ CSpinner.displayName = 'CSpinner';
10746
+
10747
+ var CElementCover = forwardRef(function (_a, ref) {
10748
+ var children = _a.children, className = _a.className, boundaries = _a.boundaries, _b = _a.opacity, opacity = _b === void 0 ? 0.4 : _b, rest = __rest$1(_a, ["children", "className", "boundaries", "opacity"]);
10749
+ var elementCoverRef = useRef(null);
10750
+ var forkedRef = useForkedRef(ref, elementCoverRef);
10751
+ var _c = useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
10752
+ var getCustomBoundaries = function () {
10753
+ if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
10754
+ return {};
10755
+ }
10756
+ var parent = elementCoverRef.current.parentElement;
10757
+ if (!parent) {
10758
+ return {};
10759
+ }
10760
+ var parentCoords = parent.getBoundingClientRect();
10761
+ var customBoundaries = {};
10762
+ boundaries.forEach(function (_a) {
10763
+ var sides = _a.sides, query = _a.query;
10764
+ var element = parent.querySelector(query);
10765
+ if (!element || !sides) {
10766
+ return;
10767
+ }
10768
+ var coords = element.getBoundingClientRect();
10769
+ sides.forEach(function (side) {
10770
+ var sideMargin = Math.abs(coords[side] - parentCoords[side]);
10771
+ customBoundaries[side] = "".concat(sideMargin, "px");
10772
+ });
10773
+ });
10774
+ return customBoundaries;
10775
+ };
10776
+ useEffect(function () {
10777
+ setCustomBoundaries(getCustomBoundaries());
10778
+ }, [JSON.stringify(getCustomBoundaries())]);
10779
+ var classes = classNames$1(className);
10780
+ var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
10781
+ var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgba(255,255,255,".concat(opacity, ")") });
10782
+ return (React__default$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }),
10783
+ React__default$1.createElement("div", { style: {
10784
+ position: 'absolute',
10785
+ top: '50%',
10786
+ left: '50%',
10787
+ transform: 'translateX(-50%) translateY(-50%)',
10788
+ } }, children || React__default$1.createElement(CSpinner, { variant: "grow", color: "primary" }))));
10789
+ });
10790
+ CElementCover.propTypes = {
10791
+ boundaries: propTypesExports.array,
10792
+ children: propTypesExports.node,
10793
+ className: propTypesExports.string,
10794
+ opacity: propTypesExports.number,
10795
+ };
10796
+ CElementCover.displayName = 'CElementCover';
10797
+
10691
10798
  var CFooter = forwardRef(function (_a, ref) {
10692
10799
  var _b;
10693
10800
  var children = _a.children, className = _a.className, position = _a.position, rest = __rest$1(_a, ["children", "className", "position"]);
@@ -11015,22 +11122,6 @@ CListGroupItem.propTypes = {
11015
11122
  };
11016
11123
  CListGroupItem.displayName = 'CListGroupItem';
11017
11124
 
11018
- var CSpinner = forwardRef(function (_a, ref) {
11019
- var className = _a.className, color = _a.color, _b = _a.component, Component = _b === void 0 ? 'div' : _b, size = _a.size, _c = _a.variant, variant = _c === void 0 ? 'border' : _c, _d = _a.visuallyHiddenLabel, visuallyHiddenLabel = _d === void 0 ? 'Loading...' : _d, rest = __rest$1(_a, ["className", "color", "component", "size", "variant", "visuallyHiddenLabel"]);
11020
- var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
11021
- return (React__default$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
11022
- React__default$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
11023
- });
11024
- CSpinner.propTypes = {
11025
- className: propTypesExports.string,
11026
- color: colorPropType,
11027
- component: propTypesExports.string,
11028
- size: propTypesExports.oneOf(['sm']),
11029
- variant: propTypesExports.oneOf(['border', 'grow']),
11030
- visuallyHiddenLabel: propTypesExports.string,
11031
- };
11032
- CSpinner.displayName = 'CSpinner';
11033
-
11034
11125
  var CLoadingButton = forwardRef(function (_a, ref) {
11035
11126
  var children = _a.children, className = _a.className, disabledOnLoading = _a.disabledOnLoading, loading = _a.loading, onClick = _a.onClick, _b = _a.spinnerType, spinnerType = _b === void 0 ? 'border' : _b, timeout = _a.timeout, rest = __rest$1(_a, ["children", "className", "disabledOnLoading", "loading", "onClick", "spinnerType", "timeout"]);
11036
11127
  var _c = useState(), _loading = _c[0], setLoading = _c[1];
@@ -11863,8 +11954,8 @@ CNavbarToggler.displayName = 'CNavbarToggler';
11863
11954
 
11864
11955
  var COffcanvas = forwardRef(function (_a, ref) {
11865
11956
  var _b;
11866
- var children = _a.children, _c = _a.backdrop, backdrop = _c === void 0 ? true : _c, className = _a.className, _d = _a.keyboard, keyboard = _d === void 0 ? true : _d, onHide = _a.onHide, onShow = _a.onShow, placement = _a.placement, _e = _a.portal, portal = _e === void 0 ? true : _e, _f = _a.scroll, scroll = _f === void 0 ? false : _f, _g = _a.visible, visible = _g === void 0 ? false : _g, rest = __rest$1(_a, ["children", "backdrop", "className", "keyboard", "onHide", "onShow", "placement", "portal", "scroll", "visible"]);
11867
- var _h = useState(visible), _visible = _h[0], setVisible = _h[1];
11957
+ var children = _a.children, _c = _a.backdrop, backdrop = _c === void 0 ? true : _c, className = _a.className, _d = _a.keyboard, keyboard = _d === void 0 ? true : _d, onHide = _a.onHide, onShow = _a.onShow, placement = _a.placement, _e = _a.portal, portal = _e === void 0 ? false : _e, _f = _a.responsive, responsive = _f === void 0 ? true : _f, _g = _a.scroll, scroll = _g === void 0 ? false : _g, _h = _a.visible, visible = _h === void 0 ? false : _h, rest = __rest$1(_a, ["children", "backdrop", "className", "keyboard", "onHide", "onShow", "placement", "portal", "responsive", "scroll", "visible"]);
11958
+ var _j = useState(visible), _visible = _j[0], setVisible = _j[1];
11868
11959
  var offcanvasRef = useRef(null);
11869
11960
  var forkedRef = useForkedRef(ref, offcanvasRef);
11870
11961
  useEffect(function () {
@@ -11883,19 +11974,27 @@ var COffcanvas = forwardRef(function (_a, ref) {
11883
11974
  document.body.style.removeProperty('padding-right');
11884
11975
  }
11885
11976
  }, [_visible]);
11886
- var _className = classNames$1('offcanvas', (_b = {},
11977
+ var getTransitionClass = function (state) {
11978
+ return state === 'entering'
11979
+ ? 'showing'
11980
+ : state === 'entered'
11981
+ ? 'show'
11982
+ : state === 'exiting'
11983
+ ? 'show hiding'
11984
+ : '';
11985
+ };
11986
+ var _className = classNames$1((_b = {},
11987
+ _b["offcanvas".concat(typeof responsive !== 'boolean' ? '-' + responsive : '')] = responsive,
11887
11988
  _b["offcanvas-".concat(placement)] = placement,
11888
- _b.show = _visible,
11889
11989
  _b), className);
11890
- var transitionStyles = {
11891
- entering: { visibility: 'visible' },
11892
- entered: { visibility: 'visible' },
11893
- exiting: { visibility: 'visible' },
11894
- exited: { visibility: 'hidden' },
11895
- };
11896
11990
  var handleDismiss = function () {
11897
11991
  setVisible(false);
11898
11992
  };
11993
+ var handleBackdropDismiss = function () {
11994
+ if (backdrop !== 'static') {
11995
+ setVisible(false);
11996
+ }
11997
+ };
11899
11998
  var handleKeyDown = useCallback(function (event) {
11900
11999
  if (event.key === 'Escape' && keyboard) {
11901
12000
  return handleDismiss();
@@ -11903,7 +12002,7 @@ var COffcanvas = forwardRef(function (_a, ref) {
11903
12002
  }, [ref, handleDismiss]);
11904
12003
  var offcanvas = function (ref, state) {
11905
12004
  return (React__default$1.createElement(React__default$1.Fragment, null,
11906
- React__default$1.createElement("div", __assign$1({ className: _className, role: "dialog", style: __assign$1({}, transitionStyles[state]), tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
12005
+ React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, getTransitionClass(state)), role: "dialog", tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
11907
12006
  };
11908
12007
  return (React__default$1.createElement(React__default$1.Fragment, null,
11909
12008
  React__default$1.createElement(Transition$1, { in: _visible, nodeRef: offcanvasRef, onEnter: onShow, onEntered: function () { var _a; return (_a = offcanvasRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, onExit: onHide, timeout: 300 }, function (state) {
@@ -11913,11 +12012,11 @@ var COffcanvas = forwardRef(function (_a, ref) {
11913
12012
  }),
11914
12013
  typeof window !== 'undefined' && portal
11915
12014
  ? backdrop &&
11916
- createPortal(React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }), document.body)
11917
- : backdrop && (React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }))));
12015
+ createPortal(React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }), document.body)
12016
+ : backdrop && (React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }))));
11918
12017
  });
11919
12018
  COffcanvas.propTypes = {
11920
- backdrop: propTypesExports.bool,
12019
+ backdrop: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.oneOf(['static'])]),
11921
12020
  children: propTypesExports.node,
11922
12021
  className: propTypesExports.string,
11923
12022
  keyboard: propTypesExports.bool,
@@ -11926,6 +12025,10 @@ COffcanvas.propTypes = {
11926
12025
  placement: propTypesExports.oneOf(['start', 'end', 'top', 'bottom'])
11927
12026
  .isRequired,
11928
12027
  portal: propTypesExports.bool,
12028
+ responsive: propTypesExports.oneOfType([
12029
+ propTypesExports.bool,
12030
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12031
+ ]),
11929
12032
  scroll: propTypesExports.bool,
11930
12033
  visible: propTypesExports.bool,
11931
12034
  };
@@ -12143,438 +12246,51 @@ CPopover.propTypes = {
12143
12246
  };
12144
12247
  CPopover.displayName = 'CPopover';
12145
12248
 
12146
- const cilArrowBottom = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75' class='ci-primary'/>"];
12249
+ var cilArrowBottom = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75' class='ci-primary'/>"];
12147
12250
 
12148
- const cilArrowTop = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625' class='ci-primary'/>"];
12251
+ var cilArrowTop = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625' class='ci-primary'/>"];
12149
12252
 
12150
- const cilFilterX = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225' class='ci-primary'/>"];
12253
+ var cilFilterX = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225' class='ci-primary'/>"];
12151
12254
 
12152
- const cilSwapVertical = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372' class='ci-primary'/>"];
12255
+ var cilSwapVertical = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372' class='ci-primary'/>"];
12153
12256
 
12154
- var CElementCover = forwardRef(function (_a, ref) {
12155
- var children = _a.children, className = _a.className, boundaries = _a.boundaries, _b = _a.opacity, opacity = _b === void 0 ? 0.4 : _b, rest = __rest$1(_a, ["children", "className", "boundaries", "opacity"]);
12156
- var elementCoverRef = useRef(null);
12157
- var forkedRef = useForkedRef(ref, elementCoverRef);
12158
- var _c = useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
12159
- var getCustomBoundaries = function () {
12160
- if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
12161
- return {};
12162
- }
12163
- var parent = elementCoverRef.current.parentElement;
12164
- if (!parent) {
12165
- return {};
12166
- }
12167
- var parentCoords = parent.getBoundingClientRect();
12168
- var customBoundaries = {};
12169
- boundaries.forEach(function (_a) {
12170
- var sides = _a.sides, query = _a.query;
12171
- var element = parent.querySelector(query);
12172
- if (!element || !sides) {
12173
- return;
12174
- }
12175
- var coords = element.getBoundingClientRect();
12176
- sides.forEach(function (side) {
12177
- var sideMargin = Math.abs(coords[side] - parentCoords[side]);
12178
- customBoundaries[side] = "".concat(sideMargin, "px");
12179
- });
12180
- });
12181
- return customBoundaries;
12182
- };
12183
- useEffect(function () {
12184
- setCustomBoundaries(getCustomBoundaries());
12185
- }, [JSON.stringify(getCustomBoundaries())]);
12186
- //render
12187
- var classes = classNames$1(className);
12188
- var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
12189
- var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgb(255,255,255,".concat(opacity, ")") });
12190
- return (React__default$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }), children || (React__default$1.createElement("div", { style: {
12191
- position: 'absolute',
12192
- top: '50%',
12193
- left: '50%',
12194
- transform: 'translateX(-50%) translateY(-50%)',
12195
- } },
12196
- React__default$1.createElement(CSpinner, { variant: "grow", color: "primary" })))));
12197
- });
12198
- CElementCover.propTypes = {
12199
- boundaries: propTypesExports.array,
12200
- children: propTypesExports.node,
12201
- className: propTypesExports.string,
12202
- opacity: propTypesExports.number,
12203
- };
12204
- CElementCover.displayName = 'CElementCover';
12205
-
12206
- var CSmartPagination = forwardRef(function (_a, ref) {
12207
- var className = _a.className, _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, _c = _a.align, align = _c === void 0 ? 'start' : _c, _d = _a.arrows, arrows = _d === void 0 ? true : _d, _e = _a.dots, dots = _e === void 0 ? true : _e, _f = _a.doubleArrows, doubleArrows = _f === void 0 ? true : _f, _g = _a.firstButton, firstButton = _g === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u2039") : _l, size = _a.size, rest = __rest$1(_a, ["className", "activePage", "align", "arrows", "dots", "doubleArrows", "firstButton", "lastButton", "limit", "nextButton", "onActivePageChange", "pages", "previousButton", "size"]);
12208
- var _classNames = classNames$1("justify-content-".concat(align), className);
12209
- var showDots = (function () {
12210
- return dots && limit > 4 && limit < pages;
12211
- })();
12212
- var maxPrevItems = (function () {
12213
- return Math.floor((limit - 1) / 2);
12214
- })();
12215
- var maxNextItems = (function () {
12216
- return Math.ceil((limit - 1) / 2);
12217
- })();
12218
- var beforeDots = (function () {
12219
- return showDots && activePage > maxPrevItems + 1;
12220
- })();
12221
- var afterDots = (function () {
12222
- return showDots && activePage < pages - maxNextItems;
12223
- })();
12224
- var computedLimit = (function () {
12225
- return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
12226
- })();
12227
- var range = (function () {
12228
- return activePage + maxNextItems;
12229
- })();
12230
- var lastItem = (function () {
12231
- return range >= pages ? pages : range - (afterDots ? 1 : 0);
12232
- })();
12233
- var itemsAmount = (function () {
12234
- return pages < computedLimit ? pages : computedLimit;
12235
- })();
12236
- var items = (function () {
12237
- if (activePage - maxPrevItems <= 1) {
12238
- return Array.from({
12239
- length: itemsAmount,
12240
- }, function (_v, i) { return i + 1; });
12241
- }
12242
- else {
12243
- return Array.from({
12244
- length: itemsAmount,
12245
- }, function (_v, i) {
12246
- return lastItem - i;
12247
- }).reverse();
12248
- }
12249
- })();
12250
- var setPage = function (number) {
12251
- if (number !== activePage) {
12252
- onActivePageChange && onActivePageChange(number);
12253
- }
12254
- };
12255
- return (React__default$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
12256
- doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
12257
- arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
12258
- beforeDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12259
- items.map(function (i) {
12260
- return (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(i); }, "aria-label": activePage === i ? "Current page ".concat(i) : "Go to page ".concat(i), active: activePage === i, key: i }, i));
12261
- }),
12262
- afterDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12263
- arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
12264
- doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
12265
- });
12266
- CSmartPagination.propTypes = {
12267
- className: propTypesExports.oneOfType([propTypesExports.string]),
12268
- activePage: propTypesExports.number,
12269
- dots: propTypesExports.bool,
12270
- arrows: propTypesExports.bool,
12271
- doubleArrows: propTypesExports.bool,
12272
- firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12273
- previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12274
- nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12275
- lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12276
- size: propTypesExports.oneOf(['sm', 'lg']),
12277
- align: propTypesExports.oneOf(['start', 'center', 'end']),
12278
- limit: propTypesExports.number,
12279
- pages: propTypesExports.number.isRequired,
12280
- onActivePageChange: propTypesExports.func,
12281
- };
12282
- CSmartPagination.displayName = 'CSmartPagination';
12283
-
12284
- var CTableHead = forwardRef(function (_a, ref) {
12285
- var _b;
12286
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12287
- var _className = classNames$1((_b = {},
12288
- _b["table-".concat(color)] = color,
12289
- _b), className);
12290
- return (React__default$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12291
- });
12292
- CTableHead.propTypes = {
12293
- children: propTypesExports.node,
12294
- className: propTypesExports.string,
12295
- color: colorPropType,
12296
- };
12297
- CTableHead.displayName = 'CTableHead';
12298
-
12299
- var CTableHeaderCell = forwardRef(function (_a, ref) {
12300
- var _b;
12301
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12302
- var _className = classNames$1((_b = {},
12303
- _b["table-".concat(color)] = color,
12304
- _b), className);
12305
- return (React__default$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12306
- });
12307
- CTableHeaderCell.propTypes = {
12308
- children: propTypesExports.node,
12309
- className: propTypesExports.string,
12310
- color: colorPropType,
12311
- };
12312
- CTableHeaderCell.displayName = 'CTableHeaderCell';
12313
-
12314
- var CTableBody = forwardRef(function (_a, ref) {
12315
- var _b;
12316
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12317
- var _className = classNames$1((_b = {},
12318
- _b["table-".concat(color)] = color,
12319
- _b), className);
12320
- return (React__default$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12321
- });
12322
- CTableBody.propTypes = {
12323
- children: propTypesExports.node,
12324
- className: propTypesExports.string,
12325
- color: colorPropType,
12326
- };
12327
- CTableBody.displayName = 'CTableBody';
12328
-
12329
- var CTableDataCell = forwardRef(function (_a, ref) {
12330
- var _b;
12331
- var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
12332
- var _className = classNames$1((_b = {},
12333
- _b["align-".concat(align)] = align,
12334
- _b['table-active'] = active,
12335
- _b["table-".concat(color)] = color,
12336
- _b), className);
12337
- var Component = rest.scope ? 'th' : 'td';
12338
- return (React__default$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12339
- });
12340
- CTableDataCell.propTypes = {
12341
- active: propTypesExports.bool,
12342
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12343
- children: propTypesExports.node,
12344
- className: propTypesExports.string,
12345
- color: colorPropType,
12346
- };
12347
- CTableDataCell.displayName = 'CTableDataCell';
12348
-
12349
- var CTableRow = forwardRef(function (_a, ref) {
12350
- var _b;
12351
- var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
12352
- var _className = classNames$1((_b = {},
12353
- _b["align-".concat(align)] = align,
12354
- _b['table-active'] = active,
12355
- _b["table-".concat(color)] = color,
12356
- _b), className);
12357
- return (React__default$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12358
- });
12359
- CTableRow.propTypes = {
12360
- active: propTypesExports.bool,
12361
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12362
- children: propTypesExports.node,
12363
- className: propTypesExports.string,
12364
- color: colorPropType,
12365
- };
12366
- CTableRow.displayName = 'CTableRow';
12367
-
12368
- var CTableFoot = forwardRef(function (_a, ref) {
12369
- var _b;
12370
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12371
- var _className = classNames$1((_b = {},
12372
- _b["table-".concat(color)] = color,
12373
- _b), className);
12374
- return (React__default$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12375
- });
12376
- CTableFoot.propTypes = {
12377
- children: propTypesExports.node,
12378
- className: propTypesExports.string,
12379
- color: colorPropType,
12380
- };
12381
- CTableFoot.displayName = 'CTableFoot';
12382
-
12383
- var CTableCaption = forwardRef(function (_a, ref) {
12384
- var children = _a.children, props = __rest$1(_a, ["children"]);
12385
- return (React__default$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
12386
- });
12387
- CTableCaption.propTypes = {
12388
- children: propTypesExports.node,
12389
- };
12390
- CTableCaption.displayName = 'CTableCaption';
12391
-
12392
- var CTableResponsiveWrapper = function (_a) {
12393
- var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
12394
- return responsive ? (React__default$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
12395
- };
12396
- CTableResponsiveWrapper.propTypes = {
12397
- children: propTypesExports.any,
12398
- responsive: propTypesExports.oneOfType([
12399
- propTypesExports.bool,
12400
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12401
- ]),
12402
- };
12403
- CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
12404
-
12405
- var CTable = forwardRef(function (_a, ref) {
12406
- var _b;
12407
- var children = _a.children, align = _a.align, borderColor = _a.borderColor, bordered = _a.bordered, borderless = _a.borderless, caption = _a.caption, captionTop = _a.captionTop, className = _a.className, color = _a.color, columns = _a.columns, footer = _a.footer, hover = _a.hover, items = _a.items, responsive = _a.responsive, small = _a.small, striped = _a.striped, stripedColumns = _a.stripedColumns, tableFootProps = _a.tableFootProps, tableHeadProps = _a.tableHeadProps, rest = __rest$1(_a, ["children", "align", "borderColor", "bordered", "borderless", "caption", "captionTop", "className", "color", "columns", "footer", "hover", "items", "responsive", "small", "striped", "stripedColumns", "tableFootProps", "tableHeadProps"]);
12408
- var _className = classNames$1('table', (_b = {},
12409
- _b["align-".concat(align)] = align,
12410
- _b["border-".concat(borderColor)] = borderColor,
12411
- _b["caption-top"] = captionTop || caption === 'top',
12412
- _b['table-bordered'] = bordered,
12413
- _b['table-borderless'] = borderless,
12414
- _b["table-".concat(color)] = color,
12415
- _b['table-hover'] = hover,
12416
- _b['table-sm'] = small,
12417
- _b['table-striped'] = striped,
12418
- _b['table-striped-columns'] = stripedColumns,
12419
- _b), className);
12420
- var rawColumnNames = columns
12421
- ? columns.map(function (column) {
12422
- if (typeof column === 'object')
12423
- return column.key;
12424
- else
12425
- return column;
12426
- })
12427
- : Object.keys((items && items[0]) || {}).filter(function (el) { return el.charAt(0) !== '_'; });
12428
- var pretifyName = function (name) {
12429
- return name
12430
- .replace(/[-_.]/g, ' ')
12431
- .replace(/ +/g, ' ')
12432
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
12433
- .split(' ')
12434
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
12435
- .join(' ');
12436
- };
12437
- var label = function (column) {
12438
- return typeof column === 'object'
12439
- ? column.label !== undefined
12440
- ? column.label
12441
- : pretifyName(column.key)
12442
- : pretifyName(column);
12443
- };
12444
- return (React__default$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
12445
- React__default$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
12446
- ((caption && caption !== 'top') || captionTop) && (React__default$1.createElement(CTableCaption, null, caption || captionTop)),
12447
- columns && (React__default$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
12448
- React__default$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
12449
- items && (React__default$1.createElement(CTableBody, null, items.map(function (item, index) { return (React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
12450
- return item[colName] ? (React__default$1.createElement(CTableDataCell, __assign$1({}, (item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])))), { key: index }), item[colName])) : null;
12451
- }))); }))),
12452
- children,
12453
- footer && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
12454
- React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
12455
- });
12456
- CTable.propTypes = {
12457
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12458
- borderColor: propTypesExports.string,
12459
- bordered: propTypesExports.bool,
12460
- borderless: propTypesExports.bool,
12461
- caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
12462
- captionTop: propTypesExports.string,
12463
- children: propTypesExports.node,
12464
- className: propTypesExports.string,
12465
- color: colorPropType,
12466
- columns: propTypesExports.array,
12467
- footer: propTypesExports.array,
12468
- hover: propTypesExports.bool,
12469
- items: propTypesExports.array,
12470
- responsive: propTypesExports.oneOfType([
12471
- propTypesExports.bool,
12472
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12473
- ]),
12474
- small: propTypesExports.bool,
12475
- striped: propTypesExports.bool,
12476
- stripedColumns: propTypesExports.bool,
12477
- tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
12478
- tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
12479
- };
12480
- CTable.displayName = 'CTable';
12481
-
12482
- var CSmartTableBody = forwardRef(function (_a, ref) {
12483
- var clickableRows = _a.clickableRows, currentItems = _a.currentItems, firstItemOnActivePageIndex = _a.firstItemOnActivePageIndex, noItemsLabel = _a.noItemsLabel, onRowChecked = _a.onRowChecked, onRowClick = _a.onRowClick, rawColumnNames = _a.rawColumnNames, scopedColumns = _a.scopedColumns, selectable = _a.selectable, rest = __rest$1(_a, ["clickableRows", "currentItems", "firstItemOnActivePageIndex", "noItemsLabel", "onRowChecked", "onRowClick", "rawColumnNames", "scopedColumns", "selectable"]);
12484
- var tableDataCellProps = function (item, colName) {
12485
- var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
12486
- return props;
12487
- };
12488
- var getColumnName = function (event) {
12489
- var target = event.target;
12490
- var closest = target.closest('tr');
12491
- var children = closest ? Array.from(closest.children) : [];
12492
- var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
12493
- return rawColumnNames[children.indexOf(clickedCell)];
12494
- };
12495
- var colspan = selectable ? rawColumnNames.length + 1 : rawColumnNames.length;
12496
- return (React__default$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
12497
- style: { cursor: 'pointer' },
12498
- }), rest, { ref: ref }),
12499
- currentItems.map(function (item, trIndex) {
12500
- return (React__default$1.createElement(React__default$1.Fragment, { key: trIndex },
12501
- React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
12502
- return onRowClick &&
12503
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), event);
12504
- } }),
12505
- selectable && (React__default$1.createElement(CTableDataCell, null,
12506
- React__default$1.createElement(CFormCheck, { checked: item._selected ? item._selected : false, onChange: function (event) {
12507
- return onRowChecked && onRowChecked(item._id, event.target.checked);
12508
- } }))),
12509
- rawColumnNames.map(function (colName, index) {
12510
- return ((scopedColumns &&
12511
- scopedColumns[colName] &&
12512
- React__default$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
12513
- key: index,
12514
- })) || (React__default$1.createElement(CTableDataCell, __assign$1({}, tableDataCellProps(item, colName), { key: index }), String(item[colName]))));
12515
- })),
12516
- scopedColumns && scopedColumns.details && (React__default$1.createElement(React__default$1.Fragment, null,
12517
- React__default$1.createElement(CTableRow, null,
12518
- React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
12519
- React__default$1.createElement(CTableRow, { onClick: function (event) {
12520
- return onRowClick &&
12521
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), true);
12522
- }, className: "p-0", key: "details".concat(trIndex) },
12523
- React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
12524
- }),
12525
- !currentItems.length && (React__default$1.createElement(CTableRow, null,
12526
- React__default$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
12527
- });
12528
- CSmartTableBody.propTypes = {
12529
- clickableRows: propTypesExports.bool,
12530
- currentItems: propTypesExports.array.isRequired,
12531
- firstItemOnActivePageIndex: propTypesExports.number.isRequired,
12532
- noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
12533
- onRowChecked: propTypesExports.func,
12534
- onRowClick: propTypesExports.func,
12535
- rawColumnNames: propTypesExports.array.isRequired,
12536
- scopedColumns: propTypesExports.object,
12537
- selectable: propTypesExports.bool,
12538
- };
12539
- CSmartTableBody.displayName = 'CSmartTableBody';
12540
-
12541
- /******************************************************************************
12542
- Copyright (c) Microsoft Corporation.
12543
-
12544
- Permission to use, copy, modify, and/or distribute this software for any
12545
- purpose with or without fee is hereby granted.
12546
-
12547
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12548
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12549
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12550
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12551
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12552
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12553
- PERFORMANCE OF THIS SOFTWARE.
12554
- ***************************************************************************** */
12555
-
12556
- var __assign = function() {
12557
- __assign = Object.assign || function __assign(t) {
12558
- for (var s, i = 1, n = arguments.length; i < n; i++) {
12559
- s = arguments[i];
12560
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
12561
- }
12562
- return t;
12563
- };
12564
- return __assign.apply(this, arguments);
12565
- };
12566
-
12567
- function __rest(s, e) {
12568
- var t = {};
12569
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12570
- t[p] = s[p];
12571
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
12572
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12573
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12574
- t[p[i]] = s[p[i]];
12575
- }
12576
- return t;
12577
- }
12257
+ /******************************************************************************
12258
+ Copyright (c) Microsoft Corporation.
12259
+
12260
+ Permission to use, copy, modify, and/or distribute this software for any
12261
+ purpose with or without fee is hereby granted.
12262
+
12263
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12264
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12265
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12266
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12267
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12268
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12269
+ PERFORMANCE OF THIS SOFTWARE.
12270
+ ***************************************************************************** */
12271
+
12272
+ var __assign = function() {
12273
+ __assign = Object.assign || function __assign(t) {
12274
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12275
+ s = arguments[i];
12276
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
12277
+ }
12278
+ return t;
12279
+ };
12280
+ return __assign.apply(this, arguments);
12281
+ };
12282
+
12283
+ function __rest(s, e) {
12284
+ var t = {};
12285
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12286
+ t[p] = s[p];
12287
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
12288
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12289
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12290
+ t[p[i]] = s[p[i]];
12291
+ }
12292
+ return t;
12293
+ }
12578
12294
 
12579
12295
  var propTypes = {exports: {}};
12580
12296
 
@@ -13804,103 +13520,565 @@ var classnames = {exports: {}};
13804
13520
  }
13805
13521
  }
13806
13522
 
13807
- return classes.join(' ');
13808
- }
13523
+ return classes.join(' ');
13524
+ }
13525
+
13526
+ if (module.exports) {
13527
+ classNames.default = classNames;
13528
+ module.exports = classNames;
13529
+ } else {
13530
+ window.classNames = classNames;
13531
+ }
13532
+ }());
13533
+ } (classnames));
13534
+
13535
+ var classNames = classnames.exports;
13536
+
13537
+ var toCamelCase = function (str) {
13538
+ return str
13539
+ .replace(/([-_][a-z0-9])/gi, function ($1) {
13540
+ return $1.toUpperCase();
13541
+ })
13542
+ .replace(/-/gi, '');
13543
+ };
13544
+ var CIcon = forwardRef(function (_a, ref) {
13545
+ var _b;
13546
+ var className = _a.className, content = _a.content, customClassName = _a.customClassName, height = _a.height, icon = _a.icon, name = _a.name, size = _a.size, title = _a.title, use = _a.use, width = _a.width, rest = __rest(_a, ["className", "content", "customClassName", "height", "icon", "name", "size", "title", "use", "width"]);
13547
+ var _c = useState(0), change = _c[0], setChange = _c[1];
13548
+ var _icon = icon || content || name;
13549
+ if (content) {
13550
+ process &&
13551
+ process.env &&
13552
+ process.env.NODE_ENV === 'development' &&
13553
+ console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
13554
+ }
13555
+ if (name) {
13556
+ process &&
13557
+ process.env &&
13558
+ process.env.NODE_ENV === 'development' &&
13559
+ console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13560
+ }
13561
+ useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
13562
+ var iconName = useMemo(function () {
13563
+ return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
13564
+ }, [change]);
13565
+ var titleCode = title ? "<title>".concat(title, "</title>") : '';
13566
+ var code = useMemo(function () {
13567
+ if (Array.isArray(_icon)) {
13568
+ return _icon;
13569
+ }
13570
+ if (typeof _icon === 'string' && React__default$1['icons']) {
13571
+ return React__default$1['icons'][iconName];
13572
+ }
13573
+ }, [change]);
13574
+ var iconCode = useMemo(function () {
13575
+ return Array.isArray(code) ? code[1] || code[0] : code;
13576
+ }, [change]);
13577
+ var scale = (function () {
13578
+ return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
13579
+ })();
13580
+ var viewBox = (function () {
13581
+ return rest['viewBox'] || "0 0 ".concat(scale);
13582
+ })();
13583
+ // render
13584
+ var _className = customClassName
13585
+ ? classNames(customClassName)
13586
+ : classNames('icon', (_b = {},
13587
+ _b["icon-".concat(size)] = size,
13588
+ _b["icon-custom-size"] = height || width,
13589
+ _b), className);
13590
+ return use ? (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
13591
+ React__default$1.createElement("use", { href: use }))) : (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, className: _className }, (height && { height: height }), (width && { width: width }), { role: "img", dangerouslySetInnerHTML: { __html: titleCode + iconCode } }, rest, { ref: ref })));
13592
+ });
13593
+ CIcon.propTypes = {
13594
+ className: propTypes.exports.string,
13595
+ content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13596
+ customClassName: propTypes.exports.string,
13597
+ height: propTypes.exports.number,
13598
+ icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13599
+ name: propTypes.exports.string,
13600
+ size: propTypes.exports.oneOf([
13601
+ 'custom',
13602
+ 'custom-size',
13603
+ 'sm',
13604
+ 'lg',
13605
+ 'xl',
13606
+ 'xxl',
13607
+ '3xl',
13608
+ '4xl',
13609
+ '5xl',
13610
+ '6xl',
13611
+ '7xl',
13612
+ '8xl',
13613
+ '9xl',
13614
+ ]),
13615
+ title: propTypes.exports.any,
13616
+ use: propTypes.exports.any,
13617
+ width: propTypes.exports.number,
13618
+ };
13619
+ CIcon.displayName = 'CIcon';
13620
+
13621
+ var CSmartPagination = forwardRef(function (_a, ref) {
13622
+ var className = _a.className, _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, _c = _a.align, align = _c === void 0 ? 'start' : _c, _d = _a.arrows, arrows = _d === void 0 ? true : _d, _e = _a.dots, dots = _e === void 0 ? true : _e, _f = _a.doubleArrows, doubleArrows = _f === void 0 ? true : _f, _g = _a.firstButton, firstButton = _g === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u2039") : _l, size = _a.size, rest = __rest$1(_a, ["className", "activePage", "align", "arrows", "dots", "doubleArrows", "firstButton", "lastButton", "limit", "nextButton", "onActivePageChange", "pages", "previousButton", "size"]);
13623
+ var _classNames = classNames$1("justify-content-".concat(align), className);
13624
+ var showDots = (function () {
13625
+ return dots && limit > 4 && limit < pages;
13626
+ })();
13627
+ var maxPrevItems = (function () {
13628
+ return Math.floor((limit - 1) / 2);
13629
+ })();
13630
+ var maxNextItems = (function () {
13631
+ return Math.ceil((limit - 1) / 2);
13632
+ })();
13633
+ var beforeDots = (function () {
13634
+ return showDots && activePage > maxPrevItems + 1;
13635
+ })();
13636
+ var afterDots = (function () {
13637
+ return showDots && activePage < pages - maxNextItems;
13638
+ })();
13639
+ var computedLimit = (function () {
13640
+ return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
13641
+ })();
13642
+ var range = (function () {
13643
+ return activePage + maxNextItems;
13644
+ })();
13645
+ var lastItem = (function () {
13646
+ return range >= pages ? pages : range - (afterDots ? 1 : 0);
13647
+ })();
13648
+ var itemsAmount = (function () {
13649
+ return pages < computedLimit ? pages : computedLimit;
13650
+ })();
13651
+ var items = (function () {
13652
+ if (activePage - maxPrevItems <= 1) {
13653
+ return Array.from({
13654
+ length: itemsAmount,
13655
+ }, function (_v, i) { return i + 1; });
13656
+ }
13657
+ else {
13658
+ return Array.from({
13659
+ length: itemsAmount,
13660
+ }, function (_v, i) {
13661
+ return lastItem - i;
13662
+ }).reverse();
13663
+ }
13664
+ })();
13665
+ var setPage = function (number) {
13666
+ if (number !== activePage) {
13667
+ onActivePageChange && onActivePageChange(number);
13668
+ }
13669
+ };
13670
+ return (React__default$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
13671
+ doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
13672
+ arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
13673
+ beforeDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13674
+ items.map(function (i) {
13675
+ return (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(i); }, "aria-label": activePage === i ? "Current page ".concat(i) : "Go to page ".concat(i), active: activePage === i, key: i }, i));
13676
+ }),
13677
+ afterDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13678
+ arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
13679
+ doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
13680
+ });
13681
+ CSmartPagination.propTypes = {
13682
+ className: propTypesExports.oneOfType([propTypesExports.string]),
13683
+ activePage: propTypesExports.number,
13684
+ dots: propTypesExports.bool,
13685
+ arrows: propTypesExports.bool,
13686
+ doubleArrows: propTypesExports.bool,
13687
+ firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13688
+ previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13689
+ nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13690
+ lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13691
+ size: propTypesExports.oneOf(['sm', 'lg']),
13692
+ align: propTypesExports.oneOf(['start', 'center', 'end']),
13693
+ limit: propTypesExports.number,
13694
+ pages: propTypesExports.number.isRequired,
13695
+ onActivePageChange: propTypesExports.func,
13696
+ };
13697
+ CSmartPagination.displayName = 'CSmartPagination';
13698
+
13699
+ var CTableHead = forwardRef(function (_a, ref) {
13700
+ var _b;
13701
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13702
+ var _className = classNames$1((_b = {},
13703
+ _b["table-".concat(color)] = color,
13704
+ _b), className);
13705
+ return (React__default$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13706
+ });
13707
+ CTableHead.propTypes = {
13708
+ children: propTypesExports.node,
13709
+ className: propTypesExports.string,
13710
+ color: colorPropType,
13711
+ };
13712
+ CTableHead.displayName = 'CTableHead';
13713
+
13714
+ var CTableHeaderCell = forwardRef(function (_a, ref) {
13715
+ var _b;
13716
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13717
+ var _className = classNames$1((_b = {},
13718
+ _b["table-".concat(color)] = color,
13719
+ _b), className);
13720
+ return (React__default$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13721
+ });
13722
+ CTableHeaderCell.propTypes = {
13723
+ children: propTypesExports.node,
13724
+ className: propTypesExports.string,
13725
+ color: colorPropType,
13726
+ };
13727
+ CTableHeaderCell.displayName = 'CTableHeaderCell';
13728
+
13729
+ var CTableBody = forwardRef(function (_a, ref) {
13730
+ var _b;
13731
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13732
+ var _className = classNames$1((_b = {},
13733
+ _b["table-".concat(color)] = color,
13734
+ _b), className);
13735
+ return (React__default$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13736
+ });
13737
+ CTableBody.propTypes = {
13738
+ children: propTypesExports.node,
13739
+ className: propTypesExports.string,
13740
+ color: colorPropType,
13741
+ };
13742
+ CTableBody.displayName = 'CTableBody';
13809
13743
 
13810
- if (module.exports) {
13811
- classNames.default = classNames;
13812
- module.exports = classNames;
13813
- } else {
13814
- window.classNames = classNames;
13815
- }
13816
- }());
13817
- } (classnames));
13744
+ var CTableDataCell = forwardRef(function (_a, ref) {
13745
+ var _b;
13746
+ var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
13747
+ var _className = classNames$1((_b = {},
13748
+ _b["align-".concat(align)] = align,
13749
+ _b['table-active'] = active,
13750
+ _b["table-".concat(color)] = color,
13751
+ _b), className);
13752
+ var Component = rest.scope ? 'th' : 'td';
13753
+ return (React__default$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13754
+ });
13755
+ CTableDataCell.propTypes = {
13756
+ active: propTypesExports.bool,
13757
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13758
+ children: propTypesExports.node,
13759
+ className: propTypesExports.string,
13760
+ color: colorPropType,
13761
+ };
13762
+ CTableDataCell.displayName = 'CTableDataCell';
13818
13763
 
13819
- var classNames = classnames.exports;
13764
+ var CTableRow = forwardRef(function (_a, ref) {
13765
+ var _b;
13766
+ var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
13767
+ var _className = classNames$1((_b = {},
13768
+ _b["align-".concat(align)] = align,
13769
+ _b['table-active'] = active,
13770
+ _b["table-".concat(color)] = color,
13771
+ _b), className);
13772
+ return (React__default$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13773
+ });
13774
+ CTableRow.propTypes = {
13775
+ active: propTypesExports.bool,
13776
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13777
+ children: propTypesExports.node,
13778
+ className: propTypesExports.string,
13779
+ color: colorPropType,
13780
+ };
13781
+ CTableRow.displayName = 'CTableRow';
13820
13782
 
13821
- var toCamelCase = function (str) {
13822
- return str
13823
- .replace(/([-_][a-z0-9])/gi, function ($1) {
13824
- return $1.toUpperCase();
13825
- })
13826
- .replace(/-/gi, '');
13783
+ var CTableFoot = forwardRef(function (_a, ref) {
13784
+ var _b;
13785
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13786
+ var _className = classNames$1((_b = {},
13787
+ _b["table-".concat(color)] = color,
13788
+ _b), className);
13789
+ return (React__default$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13790
+ });
13791
+ CTableFoot.propTypes = {
13792
+ children: propTypesExports.node,
13793
+ className: propTypesExports.string,
13794
+ color: colorPropType,
13827
13795
  };
13828
- var CIcon = forwardRef(function (_a, ref) {
13796
+ CTableFoot.displayName = 'CTableFoot';
13797
+
13798
+ var CTableCaption = forwardRef(function (_a, ref) {
13799
+ var children = _a.children, props = __rest$1(_a, ["children"]);
13800
+ return (React__default$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
13801
+ });
13802
+ CTableCaption.propTypes = {
13803
+ children: propTypesExports.node,
13804
+ };
13805
+ CTableCaption.displayName = 'CTableCaption';
13806
+
13807
+ var CTableResponsiveWrapper = function (_a) {
13808
+ var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
13809
+ return responsive ? (React__default$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
13810
+ };
13811
+ CTableResponsiveWrapper.propTypes = {
13812
+ children: propTypesExports.any,
13813
+ responsive: propTypesExports.oneOfType([
13814
+ propTypesExports.bool,
13815
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13816
+ ]),
13817
+ };
13818
+ CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
13819
+
13820
+ var CTable = forwardRef(function (_a, ref) {
13829
13821
  var _b;
13830
- var className = _a.className, content = _a.content, customClassName = _a.customClassName, height = _a.height, icon = _a.icon, name = _a.name, size = _a.size, title = _a.title, use = _a.use, width = _a.width, rest = __rest(_a, ["className", "content", "customClassName", "height", "icon", "name", "size", "title", "use", "width"]);
13831
- var _c = useState(0), change = _c[0], setChange = _c[1];
13832
- var _icon = icon || content || name;
13833
- if (content) {
13834
- process &&
13835
- process.env &&
13836
- process.env.NODE_ENV === 'development' &&
13837
- console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
13838
- }
13839
- if (name) {
13840
- process &&
13841
- process.env &&
13842
- process.env.NODE_ENV === 'development' &&
13843
- console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13822
+ var children = _a.children, align = _a.align, borderColor = _a.borderColor, bordered = _a.bordered, borderless = _a.borderless, caption = _a.caption, captionTop = _a.captionTop, className = _a.className, color = _a.color, columns = _a.columns, footer = _a.footer, hover = _a.hover, items = _a.items, responsive = _a.responsive, small = _a.small, striped = _a.striped, stripedColumns = _a.stripedColumns, tableFootProps = _a.tableFootProps, tableHeadProps = _a.tableHeadProps, rest = __rest$1(_a, ["children", "align", "borderColor", "bordered", "borderless", "caption", "captionTop", "className", "color", "columns", "footer", "hover", "items", "responsive", "small", "striped", "stripedColumns", "tableFootProps", "tableHeadProps"]);
13823
+ var _className = classNames$1('table', (_b = {},
13824
+ _b["align-".concat(align)] = align,
13825
+ _b["border-".concat(borderColor)] = borderColor,
13826
+ _b["caption-top"] = captionTop || caption === 'top',
13827
+ _b['table-bordered'] = bordered,
13828
+ _b['table-borderless'] = borderless,
13829
+ _b["table-".concat(color)] = color,
13830
+ _b['table-hover'] = hover,
13831
+ _b['table-sm'] = small,
13832
+ _b['table-striped'] = striped,
13833
+ _b['table-striped-columns'] = stripedColumns,
13834
+ _b), className);
13835
+ var rawColumnNames = columns
13836
+ ? columns.map(function (column) {
13837
+ if (typeof column === 'object')
13838
+ return column.key;
13839
+ else
13840
+ return column;
13841
+ })
13842
+ : Object.keys((items && items[0]) || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13843
+ var pretifyName = function (name) {
13844
+ return name
13845
+ .replace(/[-_.]/g, ' ')
13846
+ .replace(/ +/g, ' ')
13847
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13848
+ .split(' ')
13849
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13850
+ .join(' ');
13851
+ };
13852
+ var label = function (column) {
13853
+ return typeof column === 'object'
13854
+ ? column.label !== undefined
13855
+ ? column.label
13856
+ : pretifyName(column.key)
13857
+ : pretifyName(column);
13858
+ };
13859
+ return (React__default$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
13860
+ React__default$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
13861
+ ((caption && caption !== 'top') || captionTop) && (React__default$1.createElement(CTableCaption, null, caption || captionTop)),
13862
+ columns && (React__default$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
13863
+ React__default$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
13864
+ items && (React__default$1.createElement(CTableBody, null, items.map(function (item, index) { return (React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
13865
+ return item[colName] ? (React__default$1.createElement(CTableDataCell, __assign$1({}, (item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])))), { key: index }), item[colName])) : null;
13866
+ }))); }))),
13867
+ children,
13868
+ footer && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
13869
+ React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
13870
+ });
13871
+ CTable.propTypes = {
13872
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13873
+ borderColor: propTypesExports.string,
13874
+ bordered: propTypesExports.bool,
13875
+ borderless: propTypesExports.bool,
13876
+ caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
13877
+ captionTop: propTypesExports.string,
13878
+ children: propTypesExports.node,
13879
+ className: propTypesExports.string,
13880
+ color: colorPropType,
13881
+ columns: propTypesExports.array,
13882
+ footer: propTypesExports.array,
13883
+ hover: propTypesExports.bool,
13884
+ items: propTypesExports.array,
13885
+ responsive: propTypesExports.oneOfType([
13886
+ propTypesExports.bool,
13887
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13888
+ ]),
13889
+ small: propTypesExports.bool,
13890
+ striped: propTypesExports.bool,
13891
+ stripedColumns: propTypesExports.bool,
13892
+ tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
13893
+ tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
13894
+ };
13895
+ CTable.displayName = 'CTable';
13896
+
13897
+ var filterColumns = function (items, columnFilter, columnFilterState, itemsDataColumns) {
13898
+ if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
13899
+ return items;
13844
13900
  }
13845
- useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
13846
- var iconName = useMemo(function () {
13847
- return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
13848
- }, [change]);
13849
- var titleCode = title ? "<title>".concat(title, "</title>") : '';
13850
- var code = useMemo(function () {
13851
- if (Array.isArray(_icon)) {
13852
- return _icon;
13901
+ Object.entries(columnFilterState).forEach(function (_a) {
13902
+ var key = _a[0], value = _a[1];
13903
+ if (value instanceof Function) {
13904
+ items = items.filter(function (item) { return value(item[key]); });
13905
+ return;
13853
13906
  }
13854
- if (typeof _icon === 'string' && React__default$1['icons']) {
13855
- return React__default$1['icons'][iconName];
13907
+ var columnFilter = String(value).toLowerCase();
13908
+ if (columnFilter && itemsDataColumns.includes(key)) {
13909
+ items = items.filter(function (item) {
13910
+ return String(item[key]).toLowerCase().includes(columnFilter);
13911
+ });
13856
13912
  }
13857
- }, [change]);
13858
- var iconCode = useMemo(function () {
13859
- return Array.isArray(code) ? code[1] || code[0] : code;
13860
- }, [change]);
13861
- var scale = (function () {
13862
- return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
13863
- })();
13864
- var viewBox = (function () {
13865
- return rest['viewBox'] || "0 0 ".concat(scale);
13866
- })();
13867
- // render
13868
- var _className = customClassName
13869
- ? classNames(customClassName)
13870
- : classNames('icon', (_b = {},
13871
- _b["icon-".concat(size)] = size,
13872
- _b["icon-custom-size"] = height || width,
13873
- _b), className);
13874
- return use ? (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
13875
- React__default$1.createElement("use", { href: use }))) : (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, className: _className }, (height && { height: height }), (width && { width: width }), { role: "img", dangerouslySetInnerHTML: { __html: titleCode + iconCode } }, rest, { ref: ref })));
13913
+ });
13914
+ return items;
13915
+ };
13916
+ var filterTable = function (items, tableFilter, tableFilterState, itemsDataColumns) {
13917
+ if (!tableFilterState ||
13918
+ (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
13919
+ return items;
13920
+ }
13921
+ var filter = tableFilterState.toLowerCase();
13922
+ var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
13923
+ items = items.filter(function (item) {
13924
+ return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
13925
+ });
13926
+ return items;
13927
+ };
13928
+ var getClickedColumnName = function (target, columnNames) {
13929
+ var closest = target.closest('tr');
13930
+ var children = closest ? Array.from(closest.children) : [];
13931
+ var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
13932
+ return columnNames[children.indexOf(clickedCell)];
13933
+ };
13934
+ var getColumnKey = function (column) {
13935
+ return typeof column === 'object' ? column.key : column;
13936
+ };
13937
+ var getColumnLabel = function (column) {
13938
+ return typeof column === 'object'
13939
+ ? column.label !== undefined
13940
+ ? column.label
13941
+ : pretifyName(column.key)
13942
+ : pretifyName(column);
13943
+ };
13944
+ var getColumnNames = function (columns, items) {
13945
+ return columns
13946
+ ? columns.map(function (column) {
13947
+ if (typeof column === 'object')
13948
+ return column.key;
13949
+ else
13950
+ return column;
13951
+ })
13952
+ : getColumnNamesFromItems(items);
13953
+ };
13954
+ var getColumnNamesFromItems = function (items) {
13955
+ return Object.keys(items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13956
+ };
13957
+ var getColumnSorterState = function (key, sorterState) {
13958
+ if (sorterState && sorterState.column === key) {
13959
+ if (sorterState.state) {
13960
+ return sorterState.state;
13961
+ }
13962
+ return 0;
13963
+ }
13964
+ return 0;
13965
+ };
13966
+ var getColumnValues = function (items, key) {
13967
+ return items.map(function (item) { return item[key]; });
13968
+ };
13969
+ var getTableDataCellProps = function (item, colName) {
13970
+ var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
13971
+ return props;
13972
+ };
13973
+ var getTableHeaderCellProps = function (column) {
13974
+ if (typeof column === 'object' && column._props) {
13975
+ return column._props;
13976
+ }
13977
+ return {};
13978
+ };
13979
+ var getTableHeaderCellStyles = function (column, columnSorter) {
13980
+ var style = {};
13981
+ if (columnSorter &&
13982
+ (typeof column !== 'object' ||
13983
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
13984
+ style['cursor'] = 'pointer';
13985
+ }
13986
+ if (typeof column === 'object' && column._style) {
13987
+ return __assign$1(__assign$1({}, style), column._style);
13988
+ }
13989
+ return style;
13990
+ };
13991
+ var isSortable = function (i, columns, columnSorter, itemsDataColumns, columnNames) {
13992
+ var isDataColumn = itemsDataColumns.includes(columnNames[i]);
13993
+ var column;
13994
+ if (columns)
13995
+ column = columns[i];
13996
+ return (columnSorter &&
13997
+ (!columns ||
13998
+ typeof column !== 'object' ||
13999
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter))) &&
14000
+ isDataColumn);
14001
+ };
14002
+ var pretifyName = function (name) {
14003
+ return name
14004
+ .replace(/[-_.]/g, ' ')
14005
+ .replace(/ +/g, ' ')
14006
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
14007
+ .split(' ')
14008
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
14009
+ .join(' ');
14010
+ };
14011
+ var sortItems = function (columnSorter, items, itemsDataColumns, sorterState) {
14012
+ var column = sorterState.column;
14013
+ if (!column ||
14014
+ !itemsDataColumns.includes(column) ||
14015
+ (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14016
+ return items;
14017
+ }
14018
+ var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14019
+ var sorted = items.slice().sort(function (item, item2) {
14020
+ var value = item[column];
14021
+ var value2 = item2[column];
14022
+ var a = typeof value === 'number' ? value : String(value).toLowerCase();
14023
+ var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14024
+ return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14025
+ });
14026
+ return sorted;
14027
+ };
14028
+
14029
+ var CSmartTableBody = forwardRef(function (_a, ref) {
14030
+ var clickableRows = _a.clickableRows, columnNames = _a.columnNames, currentItems = _a.currentItems, firstItemOnActivePageIndex = _a.firstItemOnActivePageIndex, noItemsLabel = _a.noItemsLabel, onRowChecked = _a.onRowChecked, onRowClick = _a.onRowClick, scopedColumns = _a.scopedColumns, selectable = _a.selectable, selected = _a.selected, rest = __rest$1(_a, ["clickableRows", "columnNames", "currentItems", "firstItemOnActivePageIndex", "noItemsLabel", "onRowChecked", "onRowClick", "scopedColumns", "selectable", "selected"]);
14031
+ var colspan = selectable ? columnNames.length + 1 : columnNames.length;
14032
+ return (React__default$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
14033
+ style: { cursor: 'pointer' },
14034
+ }), rest, { ref: ref }),
14035
+ currentItems.map(function (item, trIndex) {
14036
+ return (React__default$1.createElement(React__default$1.Fragment, { key: trIndex },
14037
+ React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
14038
+ return onRowClick &&
14039
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), event);
14040
+ } }),
14041
+ selectable && (React__default$1.createElement(CTableDataCell, null,
14042
+ React__default$1.createElement(CFormCheck, { checked: selected &&
14043
+ isObjectInArray(selected, item, ['_cellProps', '_props', '_selected']), onChange: function (event) {
14044
+ var _item = __assign$1({}, item);
14045
+ delete _item['_cellProps'];
14046
+ delete _item['_props'];
14047
+ delete _item['_selected'];
14048
+ onRowChecked && onRowChecked(_item, event.target.checked);
14049
+ } }))),
14050
+ columnNames.map(function (colName, index) {
14051
+ return ((scopedColumns &&
14052
+ scopedColumns[colName] &&
14053
+ React__default$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
14054
+ key: index,
14055
+ })) || (React__default$1.createElement(CTableDataCell, __assign$1({}, getTableDataCellProps(item, colName), { key: index }), String(item[colName]))));
14056
+ })),
14057
+ scopedColumns && scopedColumns.details && (React__default$1.createElement(React__default$1.Fragment, null,
14058
+ React__default$1.createElement(CTableRow, null,
14059
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
14060
+ React__default$1.createElement(CTableRow, { onClick: function (event) {
14061
+ return onRowClick &&
14062
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), true);
14063
+ }, className: "p-0", key: "details".concat(trIndex) },
14064
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
14065
+ }),
14066
+ !currentItems.length && (React__default$1.createElement(CTableRow, null,
14067
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
13876
14068
  });
13877
- CIcon.propTypes = {
13878
- className: propTypes.exports.string,
13879
- content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13880
- customClassName: propTypes.exports.string,
13881
- height: propTypes.exports.number,
13882
- icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13883
- name: propTypes.exports.string,
13884
- size: propTypes.exports.oneOf([
13885
- 'custom',
13886
- 'custom-size',
13887
- 'sm',
13888
- 'lg',
13889
- 'xl',
13890
- 'xxl',
13891
- '3xl',
13892
- '4xl',
13893
- '5xl',
13894
- '6xl',
13895
- '7xl',
13896
- '8xl',
13897
- '9xl',
13898
- ]),
13899
- title: propTypes.exports.any,
13900
- use: propTypes.exports.any,
13901
- width: propTypes.exports.number,
14069
+ CSmartTableBody.propTypes = {
14070
+ clickableRows: propTypesExports.bool,
14071
+ currentItems: propTypesExports.array.isRequired,
14072
+ firstItemOnActivePageIndex: propTypesExports.number.isRequired,
14073
+ noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
14074
+ onRowChecked: propTypesExports.func,
14075
+ onRowClick: propTypesExports.func,
14076
+ columnNames: propTypesExports.array.isRequired,
14077
+ scopedColumns: propTypesExports.object,
14078
+ selectable: propTypesExports.bool,
14079
+ selected: propTypesExports.array,
13902
14080
  };
13903
- CIcon.displayName = 'CIcon';
14081
+ CSmartTableBody.displayName = 'CSmartTableBody';
13904
14082
 
13905
14083
  var CSmartTableCleaner = forwardRef(function (_a, ref) {
13906
14084
  var _b = _a.content, content = _b === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilFilterX }) : _b, isFiltered = _a.isFiltered, rest = __rest$1(_a, ["content", "isFiltered"]);
@@ -13915,23 +14093,20 @@ CSmartTableCleaner.propTypes = {
13915
14093
  };
13916
14094
  CSmartTableCleaner.displayName = 'CSmartTableCleaner';
13917
14095
 
13918
- var CSmartTableFilter = forwardRef(function (_a, ref) {
13919
- var filterLabel = _a.filterLabel, filterPlaceholder = _a.filterPlaceholder, value = _a.value, rest = __rest$1(_a, ["filterLabel", "filterPlaceholder", "value"]);
13920
- return (React__default$1.createElement("div", { className: "row mb-2" },
13921
- React__default$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, filterLabel),
13922
- React__default$1.createElement("div", { className: "col-sm-auto" },
13923
- React__default$1.createElement(CFormInput, __assign$1({ placeholder: filterPlaceholder, value: value }, rest, { ref: ref })))));
13924
- });
13925
- CSmartTableFilter.propTypes = {
13926
- filterLabel: propTypesExports.string,
13927
- filterPlaceholder: propTypesExports.string,
13928
- value: propTypesExports.oneOfType([propTypesExports.number, propTypesExports.string]),
13929
- };
13930
- CSmartTableFilter.displayName = 'CSmartTableFilter';
13931
-
13932
14096
  var CSmartTableHead = forwardRef(function (_a, ref) {
13933
- var columnFilter = _a.columnFilter, columnFilterState = _a.columnFilterState, columnSorter = _a.columnSorter, _b = _a.component, Component = _b === void 0 ? CTableHead : _b, columns = _a.columns, handleOnCustomFilterChange = _a.handleOnCustomFilterChange, handleFilterOnChange = _a.handleFilterOnChange, handleFilterOnInput = _a.handleFilterOnInput, handleSelectAllChecked = _a.handleSelectAllChecked, handleSort = _a.handleSort, items = _a.items, selectable = _a.selectable, selectAll = _a.selectAll, sorterState = _a.sorterState, sortingIcon = _a.sortingIcon, sortingIconAscending = _a.sortingIconAscending, sortingIconDescending = _a.sortingIconDescending, rest = __rest$1(_a, ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "handleOnCustomFilterChange", "handleFilterOnChange", "handleFilterOnInput", "handleSelectAllChecked", "handleSort", "items", "selectable", "selectAll", "sorterState", "sortingIcon", "sortingIconAscending", "sortingIconDescending"]);
14097
+ var columnFilter = _a.columnFilter, columnFilterState = _a.columnFilterState, columnSorter = _a.columnSorter, _b = _a.component, Component = _b === void 0 ? CTableHead : _b, columns = _a.columns, handleOnCustomFilterChange = _a.handleOnCustomFilterChange, handleFilterOnChange = _a.handleFilterOnChange, handleFilterOnInput = _a.handleFilterOnInput, handleSelectAllChecked = _a.handleSelectAllChecked, handleSort = _a.handleSort, items = _a.items, selectable = _a.selectable, selectAll = _a.selectAll, selectedAll = _a.selectedAll, sorterState = _a.sorterState, sortingIcon = _a.sortingIcon, sortingIconAscending = _a.sortingIconAscending, sortingIconDescending = _a.sortingIconDescending, rest = __rest$1(_a, ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "handleOnCustomFilterChange", "handleFilterOnChange", "handleFilterOnInput", "handleSelectAllChecked", "handleSort", "items", "selectable", "selectAll", "selectedAll", "sorterState", "sortingIcon", "sortingIconAscending", "sortingIconDescending"]);
14098
+ var selectAllcheckboxRef = useRef(null);
13934
14099
  var _c = useState(false), refresh = _c[0], setRefresh = _c[1];
14100
+ useEffect(function () {
14101
+ if (selectedAll === 'indeterminate') {
14102
+ if (selectAllcheckboxRef.current)
14103
+ selectAllcheckboxRef.current.indeterminate = true;
14104
+ }
14105
+ else {
14106
+ if (selectAllcheckboxRef.current)
14107
+ selectAllcheckboxRef.current.indeterminate = false;
14108
+ }
14109
+ }, [selectedAll]);
13935
14110
  useEffect(function () {
13936
14111
  if (columnFilterState && Object.keys(columnFilterState).length === 0) {
13937
14112
  setRefresh(true);
@@ -13945,83 +14120,24 @@ var CSmartTableHead = forwardRef(function (_a, ref) {
13945
14120
  setRefresh(false);
13946
14121
  }
13947
14122
  }, [refresh]);
13948
- var tableHeaderCellProps = function (column) {
13949
- if (typeof column === 'object' && column._props) {
13950
- return column._props;
13951
- }
13952
- return {};
13953
- };
13954
- var tableHeaderCellStyles = function (column) {
13955
- var style = { verticalAlign: 'middle', overflow: 'hidden', cursor: '' };
13956
- if (columnSorter &&
13957
- (typeof column !== 'object' ||
13958
- (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
13959
- style.cursor = 'pointer';
13960
- }
13961
- if (typeof column === 'object' && column._style) {
13962
- return __assign$1(__assign$1({}, style), column._style);
13963
- }
13964
- return style;
13965
- };
13966
- var pretifyName = function (name) {
13967
- return name
13968
- .replace(/[-_.]/g, ' ')
13969
- .replace(/ +/g, ' ')
13970
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13971
- .split(' ')
13972
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13973
- .join(' ');
13974
- };
13975
- var label = function (column) {
13976
- return typeof column === 'object'
13977
- ? column.label !== undefined
13978
- ? column.label
13979
- : pretifyName(column.key)
13980
- : pretifyName(column);
13981
- };
13982
- var key = function (column) { return (typeof column === 'object' ? column.key : column); };
13983
- var getColumnSorterState = function (key) {
13984
- if (sorterState && sorterState.column === key) {
13985
- if (sorterState.state) {
13986
- return sorterState.state;
13987
- }
13988
- return 0;
13989
- }
13990
- return 0;
13991
- };
13992
- var getValues = function (items, key) {
13993
- return items.map(function (a) { return a[key]; });
13994
- };
13995
14123
  var columnSorterIcon = function (column) {
13996
- if (getColumnSorterState(key(column)) === 0) {
14124
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
13997
14125
  return React__default$1.createElement("span", { className: "opacity-25 float-end me-1" }, sortingIcon);
13998
14126
  }
13999
- if (getColumnSorterState(key(column)) === 'asc') {
14127
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'asc') {
14000
14128
  return React__default$1.createElement("span", { className: "float-end me-1" }, sortingIconAscending);
14001
14129
  }
14002
- if (getColumnSorterState(key(column)) === 'desc') {
14130
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'desc') {
14003
14131
  return React__default$1.createElement("span", { className: "float-end me-1" }, sortingIconDescending);
14004
14132
  }
14005
14133
  return;
14006
14134
  };
14007
- var checkboxRef = useRef(null);
14008
- useEffect(function () {
14009
- if (selectAll === 'indeterminate') {
14010
- if (checkboxRef.current)
14011
- checkboxRef.current.indeterminate = true;
14012
- }
14013
- else {
14014
- if (checkboxRef.current)
14015
- checkboxRef.current.indeterminate = false;
14016
- }
14017
- }, [selectAll]);
14018
14135
  return (React__default$1.createElement(Component, __assign$1({}, rest, { ref: ref }),
14019
14136
  React__default$1.createElement(CTableRow, null,
14020
- selectable && (React__default$1.createElement(CTableHeaderCell, null,
14021
- React__default$1.createElement(CFormCheck, { checked: typeof selectAll === 'boolean' ? selectAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: checkboxRef }))),
14137
+ selectable && (React__default$1.createElement(CTableHeaderCell, null, selectAll && (React__default$1.createElement(CFormCheck, { checked: typeof selectedAll === 'boolean' ? selectedAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: selectAllcheckboxRef })))),
14022
14138
  columns.map(function (column, index) {
14023
- return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(key(column), index); }, style: tableHeaderCellStyles(column), key: index }),
14024
- React__default$1.createElement("div", { className: "d-inline" }, label(column)),
14139
+ return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(getColumnKey(column), index); }, style: getTableHeaderCellStyles(column, columnSorter), key: index }),
14140
+ React__default$1.createElement("div", { className: "d-inline" }, getColumnLabel(column)),
14025
14141
  columnSorter &&
14026
14142
  (typeof column !== 'object'
14027
14143
  ? true
@@ -14033,23 +14149,23 @@ var CSmartTableHead = forwardRef(function (_a, ref) {
14033
14149
  columnFilter && (React__default$1.createElement(CTableRow, null,
14034
14150
  selectable && React__default$1.createElement(CTableHeaderCell, null),
14035
14151
  columns.map(function (column, index) {
14036
- return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14152
+ return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14037
14153
  ? true
14038
14154
  : typeof column.filter === 'undefined'
14039
14155
  ? true
14040
14156
  : column.filter) ? (typeof column !== 'string' && typeof column.filter === 'function' ? (!refresh &&
14041
- column.filter(getValues(items, key(column)), function (value) {
14157
+ column.filter(getColumnValues(items, getColumnKey(column)), function (value) {
14042
14158
  return handleOnCustomFilterChange &&
14043
- handleOnCustomFilterChange(key(column), value);
14159
+ handleOnCustomFilterChange(getColumnKey(column), value);
14044
14160
  })) : (React__default$1.createElement(CFormInput, { size: "sm", onInput: function (event) {
14045
14161
  return handleFilterOnInput &&
14046
- handleFilterOnInput(key(column), event.target.value);
14162
+ handleFilterOnInput(getColumnKey(column), event.target.value);
14047
14163
  }, onChange: function (event) {
14048
14164
  return handleFilterOnChange &&
14049
- handleFilterOnChange(key(column), event.target.value);
14050
- }, value: columnFilterState && columnFilterState[key(column)]
14051
- ? columnFilterState[key(column)]
14052
- : '', "aria-label": "column name: '".concat(label(column), "' filter input") }))) : ('')));
14165
+ handleFilterOnChange(getColumnKey(column), event.target.value);
14166
+ }, value: columnFilterState && columnFilterState[getColumnKey(column)]
14167
+ ? columnFilterState[getColumnKey(column)]
14168
+ : '', "aria-label": "column name: '".concat(getColumnLabel(column), "' filter input") }))) : ('')));
14053
14169
  })))));
14054
14170
  });
14055
14171
  CSmartTableHead.propTypes = {
@@ -14064,7 +14180,8 @@ CSmartTableHead.propTypes = {
14064
14180
  handleSelectAllChecked: propTypesExports.func,
14065
14181
  handleSort: propTypesExports.func,
14066
14182
  selectable: propTypesExports.bool,
14067
- selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14183
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14184
+ selectedAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14068
14185
  sorterState: propTypesExports.object,
14069
14186
  sortingIcon: propTypesExports.node,
14070
14187
  sortingIconAscending: propTypesExports.node,
@@ -14072,72 +14189,152 @@ CSmartTableHead.propTypes = {
14072
14189
  };
14073
14190
  CSmartTableHead.displayName = 'CSmartTableHead';
14074
14191
 
14075
- var CSmartTableItemsPerPageSelector = forwardRef(function (_a, ref) {
14076
- var itemsPerPage = _a.itemsPerPage, itemsPerPageLabel = _a.itemsPerPageLabel, itemsPerPageOptions = _a.itemsPerPageOptions, rest = __rest$1(_a, ["itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions"]);
14077
- return (React__default$1.createElement("div", { className: "row" },
14078
- React__default$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14079
- React__default$1.createElement("div", { className: "col-auto" },
14080
- React__default$1.createElement(CFormSelect, __assign$1({ defaultValue: itemsPerPage }, rest, { ref: ref }), itemsPerPageOptions &&
14081
- itemsPerPageOptions.map(function (number, index) {
14082
- return (React__default$1.createElement("option", { value: number, key: index }, number));
14083
- })))));
14084
- });
14085
- CSmartTableItemsPerPageSelector.propTypes = {
14086
- itemsPerPage: propTypesExports.number,
14087
- itemsPerPageLabel: propTypesExports.string,
14088
- itemsPerPageOptions: propTypesExports.array,
14089
- };
14090
- CSmartTableItemsPerPageSelector.displayName = 'CSmartTableItemsPerPageSelector';
14091
-
14092
14192
  var CSmartTable = forwardRef(function (_a, ref) {
14093
14193
  var _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, cleaner = _a.cleaner, clickableRows = _a.clickableRows, columnFilter = _a.columnFilter, columnFilterValue = _a.columnFilterValue, // TODO: consider to use only columnFilter prop
14094
- columns = _a.columns, columnSorter = _a.columnSorter, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selectable = _a.selectable, sorterValue = _a.sorterValue, _h = _a.sortingIcon, sortingIcon = _h === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _h, _j = _a.sortingIconAscending, sortingIconAscending = _j === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _j, _k = _a.sortingIconDescending, sortingIconDescending = _k === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowBottom, key: "cab" }) : _k, tableBodyProps = _a.tableBodyProps, tableFootProps = _a.tableFootProps, tableFilter = _a.tableFilter, _l = _a.tableFilterLabel, tableFilterLabel = _l === void 0 ? 'Filter:' : _l, _m = _a.tableFilterPlaceholder, tableFilterPlaceholder = _m === void 0 ? 'type string...' : _m, tableFilterValue = _a.tableFilterValue, // TODO: consider to use only tableFilter prop
14095
- tableHeadProps = _a.tableHeadProps, tableProps = _a.tableProps, rest = __rest$1(_a, ["activePage", "cleaner", "clickableRows", "columnFilter", "columnFilterValue", "columns", "columnSorter", "footer", "header", "items", "itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions", "itemsPerPageSelect", "loading", "noItemsLabel", "onActivePageChange", "onColumnFilterChange", "onFilteredItemsChange", "onItemsPerPageChange", "onRowClick", "onSelectedItemsChange", "onSorterChange", "onTableFilterChange", "pagination", "paginationProps", "scopedColumns", "selectable", "sorterValue", "sortingIcon", "sortingIconAscending", "sortingIconDescending", "tableBodyProps", "tableFootProps", "tableFilter", "tableFilterLabel", "tableFilterPlaceholder", "tableFilterValue", "tableHeadProps", "tableProps"]);
14096
- // instance data
14194
+ columns = _a.columns, columnSorter = _a.columnSorter, elementCover = _a.elementCover, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, itemsNumber = _a.itemsNumber, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectAll = _a.onSelectAll, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selected = _a.selected, selectable = _a.selectable, _h = _a.selectAll, selectAll = _h === void 0 ? true : _h, sorterValue = _a.sorterValue, _j = _a.sortingIcon, sortingIcon = _j === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _j, _k = _a.sortingIconAscending, sortingIconAscending = _k === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _k, _l = _a.sortingIconDescending, sortingIconDescending = _l === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowBottom, key: "cab" }) : _l, tableBodyProps = _a.tableBodyProps, tableFootProps = _a.tableFootProps, tableFilter = _a.tableFilter, _m = _a.tableFilterLabel, tableFilterLabel = _m === void 0 ? 'Filter:' : _m, _o = _a.tableFilterPlaceholder, tableFilterPlaceholder = _o === void 0 ? 'type string...' : _o, tableFilterValue = _a.tableFilterValue, // TODO: consider to use only tableFilter prop
14195
+ tableHeadProps = _a.tableHeadProps, tableProps = _a.tableProps, rest = __rest$1(_a, ["activePage", "cleaner", "clickableRows", "columnFilter", "columnFilterValue", "columns", "columnSorter", "elementCover", "footer", "header", "items", "itemsNumber", "itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions", "itemsPerPageSelect", "loading", "noItemsLabel", "onActivePageChange", "onColumnFilterChange", "onFilteredItemsChange", "onItemsPerPageChange", "onRowClick", "onSelectAll", "onSelectedItemsChange", "onSorterChange", "onTableFilterChange", "pagination", "paginationProps", "scopedColumns", "selected", "selectable", "selectAll", "sorterValue", "sortingIcon", "sortingIconAscending", "sortingIconDescending", "tableBodyProps", "tableFootProps", "tableFilter", "tableFilterLabel", "tableFilterPlaceholder", "tableFilterValue", "tableHeadProps", "tableProps"]);
14097
14196
  var mountedRef = useRef(false);
14098
- var _o = useState(activePage), _activePage = _o[0], setActivePage = _o[1];
14099
- var _p = useState([]), _items = _p[0], setItems = _p[1];
14100
- var _q = useState(itemsPerPage), _itemsPerPage = _q[0], setItemsPerPage = _q[1];
14101
- var _r = useState({}), columnFilterState = _r[0], setColumnFilterState = _r[1];
14102
- var _s = useState(), selectedAll = _s[0], setSelectedAll = _s[1];
14103
- var _t = useState({}), sorterState = _t[0], setSorterState = _t[1];
14104
- var _u = useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _u[0], setTableFilterState = _u[1];
14197
+ var _p = useState(activePage), _activePage = _p[0], setActivePage = _p[1];
14198
+ var _q = useState([]), _items = _q[0], setItems = _q[1];
14199
+ var _r = useState(itemsNumber), _itemsNumber = _r[0], setItemsNumber = _r[1];
14200
+ var _s = useState(itemsPerPage), _itemsPerPage = _s[0], setItemsPerPage = _s[1];
14201
+ var _t = useState([]), _selected = _t[0], setSelected = _t[1];
14202
+ var _u = useState({}), columnFilterState = _u[0], setColumnFilterState = _u[1];
14203
+ var _v = useState(), selectedAll = _v[0], setSelectedAll = _v[1];
14204
+ var _w = useState({}), sorterState = _w[0], setSorterState = _w[1];
14205
+ var _x = useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _x[0], setTableFilterState = _x[1];
14105
14206
  useEffect(function () {
14106
14207
  setActivePage(activePage);
14107
14208
  }, [activePage]);
14108
- // watch
14109
- useMemo(function () {
14209
+ useEffect(function () {
14110
14210
  if (items && items.length < _itemsPerPage * _activePage - _itemsPerPage) {
14111
14211
  setActivePage(1);
14112
14212
  }
14113
- // Create the internal array of items
14114
- Array.isArray(items) &&
14115
- setItems(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
14116
- return __assign$1(__assign$1({}, item), { _id: index });
14117
- }));
14213
+ items &&
14214
+ items.forEach(function (item) {
14215
+ if (item._selected) {
14216
+ var _item = __assign$1({}, item);
14217
+ delete _item['_cellProps'];
14218
+ delete _item['_props'];
14219
+ delete _item['_selected'];
14220
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [_item], false));
14221
+ }
14222
+ });
14223
+ if (Array.isArray(items)) {
14224
+ setItems(items);
14225
+ setItemsNumber(itemsNumber || items.length);
14226
+ }
14118
14227
  }, [JSON.stringify(items)]);
14119
- useMemo(function () {
14228
+ useEffect(function () {
14229
+ Array.isArray(selected) && setSelected(selected);
14230
+ }, [JSON.stringify(selected)]);
14231
+ useEffect(function () {
14232
+ itemsNumber && setItemsNumber(itemsNumber);
14233
+ }, [itemsNumber]);
14234
+ useEffect(function () {
14120
14235
  columnFilterValue && setColumnFilterState(columnFilterValue);
14121
14236
  }, [JSON.stringify(columnFilterValue)]);
14122
- useMemo(function () {
14237
+ useEffect(function () {
14123
14238
  setSorterState(__assign$1({}, sorterValue));
14124
14239
  }, [JSON.stringify(sorterValue)]);
14125
- useMemo(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14126
- // functions
14127
- var isSortable = function (i) {
14128
- var isDataColumn = itemsDataColumns.includes(rawColumnNames[i]);
14129
- var column;
14130
- if (columns)
14131
- column = columns[i];
14132
- return (columnSorter &&
14133
- (!columns ||
14134
- typeof column !== 'object' ||
14135
- (typeof column === 'object' &&
14136
- (typeof column.sorter === 'undefined' || column.sorter))) &&
14137
- isDataColumn);
14138
- };
14139
- var sorterChange = function (column, index) {
14140
- if (!isSortable(index)) {
14240
+ useEffect(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14241
+ useEffect(function () {
14242
+ mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14243
+ }, [_activePage]);
14244
+ useEffect(function () {
14245
+ mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14246
+ itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14247
+ }, [_itemsPerPage]);
14248
+ useEffect(function () {
14249
+ mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14250
+ }, [JSON.stringify(sorterState)]);
14251
+ useEffect(function () {
14252
+ mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14253
+ }, [columnFilterState]);
14254
+ useEffect(function () {
14255
+ mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14256
+ }, [tableFilterState]);
14257
+ useEffect(function () {
14258
+ if (selectable) {
14259
+ onSelectedItemsChange && onSelectedItemsChange(_selected);
14260
+ if (_selected.length === _itemsNumber) {
14261
+ setSelectedAll(true);
14262
+ return;
14263
+ }
14264
+ if (_selected.length === 0) {
14265
+ setSelectedAll(false);
14266
+ return;
14267
+ }
14268
+ if (_selected.length !== 0 && _selected.length !== _itemsNumber) {
14269
+ setSelectedAll('indeterminate');
14270
+ }
14271
+ }
14272
+ }, [JSON.stringify(_selected), _itemsNumber]);
14273
+ var columnNames = useMemo(function () { return getColumnNames(columns, _items); }, [columns, _items]);
14274
+ var itemsDataColumns = useMemo(function () { return columnNames.filter(function (name) { return getColumnNamesFromItems(_items).includes(name); }); }, [columnNames, _items]);
14275
+ var filteredColumns = useMemo(function () { return filterColumns(_items, columnFilter, columnFilterState, itemsDataColumns); }, [columnFilterState, JSON.stringify(_items)]);
14276
+ var filteredTable = useMemo(function () { return filterTable(filteredColumns, tableFilter, tableFilterState, itemsDataColumns); }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14277
+ var sortedItems = useMemo(function () { return sortItems(columnSorter, filteredTable, itemsDataColumns, sorterState); }, [
14278
+ JSON.stringify(filteredTable),
14279
+ JSON.stringify(sorterState),
14280
+ JSON.stringify(columnSorter),
14281
+ JSON.stringify(filteredColumns),
14282
+ JSON.stringify(_items),
14283
+ ]);
14284
+ var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14285
+ var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14286
+ var currentItems = _activePage
14287
+ ? sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage)
14288
+ : sortedItems;
14289
+ useEffect(function () {
14290
+ mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14291
+ }, [JSON.stringify(sortedItems)]);
14292
+ var handleClean = function () {
14293
+ setTableFilterState('');
14294
+ setColumnFilterState({});
14295
+ setSorterState({});
14296
+ };
14297
+ var handleColumnFilterChange = function (colName, value, type) {
14298
+ var _a;
14299
+ var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14300
+ if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14301
+ return;
14302
+ }
14303
+ var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14304
+ setActivePage(1);
14305
+ setColumnFilterState(newState);
14306
+ };
14307
+ var handleItemsPerPageChange = function (event) {
14308
+ if (typeof itemsPerPageSelect !== 'object' ||
14309
+ (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external)) {
14310
+ setItemsPerPage(Number(event.target.value));
14311
+ }
14312
+ };
14313
+ var handleRowChecked = function (item, value) {
14314
+ if (value && !isObjectInArray(_selected, item, ['_cellProps', '_props', '_selected'])) {
14315
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [item], false));
14316
+ return;
14317
+ }
14318
+ setSelected(_selected.filter(function (_item) { return !isObjectInArray([_item], item, ['_cellProps', '_props', '_selected']); }));
14319
+ };
14320
+ var handleSelectAllChecked = function () {
14321
+ if (selectedAll === true) {
14322
+ setSelected([]);
14323
+ return;
14324
+ }
14325
+ onSelectAll && onSelectAll();
14326
+ if (selectAll && typeof selectAll === 'object' && selectAll.external) {
14327
+ return;
14328
+ }
14329
+ setSelected(_items.map(function (item) {
14330
+ delete item['_cellProps'];
14331
+ delete item['_props'];
14332
+ delete item['_selected'];
14333
+ return item;
14334
+ }));
14335
+ };
14336
+ var handleSorterChange = function (column, index) {
14337
+ if (!isSortable(index, columns, columnSorter, itemsDataColumns, columnNames)) {
14141
14338
  return;
14142
14339
  }
14143
14340
  //if column changed or sort was descending change asc to true
@@ -14164,22 +14361,7 @@ var CSmartTable = forwardRef(function (_a, ref) {
14164
14361
  }
14165
14362
  setSorterState(__assign$1({}, state));
14166
14363
  };
14167
- var itemsPerPageChange = function (event) {
14168
- if (typeof itemsPerPageSelect !== 'object' ||
14169
- (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external))
14170
- setItemsPerPage(Number(event.target.value));
14171
- };
14172
- var columnFilterChange = function (colName, value, type) {
14173
- var _a;
14174
- var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14175
- if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14176
- return;
14177
- }
14178
- var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14179
- setActivePage(1);
14180
- setColumnFilterState(newState);
14181
- };
14182
- var tableFilterChange = function (value, type) {
14364
+ var handleTableFilterChange = function (value, type) {
14183
14365
  var isLazy = tableFilter && typeof tableFilter === 'object' && tableFilter.lazy === true;
14184
14366
  if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14185
14367
  return;
@@ -14187,171 +14369,55 @@ var CSmartTable = forwardRef(function (_a, ref) {
14187
14369
  setActivePage(1);
14188
14370
  setTableFilterState(value);
14189
14371
  };
14190
- var clean = function () {
14191
- setTableFilterState('');
14192
- setColumnFilterState({});
14193
- setSorterState({});
14194
- };
14195
- // computed
14196
- var genCols = Object.keys(_items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
14197
- var rawColumnNames = columns
14198
- ? columns.map(function (column) {
14199
- if (typeof column === 'object')
14200
- return column.key;
14201
- else
14202
- return column;
14203
- })
14204
- : genCols; //! || el
14205
- var itemsDataColumns = rawColumnNames.filter(function (name) { return genCols.includes(name); });
14206
- // variables
14207
- var filteredColumns = useMemo(function () {
14208
- var items = _items;
14209
- if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
14210
- return items;
14211
- }
14212
- Object.entries(columnFilterState).forEach(function (_a) {
14213
- var key = _a[0], value = _a[1];
14214
- if (value instanceof Function) {
14215
- items = items.filter(function (item) { return value(item[key]); });
14216
- return;
14217
- }
14218
- var columnFilter = String(value).toLowerCase();
14219
- if (columnFilter && itemsDataColumns.includes(key)) {
14220
- items = items.filter(function (item) {
14221
- return String(item[key]).toLowerCase().includes(columnFilter);
14222
- });
14223
- }
14224
- });
14225
- return items;
14226
- }, [columnFilterState, JSON.stringify(_items)]);
14227
- var filteredTable = useMemo(function () {
14228
- var items = filteredColumns;
14229
- if (!tableFilterState ||
14230
- (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
14231
- return items;
14232
- }
14233
- var filter = tableFilterState.toLowerCase();
14234
- var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
14235
- items = items.filter(function (item) {
14236
- return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
14237
- });
14238
- return items;
14239
- }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14240
- var sortedItems = useMemo(function () {
14241
- var col = sorterState === null || sorterState === void 0 ? void 0 : sorterState.column;
14242
- if (!col ||
14243
- !itemsDataColumns.includes(col) ||
14244
- (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14245
- return filteredTable;
14246
- }
14247
- var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14248
- var sorted = filteredTable.slice().sort(function (item, item2) {
14249
- var value = item[col];
14250
- var value2 = item2[col];
14251
- var a = typeof value === 'number' ? value : String(value).toLowerCase();
14252
- var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14253
- return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14254
- });
14255
- return sorted;
14256
- }, [
14257
- JSON.stringify(filteredTable),
14258
- JSON.stringify(sorterState),
14259
- JSON.stringify(columnSorter),
14260
- JSON.stringify(filteredColumns),
14261
- JSON.stringify(_items),
14262
- ]);
14263
- var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14264
- var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14265
- var itemsOnActivePage = sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage);
14266
- var currentItems = _activePage ? itemsOnActivePage : sortedItems;
14267
- var isFiltered = tableFilterState || (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) || Object.values(columnFilterState).join('');
14268
- // effects
14269
- useEffect(function () {
14270
- mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14271
- }, [_activePage]);
14272
- useEffect(function () {
14273
- mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14274
- itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14275
- }, [_itemsPerPage]);
14276
- useEffect(function () {
14277
- mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14278
- }, [JSON.stringify(sorterState)]);
14279
- useEffect(function () {
14280
- mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14281
- }, [columnFilterState]);
14282
- useEffect(function () {
14283
- mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14284
- }, [tableFilterState]);
14285
- useEffect(function () {
14286
- mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14287
- }, [JSON.stringify(sortedItems)]);
14288
- var handleRowChecked = function (id, value) {
14289
- var newArr = __spreadArray([], _items, true);
14290
- newArr[id]._selected = value;
14291
- setItems(newArr);
14292
- };
14293
- var handleSelectAllChecked = function () {
14294
- if (selectedAll === true) {
14295
- setItems(_items.map(function (item) {
14296
- return __assign$1(__assign$1({}, item), { _selected: false });
14297
- }));
14298
- return;
14299
- }
14300
- setItems(_items.map(function (item) {
14301
- return __assign$1(__assign$1({}, item), { _selected: true });
14302
- }));
14303
- };
14304
- useEffect(function () {
14305
- if (selectable) {
14306
- var selected = _items.filter(function (item) { return item._selected === true; });
14307
- onSelectedItemsChange && onSelectedItemsChange(selected);
14308
- if (selected.length === _items.length) {
14309
- setSelectedAll(true);
14310
- return;
14311
- }
14312
- if (selected.length === 0) {
14313
- setSelectedAll(false);
14314
- return;
14315
- }
14316
- if (selected.length !== 0 && selected.length !== _items.length) {
14317
- setSelectedAll('indeterminate');
14318
- }
14319
- }
14320
- }, [_items]);
14321
14372
  useEffect(function () {
14322
14373
  mountedRef.current = true;
14323
14374
  }, []);
14324
14375
  return (React__default$1.createElement(React__default$1.Fragment, null,
14325
14376
  React__default$1.createElement("div", __assign$1({}, rest, { ref: ref }), (itemsPerPageSelect || tableFilter || cleaner) && (React__default$1.createElement("div", { className: "row my-2 mx-0" }, (tableFilter || cleaner) && (React__default$1.createElement(React__default$1.Fragment, null,
14326
- React__default$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React__default$1.createElement(CSmartTableFilter, { filterLabel: tableFilterLabel, filterPlaceholder: tableFilterPlaceholder, onInput: function (e) {
14327
- tableFilterChange(e.target.value, 'input');
14328
- }, onChange: function (e) {
14329
- tableFilterChange(e.target.value, 'change');
14330
- }, value: tableFilterState || '' }))),
14331
- React__default$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React__default$1.createElement(CSmartTableCleaner, { isFiltered: isFiltered, onClick: function () { return clean(); }, onKeyUp: function (event) {
14377
+ React__default$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React__default$1.createElement("div", { className: "row mb-2" },
14378
+ React__default$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, tableFilterLabel),
14379
+ React__default$1.createElement("div", { className: "col-sm-auto" },
14380
+ React__default$1.createElement(CFormInput, { onInput: function (e) {
14381
+ handleTableFilterChange(e.target.value, 'input');
14382
+ }, onChange: function (e) {
14383
+ handleTableFilterChange(e.target.value, 'change');
14384
+ }, placeholder: tableFilterPlaceholder, value: tableFilterState || '' }))))),
14385
+ React__default$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React__default$1.createElement(CSmartTableCleaner, { isFiltered: tableFilterState ||
14386
+ (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) ||
14387
+ Object.values(columnFilterState).join(''), onClick: function () { return handleClean(); }, onKeyUp: function (event) {
14332
14388
  if (event.key === 'Enter')
14333
- clean();
14389
+ handleClean();
14334
14390
  } })))))))),
14335
14391
  React__default$1.createElement("div", { className: "position-relative" },
14336
14392
  React__default$1.createElement(CTable, __assign$1({}, tableProps),
14337
- header && (React__default$1.createElement(CSmartTableHead, __assign$1({}, tableHeadProps, { columnFilter: columnFilter, columnFilterState: columnFilterState, columns: columns ? columns : rawColumnNames, columnSorter: columnSorter, items: _items, selectable: selectable, selectAll: selectedAll, sorterState: sorterState, sortingIcon: sortingIcon, sortingIconAscending: sortingIconAscending, sortingIconDescending: sortingIconDescending, handleFilterOnChange: function (key, event) { return columnFilterChange(key, event, 'change'); }, handleFilterOnInput: function (key, event) { return columnFilterChange(key, event, 'input'); }, handleOnCustomFilterChange: function (key, event) { return columnFilterChange(key, event); }, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, handleSort: function (key, index) { return sorterChange(key, index); } }))),
14393
+ header && (React__default$1.createElement(CSmartTableHead, __assign$1({}, tableHeadProps, { columnFilter: columnFilter, columnFilterState: columnFilterState, columns: columns ? columns : columnNames, columnSorter: columnSorter, items: _items, selectable: selectable, selectAll: selectAll, selectedAll: selectedAll, sorterState: sorterState, sortingIcon: sortingIcon, sortingIconAscending: sortingIconAscending, sortingIconDescending: sortingIconDescending, handleFilterOnChange: function (key, event) {
14394
+ return handleColumnFilterChange(key, event, 'change');
14395
+ }, handleFilterOnInput: function (key, event) { return handleColumnFilterChange(key, event, 'input'); }, handleOnCustomFilterChange: function (key, event) { return handleColumnFilterChange(key, event); }, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, handleSort: function (key, index) { return handleSorterChange(key, index); } }))),
14338
14396
  React__default$1.createElement(CSmartTableBody, __assign$1({ clickableRows: clickableRows, currentItems: currentItems, firstItemOnActivePageIndex: firstItemOnActivePageIndex, noItemsLabel: noItemsLabel, onRowClick: function (item, index, columnName, event) {
14339
14397
  return clickableRows && onRowClick && onRowClick(item, index, columnName, event);
14340
- }, onRowChecked: function (id, value) { return handleRowChecked(id, value); }, rawColumnNames: rawColumnNames, scopedColumns: scopedColumns, selectable: selectable }, tableBodyProps)),
14341
- typeof footer === 'boolean' && footer && (React__default$1.createElement(CSmartTableHead, __assign$1({ component: CTableFoot }, tableFootProps, { columnFilter: false, columnSorter: false, columns: columns ? columns : rawColumnNames, items: _items, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, selectable: selectable, selectAll: selectedAll }))),
14398
+ }, onRowChecked: function (item, value) { return handleRowChecked(item, value); }, columnNames: columnNames, scopedColumns: scopedColumns, selectable: selectable, selected: _selected }, tableBodyProps)),
14399
+ typeof footer === 'boolean' && footer && (React__default$1.createElement(CSmartTableHead, __assign$1({ component: CTableFoot }, tableFootProps, { columnFilter: false, columnSorter: false, columns: columns ? columns : columnNames, items: _items, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, selectable: selectable, selectAll: selectAll, selectedAll: selectedAll }))),
14342
14400
  Array.isArray(footer) && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
14343
14401
  React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); }))))),
14344
14402
  loading && (React__default$1.createElement(CElementCover, { boundaries: [
14345
- { sides: ['top'], query: 'td' },
14403
+ { sides: ['top'], query: 'tbody' },
14346
14404
  { sides: ['bottom'], query: 'tbody' },
14347
- ] }))),
14405
+ ] }, elementCover))),
14348
14406
  (pagination || itemsPerPageSelect) && (React__default$1.createElement("div", { className: "row" },
14349
14407
  React__default$1.createElement("div", { className: "col" }, ((pagination && numberOfPages > 1) || paginationProps) && (React__default$1.createElement(CSmartPagination, __assign$1({ activePage: _activePage, onActivePageChange: function (page) {
14350
14408
  pagination && typeof pagination === 'object' && pagination.external
14351
14409
  ? onActivePageChange && onActivePageChange(page)
14352
14410
  : setActivePage(page);
14353
14411
  }, pages: numberOfPages }, paginationProps)))),
14354
- React__default$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React__default$1.createElement(CSmartTableItemsPerPageSelector, { itemsPerPage: _itemsPerPage, itemsPerPageLabel: itemsPerPageLabel, itemsPerPageOptions: itemsPerPageOptions, onChange: function (event) { return itemsPerPageChange(event); } })))))));
14412
+ React__default$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React__default$1.createElement("div", { className: "row" },
14413
+ React__default$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14414
+ React__default$1.createElement("div", { className: "col-auto" },
14415
+ React__default$1.createElement(CFormSelect, { defaultValue: _itemsPerPage, onChange: function (event) {
14416
+ return handleItemsPerPageChange(event);
14417
+ } }, itemsPerPageOptions &&
14418
+ itemsPerPageOptions.map(function (number, index) {
14419
+ return (React__default$1.createElement("option", { value: number, key: index }, number));
14420
+ }))))))))));
14355
14421
  });
14356
14422
  CSmartTable.propTypes = {
14357
14423
  activePage: propTypesExports.number,
@@ -14361,9 +14427,11 @@ CSmartTable.propTypes = {
14361
14427
  columnFilterValue: propTypesExports.object,
14362
14428
  columns: propTypesExports.array,
14363
14429
  columnSorter: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14430
+ elementCover: propTypesExports.node,
14364
14431
  footer: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.array]),
14365
14432
  header: propTypesExports.bool,
14366
14433
  items: propTypesExports.array,
14434
+ itemsNumber: propTypesExports.number,
14367
14435
  itemsPerPage: propTypesExports.number,
14368
14436
  itemsPerPageLabel: propTypesExports.string,
14369
14437
  itemsPerPageOptions: propTypesExports.array,
@@ -14375,6 +14443,7 @@ CSmartTable.propTypes = {
14375
14443
  onFilteredItemsChange: propTypesExports.func,
14376
14444
  onItemsPerPageChange: propTypesExports.func,
14377
14445
  onRowClick: propTypesExports.func,
14446
+ onSelectAll: propTypesExports.func,
14378
14447
  onSelectedItemsChange: propTypesExports.func,
14379
14448
  onSorterChange: propTypesExports.func,
14380
14449
  onTableFilterChange: propTypesExports.func,
@@ -14382,6 +14451,8 @@ CSmartTable.propTypes = {
14382
14451
  paginationProps: propTypesExports.any,
14383
14452
  scopedColumns: propTypesExports.object,
14384
14453
  selectable: propTypesExports.bool,
14454
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14455
+ selected: propTypesExports.array,
14385
14456
  sorterValue: propTypesExports.object,
14386
14457
  sortingIcon: propTypesExports.node,
14387
14458
  sortingIconAscending: propTypesExports.node,
@@ -14934,5 +15005,5 @@ CWidgetStatsF.propTypes = {
14934
15005
  };
14935
15006
  CWidgetStatsF.displayName = 'CWidgetStatsF';
14936
15007
 
14937
- export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDatePicker, CDateRangePicker, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CFooter, CForm, CFormCheck, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTimePicker, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CVirtualScroller, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
15008
+ export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDatePicker, CDateRangePicker, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CElementCover, CFooter, CForm, CFormCheck, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTimePicker, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CVirtualScroller, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
14938
15009
  //# sourceMappingURL=index.es.js.map