@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.js CHANGED
@@ -3150,6 +3150,20 @@ var isInViewport = function (element) {
3150
3150
  Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
3151
3151
  };
3152
3152
 
3153
+ var isObjectInArray = function (array, item, ignore) {
3154
+ if (ignore === void 0) { ignore = []; }
3155
+ return array.some(function (_item) {
3156
+ var result = true;
3157
+ for (var key in item) {
3158
+ if (!ignore.includes(key) && item[key] !== _item[key]) {
3159
+ result = false;
3160
+ break;
3161
+ }
3162
+ }
3163
+ return result;
3164
+ });
3165
+ };
3166
+
3153
3167
  var CCarouselContext = React$1.createContext({});
3154
3168
  var CCarousel = React$1.forwardRef(function (_a, ref) {
3155
3169
  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"]);
@@ -7025,40 +7039,145 @@ var isToday = function (date) {
7025
7039
  date.getFullYear() === today.getFullYear());
7026
7040
  };
7027
7041
 
7042
+ var Calendar = function (props) {
7043
+ 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;
7044
+ var _a = React$1.useState(calendarDate), date = _a[0], setDate = _a[1];
7045
+ var _b = React$1.useState([]), listOfMonths = _b[0], setListOfMonths = _b[1];
7046
+ React$1.useEffect(function () {
7047
+ if (addMonths !== 0) {
7048
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7049
+ return;
7050
+ }
7051
+ setDate(calendarDate);
7052
+ }, [calendarDate]);
7053
+ React$1.useEffect(function () {
7054
+ setListOfMonths(createGroupsInArray(getMonthsNames(locale), 4));
7055
+ }, []);
7056
+ var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7057
+ var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7058
+ var weekDays = monthDetails[0];
7059
+ return (React$1.createElement("table", null,
7060
+ view === 'days' && (React$1.createElement("thead", null,
7061
+ React$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7062
+ var date = _a.date;
7063
+ return (React$1.createElement("th", { key: idx, className: "calendar-cell" },
7064
+ React$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7065
+ ? weekdayFormat(date)
7066
+ : typeof weekdayFormat === 'string'
7067
+ ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7068
+ : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat))));
7069
+ })))),
7070
+ React$1.createElement("tbody", null,
7071
+ view === 'days' &&
7072
+ monthDetails.map(function (week, index) {
7073
+ return (React$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7074
+ var _b;
7075
+ var date = _a.date, month = _a.month;
7076
+ return (React$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7077
+ today: month === 'current' && isToday(date),
7078
+ disabled: isDateDisabled(date, minDate, maxDate, disabledDates)
7079
+ },
7080
+ _b[month] = true,
7081
+ _b.last = isLastDayOfMonth(date),
7082
+ _b['range-hover'] = month === 'current' &&
7083
+ (hoverDate && selectEndDate
7084
+ ? isDateInRange(date, startDate, hoverDate)
7085
+ : isDateInRange(date, hoverDate, endDate)),
7086
+ _b.range = month === 'current' && isDateInRange(date, startDate, endDate),
7087
+ _b.selected = isDateSelected(date, startDate, endDate),
7088
+ _b.start = isStartDate(date, startDate, endDate),
7089
+ _b.end = isEndDate(date, startDate, endDate),
7090
+ _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7091
+ onBlur: function () { return onCellMouseLeave(); },
7092
+ onClick: function () { return onCellClick(date); },
7093
+ onFocus: function () { return onCellMouseEnter(date); },
7094
+ onKeyDown: function (event) { return onCellKeyDown(event, date); },
7095
+ onMouseEnter: function () { return onCellMouseEnter(date); },
7096
+ onMouseLeave: function () { return onCellMouseLeave(); },
7097
+ }), (month !== 'current' && {
7098
+ onMouseEnter: function () { return onCellMouseLeave(); },
7099
+ })),
7100
+ React$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7101
+ ? dayFormat(date)
7102
+ : date.toLocaleDateString(locale, { day: dayFormat }))));
7103
+ })));
7104
+ }),
7105
+ view === 'months' &&
7106
+ listOfMonths.map(function (row, index) {
7107
+ return (React$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7108
+ return (React$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () { return onMonthClick(index * 3 + idx - addMonths, 'days'); } },
7109
+ React$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7110
+ })));
7111
+ }),
7112
+ view === 'years' &&
7113
+ listOfYears.map(function (row, index) {
7114
+ return (React$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7115
+ return (React$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7116
+ return onYearClick(new Date(year, date.getMonth() - addMonths, date.getDate()), 'months');
7117
+ } },
7118
+ React$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7119
+ })));
7120
+ }))));
7121
+ };
7122
+ var Navigation = function (props) {
7123
+ 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;
7124
+ var _a = React$1.useState(), date = _a[0], setDate = _a[1];
7125
+ React$1.useEffect(function () {
7126
+ if (addMonths !== 0) {
7127
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7128
+ return;
7129
+ }
7130
+ setDate(calendarDate);
7131
+ }, [calendarDate]);
7132
+ return (React$1.createElement("div", { className: "calendar-nav" },
7133
+ navigation && (React$1.createElement("div", { className: "calendar-nav-prev" },
7134
+ React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7135
+ view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7136
+ React$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7137
+ view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && onMonthClick(); } }, date && date.toLocaleDateString(locale, { month: 'long' }))),
7138
+ React$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && onYearClick(); } }, (navYearFirst && { style: { order: '-1' } })), date && date.toLocaleDateString(locale, { year: 'numeric' }))),
7139
+ navigation && (React$1.createElement("div", { className: "calendar-nav-next" },
7140
+ view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next'); } }, navNextIcon ? (navNextIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7141
+ React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7142
+ };
7028
7143
  var CCalendar = React$1.forwardRef(function (_a, ref) {
7029
- 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;
7144
+ 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;
7030
7145
  var isInitialMount = React$1.useRef(true);
7031
- var _h = React$1.useState(calendarDate ? new Date(calendarDate) : startDate ? new Date(startDate) : new Date()), _calendarDate = _h[0], setCalendarDate = _h[1];
7146
+ var _j = React$1.useState(null), _calendarDate = _j[0], setCalendarDate = _j[1];
7032
7147
  React$1.useEffect(function () {
7148
+ if (calendarDate === null) {
7149
+ setCalendarDate(new Date());
7150
+ return;
7151
+ }
7033
7152
  if (calendarDate) {
7034
- var d = new Date(calendarDate);
7035
- !isSameDateAs(_calendarDate, d) && setCalendarDate(d);
7153
+ var date = new Date(calendarDate);
7154
+ !isSameDateAs(_calendarDate, date) && setCalendarDate(date);
7036
7155
  }
7037
7156
  }, [calendarDate]);
7038
- var _j = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _j[0], setStartDate = _j[1];
7157
+ var _k = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _k[0], setStartDate = _k[1];
7039
7158
  React$1.useEffect(function () {
7040
7159
  var date = startDate ? new Date(startDate) : null;
7041
7160
  if (!isSameDateAs(date, _startDate)) {
7042
7161
  setStartDate(date);
7043
7162
  }
7044
7163
  }, [startDate]);
7045
- var _k = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _k[0], setEndDate = _k[1];
7164
+ var _l = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _l[0], setEndDate = _l[1];
7046
7165
  React$1.useEffect(function () {
7047
7166
  var date = endDate ? new Date(endDate) : null;
7048
7167
  if (!isSameDateAs(date, _endDate)) {
7049
7168
  setEndDate(date);
7050
7169
  }
7051
7170
  }, [endDate]);
7052
- var _l = React$1.useState(null), _hoverDate = _l[0], setHoverDate = _l[1];
7053
- var _m = React$1.useState(maxDate ? new Date(maxDate) : null), _maxDate = _m[0], setMaxDate = _m[1];
7171
+ var _m = React$1.useState(null), _hoverDate = _m[0], setHoverDate = _m[1];
7172
+ var _o = React$1.useState(maxDate ? new Date(maxDate) : null), _maxDate = _o[0], setMaxDate = _o[1];
7054
7173
  React$1.useEffect(function () {
7055
7174
  maxDate && setMaxDate(new Date(maxDate));
7056
7175
  }, [maxDate]);
7057
- var _o = React$1.useState(minDate ? new Date(minDate) : null), _minDate = _o[0], setMinDate = _o[1];
7176
+ var _p = React$1.useState(minDate ? new Date(minDate) : null), _minDate = _p[0], setMinDate = _p[1];
7058
7177
  React$1.useEffect(function () {
7059
7178
  minDate && setMinDate(new Date(minDate));
7060
7179
  }, [minDate]);
7061
- var _p = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _p[0], setSelectEndDate = _p[1];
7180
+ var _q = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _q[0], setSelectEndDate = _q[1];
7062
7181
  React$1.useEffect(function () {
7063
7182
  setSelectEndDate(selectEndDate);
7064
7183
  }, [selectEndDate]);
@@ -7068,12 +7187,15 @@ var CCalendar = React$1.forwardRef(function (_a, ref) {
7068
7187
  onSelectEndChange &&
7069
7188
  onSelectEndChange(_selectEndDate);
7070
7189
  }, [_selectEndDate]);
7071
- var _q = useStateWithCallback('days', onViewChanged), view = _q[0], setView = _q[1];
7190
+ var _r = useStateWithCallback('days', onViewChanged), view = _r[0], setView = _r[1];
7072
7191
  React$1.useEffect(function () {
7073
7192
  isInitialMount.current = false;
7074
7193
  }, []);
7075
7194
  var setCalendarPage = function (years, months, setMonth) {
7076
7195
  if (months === void 0) { months = 0; }
7196
+ if (_calendarDate === null) {
7197
+ return;
7198
+ }
7077
7199
  var year = _calendarDate.getFullYear();
7078
7200
  var month = _calendarDate.getMonth();
7079
7201
  var d = new Date(year, month, 1);
@@ -7164,105 +7286,16 @@ var CCalendar = React$1.forwardRef(function (_a, ref) {
7164
7286
  return;
7165
7287
  }
7166
7288
  };
7167
- var Calendar = function (props) {
7168
- var addMonths = props.addMonths;
7169
- var date = _calendarDate;
7170
- if (addMonths !== 0) {
7171
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7172
- }
7173
- var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7174
- var listOfMonths = createGroupsInArray(getMonthsNames(locale), 4);
7175
- var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7176
- var weekDays = monthDetails[0];
7177
- return (React$1.createElement("table", null,
7178
- view === 'days' && (React$1.createElement("thead", null,
7179
- React$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7180
- var date = _a.date;
7181
- return (React$1.createElement("th", { key: idx, className: "calendar-cell" },
7182
- React$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7183
- ? weekdayFormat(date)
7184
- : typeof weekdayFormat === 'string'
7185
- ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7186
- : date
7187
- .toLocaleDateString(locale, { weekday: 'long' })
7188
- .slice(0, weekdayFormat))));
7189
- })))),
7190
- React$1.createElement("tbody", null,
7191
- view === 'days' &&
7192
- monthDetails.map(function (week, index) {
7193
- return (React$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7194
- var _b;
7195
- var date = _a.date, month = _a.month;
7196
- return (React$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7197
- today: month === 'current' && isToday(date),
7198
- disabled: isDateDisabled(date, _minDate, _maxDate, disabledDates)
7199
- },
7200
- _b[month] = true,
7201
- _b.last = isLastDayOfMonth(date),
7202
- _b['range-hover'] = month === 'current' &&
7203
- (_hoverDate && _selectEndDate
7204
- ? isDateInRange(date, _startDate, _hoverDate)
7205
- : isDateInRange(date, _hoverDate, _endDate)),
7206
- _b.range = month === 'current' && isDateInRange(date, _startDate, _endDate),
7207
- _b.selected = isDateSelected(date, _startDate, _endDate),
7208
- _b.start = isStartDate(date, _startDate, _endDate),
7209
- _b.end = isEndDate(date, _startDate, _endDate),
7210
- _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7211
- onBlur: function () { return handleCellMouseLeave(); },
7212
- onClick: function () { return handleCellOnClick(date); },
7213
- onFocus: function () { return handleCellMouseEnter(date); },
7214
- onKeyDown: function (event) { return handleCellKeyDown(event, date); },
7215
- onMouseEnter: function () { return handleCellMouseEnter(date); },
7216
- onMouseLeave: function () { return handleCellMouseLeave(); },
7217
- }), (month !== 'current' && {
7218
- onMouseEnter: function () { return handleCellMouseLeave(); },
7219
- })),
7220
- React$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7221
- ? dayFormat(date)
7222
- : date.toLocaleDateString(locale, { day: dayFormat }))));
7223
- })));
7224
- }),
7225
- view === 'months' &&
7226
- listOfMonths.map(function (row, index) {
7227
- return (React$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7228
- return (React$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () {
7229
- setCalendarPage(0, 0, index * 3 + idx - addMonths);
7230
- setView('days');
7231
- } },
7232
- React$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7233
- })));
7234
- }),
7235
- view === 'years' &&
7236
- listOfYears.map(function (row, index) {
7237
- return (React$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7238
- return (React$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7239
- setCalendarDate(new Date(year, date.getMonth() - addMonths, date.getDate()));
7240
- setView('months');
7241
- } },
7242
- React$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7243
- })));
7244
- }))));
7245
- };
7246
- var Navigation = function (props) {
7247
- var addMonths = props.addMonths;
7248
- var date = _calendarDate;
7249
- if (addMonths !== 0) {
7250
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7251
- }
7252
- return (React$1.createElement("div", { className: "calendar-nav" },
7253
- navigation && (React$1.createElement("div", { className: "calendar-nav-prev" },
7254
- React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7255
- view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7256
- React$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7257
- view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && setView('months'); } }, date.toLocaleDateString(locale, { month: 'long' }))),
7258
- React$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && setView('years'); } }, (navYearFirst && { style: { order: '-1' } })), date.toLocaleDateString(locale, { year: 'numeric' }))),
7259
- navigation && (React$1.createElement("div", { className: "calendar-nav-next" },
7260
- view === 'days' && (React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next'); } }, navNextIcon ? (navNextIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7261
- React$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7262
- };
7263
- return (React$1.createElement("div", { className: classNames$1('calendars', className) }, Array.from({ length: calendars }, function (_, index) { return (React$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7264
- Navigation({ addMonths: index }),
7265
- Calendar({ addMonths: index }))); })));
7289
+ return (React$1.createElement("div", { className: classNames$1('calendars', className) }, _calendarDate &&
7290
+ Array.from({ length: calendars }, function (_, index) { return (React$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7291
+ React$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 }),
7292
+ React$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) {
7293
+ setCalendarPage(0, 0, month);
7294
+ setView(view);
7295
+ }, onYearClick: function (date, view) {
7296
+ setCalendarDate(date);
7297
+ setView(view);
7298
+ }, selectEndDate: _selectEndDate, startDate: _startDate, view: view, weekdayFormat: weekdayFormat }))); })));
7266
7299
  });
