@coreui/react-pro 4.1.3 → 4.1.4

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.
package/README.md CHANGED
@@ -43,7 +43,7 @@
43
43
 
44
44
  Several quick start options are available:
45
45
 
46
- - [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.1.3.zip)
46
+ - [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.1.4.zip)
47
47
  - Clone the repo: `git clone https://github.com/coreui/coreui-react.git`
48
48
  - Install with [npm](https://www.npmjs.com/): `npm install @coreui/react`
49
49
  - Install with [yarn](https://yarnpkg.com/): `yarn add @coreui/react`
@@ -10,5 +10,5 @@ export declare type Shapes = 'rounded' | 'rounded-top' | 'rounded-end' | 'rounde
10
10
  export declare const shapePropType: PropTypes.Requireable<string>;
11
11
  export declare type TextColors = Colors | 'white' | 'muted' | 'high-emphasis' | 'medium-emphasis' | 'disabled' | 'high-emphasis-inverse' | 'medium-emphasis-inverse' | 'disabled-inverse' | string;
12
12
  export declare const textColorsPropType: PropTypes.Requireable<string>;
13
- export declare type Triggers = 'hover' | 'focus' | 'click';
13
+ export declare type Triggers = 'hover' | 'focus' | 'click' | 'click-init';
14
14
  export declare const triggerPropType: PropTypes.Requireable<Triggers>;
@@ -0,0 +1,15 @@
1
+ import { FC, HTMLAttributes } from 'react';
2
+ import { Triggers } from '../Types';
3
+ export interface CDropdownToggleCustomProps extends HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Toggle the disabled state for the component.
6
+ */
7
+ disabled?: boolean;
8
+ /**
9
+ * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
10
+ *
11
+ * @type 'hover' | 'focus' | 'click'
12
+ */
13
+ trigger?: Triggers | Triggers[];
14
+ }
15
+ export declare const CDropdownToggleCustom: FC<CDropdownToggleCustomProps>;
@@ -49,8 +49,6 @@ export interface SorterValue {
49
49
  export interface TableFilter {
50
50
  lazy?: boolean;
51
51
  external?: boolean;
52
- label?: string;
53
- placeholder?: string;
54
52
  }
55
53
  export interface NoItemsView {
56
54
  noResults?: string;
@@ -63,14 +61,9 @@ export interface CSmartTableProps extends HTMLAttributes<HTMLDivElement> {
63
61
  * @default 1
64
62
  */
65
63
  activePage?: number;
66
- /**
67
- * A string of all className you want applied to the base component.
68
- */
69
- className?: string;
70
64
  /**
71
65
  * When set, displays table cleaner above table, next to the table filter (or in place of table filter if `tableFilter` prop is not set)
72
66
  * Cleaner resets `tableFilterValue`, `columnFilterValue`, `sorterValue`. If clean is possible it is clickable (`tabIndex="0"` `role="button"`, `color="danger"`), otherwise it is not clickable and transparent. Cleaner can be customized through the `cleaner` slot.
73
- *
74
67
  */
75
68
  cleaner?: boolean;
76
69
  /**
@@ -264,8 +257,6 @@ export interface CSmartTableProps extends HTMLAttributes<HTMLDivElement> {
264
257
  * When set, displays table filter above table, allowing filtering by specific column.
265
258
  *
266
259
  * Column filter can be customized, by passing prop as object with additional options as keys. Available options:
267
- * - placeholder (String) - Sets custom table filter placeholder.
268
- * - label (String) - Sets custom table filter label.
269
260
  * - external (Boolean) - Disables automatic filtering inside component.
270
261
  * - lazy (Boolean) - Set to true to trigger filter updates only on change event.
271
262
  */
package/dist/index.d.ts CHANGED
@@ -39,6 +39,7 @@ import { CDropdownItem } from './components/dropdown/CDropdownItem';
39
39
  import { CDropdownItemPlain } from './components/dropdown/CDropdownItemPlain';
40
40
  import { CDropdownMenu } from './components/dropdown/CDropdownMenu';
41
41
  import { CDropdownToggle } from './components/dropdown/CDropdownToggle';
42
+ import { CDropdownToggleCustom } from './components/dropdown/CDropdownToggleCustom';
42
43
  import { CCol } from './components/grid/CCol';
43
44
  import { CContainer } from './components/grid/CContainer';
44
45
  import { CRow } from './components/grid/CRow';
@@ -121,5 +122,5 @@ import { CToastClose } from './components/toast/CToastClose';
121
122
  import { CToastHeader } from './components/toast/CToastHeader';
122
123
  import { CToaster } from './components/toast/CToaster';
123
124
  import { CTooltip } from './components/tooltip/CTooltip';
124
- export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBadge, CBackdrop, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCollapse, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CCol, CContainer, CRow, CFooter, CCardGroup, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CImage, CInputGroup, CInputGroupText, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CSmartPagination, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarToggler, CSidebarHeader, CSidebarNav, CSmartTable, CSpinner, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTabContent, CTabPane, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, };
125
+ export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBadge, CBackdrop, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCollapse, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CDropdownToggleCustom, CCol, CContainer, CRow, CFooter, CCardGroup, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CImage, CInputGroup, CInputGroupText, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CSmartPagination, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarToggler, CSidebarHeader, CSidebarNav, CSmartTable, CSpinner, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTabContent, CTabPane, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, };
125
126
  export * from './components/';
package/dist/index.es.js CHANGED
@@ -852,7 +852,7 @@ var factoryWithTypeCheckers$1 = function(isValidElement, throwOnDirectAccess) {
852
852
  if (checkerResult == null) {
853
853
  return null;
854
854
  }
855
- if (checkerResult.data.hasOwnProperty('expectedType')) {
855
+ if (checkerResult.data && has$2(checkerResult.data, 'expectedType')) {
856
856
  expectedTypes.push(checkerResult.data.expectedType);
857
857
  }
858
858
  }
@@ -2603,7 +2603,7 @@ var textColorsPropType = PropTypes$1.oneOfType([
2603
2603
  PropTypes$1.oneOf(['white', 'muted']),
2604
2604
  PropTypes$1.string,
2605
2605
  ]);
2606
- var triggerPropType = PropTypes$1.oneOf(['hover', 'focus', 'click']);
2606
+ var triggerPropType = PropTypes$1.oneOf(['hover', 'focus', 'click', 'click-init']);
2607
2607
 
2608
2608
  var CCloseButton = forwardRef(function (_a, ref) {
2609
2609
  var className = _a.className, disabled = _a.disabled, white = _a.white, rest = __rest$1(_a, ["className", "disabled", "white"]);
@@ -3773,13 +3773,21 @@ function mapToStyles(_ref2) {
3773
3773
  adaptive = _ref2.adaptive,
3774
3774
  roundOffsets = _ref2.roundOffsets,
3775
3775
  isFixed = _ref2.isFixed;
3776
+ var _offsets$x = offsets.x,
3777
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
3778
+ _offsets$y = offsets.y,
3779
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
3776
3780
 
3777
- var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
3778
- _ref3$x = _ref3.x,
3779
- x = _ref3$x === void 0 ? 0 : _ref3$x,
3780
- _ref3$y = _ref3.y,
3781
- y = _ref3$y === void 0 ? 0 : _ref3$y;
3781
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
3782
+ x: x,
3783
+ y: y
3784
+ }) : {
3785
+ x: x,
3786
+ y: y
3787
+ };
3782
3788
 
3789
+ x = _ref3.x;
3790
+ y = _ref3.y;
3783
3791
  var hasX = offsets.hasOwnProperty('x');
3784
3792
  var hasY = offsets.hasOwnProperty('y');
3785
3793
  var sideX = left;
@@ -3824,6 +3832,17 @@ function mapToStyles(_ref2) {
3824
3832
  position: position
3825
3833
  }, adaptive && unsetSides);
3826
3834
 
3835
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
3836
+ x: x,
3837
+ y: y
3838
+ }) : {
3839
+ x: x,
3840
+ y: y
3841
+ };
3842
+
3843
+ x = _ref4.x;
3844
+ y = _ref4.y;
3845
+
3827
3846
  if (gpuAcceleration) {
3828
3847
  var _Object$assign;
3829
3848
 
@@ -3833,9 +3852,9 @@ function mapToStyles(_ref2) {
3833
3852
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
3834
3853
  }
3835
3854
 
3836
- function computeStyles(_ref4) {
3837
- var state = _ref4.state,
3838
- options = _ref4.options;
3855
+ function computeStyles(_ref5) {
3856
+ var state = _ref5.state,
3857
+ options = _ref5.options;
3839
3858
  var _options$gpuAccelerat = options.gpuAcceleration,
3840
3859
  gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
3841
3860
  _options$adaptive = options.adaptive,
@@ -4134,7 +4153,7 @@ function getClippingParents(element) {
4134
4153
 
4135
4154
 
4136
4155
  return clippingParents.filter(function (clippingParent) {
4137
- return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body' && (canEscapeClipping ? getComputedStyle$1(clippingParent).position !== 'static' : true);
4156
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
4138
4157
  });
4139
4158
  } // Gets the maximum area that the element is visible in due to any number of
4140
4159
  // clipping parents
@@ -5634,11 +5653,11 @@ var CDropdown = forwardRef(function (_a, ref) {
5634
5653
  useEffect(function () {
5635
5654
  _visible &&
5636
5655
  setTimeout(function () {
5637
- window.addEventListener('click', handleClickOutside);
5656
+ window.addEventListener('mouseup', handleClickOutside);
5638
5657
  window.addEventListener('keyup', handleKeyup);
5639
5658
  });
5640
5659
  return function () {
5641
- window.removeEventListener('click', handleClickOutside);
5660
+ window.removeEventListener('mouseup', handleClickOutside);
5642
5661
  window.removeEventListener('keyup', handleKeyup);
5643
5662
  };
5644
5663
  }, [_visible]);
@@ -5832,6 +5851,46 @@ CDropdownToggle.propTypes = {
5832
5851
  };
5833
5852
  CDropdownToggle.displayName = 'CDropdownToggle';
5834
5853
 
5854
+ var CDropdownToggleCustom = function (_a) {
5855
+ var children = _a.children, className = _a.className, disabled = _a.disabled, _b = _a.trigger, trigger = _b === void 0 ? 'click' : _b, rest = __rest$1(_a, ["children", "className", "disabled", "trigger"]);
5856
+ var _c = useContext(CDropdownContext), popper = _c.popper, visible = _c.visible, setVisible = _c.setVisible;
5857
+ var _className = classNames$1(className);
5858
+ var triggers = __assign$1(__assign$1(__assign$1({}, ((trigger === 'click' || trigger.includes('click')) &&
5859
+ !disabled && {
5860
+ onClick: function (event) {
5861
+ event.preventDefault();
5862
+ setVisible(!visible);
5863
+ },
5864
+ })), ((trigger === 'click-init' || trigger.includes('click-init')) &&
5865
+ !disabled && {
5866
+ onClick: function (event) {
5867
+ event.preventDefault();
5868
+ setVisible(true);
5869
+ },
5870
+ })), ((trigger === 'focus' || trigger.includes('focus')) &&
5871
+ !disabled && {
5872
+ onFocus: function () { return setVisible(true); },
5873
+ onBlur: function () { return setVisible(false); },
5874
+ }));
5875
+ var togglerProps = __assign$1({ className: _className, 'aria-expanded': visible }, triggers);
5876
+ // We use any because Toggler can be `a` as well as `button`.
5877
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5878
+ var Toggler = function (ref) {
5879
+ return (React__default.createElement("div", __assign$1({}, togglerProps, rest, { ref: ref }), children));
5880
+ };
5881
+ return popper ? React__default.createElement(Reference, null, function (_a) {
5882
+ var ref = _a.ref;
5883
+ return Toggler(ref);
5884
+ }) : Toggler();
5885
+ };
5886
+ CDropdownToggleCustom.propTypes = {
5887
+ children: PropTypes$1.node,
5888
+ className: PropTypes$1.string,
5889
+ disabled: PropTypes$1.bool,
5890
+ trigger: triggerPropType,
5891
+ };
5892
+ CDropdownToggleCustom.displayName = 'CDropdownToggleCustom';
5893
+
5835
5894
  var BREAKPOINTS$3 = [
5836
5895
  'xxl',
5837
5896
  'xl',
@@ -7690,6 +7749,14 @@ CSidebarHeader.propTypes = {
7690
7749
  };
7691
7750
  CSidebarHeader.displayName = 'CSidebarHeader';
7692
7751
 
7752
+ 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'/>"];
7753
+
7754
+ 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'/>"];
7755
+
7756
+ 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'/>"];
7757
+
7758
+ 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'/>"];
7759
+
7693
7760
  var CElementCover = forwardRef(function (_a, ref) {
7694
7761
  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"]);
7695
7762
  var elementCoverRef = useRef(null);
@@ -9170,10 +9237,7 @@ CIcon.propTypes = {
9170
9237
  CIcon.displayName = 'CIcon';
9171
9238
 
9172
9239
  var CSmartTableCleaner = forwardRef(function (_a, ref) {
9173
- var _b = _a.content, content = _b === void 0 ? (React__default.createElement(CIcon, { width: 18, icon: [
9174
- '512 512',
9175
- '<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><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"></polygon>',
9176
- ] })) : _b, isFiltered = _a.isFiltered, rest = __rest$1(_a, ["content", "isFiltered"]);
9240
+ var _b = _a.content, content = _b === void 0 ? React__default.createElement(CIcon, { width: 18, icon: cilFilterX }) : _b, isFiltered = _a.isFiltered, rest = __rest$1(_a, ["content", "isFiltered"]);
9177
9241
  return (React__default.createElement("button", __assign$1({ type: "button", className: "btn btn-transparent" }, (!isFiltered && {
9178
9242
  disabled: true,
9179
9243
  tabIndex: -1,
@@ -9370,46 +9434,34 @@ CSmartTableItemsPerPageSelector.displayName = 'CSmartTableItemsPerPageSelector';
9370
9434
 
9371
9435
  var CSmartTable = forwardRef(function (_a, ref) {
9372
9436
  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
9373
- columns = _a.columns, columnSorter = _a.columnSorter, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selectable = _a.selectable, sorterValue = _a.sorterValue, _h = _a.sortingIcon, sortingIcon = _h === void 0 ? (React__default.createElement(CIcon, { width: 18, icon: [
9374
- '512 512',
9375
- '<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><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"></polygon>',
9376
- ], key: "csv" })) : _h, _j = _a.sortingIconAscending, sortingIconAscending = _j === void 0 ? (React__default.createElement(CIcon, { width: 18, icon: [
9377
- '512 512',
9378
- '<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"></polygon>',
9379
- ], key: "cat" })) : _j, _k = _a.sortingIconDescending, sortingIconDescending = _k === void 0 ? (React__default.createElement(CIcon, { width: 18, icon: [
9380
- '512 512',
9381
- '<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"></polygon>',
9382
- ], 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
9437
+ columns = _a.columns, columnSorter = _a.columnSorter, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selectable = _a.selectable, sorterValue = _a.sorterValue, _h = _a.sortingIcon, sortingIcon = _h === void 0 ? React__default.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _h, _j = _a.sortingIconAscending, sortingIconAscending = _j === void 0 ? React__default.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _j, _k = _a.sortingIconDescending, sortingIconDescending = _k === void 0 ? React__default.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
9383
9438
  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"]);
9384
9439
  // instance data
9385
- var compData = useRef({ firstRun: true, columnFiltered: 0, changeItems: 0 }).current;
9386
- var previousSorterValue = useRef();
9387
- var previousItemsValue = useRef();
9388
9440
  var _o = useState(activePage), _activePage = _o[0], setActivePage = _o[1];
9389
9441
  var _p = useState([]), _items = _p[0], setItems = _p[1];
9390
9442
  var _q = useState(itemsPerPage), _itemsPerPage = _q[0], setItemsPerPage = _q[1];
9391
- var _r = useState(columnFilterValue ? columnFilterValue : {}), columnFilterState = _r[0], setColumnFilterState = _r[1];
9443
+ var _r = useState({}), columnFilterState = _r[0], setColumnFilterState = _r[1];
9392
9444
  var _s = useState(), selectedAll = _s[0], setSelectedAll = _s[1];
9393
- var _t = useState(previousSorterValue.current || {}), sorterState = _t[0], setSorterState = _t[1];
9445
+ var _t = useState({}), sorterState = _t[0], setSorterState = _t[1];
9394
9446
  var _u = useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _u[0], setTableFilterState = _u[1];
9447
+ // watch
9395
9448
  useMemo(function () {
9396
- if (JSON.stringify(previousSorterValue.current) !== JSON.stringify(sorterValue)) {
9397
- previousSorterValue.current = sorterValue;
9398
- setSorterState(__assign$1({}, sorterValue));
9449
+ if (items && items.length < _itemsPerPage * _activePage - _itemsPerPage) {
9450
+ setActivePage(1);
9399
9451
  }
9400
- }, [sorterValue]);
9452
+ // Create the internal array of items
9453
+ Array.isArray(items) &&
9454
+ setItems(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
9455
+ return __assign$1(__assign$1({}, item), { _id: index });
9456
+ }));
9457
+ }, [JSON.stringify(items)]);
9401
9458
  useMemo(function () {
9402
- if (JSON.stringify(previousItemsValue.current) !== JSON.stringify(items)) {
9403
- if (items && items.length < _itemsPerPage * _activePage - _itemsPerPage) {
9404
- setActivePage(1);
9405
- }
9406
- previousItemsValue.current = items;
9407
- Array.isArray(items) &&
9408
- setItems(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
9409
- return __assign$1(__assign$1({}, item), { _id: index });
9410
- }));
9411
- }
9412
- }, [items]);
9459
+ columnFilterValue && setColumnFilterState(columnFilterValue);
9460
+ }, [JSON.stringify(columnFilterValue)]);
9461
+ useMemo(function () {
9462
+ setSorterState(__assign$1({}, sorterValue));
9463
+ }, [JSON.stringify(sorterValue)]);
9464
+ useMemo(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
9413
9465
  // functions
9414
9466
  var isSortable = function (i) {
9415
9467
  var isDataColumn = itemsDataColumns.includes(rawColumnNames[i]);
@@ -9491,15 +9543,7 @@ var CSmartTable = forwardRef(function (_a, ref) {
9491
9543
  : genCols; //! || el
9492
9544
  var itemsDataColumns = rawColumnNames.filter(function (name) { return genCols.includes(name); });
9493
9545
  // variables
9494
- useMemo(function () {
9495
- compData.columnFiltered++;
9496
- }, [
9497
- JSON.stringify(columnFilter),
9498
- JSON.stringify(columnFilterState),
9499
- itemsDataColumns.join(''),
9500
- compData.changeItems,
9501
- ]);
9502
- var columnFiltered = useMemo(function () {
9546
+ var filteredColumns = useMemo(function () {
9503
9547
  var items = _items;
9504
9548
  if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
9505
9549
  return items;
@@ -9514,9 +9558,9 @@ var CSmartTable = forwardRef(function (_a, ref) {
9514
9558
  }
9515
9559
  });
9516
9560
  return items;
9517
- }, [compData.columnFiltered, _items]);
9518
- var tableFiltered = useMemo(function () {
9519
- var items = columnFiltered;
9561
+ }, [JSON.stringify(columnFilterState), JSON.stringify(_items)]);
9562
+ var filteredTable = useMemo(function () {
9563
+ var items = filteredColumns;
9520
9564
  if (!tableFilterState ||
9521
9565
  (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
9522
9566
  return items;
@@ -9527,23 +9571,16 @@ var CSmartTable = forwardRef(function (_a, ref) {
9527
9571
  return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
9528
9572
  });
9529
9573
  return items;
9530
- }, [
9531
- compData.columnFiltered,
9532
- tableFilterState,
9533
- JSON.stringify(tableFilter),
9534
- JSON.stringify(columnFiltered),
9535
- ]);
9574
+ }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
9536
9575
  var sortedItems = useMemo(function () {
9537
9576
  var col = sorterState === null || sorterState === void 0 ? void 0 : sorterState.column;
9538
9577
  if (!col ||
9539
9578
  !itemsDataColumns.includes(col) ||
9540
9579
  (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
9541
- return tableFiltered;
9580
+ return filteredTable;
9542
9581
  }
9543
- //if values in column are to be sorted by numeric value they all have to be type number
9544
- // const flip = sorterState.asc ? 1 : -1
9545
9582
  var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
9546
- var sorted = tableFiltered.slice().sort(function (item, item2) {
9583
+ var sorted = filteredTable.slice().sort(function (item, item2) {
9547
9584
  var value = item[col];
9548
9585
  var value2 = item2[col];
9549
9586
  var a = typeof value === 'number' ? value : String(value).toLowerCase();
@@ -9551,7 +9588,13 @@ var CSmartTable = forwardRef(function (_a, ref) {
9551
9588
  return a > b ? 1 * flip : b > a ? -1 * flip : 0;
9552
9589
  });
9553
9590
  return sorted;
9554
- }, [JSON.stringify(tableFiltered), JSON.stringify(sorterState), JSON.stringify(columnSorter)]);
9591
+ }, [
9592
+ JSON.stringify(filteredTable),
9593
+ JSON.stringify(sorterState),
9594
+ JSON.stringify(columnSorter),
9595
+ JSON.stringify(filteredColumns),
9596
+ JSON.stringify(_items),
9597
+ ]);
9555
9598
  var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
9556
9599
  var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
9557
9600
  var itemsOnActivePage = sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage);
@@ -9575,16 +9618,8 @@ var CSmartTable = forwardRef(function (_a, ref) {
9575
9618
  onTableFilterChange && onTableFilterChange(tableFilterState);
9576
9619
  }, [tableFilterState]);
9577
9620
  useEffect(function () {
9578
- !compData.firstRun && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
9621
+ onFilteredItemsChange && onFilteredItemsChange(sortedItems);
9579
9622
  }, [JSON.stringify(sortedItems)]);
9580
- // watch
9581
- useMemo(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
9582
- useMemo(function () {
9583
- return JSON.stringify(previousSorterValue.current) !== JSON.stringify(sorterValue) &&
9584
- setSorterState(__assign$1({}, sorterValue));
9585
- }, [sorterValue]);
9586
- useMemo(function () { return setColumnFilterState(__assign$1({}, columnFilterValue)); }, [columnFilterValue]);
9587
- compData.firstRun = false;
9588
9623
  var handleRowChecked = function (id, value) {
9589
9624
  var newArr = __spreadArray([], _items, true);
9590
9625
  newArr[id]._selected = value;
@@ -10066,5 +10101,5 @@ CWidgetStatsF.propTypes = {
10066
10101
  };
10067
10102
  CWidgetStatsF.displayName = 'CWidgetStatsF';
10068
10103
 
10069
- export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CFooter, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
10104
+ export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CDropdownToggleCustom, CFooter, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
10070
10105
  //# sourceMappingURL=index.es.js.map