7267
7300
  CCalendar.propTypes = {
7268
7301
  className: propTypesExports.string,
@@ -10307,46 +10340,34 @@ var getAmPm = function (date, locale) {
10307
10340
  }
10308
10341
  return date.getHours() >= 12 ? 'pm' : 'am';
10309
10342
  };
10310
- var getListOfHours = function (locale, ampm) {
10343
+ var getLocalizedTimePartials = function (locale, ampm) {
10311
10344
  if (ampm === void 0) { ampm = 'auto'; }
10312
- return Array.from({ length: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? 12 : 24 }, function (_, i) {
10313
- return {
10314
- value: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i,
10315
- label: ((ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i).toLocaleString(locale),
10316
- };
10317
- });
10318
- };
10319
- var getListOfMinutes = function (locale, valueAsString) {
10320
- if (valueAsString === void 0) { valueAsString = false; }
10321
- return Array.from({ length: 60 }, function (_, i) {
10322
- var d = new Date();
10323
- d.setMinutes(i);
10345
+ var date = new Date();
10346
+ var hour12 = ['am', 'AM', 'pm', 'PM'].some(function (el) { return date.toLocaleString(locale).includes(el); });
10347
+ var listOfHours = Array.from({ length: (ampm === 'auto' && hour12) || ampm === true ? 12 : 24 }, function (_, i) {
10324
10348
  return {
10325
- value: valueAsString ? i.toString() : i,
10326
- label: d
10327
- .toLocaleTimeString(locale, {
10328
- minute: '2-digit',
10329
- second: '2-digit',
10330
- })
10331
- .split(/[^A-Za-z0-9]/)[0],
10349
+ value: (ampm === 'auto' && hour12) || ampm === true ? i + 1 : i,
10350
+ label: ((ampm === 'auto' && hour12) || ampm === true ? i + 1 : i).toLocaleString(locale),
10332
10351
  };
10333
10352
  });
10334
- };
10335
- var getListOfSeconds = function (locale, valueAsString) {
10336
- if (valueAsString === void 0) { valueAsString = false; }
10337
- return Array.from({ length: 60 }, function (_, i) {
10338
- var d = new Date();
10339
- d.setSeconds(i);
10353
+ var listOfMinutesSeconds = Array.from({ length: 60 }, function (_, i) {
10354
+ date.setMinutes(i);
10340
10355
  return {
10341
- value: valueAsString ? i.toString() : i,
10342
- label: d
10356
+ value: i,
10357
+ label: date
10343
10358
  .toLocaleTimeString(locale, {
10344
10359
  minute: '2-digit',
10345
10360
  second: '2-digit',
10346
10361
  })
10347
- .split(/[^A-Za-z0-9]/)[1],
10362
+ .split(/[^A-Za-z0-9\u06F0-\u06F90-9]/)[0],
10348
10363
  };
10349
10364
  });
10365
+ return {
10366
+ listOfHours: listOfHours,
10367
+ listOfMinutes: listOfMinutesSeconds,
10368
+ listOfSeconds: listOfMinutesSeconds,
10369
+ hour12: hour12,
10370
+ };
10350
10371
  };
10351
10372
  var getSelectedHour = function (date, locale, ampm) {
10352
10373
  if (ampm === void 0) { ampm = 'auto'; }
@@ -10374,13 +10395,22 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
10374
10395
  var _o = React$1.useState(null), initialDate = _o[0], setInitialDate = _o[1];
10375
10396
  var _p = React$1.useState(date ? getAmPm(new Date(date), locale) : 'am'), _ampm = _p[0], setAmPm = _p[1];
10376
10397
  var _q = React$1.useState(visible), _visible = _q[0], setVisible = _q[1];
10398
+ var _r = React$1.useState({
10399
+ listOfHours: [],
10400
+ listOfMinutes: [],
10401
+ listOfSeconds: [],
10402
+ hour12: false,
10403
+ }), localizedTimePartials = _r[0], setLocalizedTimePartials = _r[1];
10404
+ React$1.useEffect(function () {
10405
+ setLocalizedTimePartials(getLocalizedTimePartials(locale, ampm));
10406
+ }, [date]);
10377
10407
  React$1.useEffect(function () {
10378
10408
  setDate(convertTimeToDate(time));
10379
10409
  }, [time]);
10380
10410
  React$1.useEffect(function () {
10381
10411
  if (inputRef.current) {
10382
10412
  inputRef.current.value = date
10383
- ? date.toLocaleTimeString(locale, __assign$1({ hour12: (ampm === 'auto' && isAmPm(locale)) || (typeof ampm === 'boolean' && ampm) }, (!seconds && { timeStyle: 'short' })))
10413
+ ? date.toLocaleTimeString(locale, __assign$1({ hour12: localizedTimePartials && localizedTimePartials.hour12 }, (!seconds && { timeStyle: 'short' })))
10384
10414
  : '';
10385
10415
  }
10386
10416
  date && setAmPm(getAmPm(new Date(date), locale));
@@ -10401,7 +10431,7 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
10401
10431
  }
10402
10432
  }
10403
10433
  if (set === 'hours') {
10404
- if ((ampm === 'auto' && isAmPm(locale)) || ampm === true) {
10434
+ if (localizedTimePartials && localizedTimePartials.hour12) {
10405
10435
  _date.setHours(convert12hTo24h(_ampm, parseInt(value)));
10406
10436
  }
10407
10437
  else {
@@ -10425,30 +10455,40 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
10425
10455
  indicator && (React$1.createElement("span", { className: "picker-input-group-indicator" }, typeof indicator === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon time-picker-input-icon" })) : (indicator))),
10426
10456
  cleaner && date && (React$1.createElement("span", { className: "picker-input-group-cleaner", role: "button", onClick: function (event) { return handleClear(event); } }, typeof cleaner === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon time-picker-cleaner-icon" })) : (cleaner))))))); };
10427
10457
  var TimePickerSelect = function () {
10458
+ var _a;
10428
10459
  return (React$1.createElement(React$1.Fragment, null,
10429
10460
  React$1.createElement("span", { className: "time-picker-inline-icon" }),
10430
- React$1.createElement(CFormSelect, { disabled: disabled, options: getListOfHours(locale).map(function (option) {
10431
- return {
10432
- value: option.value.toString(),
10433
- label: option.label,
10434
- };
10435
- }), onChange: function (event) {
10461
+ React$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10462
+ ((_a = localizedTimePartials.listOfHours) === null || _a === void 0 ? void 0 : _a.map(function (option) {
10463
+ return {
10464
+ value: option.value.toString(),
10465
+ label: option.label,
10466
+ };
10467
+ })), onChange: function (event) {
10436
10468
  return handleTimeChange('hours', event.target.value);
10437
10469
  }, value: getSelectedHour(date, locale) }),
10438
10470
  React$1.createElement(React$1.Fragment, null, ":"),
10439
- React$1.createElement(CFormSelect, { disabled: disabled,
10440
- // @ts-expect-error the getListOfMinutes function returns corect type
10441
- options: getListOfMinutes(locale, true), onChange: function (event) {
10471
+ React$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10472
+ localizedTimePartials.listOfMinutes.map(function (option) {
10473
+ return {
10474
+ value: option.value.toString(),
10475
+ label: option.label,
10476
+ };
10477
+ }), onChange: function (event) {
10442
10478
  return handleTimeChange('minutes', event.target.value);
10443
10479
  }, value: getSelectedMinutes(date) }),
10444
10480
  seconds && (React$1.createElement(React$1.Fragment, null,
10445
10481
  React$1.createElement(React$1.Fragment, null, ":"),
10446
- React$1.createElement(CFormSelect, { disabled: disabled,
10447
- // @ts-expect-error the getListOfSeconds function returns corect type
10448
- options: getListOfSeconds(locale, true), onChange: function (event) {
10482
+ React$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10483
+ localizedTimePartials.listOfSeconds.map(function (option) {
10484
+ return {
10485
+ value: option.value.toString(),
10486
+ label: option.label,
10487
+ };
10488
+ }), onChange: function (event) {
10449
10489
  return handleTimeChange('seconds', event.target.value);
10450
10490
  }, value: getSelectedSeconds(date) }))),
10451
- isAmPm(locale) && (React$1.createElement(CFormSelect, { disabled: disabled, options: [
10491
+ localizedTimePartials && localizedTimePartials.hour12 && (React$1.createElement(CFormSelect, { disabled: disabled, options: [
10452
10492
  { value: 'am', label: 'AM' },
10453
10493
  { value: 'pm', label: 'PM' },
10454
10494
  ], onChange: function (event) {
@@ -10456,10 +10496,10 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
10456
10496
  }, value: _ampm }))));
10457
10497
  };
10458
10498
  var TimePickerRoll = function () { return (React$1.createElement(React$1.Fragment, null,
10459
- React$1.createElement(CTimePickerRollCol, { elements: getListOfHours(locale, ampm), onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
10460
- React$1.createElement(CTimePickerRollCol, { elements: getListOfMinutes(locale), onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
10461
- seconds && (React$1.createElement(CTimePickerRollCol, { elements: getListOfSeconds(locale), onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
10462
- ((ampm === 'auto' && isAmPm(locale)) || ampm === true) && (React$1.createElement(CTimePickerRollCol, { elements: [
10499
+ React$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfHours, onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
10500
+ React$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfMinutes, onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
10501
+ seconds && (React$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfSeconds, onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
10502
+ localizedTimePartials && localizedTimePartials.hour12 && (React$1.createElement(CTimePickerRollCol, { elements: [
10463
10503
  { value: 'am', label: 'AM' },
10464
10504
  { value: 'pm', label: 'PM' },
10465
10505
  ], onClick: function (value) { return handleTimeChange('toggle', value); }, selected: _ampm })))); };
@@ -10708,6 +10748,73 @@ CDropdownItemPlain.propTypes = {
10708
10748
  };
10709
10749
  CDropdownItemPlain.displayName = 'CDropdownItemPlain';
10710
10750
 
10751
+ var CSpinner = React$1.forwardRef(function (_a, ref) {
10752
+ 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"]);
10753
+ var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
10754
+ return (React$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
10755
+ React$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
10756
+ });
10757
+ CSpinner.propTypes = {
10758
+ className: propTypesExports.string,
10759
+ color: colorPropType,
10760
+ component: propTypesExports.string,
10761
+ size: propTypesExports.oneOf(['sm']),
10762
+ variant: propTypesExports.oneOf(['border', 'grow']),
10763
+ visuallyHiddenLabel: propTypesExports.string,
10764
+ };
10765
+ CSpinner.displayName = 'CSpinner';
10766
+
10767
+ var CElementCover = React$1.forwardRef(function (_a, ref) {
10768
+ 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"]);
10769
+ var elementCoverRef = React$1.useRef(null);
10770
+ var forkedRef = useForkedRef(ref, elementCoverRef);
10771
+ var _c = React$1.useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
10772
+ var getCustomBoundaries = function () {
10773
+ if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
10774
+ return {};
10775
+ }
10776
+ var parent = elementCoverRef.current.parentElement;
10777
+ if (!parent) {
10778
+ return {};
10779
+ }
10780
+ var parentCoords = parent.getBoundingClientRect();
10781
+ var customBoundaries = {};
10782
+ boundaries.forEach(function (_a) {
10783
+ var sides = _a.sides, query = _a.query;
10784
+ var element = parent.querySelector(query);
10785
+ if (!element || !sides) {
10786
+ return;
10787
+ }
10788
+ var coords = element.getBoundingClientRect();
10789
+ sides.forEach(function (side) {
10790
+ var sideMargin = Math.abs(coords[side] - parentCoords[side]);
10791
+ customBoundaries[side] = "".concat(sideMargin, "px");
10792
+ });
10793
+ });
10794
+ return customBoundaries;
10795
+ };
10796
+ React$1.useEffect(function () {
10797
+ setCustomBoundaries(getCustomBoundaries());
10798
+ }, [JSON.stringify(getCustomBoundaries())]);
10799
+ var classes = classNames$1(className);
10800
+ var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
10801
+ var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgba(255,255,255,".concat(opacity, ")") });
10802
+ return (React$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }),
10803
+ React$1.createElement("div", { style: {
10804
+ position: 'absolute',
10805
+ top: '50%',
10806
+ left: '50%',
10807
+ transform: 'translateX(-50%) translateY(-50%)',
10808
+ } }, children || React$1.createElement(CSpinner, { variant: "grow", color: "primary" }))));
10809
+ });
10810
+ CElementCover.propTypes = {
10811
+ boundaries: propTypesExports.array,
10812
+ children: propTypesExports.node,
10813
+ className: propTypesExports.string,
10814
+ opacity: propTypesExports.number,
10815
+ };
10816
+ CElementCover.displayName = 'CElementCover';
10817
+
10711
10818
  var CFooter = React$1.forwardRef(function (_a, ref) {
10712
10819
  var _b;
10713
10820
  var children = _a.children, className = _a.className, position = _a.position, rest = __rest$1(_a, ["children", "className", "position"]);
@@ -11035,22 +11142,6 @@ CListGroupItem.propTypes = {
11035
11142
  };
11036
11143
  CListGroupItem.displayName = 'CListGroupItem';
11037
11144
 
11038
- var CSpinner = React$1.forwardRef(function (_a, ref) {
11039
- 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"]);
11040
- var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
11041
- return (React$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
11042
- React$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
11043
- });
11044
- CSpinner.propTypes = {
11045
- className: propTypesExports.string,
11046
- color: colorPropType,
11047
- component: propTypesExports.string,
11048
- size: propTypesExports.oneOf(['sm']),
11049
- variant: propTypesExports.oneOf(['border', 'grow']),
11050
- visuallyHiddenLabel: propTypesExports.string,
11051
- };
11052
- CSpinner.displayName = 'CSpinner';
11053
-
11054
11145
  var CLoadingButton = React$1.forwardRef(function (_a, ref) {
11055
11146
  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"]);
11056
11147
  var _c = React$1.useState(), _loading = _c[0], setLoading = _c[1];
@@ -11883,8 +11974,8 @@ CNavbarToggler.displayName = 'CNavbarToggler';
11883
11974
 
11884
11975
  var COffcanvas = React$1.forwardRef(function (_a, ref) {
11885
11976
  var _b;
11886
- 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"]);
11887
- var _h = React$1.useState(visible), _visible = _h[0], setVisible = _h[1];
11977
+ 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"]);
11978
+ var _j = React$1.useState(visible), _visible = _j[0], setVisible = _j[1];
11888
11979
  var offcanvasRef = React$1.useRef(null);
11889
11980
  var forkedRef = useForkedRef(ref, offcanvasRef);
11890
11981
  React$1.useEffect(function () {
@@ -11903,19 +11994,27 @@ var COffcanvas = React$1.forwardRef(function (_a, ref) {
11903
11994
  document.body.style.removeProperty('padding-right');
11904
11995
  }
11905
11996
  }, [_visible]);
11906
- var _className = classNames$1('offcanvas', (_b = {},
11997
+ var getTransitionClass = function (state) {
11998
+ return state === 'entering'
11999
+ ? 'showing'
12000
+ : state === 'entered'
12001
+ ? 'show'
12002
+ : state === 'exiting'
12003
+ ? 'show hiding'
12004
+ : '';
12005
+ };
12006
+ var _className = classNames$1((_b = {},
12007
+ _b["offcanvas".concat(typeof responsive !== 'boolean' ? '-' + responsive : '')] = responsive,
11907
12008
  _b["offcanvas-".concat(placement)] = placement,
11908
- _b.show = _visible,
11909
12009
  _b), className);
11910
- var transitionStyles = {
11911
- entering: { visibility: 'visible' },
11912
- entered: { visibility: 'visible' },
11913
- exiting: { visibility: 'visible' },
11914
- exited: { visibility: 'hidden' },
11915
- };
11916
12010
  var handleDismiss = function () {
11917
12011
  setVisible(false);
11918
12012
  };
12013
+ var handleBackdropDismiss = function () {
12014
+ if (backdrop !== 'static') {
12015
+ setVisible(false);
12016
+ }
12017
+ };
11919
12018
  var handleKeyDown = React$1.useCallback(function (event) {
11920
12019
  if (event.key === 'Escape' && keyboard) {
11921
12020
  return handleDismiss();
@@ -11923,7 +12022,7 @@ var COffcanvas = React$1.forwardRef(function (_a, ref) {
11923
12022
  }, [ref, handleDismiss]);
11924
12023
  var offcanvas = function (ref, state) {
11925
12024
  return (React$1.createElement(React$1.Fragment, null,
11926
- React$1.createElement("div", __assign$1({ className: _className, role: "dialog", style: __assign$1({}, transitionStyles[state]), tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
12025
+ React$1.createElement("div", __assign$1({ className: classNames$1(_className, getTransitionClass(state)), role: "dialog", tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
11927
12026
  };
11928
12027
  return (React$1.createElement(React$1.Fragment, null,
11929
12028
  React$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) {
@@ -11933,11 +12032,11 @@ var COffcanvas = React$1.forwardRef(function (_a, ref) {
11933
12032
  }),
11934
12033
  typeof window !== 'undefined' && portal
11935
12034
  ? backdrop &&
11936
- ReactDOM.createPortal(React$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }), document.body)
11937
- : backdrop && (React$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }))));
12035
+ ReactDOM.createPortal(React$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }), document.body)
12036
+ : backdrop && (React$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }))));
11938
12037
  });
11939
12038
  COffcanvas.propTypes = {
11940
- backdrop: propTypesExports.bool,
12039
+ backdrop: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.oneOf(['static'])]),
11941
12040
  children: propTypesExports.node,
11942
12041
  className: propTypesExports.string,
11943
12042
  keyboard: propTypesExports.bool,
@@ -11946,6 +12045,10 @@ COffcanvas.propTypes = {
11946
12045
  placement: propTypesExports.oneOf(['start', 'end', 'top', 'bottom'])
11947
12046
  .isRequired,
11948
12047
  portal: propTypesExports.bool,
12048
+ responsive: propTypesExports.oneOfType([
12049
+ propTypesExports.bool,
12050
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12051
+ ]),
11949
12052
  scroll: propTypesExports.bool,
11950
12053
  visible: propTypesExports.bool,
11951
12054
  };
@@ -12163,438 +12266,51 @@ CPopover.propTypes = {
12163
12266
  };
12164
12267
  CPopover.displayName = 'CPopover';
12165
12268
 
12166
- 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'/>"];
12269
+ 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'/>"];
12167
12270
 
12168
- 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'/>"];
12271
+ 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'/>"];
12169
12272
 
12170
- 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'/>"];
12273
+ 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'/>"];
12171
12274
 
12172
- 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'/>"];
12275
+ 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'/>"];
12173
12276
 
12174
- var CElementCover = React$1.forwardRef(function (_a, ref) {
12175
- 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"]);
12176
- var elementCoverRef = React$1.useRef(null);
12177
- var forkedRef = useForkedRef(ref, elementCoverRef);
12178
- var _c = React$1.useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
12179
- var getCustomBoundaries = function () {
12180
- if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
12181
- return {};
12182
- }
12183
- var parent = elementCoverRef.current.parentElement;
12184
- if (!parent) {
12185
- return {};
12186
- }
12187
- var parentCoords = parent.getBoundingClientRect();
12188
- var customBoundaries = {};
12189
- boundaries.forEach(function (_a) {
12190
- var sides = _a.sides, query = _a.query;
12191
- var element = parent.querySelector(query);
12192
- if (!element || !sides) {
12193
- return;
12194
- }
12195
- var coords = element.getBoundingClientRect();
12196
- sides.forEach(function (side) {
12197
- var sideMargin = Math.abs(coords[side] - parentCoords[side]);
12198
- customBoundaries[side] = "".concat(sideMargin, "px");
12199
- });
12200
- });
12201
- return customBoundaries;
12202
- };
12203
- React$1.useEffect(function () {
12204
- setCustomBoundaries(getCustomBoundaries());
12205
- }, [JSON.stringify(getCustomBoundaries())]);
12206
- //render
12207
- var classes = classNames$1(className);
12208
- var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
12209
- var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgb(255,255,255,".concat(opacity, ")") });
12210
- return (React$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }), children || (React$1.createElement("div", { style: {
12211
- position: 'absolute',
12212
- top: '50%',
12213
- left: '50%',
12214
- transform: 'translateX(-50%) translateY(-50%)',
12215
- } },
12216
- React$1.createElement(CSpinner, { variant: "grow", color: "primary" })))));
12217
- });
12218
- CElementCover.propTypes = {
12219
- boundaries: propTypesExports.array,
12220
- children: propTypesExports.node,
12221
- className: propTypesExports.string,
12222
- opacity: propTypesExports.number,
12223
- };
12224
- CElementCover.displayName = 'CElementCover';
12225
-
12226
- var CSmartPagination = React$1.forwardRef(function (_a, ref) {
12227
- 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$1.createElement(React$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React$1.createElement(React$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React$1.createElement(React$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React$1.createElement(React$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"]);
12228
- var _classNames = classNames$1("justify-content-".concat(align), className);
12229
- var showDots = (function () {
12230
- return dots && limit > 4 && limit < pages;
12231
- })();
12232
- var maxPrevItems = (function () {
12233
- return Math.floor((limit - 1) / 2);
12234
- })();
12235
- var maxNextItems = (function () {
12236
- return Math.ceil((limit - 1) / 2);
12237
- })();
12238
- var beforeDots = (function () {
12239
- return showDots && activePage > maxPrevItems + 1;
12240
- })();
12241
- var afterDots = (function () {
12242
- return showDots && activePage < pages - maxNextItems;
12243
- })();
12244
- var computedLimit = (function () {
12245
- return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
12246
- })();
12247
- var range = (function () {
12248
- return activePage + maxNextItems;
12249
- })();
12250
- var lastItem = (function () {
12251
- return range >= pages ? pages : range - (afterDots ? 1 : 0);
12252
- })();
12253
- var itemsAmount = (function () {
12254
- return pages < computedLimit ? pages : computedLimit;
12255
- })();
12256
- var items = (function () {
12257
- if (activePage - maxPrevItems <= 1) {
12258
- return Array.from({
12259
- length: itemsAmount,
12260
- }, function (_v, i) { return i + 1; });
12261
- }
12262
- else {
12263
- return Array.from({
12264
- length: itemsAmount,
12265
- }, function (_v, i) {
12266
- return lastItem - i;
12267
- }).reverse();
12268
- }
12269
- })();
12270
- var setPage = function (number) {
12271
- if (number !== activePage) {
12272
- onActivePageChange && onActivePageChange(number);
12273
- }
12274
- };
12275
- return (React$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
12276
- doubleArrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
12277
- arrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
12278
- beforeDots && (React$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12279
- items.map(function (i) {
12280
- return (React$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));
12281
- }),
12282
- afterDots && (React$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12283
- arrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
12284
- doubleArrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
12285
- });
12286
- CSmartPagination.propTypes = {
12287
- className: propTypesExports.oneOfType([propTypesExports.string]),
12288
- activePage: propTypesExports.number,
12289
- dots: propTypesExports.bool,
12290
- arrows: propTypesExports.bool,
12291
- doubleArrows: propTypesExports.bool,
12292
- firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12293
- previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12294
- nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12295
- lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12296
- size: propTypesExports.oneOf(['sm', 'lg']),
12297
- align: propTypesExports.oneOf(['start', 'center', 'end']),
12298
- limit: propTypesExports.number,
12299
- pages: propTypesExports.number.isRequired,
12300
- onActivePageChange: propTypesExports.func,
12301
- };
12302
- CSmartPagination.displayName = 'CSmartPagination';
12303
-
12304
- var CTableHead = React$1.forwardRef(function (_a, ref) {
12305
- var _b;
12306
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12307
- var _className = classNames$1((_b = {},
12308
- _b["table-".concat(color)] = color,
12309
- _b), className);
12310
- return (React$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12311
- });
12312
- CTableHead.propTypes = {
12313
- children: propTypesExports.node,
12314
- className: propTypesExports.string,
12315
- color: colorPropType,
12316
- };
12317
- CTableHead.displayName = 'CTableHead';
12318
-
12319
- var CTableHeaderCell = React$1.forwardRef(function (_a, ref) {
12320
- var _b;
12321
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12322
- var _className = classNames$1((_b = {},
12323
- _b["table-".concat(color)] = color,
12324
- _b), className);
12325
- return (React$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12326
- });
12327
- CTableHeaderCell.propTypes = {
12328
- children: propTypesExports.node,
12329
- className: propTypesExports.string,
12330
- color: colorPropType,
12331
- };
12332
- CTableHeaderCell.displayName = 'CTableHeaderCell';
12333
-
12334
- var CTableBody = React$1.forwardRef(function (_a, ref) {
12335
- var _b;
12336
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12337
- var _className = classNames$1((_b = {},
12338
- _b["table-".concat(color)] = color,
12339
- _b), className);
12340
- return (React$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12341
- });
12342
- CTableBody.propTypes = {
12343
- children: propTypesExports.node,
12344
- className: propTypesExports.string,
12345
- color: colorPropType,
12346
- };
12347
- CTableBody.displayName = 'CTableBody';
12348
-
12349
- var CTableDataCell = React$1.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
- var Component = rest.scope ? 'th' : 'td';
12358
- return (React$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12359
- });
12360
- CTableDataCell.propTypes = {
12361
- active: propTypesExports.bool,
12362
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12363
- children: propTypesExports.node,
12364
- className: propTypesExports.string,
12365
- color: colorPropType,
12366
- };
12367
- CTableDataCell.displayName = 'CTableDataCell';
12368
-
12369
- var CTableRow = React$1.forwardRef(function (_a, ref) {
12370
- var _b;
12371
- 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"]);
12372
- var _className = classNames$1((_b = {},
12373
- _b["align-".concat(align)] = align,
12374
- _b['table-active'] = active,
12375
- _b["table-".concat(color)] = color,
12376
- _b), className);
12377
- return (React$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12378
- });
12379
- CTableRow.propTypes = {
12380
- active: propTypesExports.bool,
12381
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12382
- children: propTypesExports.node,
12383
- className: propTypesExports.string,
12384
- color: colorPropType,
12385
- };
12386
- CTableRow.displayName = 'CTableRow';
12387
-
12388
- var CTableFoot = React$1.forwardRef(function (_a, ref) {
12389
- var _b;
12390
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12391
- var _className = classNames$1((_b = {},
12392
- _b["table-".concat(color)] = color,
12393
- _b), className);
12394
- return (React$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12395
- });
12396
- CTableFoot.propTypes = {
12397
- children: propTypesExports.node,
12398
- className: propTypesExports.string,
12399
- color: colorPropType,
12400
- };
12401
- CTableFoot.displayName = 'CTableFoot';
12402
-
12403
- var CTableCaption = React$1.forwardRef(function (_a, ref) {
12404
- var children = _a.children, props = __rest$1(_a, ["children"]);
12405
- return (React$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
12406
- });
12407
- CTableCaption.propTypes = {
12408
- children: propTypesExports.node,
12409
- };
12410
- CTableCaption.displayName = 'CTableCaption';
12411
-
12412
- var CTableResponsiveWrapper = function (_a) {
12413
- var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
12414
- return responsive ? (React$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
12415
- };
12416
- CTableResponsiveWrapper.propTypes = {
12417
- children: propTypesExports.any,
12418
- responsive: propTypesExports.oneOfType([
12419
- propTypesExports.bool,
12420
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12421
- ]),
12422
- };
12423
- CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
12424
-
12425
- var CTable = React$1.forwardRef(function (_a, ref) {
12426
- var _b;
12427
- 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"]);
12428
- var _className = classNames$1('table', (_b = {},
12429
- _b["align-".concat(align)] = align,
12430
- _b["border-".concat(borderColor)] = borderColor,
12431
- _b["caption-top"] = captionTop || caption === 'top',
12432
- _b['table-bordered'] = bordered,
12433
- _b['table-borderless'] = borderless,
12434
- _b["table-".concat(color)] = color,
12435
- _b['table-hover'] = hover,
12436
- _b['table-sm'] = small,
12437
- _b['table-striped'] = striped,
12438
- _b['table-striped-columns'] = stripedColumns,
12439
- _b), className);
12440
- var rawColumnNames = columns
12441
- ? columns.map(function (column) {
12442
- if (typeof column === 'object')
12443
- return column.key;
12444
- else
12445
- return column;
12446
- })
12447
- : Object.keys((items && items[0]) || {}).filter(function (el) { return el.charAt(0) !== '_'; });
12448
- var pretifyName = function (name) {
12449
- return name
12450
- .replace(/[-_.]/g, ' ')
12451
- .replace(/ +/g, ' ')
12452
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
12453
- .split(' ')
12454
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
12455
- .join(' ');
12456
- };
12457
- var label = function (column) {
12458
- return typeof column === 'object'
12459
- ? column.label !== undefined
12460
- ? column.label
12461
- : pretifyName(column.key)
12462
- : pretifyName(column);
12463
- };
12464
- return (React$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
12465
- React$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
12466
- ((caption && caption !== 'top') || captionTop) && (React$1.createElement(CTableCaption, null, caption || captionTop)),
12467
- columns && (React$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
12468
- React$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
12469
- items && (React$1.createElement(CTableBody, null, items.map(function (item, index) { return (React$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
12470
- return item[colName] ? (React$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;
12471
- }))); }))),
12472
- children,
12473
- footer && (React$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
12474
- React$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
12475
- });
12476
- CTable.propTypes = {
12477
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
12478
- borderColor: propTypesExports.string,
12479
- bordered: propTypesExports.bool,
12480
- borderless: propTypesExports.bool,
12481
- caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
12482
- captionTop: propTypesExports.string,
12483
- children: propTypesExports.node,
12484
- className: propTypesExports.string,
12485
- color: colorPropType,
12486
- columns: propTypesExports.array,
12487
- footer: propTypesExports.array,
12488
- hover: propTypesExports.bool,
12489
- items: propTypesExports.array,
12490
- responsive: propTypesExports.oneOfType([
12491
- propTypesExports.bool,
12492
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12493
- ]),
12494
- small: propTypesExports.bool,
12495
- striped: propTypesExports.bool,
12496
- stripedColumns: propTypesExports.bool,
12497
- tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
12498
- tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
12499
- };
12500
- CTable.displayName = 'CTable';
12501
-
12502
- var CSmartTableBody = React$1.forwardRef(function (_a, ref) {
12503
- 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"]);
12504
- var tableDataCellProps = function (item, colName) {
12505
- var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
12506
- return props;
12507
- };
12508
- var getColumnName = function (event) {
12509
- var target = event.target;
12510
- var closest = target.closest('tr');
12511
- var children = closest ? Array.from(closest.children) : [];
12512
- var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
12513
- return rawColumnNames[children.indexOf(clickedCell)];
12514
- };
12515
- var colspan = selectable ? rawColumnNames.length + 1 : rawColumnNames.length;
12516
- return (React$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
12517
- style: { cursor: 'pointer' },
12518
- }), rest, { ref: ref }),
12519
- currentItems.map(function (item, trIndex) {
12520
- return (React$1.createElement(React$1.Fragment, { key: trIndex },
12521
- React$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
12522
- return onRowClick &&
12523
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), event);
12524
- } }),
12525
- selectable && (React$1.createElement(CTableDataCell, null,
12526
- React$1.createElement(CFormCheck, { checked: item._selected ? item._selected : false, onChange: function (event) {
12527
- return onRowChecked && onRowChecked(item._id, event.target.checked);
12528
- } }))),
12529
- rawColumnNames.map(function (colName, index) {
12530
- return ((scopedColumns &&
12531
- scopedColumns[colName] &&
12532
- React$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
12533
- key: index,
12534
- })) || (React$1.createElement(CTableDataCell, __assign$1({}, tableDataCellProps(item, colName), { key: index }), String(item[colName]))));
12535
- })),
12536
- scopedColumns && scopedColumns.details && (React$1.createElement(React$1.Fragment, null,
12537
- React$1.createElement(CTableRow, null,
12538
- React$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
12539
- React$1.createElement(CTableRow, { onClick: function (event) {
12540
- return onRowClick &&
12541
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), true);
12542
- }, className: "p-0", key: "details".concat(trIndex) },
12543
- React$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
12544
- }),
12545
- !currentItems.length && (React$1.createElement(CTableRow, null,
12546
- React$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
12547
- });
12548
- CSmartTableBody.propTypes = {
12549
- clickableRows: propTypesExports.bool,
12550
- currentItems: propTypesExports.array.isRequired,
12551
- firstItemOnActivePageIndex: propTypesExports.number.isRequired,
12552
- noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
12553
- onRowChecked: propTypesExports.func,
12554
- onRowClick: propTypesExports.func,
12555
- rawColumnNames: propTypesExports.array.isRequired,
12556
- scopedColumns: propTypesExports.object,
12557
- selectable: propTypesExports.bool,
12558
- };
12559
- CSmartTableBody.displayName = 'CSmartTableBody';
12560
-
12561
- /******************************************************************************
12562
- Copyright (c) Microsoft Corporation.
12563
-
12564
- Permission to use, copy, modify, and/or distribute this software for any
12565
- purpose with or without fee is hereby granted.
12566
-
12567
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12568
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12569
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12570
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12571
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12572
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12573
- PERFORMANCE OF THIS SOFTWARE.
12574
- ***************************************************************************** */
12575
-
12576
- var __assign = function() {
12577
- __assign = Object.assign || function __assign(t) {
12578
- for (var s, i = 1, n = arguments.length; i < n; i++) {
12579
- s = arguments[i];
12580
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
12581
- }
12582
- return t;
12583
- };
12584
- return __assign.apply(this, arguments);
12585
- };
12586
-
12587
- function __rest(s, e) {
12588
- var t = {};
12589
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12590
- t[p] = s[p];
12591
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
12592
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12593
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12594
- t[p[i]] = s[p[i]];
12595
- }
12596
- return t;
12597
- }
12277
+ /******************************************************************************
12278
+ Copyright (c) Microsoft Corporation.
12279
+
12280
+ Permission to use, copy, modify, and/or distribute this software for any
12281
+ purpose with or without fee is hereby granted.
12282
+
12283
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12284
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12285
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12286
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12287
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12288
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12289
+ PERFORMANCE OF THIS SOFTWARE.
12290
+ ***************************************************************************** */
12291
+
12292
+ var __assign = function() {
12293
+ __assign = Object.assign || function __assign(t) {
12294
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12295
+ s = arguments[i];
12296
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
12297
+ }
12298
+ return t;
12299
+ };
12300
+ return __assign.apply(this, arguments);
12301
+ };
12302
+
12303
+ function __rest(s, e) {
12304
+ var t = {};
12305
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12306
+ t[p] = s[p];
12307
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
12308
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12309
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12310
+ t[p[i]] = s[p[i]];
12311
+ }
12312
+ return t;
12313
+ }
12598
12314
 
12599
12315
  var propTypes = {exports: {}};
12600
12316
 
@@ -13824,103 +13540,565 @@ var classnames = {exports: {}};
13824
13540
  }
13825
13541
  }
13826
13542
 
13827
- return classes.join(' ');
13828
- }
13543
+ return classes.join(' ');
13544
+ }
13545
+
13546
+ if (module.exports) {
13547
+ classNames.default = classNames;
13548
+ module.exports = classNames;
13549
+ } else {
13550
+ window.classNames = classNames;
13551
+ }
13552
+ }());
13553
+ } (classnames));
13554
+
13555
+ var classNames = classnames.exports;
13556
+
13557
+ var toCamelCase = function (str) {
13558
+ return str
13559
+ .replace(/([-_][a-z0-9])/gi, function ($1) {
13560
+ return $1.toUpperCase();
13561
+ })
13562
+ .replace(/-/gi, '');
13563
+ };
13564
+ var CIcon = React$1.forwardRef(function (_a, ref) {
13565
+ var _b;
13566
+ 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"]);
13567
+ var _c = React$1.useState(0), change = _c[0], setChange = _c[1];
13568
+ var _icon = icon || content || name;
13569
+ if (content) {
13570
+ process &&
13571
+ process.env &&
13572
+ process.env.NODE_ENV === 'development' &&
13573
+ console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
13574
+ }
13575
+ if (name) {
13576
+ process &&
13577
+ process.env &&
13578
+ process.env.NODE_ENV === 'development' &&
13579
+ console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13580
+ }
13581
+ React$1.useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
13582
+ var iconName = React$1.useMemo(function () {
13583
+ return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
13584
+ }, [change]);
13585
+ var titleCode = title ? "<title>".concat(title, "</title>") : '';
13586
+ var code = React$1.useMemo(function () {
13587
+ if (Array.isArray(_icon)) {
13588
+ return _icon;
13589
+ }
13590
+ if (typeof _icon === 'string' && React$1['icons']) {
13591
+ return React$1['icons'][iconName];
13592
+ }
13593
+ }, [change]);
13594
+ var iconCode = React$1.useMemo(function () {
13595
+ return Array.isArray(code) ? code[1] || code[0] : code;
13596
+ }, [change]);
13597
+ var scale = (function () {
13598
+ return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
13599
+ })();
13600
+ var viewBox = (function () {
13601
+ return rest['viewBox'] || "0 0 ".concat(scale);
13602
+ })();
13603
+ // render
13604
+ var _className = customClassName
13605
+ ? classNames(customClassName)
13606
+ : classNames('icon', (_b = {},
13607
+ _b["icon-".concat(size)] = size,
13608
+ _b["icon-custom-size"] = height || width,
13609
+ _b), className);
13610
+ return use ? (React$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
13611
+ React$1.createElement("use", { href: use }))) : (React$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 })));
13612
+ });
13613
+ CIcon.propTypes = {
13614
+ className: propTypes.exports.string,
13615
+ content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13616
+ customClassName: propTypes.exports.string,
13617
+ height: propTypes.exports.number,
13618
+ icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13619
+ name: propTypes.exports.string,
13620
+ size: propTypes.exports.oneOf([
13621
+ 'custom',
13622
+ 'custom-size',
13623
+ 'sm',
13624
+ 'lg',
13625
+ 'xl',
13626
+ 'xxl',
13627
+ '3xl',
13628
+ '4xl',
13629
+ '5xl',
13630
+ '6xl',
13631
+ '7xl',
13632
+ '8xl',
13633
+ '9xl',
13634
+ ]),
13635
+ title: propTypes.exports.any,
13636
+ use: propTypes.exports.any,
13637
+ width: propTypes.exports.number,
13638
+ };
13639
+ CIcon.displayName = 'CIcon';
13640
+
13641
+ var CSmartPagination = React$1.forwardRef(function (_a, ref) {
13642
+ 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$1.createElement(React$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React$1.createElement(React$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React$1.createElement(React$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React$1.createElement(React$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"]);
13643
+ var _classNames = classNames$1("justify-content-".concat(align), className);
13644
+ var showDots = (function () {
13645
+ return dots && limit > 4 && limit < pages;
13646
+ })();
13647
+ var maxPrevItems = (function () {
13648
+ return Math.floor((limit - 1) / 2);
13649
+ })();
13650
+ var maxNextItems = (function () {
13651
+ return Math.ceil((limit - 1) / 2);
13652
+ })();
13653
+ var beforeDots = (function () {
13654
+ return showDots && activePage > maxPrevItems + 1;
13655
+ })();
13656
+ var afterDots = (function () {
13657
+ return showDots && activePage < pages - maxNextItems;
13658
+ })();
13659
+ var computedLimit = (function () {
13660
+ return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
13661
+ })();
13662
+ var range = (function () {
13663
+ return activePage + maxNextItems;
13664
+ })();
13665
+ var lastItem = (function () {
13666
+ return range >= pages ? pages : range - (afterDots ? 1 : 0);
13667
+ })();
13668
+ var itemsAmount = (function () {
13669
+ return pages < computedLimit ? pages : computedLimit;
13670
+ })();
13671
+ var items = (function () {
13672
+ if (activePage - maxPrevItems <= 1) {
13673
+ return Array.from({
13674
+ length: itemsAmount,
13675
+ }, function (_v, i) { return i + 1; });
13676
+ }
13677
+ else {
13678
+ return Array.from({
13679
+ length: itemsAmount,
13680
+ }, function (_v, i) {
13681
+ return lastItem - i;
13682
+ }).reverse();
13683
+ }
13684
+ })();
13685
+ var setPage = function (number) {
13686
+ if (number !== activePage) {
13687
+ onActivePageChange && onActivePageChange(number);
13688
+ }
13689
+ };
13690
+ return (React$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
13691
+ doubleArrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
13692
+ arrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
13693
+ beforeDots && (React$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13694
+ items.map(function (i) {
13695
+ return (React$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));
13696
+ }),
13697
+ afterDots && (React$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13698
+ arrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
13699
+ doubleArrows && (React$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
13700
+ });
13701
+ CSmartPagination.propTypes = {
13702
+ className: propTypesExports.oneOfType([propTypesExports.string]),
13703
+ activePage: propTypesExports.number,
13704
+ dots: propTypesExports.bool,
13705
+ arrows: propTypesExports.bool,
13706
+ doubleArrows: propTypesExports.bool,
13707
+ firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13708
+ previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13709
+ nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13710
+ lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13711
+ size: propTypesExports.oneOf(['sm', 'lg']),
13712
+ align: propTypesExports.oneOf(['start', 'center', 'end']),
13713
+ limit: propTypesExports.number,
13714
+ pages: propTypesExports.number.isRequired,
13715
+ onActivePageChange: propTypesExports.func,
13716
+ };
13717
+ CSmartPagination.displayName = 'CSmartPagination';
13718
+
13719
+ var CTableHead = React$1.forwardRef(function (_a, ref) {
13720
+ var _b;
13721
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13722
+ var _className = classNames$1((_b = {},
13723
+ _b["table-".concat(color)] = color,
13724
+ _b), className);
13725
+ return (React$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13726
+ });
13727
+ CTableHead.propTypes = {
13728
+ children: propTypesExports.node,
13729
+ className: propTypesExports.string,
13730
+ color: colorPropType,
13731
+ };
13732
+ CTableHead.displayName = 'CTableHead';
13733
+
13734
+ var CTableHeaderCell = React$1.forwardRef(function (_a, ref) {
13735
+ var _b;
13736
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13737
+ var _className = classNames$1((_b = {},
13738
+ _b["table-".concat(color)] = color,
13739
+ _b), className);
13740
+ return (React$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13741
+ });
13742
+ CTableHeaderCell.propTypes = {
13743
+ children: propTypesExports.node,
13744
+ className: propTypesExports.string,
13745
+ color: colorPropType,
13746
+ };
13747
+ CTableHeaderCell.displayName = 'CTableHeaderCell';
13748
+
13749
+ var CTableBody = React$1.forwardRef(function (_a, ref) {
13750
+ var _b;
13751
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13752
+ var _className = classNames$1((_b = {},
13753
+ _b["table-".concat(color)] = color,
13754
+ _b), className);
13755
+ return (React$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13756
+ });
13757
+ CTableBody.propTypes = {
13758
+ children: propTypesExports.node,
13759
+ className: propTypesExports.string,
13760
+ color: colorPropType,
13761
+ };
13762
+ CTableBody.displayName = 'CTableBody';
13829
13763
 
13830
- if (module.exports) {
13831
- classNames.default = classNames;
13832
- module.exports = classNames;
13833
- } else {
13834
- window.classNames = classNames;
13835
- }
13836
- }());
13837
- } (classnames));
13764
+ var CTableDataCell = React$1.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
+ var Component = rest.scope ? 'th' : 'td';
13773
+ return (React$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13774
+ });
13775
+ CTableDataCell.propTypes = {
13776
+ active: propTypesExports.bool,
13777
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13778
+ children: propTypesExports.node,
13779
+ className: propTypesExports.string,
13780
+ color: colorPropType,
13781
+ };
13782
+ CTableDataCell.displayName = 'CTableDataCell';
13838
13783
 
13839
- var classNames = classnames.exports;
13784
+ var CTableRow = React$1.forwardRef(function (_a, ref) {
13785
+ var _b;
13786
+ 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"]);
13787
+ var _className = classNames$1((_b = {},
13788
+ _b["align-".concat(align)] = align,
13789
+ _b['table-active'] = active,
13790
+ _b["table-".concat(color)] = color,
13791
+ _b), className);
13792
+ return (React$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13793
+ });
13794
+ CTableRow.propTypes = {
13795
+ active: propTypesExports.bool,
13796
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13797
+ children: propTypesExports.node,
13798
+ className: propTypesExports.string,
13799
+ color: colorPropType,
13800
+ };
13801
+ CTableRow.displayName = 'CTableRow';
13840
13802
 
13841
- var toCamelCase = function (str) {
13842
- return str
13843
- .replace(/([-_][a-z0-9])/gi, function ($1) {
13844
- return $1.toUpperCase();
13845
- })
13846
- .replace(/-/gi, '');
13803
+ var CTableFoot = React$1.forwardRef(function (_a, ref) {
13804
+ var _b;
13805
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13806
+ var _className = classNames$1((_b = {},
13807
+ _b["table-".concat(color)] = color,
13808
+ _b), className);
13809
+ return (React$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13810
+ });
13811
+ CTableFoot.propTypes = {
13812
+ children: propTypesExports.node,
13813
+ className: propTypesExports.string,
13814
+ color: colorPropType,
13847
13815
  };
13848
- var CIcon = React$1.forwardRef(function (_a, ref) {
13816
+ CTableFoot.displayName = 'CTableFoot';
13817
+
13818
+ var CTableCaption = React$1.forwardRef(function (_a, ref) {
13819
+ var children = _a.children, props = __rest$1(_a, ["children"]);
13820
+ return (React$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
13821
+ });
13822
+ CTableCaption.propTypes = {
13823
+ children: propTypesExports.node,
13824
+ };
13825
+ CTableCaption.displayName = 'CTableCaption';
13826
+
13827
+ var CTableResponsiveWrapper = function (_a) {
13828
+ var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
13829
+ return responsive ? (React$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
13830
+ };
13831
+ CTableResponsiveWrapper.propTypes = {
13832
+ children: propTypesExports.any,
13833
+ responsive: propTypesExports.oneOfType([
13834
+ propTypesExports.bool,
13835
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13836
+ ]),
13837
+ };
13838
+ CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
13839
+
13840
+ var CTable = React$1.forwardRef(function (_a, ref) {
13849
13841
  var _b;
13850
- 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"]);
13851
- var _c = React$1.useState(0), change = _c[0], setChange = _c[1];
13852
- var _icon = icon || content || name;
13853
- if (content) {
13854
- process &&
13855
- process.env &&
13856
- process.env.NODE_ENV === 'development' &&
13857
- console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
13858
- }
13859
- if (name) {
13860
- process &&
13861
- process.env &&
13862
- process.env.NODE_ENV === 'development' &&
13863
- console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13842
+ 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"]);
13843
+ var _className = classNames$1('table', (_b = {},
13844
+ _b["align-".concat(align)] = align,
13845
+ _b["border-".concat(borderColor)] = borderColor,
13846
+ _b["caption-top"] = captionTop || caption === 'top',
13847
+ _b['table-bordered'] = bordered,
13848
+ _b['table-borderless'] = borderless,
13849
+ _b["table-".concat(color)] = color,
13850
+ _b['table-hover'] = hover,
13851
+ _b['table-sm'] = small,
13852
+ _b['table-striped'] = striped,
13853
+ _b['table-striped-columns'] = stripedColumns,
13854
+ _b), className);
13855
+ var rawColumnNames = columns
13856
+ ? columns.map(function (column) {
13857
+ if (typeof column === 'object')
13858
+ return column.key;
13859
+ else
13860
+ return column;
13861
+ })
13862
+ : Object.keys((items && items[0]) || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13863
+ var pretifyName = function (name) {
13864
+ return name
13865
+ .replace(/[-_.]/g, ' ')
13866
+ .replace(/ +/g, ' ')
13867
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13868
+ .split(' ')
13869
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13870
+ .join(' ');
13871
+ };
13872
+ var label = function (column) {
13873
+ return typeof column === 'object'
13874
+ ? column.label !== undefined
13875
+ ? column.label
13876
+ : pretifyName(column.key)
13877
+ : pretifyName(column);
13878
+ };
13879
+ return (React$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
13880
+ React$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
13881
+ ((caption && caption !== 'top') || captionTop) && (React$1.createElement(CTableCaption, null, caption || captionTop)),
13882
+ columns && (React$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
13883
+ React$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
13884
+ items && (React$1.createElement(CTableBody, null, items.map(function (item, index) { return (React$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
13885
+ return item[colName] ? (React$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;
13886
+ }))); }))),
13887
+ children,
13888
+ footer && (React$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
13889
+ React$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
13890
+ });
13891
+ CTable.propTypes = {
13892
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13893
+ borderColor: propTypesExports.string,
13894
+ bordered: propTypesExports.bool,
13895
+ borderless: propTypesExports.bool,
13896
+ caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
13897
+ captionTop: propTypesExports.string,
13898
+ children: propTypesExports.node,
13899
+ className: propTypesExports.string,
13900
+ color: colorPropType,
13901
+ columns: propTypesExports.array,
13902
+ footer: propTypesExports.array,
13903
+ hover: propTypesExports.bool,
13904
+ items: propTypesExports.array,
13905
+ responsive: propTypesExports.oneOfType([
13906
+ propTypesExports.bool,
13907
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13908
+ ]),
13909
+ small: propTypesExports.bool,
13910
+ striped: propTypesExports.bool,
13911
+ stripedColumns: propTypesExports.bool,
13912
+ tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
13913
+ tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
13914
+ };
13915
+ CTable.displayName = 'CTable';
13916
+
13917
+ var filterColumns = function (items, columnFilter, columnFilterState, itemsDataColumns) {
13918
+ if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
13919
+ return items;
13864
13920
  }
13865
- React$1.useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
13866
- var iconName = React$1.useMemo(function () {
13867
- return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
13868
- }, [change]);
13869
- var titleCode = title ? "<title>".concat(title, "</title>") : '';
13870
- var code = React$1.useMemo(function () {
13871
- if (Array.isArray(_icon)) {
13872
- return _icon;
13921
+ Object.entries(columnFilterState).forEach(function (_a) {
13922
+ var key = _a[0], value = _a[1];
13923
+ if (value instanceof Function) {
13924
+ items = items.filter(function (item) { return value(item[key]); });
13925
+ return;
13873
13926
  }
13874
- if (typeof _icon === 'string' && React$1['icons']) {
13875
- return React$1['icons'][iconName];
13927
+ var columnFilter = String(value).toLowerCase();
13928
+ if (columnFilter && itemsDataColumns.includes(key)) {
13929
+ items = items.filter(function (item) {
13930
+ return String(item[key]).toLowerCase().includes(columnFilter);
13931
+ });
13876
13932
  }
13877
- }, [change]);
13878
- var iconCode = React$1.useMemo(function () {
13879
- return Array.isArray(code) ? code[1] || code[0] : code;
13880
- }, [change]);
13881
- var scale = (function () {
13882
- return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
13883
- })();
13884
- var viewBox = (function () {
13885
- return rest['viewBox'] || "0 0 ".concat(scale);
13886
- })();
13887
- // render
13888
- var _className = customClassName
13889
- ? classNames(customClassName)
13890
- : classNames('icon', (_b = {},
13891
- _b["icon-".concat(size)] = size,
13892
- _b["icon-custom-size"] = height || width,
13893
- _b), className);
13894
- return use ? (React$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
13895
- React$1.createElement("use", { href: use }))) : (React$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 })));
13933
+ });
13934
+ return items;
13935
+ };
13936
+ var filterTable = function (items, tableFilter, tableFilterState, itemsDataColumns) {
13937
+ if (!tableFilterState ||
13938
+ (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
13939
+ return items;
13940
+ }
13941
+ var filter = tableFilterState.toLowerCase();
13942
+ var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
13943
+ items = items.filter(function (item) {
13944
+ return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
13945
+ });
13946
+ return items;
13947
+ };
13948
+ var getClickedColumnName = function (target, columnNames) {
13949
+ var closest = target.closest('tr');
13950
+ var children = closest ? Array.from(closest.children) : [];
13951
+ var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
13952
+ return columnNames[children.indexOf(clickedCell)];
13953
+ };
13954
+ var getColumnKey = function (column) {
13955
+ return typeof column === 'object' ? column.key : column;
13956
+ };
13957
+ var getColumnLabel = function (column) {
13958
+ return typeof column === 'object'
13959
+ ? column.label !== undefined
13960
+ ? column.label
13961
+ : pretifyName(column.key)
13962
+ : pretifyName(column);
13963
+ };
13964
+ var getColumnNames = function (columns, items) {
13965
+ return columns
13966
+ ? columns.map(function (column) {
13967
+ if (typeof column === 'object')
13968
+ return column.key;
13969
+ else
13970
+ return column;
13971
+ })
13972
+ : getColumnNamesFromItems(items);
13973
+ };
13974
+ var getColumnNamesFromItems = function (items) {
13975
+ return Object.keys(items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13976
+ };
13977
+ var getColumnSorterState = function (key, sorterState) {
13978
+ if (sorterState && sorterState.column === key) {
13979
+ if (sorterState.state) {
13980
+ return sorterState.state;
13981
+ }
13982
+ return 0;
13983
+ }
13984
+ return 0;
13985
+ };
13986
+ var getColumnValues = function (items, key) {
13987
+ return items.map(function (item) { return item[key]; });
13988
+ };
13989
+ var getTableDataCellProps = function (item, colName) {
13990
+ var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
13991
+ return props;
13992
+ };
13993
+ var getTableHeaderCellProps = function (column) {
13994
+ if (typeof column === 'object' && column._props) {
13995
+ return column._props;
13996
+ }
13997
+ return {};
13998
+ };
13999
+ var getTableHeaderCellStyles = function (column, columnSorter) {
14000
+ var style = {};
14001
+ if (columnSorter &&
14002
+ (typeof column !== 'object' ||
14003
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
14004
+ style['cursor'] = 'pointer';
14005
+ }
14006
+ if (typeof column === 'object' && column._style) {
14007
+ return __assign$1(__assign$1({}, style), column._style);
14008
+ }
14009
+ return style;
14010
+ };
14011
+ var isSortable = function (i, columns, columnSorter, itemsDataColumns, columnNames) {
14012
+ var isDataColumn = itemsDataColumns.includes(columnNames[i]);
14013
+ var column;
14014
+ if (columns)
14015
+ column = columns[i];
14016
+ return (columnSorter &&
14017
+ (!columns ||
14018
+ typeof column !== 'object' ||
14019
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter))) &&
14020
+ isDataColumn);
14021
+ };
14022
+ var pretifyName = function (name) {
14023
+ return name
14024
+ .replace(/[-_.]/g, ' ')
14025
+ .replace(/ +/g, ' ')
14026
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
14027
+ .split(' ')
14028
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
14029
+ .join(' ');
14030
+ };
14031
+ var sortItems = function (columnSorter, items, itemsDataColumns, sorterState) {
14032
+ var column = sorterState.column;
14033
+ if (!column ||
14034
+ !itemsDataColumns.includes(column) ||
14035
+ (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14036
+ return items;
14037
+ }
14038
+ var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14039
+ var sorted = items.slice().sort(function (item, item2) {
14040
+ var value = item[column];
14041
+ var value2 = item2[column];
14042
+ var a = typeof value === 'number' ? value : String(value).toLowerCase();
14043
+ var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14044
+ return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14045
+ });
14046
+ return sorted;
14047
+ };
14048
+
14049
+ var CSmartTableBody = React$1.forwardRef(function (_a, ref) {
14050
+ 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"]);
14051
+ var colspan = selectable ? columnNames.length + 1 : columnNames.length;
14052
+ return (React$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
14053
+ style: { cursor: 'pointer' },
14054
+ }), rest, { ref: ref }),
14055
+ currentItems.map(function (item, trIndex) {
14056
+ return (React$1.createElement(React$1.Fragment, { key: trIndex },
14057
+ React$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
14058
+ return onRowClick &&
14059
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), event);
14060
+ } }),
14061
+ selectable && (React$1.createElement(CTableDataCell, null,
14062
+ React$1.createElement(CFormCheck, { checked: selected &&
14063
+ isObjectInArray(selected, item, ['_cellProps', '_props', '_selected']), onChange: function (event) {
14064
+ var _item = __assign$1({}, item);
14065
+ delete _item['_cellProps'];
14066
+ delete _item['_props'];
14067
+ delete _item['_selected'];
14068
+ onRowChecked && onRowChecked(_item, event.target.checked);
14069
+ } }))),
14070
+ columnNames.map(function (colName, index) {
14071
+ return ((scopedColumns &&
14072
+ scopedColumns[colName] &&
14073
+ React$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
14074
+ key: index,
14075
+ })) || (React$1.createElement(CTableDataCell, __assign$1({}, getTableDataCellProps(item, colName), { key: index }), String(item[colName]))));
14076
+ })),
14077
+ scopedColumns && scopedColumns.details && (React$1.createElement(React$1.Fragment, null,
14078
+ React$1.createElement(CTableRow, null,
14079
+ React$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
14080
+ React$1.createElement(CTableRow, { onClick: function (event) {
14081
+ return onRowClick &&
14082
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), true);
14083
+ }, className: "p-0", key: "details".concat(trIndex) },
14084
+ React$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
14085
+ }),
14086
+ !currentItems.length && (React$1.createElement(CTableRow, null,
14087
+ React$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
13896
14088
  });
13897
- CIcon.propTypes = {
13898
- className: propTypes.exports.string,
13899
- content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13900
- customClassName: propTypes.exports.string,
13901
- height: propTypes.exports.number,
13902
- icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13903
- name: propTypes.exports.string,
13904
- size: propTypes.exports.oneOf([
13905
- 'custom',
13906
- 'custom-size',
13907
- 'sm',
13908
- 'lg',
13909
- 'xl',
13910
- 'xxl',
13911
- '3xl',
13912
- '4xl',
13913
- '5xl',
13914
- '6xl',
13915
- '7xl',
13916
- '8xl',
13917
- '9xl',
13918
- ]),
13919
- title: propTypes.exports.any,
13920
- use: propTypes.exports.any,
13921
- width: propTypes.exports.number,
14089
+ CSmartTableBody.propTypes = {
14090
+ clickableRows: propTypesExports.bool,
14091
+ currentItems: propTypesExports.array.isRequired,
14092
+ firstItemOnActivePageIndex: propTypesExports.number.isRequired,
14093
+ noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
14094
+ onRowChecked: propTypesExports.func,
14095
+ onRowClick: propTypesExports.func,
14096
+ columnNames: propTypesExports.array.isRequired,
14097
+ scopedColumns: propTypesExports.object,
14098
+ selectable: propTypesExports.bool,
14099
+ selected: propTypesExports.array,
13922
14100
  };
13923
- CIcon.displayName = 'CIcon';
14101
+ CSmartTableBody.displayName = 'CSmartTableBody';
13924
14102
 
13925
14103
  var CSmartTableCleaner = React$1.forwardRef(function (_a, ref) {
13926
14104
  var _b = _a.content, content = _b === void 0 ? React$1.createElement(CIcon, { width: 18, icon: cilFilterX }) : _b, isFiltered = _a.isFiltered, rest = __rest$1(_a, ["content", "isFiltered"]);
@@ -13935,23 +14113,20 @@ CSmartTableCleaner.propTypes = {
13935
14113
  };
13936
14114
  CSmartTableCleaner.displayName = 'CSmartTableCleaner';
13937
14115
 
13938
- var CSmartTableFilter = React$1.forwardRef(function (_a, ref) {
13939
- var filterLabel = _a.filterLabel, filterPlaceholder = _a.filterPlaceholder, value = _a.value, rest = __rest$1(_a, ["filterLabel", "filterPlaceholder", "value"]);
13940
- return (React$1.createElement("div", { className: "row mb-2" },
13941
- React$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, filterLabel),
13942
- React$1.createElement("div", { className: "col-sm-auto" },
13943
- React$1.createElement(CFormInput, __assign$1({ placeholder: filterPlaceholder, value: value }, rest, { ref: ref })))));
13944
- });
13945
- CSmartTableFilter.propTypes = {
13946
- filterLabel: propTypesExports.string,
13947
- filterPlaceholder: propTypesExports.string,
13948
- value: propTypesExports.oneOfType([propTypesExports.number, propTypesExports.string]),
13949
- };
13950
- CSmartTableFilter.displayName = 'CSmartTableFilter';
13951
-
13952
14116
  var CSmartTableHead = React$1.forwardRef(function (_a, ref) {
13953
- 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"]);
14117
+ 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"]);
14118
+ var selectAllcheckboxRef = React$1.useRef(null);
13954
14119
  var _c = React$1.useState(false), refresh = _c[0], setRefresh = _c[1];
14120
+ React$1.useEffect(function () {
14121
+ if (selectedAll === 'indeterminate') {
14122
+ if (selectAllcheckboxRef.current)
14123
+ selectAllcheckboxRef.current.indeterminate = true;
14124
+ }
14125
+ else {
14126
+ if (selectAllcheckboxRef.current)
14127
+ selectAllcheckboxRef.current.indeterminate = false;
14128
+ }
14129
+ }, [selectedAll]);
13955
14130
  React$1.useEffect(function () {
13956
14131
  if (columnFilterState && Object.keys(columnFilterState).length === 0) {
13957
14132
  setRefresh(true);
@@ -13965,83 +14140,24 @@ var CSmartTableHead = React$1.forwardRef(function (_a, ref) {
13965
14140
  setRefresh(false);
13966
14141
  }
13967
14142
  }, [refresh]);
13968
- var tableHeaderCellProps = function (column) {
13969
- if (typeof column === 'object' && column._props) {
13970
- return column._props;
13971
- }
13972
- return {};
13973
- };
13974
- var tableHeaderCellStyles = function (column) {
13975
- var style = { verticalAlign: 'middle', overflow: 'hidden', cursor: '' };
13976
- if (columnSorter &&
13977
- (typeof column !== 'object' ||
13978
- (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
13979
- style.cursor = 'pointer';
13980
- }
13981
- if (typeof column === 'object' && column._style) {
13982
- return __assign$1(__assign$1({}, style), column._style);
13983
- }
13984
- return style;
13985
- };
13986
- var pretifyName = function (name) {
13987
- return name
13988
- .replace(/[-_.]/g, ' ')
13989
- .replace(/ +/g, ' ')
13990
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13991
- .split(' ')
13992
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13993
- .join(' ');
13994
- };
13995
- var label = function (column) {
13996
- return typeof column === 'object'
13997
- ? column.label !== undefined
13998
- ? column.label
13999
- : pretifyName(column.key)
14000
- : pretifyName(column);
14001
- };
14002
- var key = function (column) { return (typeof column === 'object' ? column.key : column); };
14003
- var getColumnSorterState = function (key) {
14004
- if (sorterState && sorterState.column === key) {
14005
- if (sorterState.state) {
14006
- return sorterState.state;
14007
- }
14008
- return 0;
14009
- }
14010
- return 0;
14011
- };
14012
- var getValues = function (items, key) {
14013
- return items.map(function (a) { return a[key]; });
14014
- };
14015
14143
  var columnSorterIcon = function (column) {
14016
- if (getColumnSorterState(key(column)) === 0) {
14144
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
14017
14145
  return React$1.createElement("span", { className: "opacity-25 float-end me-1" }, sortingIcon);
14018
14146
  }
14019
- if (getColumnSorterState(key(column)) === 'asc') {
14147
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'asc') {
14020
14148
  return React$1.createElement("span", { className: "float-end me-1" }, sortingIconAscending);
14021
14149
  }
14022
- if (getColumnSorterState(key(column)) === 'desc') {
14150
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'desc') {
14023
14151
  return React$1.createElement("span", { className: "float-end me-1" }, sortingIconDescending);
14024
14152
  }
14025
14153
  return;
14026
14154
  };
14027
- var checkboxRef = React$1.useRef(null);
14028
- React$1.useEffect(function () {
14029
- if (selectAll === 'indeterminate') {
14030
- if (checkboxRef.current)
14031
- checkboxRef.current.indeterminate = true;
14032
- }
14033
- else {
14034
- if (checkboxRef.current)
14035
- checkboxRef.current.indeterminate = false;
14036
- }
14037
- }, [selectAll]);
14038
14155
  return (React$1.createElement(Component, __assign$1({}, rest, { ref: ref }),
14039
14156
  React$1.createElement(CTableRow, null,
14040
- selectable && (React$1.createElement(CTableHeaderCell, null,
14041
- React$1.createElement(CFormCheck, { checked: typeof selectAll === 'boolean' ? selectAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: checkboxRef }))),
14157
+ selectable && (React$1.createElement(CTableHeaderCell, null, selectAll && (React$1.createElement(CFormCheck, { checked: typeof selectedAll === 'boolean' ? selectedAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: selectAllcheckboxRef })))),
14042
14158
  columns.map(function (column, index) {
14043
- return (React$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(key(column), index); }, style: tableHeaderCellStyles(column), key: index }),
14044
- React$1.createElement("div", { className: "d-inline" }, label(column)),
14159
+ return (React$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(getColumnKey(column), index); }, style: getTableHeaderCellStyles(column, columnSorter), key: index }),
14160
+ React$1.createElement("div", { className: "d-inline" }, getColumnLabel(column)),
14045
14161
  columnSorter &&
14046
14162
  (typeof column !== 'object'
14047
14163
  ? true
@@ -14053,23 +14169,23 @@ var CSmartTableHead = React$1.forwardRef(function (_a, ref) {
14053
14169
  columnFilter && (React$1.createElement(CTableRow, null,
14054
14170
  selectable && React$1.createElement(CTableHeaderCell, null),
14055
14171
  columns.map(function (column, index) {
14056
- return (React$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14172
+ return (React$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14057
14173
  ? true
14058
14174
  : typeof column.filter === 'undefined'
14059
14175
  ? true
14060
14176
  : column.filter) ? (typeof column !== 'string' && typeof column.filter === 'function' ? (!refresh &&
14061
- column.filter(getValues(items, key(column)), function (value) {
14177
+ column.filter(getColumnValues(items, getColumnKey(column)), function (value) {
14062
14178
  return handleOnCustomFilterChange &&
14063
- handleOnCustomFilterChange(key(column), value);
14179
+ handleOnCustomFilterChange(getColumnKey(column), value);
14064
14180
  })) : (React$1.createElement(CFormInput, { size: "sm", onInput: function (event) {
14065
14181
  return handleFilterOnInput &&
14066
- handleFilterOnInput(key(column), event.target.value);
14182
+ handleFilterOnInput(getColumnKey(column), event.target.value);
14067
14183
  }, onChange: function (event) {
14068
14184
  return handleFilterOnChange &&
14069
- handleFilterOnChange(key(column), event.target.value);
14070
- }, value: columnFilterState && columnFilterState[key(column)]
14071
- ? columnFilterState[key(column)]
14072
- : '', "aria-label": "column name: '".concat(label(column), "' filter input") }))) : ('')));
14185
+ handleFilterOnChange(getColumnKey(column), event.target.value);
14186
+ }, value: columnFilterState && columnFilterState[getColumnKey(column)]
14187
+ ? columnFilterState[getColumnKey(column)]
14188
+ : '', "aria-label": "column name: '".concat(getColumnLabel(column), "' filter input") }))) : ('')));
14073
14189
  })))));
14074
14190
  });
14075
14191
  CSmartTableHead.propTypes = {
@@ -14084,7 +14200,8 @@ CSmartTableHead.propTypes = {
14084
14200
  handleSelectAllChecked: propTypesExports.func,
14085
14201
  handleSort: propTypesExports.func,
14086
14202
  selectable: propTypesExports.bool,
14087
- selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14203
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14204
+ selectedAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14088
14205
  sorterState: propTypesExports.object,
14089
14206
  sortingIcon: propTypesExports.node,
14090
14207
  sortingIconAscending: propTypesExports.node,
@@ -14092,72 +14209,152 @@ CSmartTableHead.propTypes = {
14092
14209
  };
14093
14210
  CSmartTableHead.displayName = 'CSmartTableHead';
14094
14211
 
14095
- var CSmartTableItemsPerPageSelector = React$1.forwardRef(function (_a, ref) {
14096
- var itemsPerPage = _a.itemsPerPage, itemsPerPageLabel = _a.itemsPerPageLabel, itemsPerPageOptions = _a.itemsPerPageOptions, rest = __rest$1(_a, ["itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions"]);
14097
- return (React$1.createElement("div", { className: "row" },
14098
- React$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14099
- React$1.createElement("div", { className: "col-auto" },
14100
- React$1.createElement(CFormSelect, __assign$1({ defaultValue: itemsPerPage }, rest, { ref: ref }), itemsPerPageOptions &&
14101
- itemsPerPageOptions.map(function (number, index) {
14102
- return (React$1.createElement("option", { value: number, key: index }, number));
14103
- })))));
14104
- });
14105
- CSmartTableItemsPerPageSelector.propTypes = {
14106
- itemsPerPage: propTypesExports.number,
14107
- itemsPerPageLabel: propTypesExports.string,
14108
- itemsPerPageOptions: propTypesExports.array,
14109
- };
14110
- CSmartTableItemsPerPageSelector.displayName = 'CSmartTableItemsPerPageSelector';
14111
-
14112
14212
  var CSmartTable = React$1.forwardRef(function (_a, ref) {
14113
14213
  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
14114
- 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$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _h, _j = _a.sortingIconAscending, sortingIconAscending = _j === void 0 ? React$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _j, _k = _a.sortingIconDescending, sortingIconDescending = _k === void 0 ? React$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
14115
- 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"]);
14116
- // instance data
14214
+ 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$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _j, _k = _a.sortingIconAscending, sortingIconAscending = _k === void 0 ? React$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _k, _l = _a.sortingIconDescending, sortingIconDescending = _l === void 0 ? React$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
14215
+ 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"]);
14117
14216
  var mountedRef = React$1.useRef(false);
14118
- var _o = React$1.useState(activePage), _activePage = _o[0], setActivePage = _o[1];
14119
- var _p = React$1.useState([]), _items = _p[0], setItems = _p[1];
14120
- var _q = React$1.useState(itemsPerPage), _itemsPerPage = _q[0], setItemsPerPage = _q[1];
14121
- var _r = React$1.useState({}), columnFilterState = _r[0], setColumnFilterState = _r[1];
14122
- var _s = React$1.useState(), selectedAll = _s[0], setSelectedAll = _s[1];
14123
- var _t = React$1.useState({}), sorterState = _t[0], setSorterState = _t[1];
14124
- var _u = React$1.useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _u[0], setTableFilterState = _u[1];
14217
+ var _p = React$1.useState(activePage), _activePage = _p[0], setActivePage = _p[1];
14218
+ var _q = React$1.useState([]), _items = _q[0], setItems = _q[1];
14219
+ var _r = React$1.useState(itemsNumber), _itemsNumber = _r[0], setItemsNumber = _r[1];
14220
+ var _s = React$1.useState(itemsPerPage), _itemsPerPage = _s[0], setItemsPerPage = _s[1];
14221
+ var _t = React$1.useState([]), _selected = _t[0], setSelected = _t[1];
14222
+ var _u = React$1.useState({}), columnFilterState = _u[0], setColumnFilterState = _u[1];
14223
+ var _v = React$1.useState(), selectedAll = _v[0], setSelectedAll = _v[1];
14224
+ var _w = React$1.useState({}), sorterState = _w[0], setSorterState = _w[1];
14225
+ var _x = React$1.useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _x[0], setTableFilterState = _x[1];
14125
14226
  React$1.useEffect(function () {
14126
14227
  setActivePage(activePage);
14127
14228
  }, [activePage]);
14128
- // watch
14129
- React$1.useMemo(function () {
14229
+ React$1.useEffect(function () {
14130
14230
  if (items && items.length < _itemsPerPage * _activePage - _itemsPerPage) {
14131
14231
  setActivePage(1);
14132
14232
  }
14133
- // Create the internal array of items
14134
- Array.isArray(items) &&
14135
- setItems(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
14136
- return __assign$1(__assign$1({}, item), { _id: index });
14137
- }));
14233
+ items &&
14234
+ items.forEach(function (item) {
14235
+ if (item._selected) {
14236
+ var _item = __assign$1({}, item);
14237
+ delete _item['_cellProps'];
14238
+ delete _item['_props'];
14239
+ delete _item['_selected'];
14240
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [_item], false));
14241
+ }
14242
+ });
14243
+ if (Array.isArray(items)) {
14244
+ setItems(items);
14245
+ setItemsNumber(itemsNumber || items.length);
14246
+ }
14138
14247
  }, [JSON.stringify(items)]);
14139
- React$1.useMemo(function () {
14248
+ React$1.useEffect(function () {
14249
+ Array.isArray(selected) && setSelected(selected);
14250
+ }, [JSON.stringify(selected)]);
14251
+ React$1.useEffect(function () {
14252
+ itemsNumber && setItemsNumber(itemsNumber);
14253
+ }, [itemsNumber]);
14254
+ React$1.useEffect(function () {
14140
14255
  columnFilterValue && setColumnFilterState(columnFilterValue);
14141
14256
  }, [JSON.stringify(columnFilterValue)]);
14142
- React$1.useMemo(function () {
14257
+ React$1.useEffect(function () {
14143
14258
  setSorterState(__assign$1({}, sorterValue));
14144
14259
  }, [JSON.stringify(sorterValue)]);
14145
- React$1.useMemo(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14146
- // functions
14147
- var isSortable = function (i) {
14148
- var isDataColumn = itemsDataColumns.includes(rawColumnNames[i]);
14149
- var column;
14150
- if (columns)
14151
- column = columns[i];
14152
- return (columnSorter &&
14153
- (!columns ||
14154
- typeof column !== 'object' ||
14155
- (typeof column === 'object' &&
14156
- (typeof column.sorter === 'undefined' || column.sorter))) &&
14157
- isDataColumn);
14158
- };
14159
- var sorterChange = function (column, index) {
14160
- if (!isSortable(index)) {
14260
+ React$1.useEffect(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14261
+ React$1.useEffect(function () {
14262
+ mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14263
+ }, [_activePage]);
14264
+ React$1.useEffect(function () {
14265
+ mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14266
+ itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14267
+ }, [_itemsPerPage]);
14268
+ React$1.useEffect(function () {
14269
+ mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14270
+ }, [JSON.stringify(sorterState)]);
14271
+ React$1.useEffect(function () {
14272
+ mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14273
+ }, [columnFilterState]);
14274
+ React$1.useEffect(function () {
14275
+ mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14276
+ }, [tableFilterState]);
14277
+ React$1.useEffect(function () {
14278
+ if (selectable) {
14279
+ onSelectedItemsChange && onSelectedItemsChange(_selected);
14280
+ if (_selected.length === _itemsNumber) {
14281
+ setSelectedAll(true);
14282
+ return;
14283
+ }
14284
+ if (_selected.length === 0) {
14285
+ setSelectedAll(false);
14286
+ return;
14287
+ }
14288
+ if (_selected.length !== 0 && _selected.length !== _itemsNumber) {
14289
+ setSelectedAll('indeterminate');
14290
+ }
14291
+ }
14292
+ }, [JSON.stringify(_selected), _itemsNumber]);
14293
+ var columnNames = React$1.useMemo(function () { return getColumnNames(columns, _items); }, [columns, _items]);
14294
+ var itemsDataColumns = React$1.useMemo(function () { return columnNames.filter(function (name) { return getColumnNamesFromItems(_items).includes(name); }); }, [columnNames, _items]);
14295
+ var filteredColumns = React$1.useMemo(function () { return filterColumns(_items, columnFilter, columnFilterState, itemsDataColumns); }, [columnFilterState, JSON.stringify(_items)]);
14296
+ var filteredTable = React$1.useMemo(function () { return filterTable(filteredColumns, tableFilter, tableFilterState, itemsDataColumns); }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14297
+ var sortedItems = React$1.useMemo(function () { return sortItems(columnSorter, filteredTable, itemsDataColumns, sorterState); }, [
14298
+ JSON.stringify(filteredTable),
14299
+ JSON.stringify(sorterState),
14300
+ JSON.stringify(columnSorter),
14301
+ JSON.stringify(filteredColumns),
14302
+ JSON.stringify(_items),
14303
+ ]);
14304
+ var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14305
+ var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14306
+ var currentItems = _activePage
14307
+ ? sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage)
14308
+ : sortedItems;
14309
+ React$1.useEffect(function () {
14310
+ mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14311
+ }, [JSON.stringify(sortedItems)]);
14312
+ var handleClean = function () {
14313
+ setTableFilterState('');
14314
+ setColumnFilterState({});
14315
+ setSorterState({});
14316
+ };
14317
+ var handleColumnFilterChange = function (colName, value, type) {
14318
+ var _a;
14319
+ var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14320
+ if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14321
+ return;
14322
+ }
14323
+ var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14324
+ setActivePage(1);
14325
+ setColumnFilterState(newState);
14326
+ };
14327
+ var handleItemsPerPageChange = function (event) {
14328
+ if (typeof itemsPerPageSelect !== 'object' ||
14329
+ (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external)) {
14330
+ setItemsPerPage(Number(event.target.value));
14331
+ }
14332
+ };
14333
+ var handleRowChecked = function (item, value) {
14334
+ if (value && !isObjectInArray(_selected, item, ['_cellProps', '_props', '_selected'])) {
14335
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [item], false));
14336
+ return;
14337
+ }
14338
+ setSelected(_selected.filter(function (_item) { return !isObjectInArray([_item], item, ['_cellProps', '_props', '_selected']); }));
14339
+ };
14340
+ var handleSelectAllChecked = function () {
14341
+ if (selectedAll === true) {
14342
+ setSelected([]);
14343
+ return;
14344
+ }
14345
+ onSelectAll && onSelectAll();
14346
+ if (selectAll && typeof selectAll === 'object' && selectAll.external) {
14347
+ return;
14348
+ }
14349
+ setSelected(_items.map(function (item) {
14350
+ delete item['_cellProps'];
14351
+ delete item['_props'];
14352
+ delete item['_selected'];
14353
+ return item;
14354
+ }));
14355
+ };
14356
+ var handleSorterChange = function (column, index) {
14357
+ if (!isSortable(index, columns, columnSorter, itemsDataColumns, columnNames)) {
14161
14358
  return;
14162
14359
  }
14163
14360
  //if column changed or sort was descending change asc to true
@@ -14184,22 +14381,7 @@ var CSmartTable = React$1.forwardRef(function (_a, ref) {
14184
14381
  }
14185
14382
  setSorterState(__assign$1({}, state));
14186
14383
  };
14187
- var itemsPerPageChange = function (event) {
14188
- if (typeof itemsPerPageSelect !== 'object' ||
14189
- (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external))
14190
- setItemsPerPage(Number(event.target.value));
14191
- };
14192
- var columnFilterChange = function (colName, value, type) {
14193
- var _a;
14194
- var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14195
- if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14196
- return;
14197
- }
14198
- var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14199
- setActivePage(1);
14200
- setColumnFilterState(newState);
14201
- };
14202
- var tableFilterChange = function (value, type) {
14384
+ var handleTableFilterChange = function (value, type) {
14203
14385
  var isLazy = tableFilter && typeof tableFilter === 'object' && tableFilter.lazy === true;
14204
14386
  if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14205
14387
  return;
@@ -14207,171 +14389,55 @@ var CSmartTable = React$1.forwardRef(function (_a, ref) {
14207
14389
  setActivePage(1);
14208
14390
  setTableFilterState(value);
14209
14391
  };
14210
- var clean = function () {
14211
- setTableFilterState('');
14212
- setColumnFilterState({});
14213
- setSorterState({});
14214
- };
14215
- // computed
14216
- var genCols = Object.keys(_items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
14217
- var rawColumnNames = columns
14218
- ? columns.map(function (column) {
14219
- if (typeof column === 'object')
14220
- return column.key;
14221
- else
14222
- return column;
14223
- })
14224
- : genCols; //! || el
14225
- var itemsDataColumns = rawColumnNames.filter(function (name) { return genCols.includes(name); });
14226
- // variables
14227
- var filteredColumns = React$1.useMemo(function () {
14228
- var items = _items;
14229
- if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
14230
- return items;
14231
- }
14232
- Object.entries(columnFilterState).forEach(function (_a) {
14233
- var key = _a[0], value = _a[1];
14234
- if (value instanceof Function) {
14235
- items = items.filter(function (item) { return value(item[key]); });
14236
- return;
14237
- }
14238
- var columnFilter = String(value).toLowerCase();
14239
- if (columnFilter && itemsDataColumns.includes(key)) {
14240
- items = items.filter(function (item) {
14241
- return String(item[key]).toLowerCase().includes(columnFilter);
14242
- });
14243
- }
14244
- });
14245
- return items;
14246
- }, [columnFilterState, JSON.stringify(_items)]);
14247
- var filteredTable = React$1.useMemo(function () {
14248
- var items = filteredColumns;
14249
- if (!tableFilterState ||
14250
- (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
14251
- return items;
14252
- }
14253
- var filter = tableFilterState.toLowerCase();
14254
- var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
14255
- items = items.filter(function (item) {
14256
- return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
14257
- });
14258
- return items;
14259
- }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14260
- var sortedItems = React$1.useMemo(function () {
14261
- var col = sorterState === null || sorterState === void 0 ? void 0 : sorterState.column;
14262
- if (!col ||
14263
- !itemsDataColumns.includes(col) ||
14264
- (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14265
- return filteredTable;
14266
- }
14267
- var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14268
- var sorted = filteredTable.slice().sort(function (item, item2) {
14269
- var value = item[col];
14270
- var value2 = item2[col];
14271
- var a = typeof value === 'number' ? value : String(value).toLowerCase();
14272
- var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14273
- return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14274
- });
14275
- return sorted;
14276
- }, [
14277
- JSON.stringify(filteredTable),
14278
- JSON.stringify(sorterState),
14279
- JSON.stringify(columnSorter),
14280
- JSON.stringify(filteredColumns),
14281
- JSON.stringify(_items),
14282
- ]);
14283
- var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14284
- var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14285
- var itemsOnActivePage = sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage);
14286
- var currentItems = _activePage ? itemsOnActivePage : sortedItems;
14287
- var isFiltered = tableFilterState || (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) || Object.values(columnFilterState).join('');
14288
- // effects
14289
- React$1.useEffect(function () {
14290
- mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14291
- }, [_activePage]);
14292
- React$1.useEffect(function () {
14293
- mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14294
- itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14295
- }, [_itemsPerPage]);
14296
- React$1.useEffect(function () {
14297
- mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14298
- }, [JSON.stringify(sorterState)]);
14299
- React$1.useEffect(function () {
14300
- mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14301
- }, [columnFilterState]);
14302
- React$1.useEffect(function () {
14303
- mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14304
- }, [tableFilterState]);
14305
- React$1.useEffect(function () {
14306
- mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14307
- }, [JSON.stringify(sortedItems)]);
14308
- var handleRowChecked = function (id, value) {
14309
- var newArr = __spreadArray([], _items, true);
14310
- newArr[id]._selected = value;
14311
- setItems(newArr);
14312
- };
14313
- var handleSelectAllChecked = function () {
14314
- if (selectedAll === true) {
14315
- setItems(_items.map(function (item) {
14316
- return __assign$1(__assign$1({}, item), { _selected: false });
14317
- }));
14318
- return;
14319
- }
14320
- setItems(_items.map(function (item) {
14321
- return __assign$1(__assign$1({}, item), { _selected: true });
14322
- }));
14323
- };
14324
- React$1.useEffect(function () {
14325
- if (selectable) {
14326
- var selected = _items.filter(function (item) { return item._selected === true; });
14327
- onSelectedItemsChange && onSelectedItemsChange(selected);
14328
- if (selected.length === _items.length) {
14329
- setSelectedAll(true);
14330
- return;
14331
- }
14332
- if (selected.length === 0) {
14333
- setSelectedAll(false);
14334
- return;
14335
- }
14336
- if (selected.length !== 0 && selected.length !== _items.length) {
14337
- setSelectedAll('indeterminate');
14338
- }
14339
- }
14340
- }, [_items]);
14341
14392
  React$1.useEffect(function () {
14342
14393
  mountedRef.current = true;
14343
14394
  }, []);
14344
14395
  return (React$1.createElement(React$1.Fragment, null,
14345
14396
  React$1.createElement("div", __assign$1({}, rest, { ref: ref }), (itemsPerPageSelect || tableFilter || cleaner) && (React$1.createElement("div", { className: "row my-2 mx-0" }, (tableFilter || cleaner) && (React$1.createElement(React$1.Fragment, null,
14346
- React$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React$1.createElement(CSmartTableFilter, { filterLabel: tableFilterLabel, filterPlaceholder: tableFilterPlaceholder, onInput: function (e) {
14347
- tableFilterChange(e.target.value, 'input');
14348
- }, onChange: function (e) {
14349
- tableFilterChange(e.target.value, 'change');
14350
- }, value: tableFilterState || '' }))),
14351
- React$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React$1.createElement(CSmartTableCleaner, { isFiltered: isFiltered, onClick: function () { return clean(); }, onKeyUp: function (event) {
14397
+ React$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React$1.createElement("div", { className: "row mb-2" },
14398
+ React$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, tableFilterLabel),
14399
+ React$1.createElement("div", { className: "col-sm-auto" },
14400
+ React$1.createElement(CFormInput, { onInput: function (e) {
14401
+ handleTableFilterChange(e.target.value, 'input');
14402
+ }, onChange: function (e) {
14403
+ handleTableFilterChange(e.target.value, 'change');
14404
+ }, placeholder: tableFilterPlaceholder, value: tableFilterState || '' }))))),
14405
+ React$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React$1.createElement(CSmartTableCleaner, { isFiltered: tableFilterState ||
14406
+ (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) ||
14407
+ Object.values(columnFilterState).join(''), onClick: function () { return handleClean(); }, onKeyUp: function (event) {
14352
14408
  if (event.key === 'Enter')
14353
- clean();
14409
+ handleClean();
14354
14410
  } })))))))),
14355
14411
  React$1.createElement("div", { className: "position-relative" },
14356
14412
  React$1.createElement(CTable, __assign$1({}, tableProps),
14357
- header && (React$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); } }))),
14413
+ header && (React$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) {
14414
+ return handleColumnFilterChange(key, event, 'change');
14415
+ }, 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); } }))),
14358
14416
  React$1.createElement(CSmartTableBody, __assign$1({ clickableRows: clickableRows, currentItems: currentItems, firstItemOnActivePageIndex: firstItemOnActivePageIndex, noItemsLabel: noItemsLabel, onRowClick: function (item, index, columnName, event) {
14359
14417
  return clickableRows && onRowClick && onRowClick(item, index, columnName, event);
14360
- }, onRowChecked: function (id, value) { return handleRowChecked(id, value); }, rawColumnNames: rawColumnNames, scopedColumns: scopedColumns, selectable: selectable }, tableBodyProps)),
14361
- typeof footer === 'boolean' && footer && (React$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 }))),
14418
+ }, onRowChecked: function (item, value) { return handleRowChecked(item, value); }, columnNames: columnNames, scopedColumns: scopedColumns, selectable: selectable, selected: _selected }, tableBodyProps)),
14419
+ typeof footer === 'boolean' && footer && (React$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 }))),
14362
14420
  Array.isArray(footer) && (React$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
14363
14421
  React$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); }))))),
14364
14422
  loading && (React$1.createElement(CElementCover, { boundaries: [
14365
- { sides: ['top'], query: 'td' },
14423
+ { sides: ['top'], query: 'tbody' },
14366
14424
  { sides: ['bottom'], query: 'tbody' },
14367
- ] }))),
14425
+ ] }, elementCover))),
14368
14426
  (pagination || itemsPerPageSelect) && (React$1.createElement("div", { className: "row" },
14369
14427
  React$1.createElement("div", { className: "col" }, ((pagination && numberOfPages > 1) || paginationProps) && (React$1.createElement(CSmartPagination, __assign$1({ activePage: _activePage, onActivePageChange: function (page) {
14370
14428
  pagination && typeof pagination === 'object' && pagination.external
14371
14429
  ? onActivePageChange && onActivePageChange(page)
14372
14430
  : setActivePage(page);
14373
14431
  }, pages: numberOfPages }, paginationProps)))),
14374
- React$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React$1.createElement(CSmartTableItemsPerPageSelector, { itemsPerPage: _itemsPerPage, itemsPerPageLabel: itemsPerPageLabel, itemsPerPageOptions: itemsPerPageOptions, onChange: function (event) { return itemsPerPageChange(event); } })))))));
14432
+ React$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React$1.createElement("div", { className: "row" },
14433
+ React$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14434
+ React$1.createElement("div", { className: "col-auto" },
14435
+ React$1.createElement(CFormSelect, { defaultValue: _itemsPerPage, onChange: function (event) {
14436
+ return handleItemsPerPageChange(event);
14437
+ } }, itemsPerPageOptions &&
14438
+ itemsPerPageOptions.map(function (number, index) {
14439
+ return (React$1.createElement("option", { value: number, key: index }, number));
14440
+ }))))))))));
14375
14441
  });
14376
14442
  CSmartTable.propTypes = {
14377
14443
  activePage: propTypesExports.number,
@@ -14381,9 +14447,11 @@ CSmartTable.propTypes = {
14381
14447
  columnFilterValue: propTypesExports.object,
14382
14448
  columns: propTypesExports.array,
14383
14449
  columnSorter: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14450
+ elementCover: propTypesExports.node,
14384
14451
  footer: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.array]),
14385
14452
  header: propTypesExports.bool,
14386
14453
  items: propTypesExports.array,
14454
+ itemsNumber: propTypesExports.number,
14387
14455
  itemsPerPage: propTypesExports.number,
14388
14456
  itemsPerPageLabel: propTypesExports.string,
14389
14457
  itemsPerPageOptions: propTypesExports.array,
@@ -14395,6 +14463,7 @@ CSmartTable.propTypes = {
14395
14463
  onFilteredItemsChange: propTypesExports.func,
14396
14464
  onItemsPerPageChange: propTypesExports.func,
14397
14465
  onRowClick: propTypesExports.func,
14466
+ onSelectAll: propTypesExports.func,
14398
14467
  onSelectedItemsChange: propTypesExports.func,
14399
14468
  onSorterChange: propTypesExports.func,
14400
14469
  onTableFilterChange: propTypesExports.func,
@@ -14402,6 +14471,8 @@ CSmartTable.propTypes = {
14402
14471
  paginationProps: propTypesExports.any,
14403
14472
  scopedColumns: propTypesExports.object,
14404
14473
  selectable: propTypesExports.bool,
14474
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14475
+ selected: propTypesExports.array,
14405
14476
  sorterValue: propTypesExports.object,
14406
14477
  sortingIcon: propTypesExports.node,
14407
14478
  sortingIconAscending: propTypesExports.node,
@@ -14999,6 +15070,7 @@ exports.CDropdownItem = CDropdownItem;
14999
15070
  exports.CDropdownItemPlain = CDropdownItemPlain;
15000
15071
  exports.CDropdownMenu = CDropdownMenu;
15001
15072
  exports.CDropdownToggle = CDropdownToggle;
15073
+ exports.CElementCover = CElementCover;
15002
15074
  exports.CFooter = CFooter;
15003
15075
  exports.CForm = CForm;
15004
15076
  exports.CFormCheck = CFormCheck;