@coreui/react-pro 4.8.0-alpha.3 → 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 (82) 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 +3 -7
  7. package/dist/components/element-cover/index.d.ts +2 -0
  8. package/dist/components/form/CFormInput.d.ts +1 -1
  9. package/dist/components/form/CFormSwitch.d.ts +1 -1
  10. package/dist/components/index.d.ts +2 -0
  11. package/dist/components/nav/CNavGroup.d.ts +4 -4
  12. package/dist/components/offcanvas/COffcanvas.d.ts +8 -2
  13. package/dist/components/sidebar/CSidebar.d.ts +4 -4
  14. package/dist/components/smart-table/CSmartTableBody.d.ts +6 -5
  15. package/dist/components/smart-table/CSmartTableHead.d.ts +6 -3
  16. package/dist/components/smart-table/CSmartTableInterface.d.ts +46 -109
  17. package/dist/components/smart-table/types.d.ts +53 -0
  18. package/dist/components/smart-table/utils.d.ts +16 -0
  19. package/dist/components/table/CTable.d.ts +5 -5
  20. package/dist/components/time-picker/types.d.ts +15 -0
  21. package/dist/components/time-picker/utils.d.ts +23 -0
  22. package/dist/hooks/index.d.ts +3 -0
  23. package/dist/hooks/useForkedRef.d.ts +7 -0
  24. package/dist/hooks/useStateWithCallback.d.ts +2 -0
  25. package/dist/index.es.js +1246 -1865
  26. package/dist/index.es.js.map +1 -1
  27. package/dist/index.js +1246 -1863
  28. package/dist/index.js.map +1 -1
  29. package/dist/utils/index.d.ts +3 -2
  30. package/dist/utils/isInViewport.d.ts +2 -0
  31. package/dist/utils/isObjectInArray.d.ts +2 -0
  32. package/package.json +14 -14
  33. package/src/components/accordion/CAccordionBody.tsx +1 -1
  34. package/src/components/alert/CAlert.tsx +1 -1
  35. package/src/components/backdrop/CBackdrop.tsx +1 -1
  36. package/src/components/calendar/CCalendar.tsx +351 -240
  37. package/src/components/calendar/index.ts +3 -0
  38. package/src/{utils/calendar.ts → components/calendar/utils.ts} +1 -1
  39. package/src/components/carousel/CCarousel.tsx +4 -4
  40. package/src/components/carousel/CCarouselItem.tsx +1 -1
  41. package/src/components/collapse/CCollapse.tsx +1 -1
  42. package/src/components/date-picker/CDatePicker.tsx +1 -1
  43. package/src/components/date-range-picker/CDateRangePicker.tsx +3 -3
  44. package/src/components/dropdown/CDropdown.tsx +1 -1
  45. package/src/components/dropdown/CDropdownToggle.tsx +1 -1
  46. package/src/components/element-cover/CElementCover.tsx +19 -25
  47. package/src/components/element-cover/index.ts +3 -0
  48. package/src/components/form/CFormCheck.tsx +1 -1
  49. package/src/components/form/CFormControlWrapper.tsx +14 -20
  50. package/src/components/form/CFormInput.tsx +1 -1
  51. package/src/components/form/CFormSwitch.tsx +1 -1
  52. package/src/components/grid/CCol.tsx +4 -0
  53. package/src/components/index.ts +2 -0
  54. package/src/components/modal/CModal.tsx +1 -1
  55. package/src/components/nav/CNavGroup.tsx +4 -4
  56. package/src/components/nav/CNavLink.tsx +2 -1
  57. package/src/components/offcanvas/COffcanvas.tsx +36 -18
  58. package/src/components/sidebar/CSidebar.tsx +10 -10
  59. package/src/components/smart-table/CSmartTable.tsx +279 -259
  60. package/src/components/smart-table/CSmartTableBody.tsx +31 -41
  61. package/src/components/smart-table/CSmartTableCleaner.tsx +1 -1
  62. package/src/components/smart-table/CSmartTableFilter.tsx +1 -3
  63. package/src/components/smart-table/CSmartTableHead.tsx +53 -103
  64. package/src/components/smart-table/CSmartTableInterface.tsx +57 -120
  65. package/src/components/smart-table/CSmartTableItemsPerPageSelector.tsx +1 -2
  66. package/src/components/smart-table/types.tsx +65 -0
  67. package/src/components/smart-table/utils.tsx +199 -0
  68. package/src/components/table/CTable.tsx +12 -9
  69. package/src/components/tabs/CTabPane.tsx +1 -1
  70. package/src/components/time-picker/CTimePicker.tsx +50 -23
  71. package/src/components/time-picker/CTimePickerRollCol.tsx +1 -1
  72. package/src/components/time-picker/types.ts +15 -0
  73. package/src/{utils/time.ts → components/time-picker/utils.ts} +43 -2
  74. package/src/components/toast/CToast.tsx +1 -1
  75. package/src/components/virtual-scroller/CVirtualScroller.tsx +1 -1
  76. package/src/{utils/hooks → hooks}/index.ts +0 -0
  77. package/src/{utils/hooks → hooks}/useForkedRef.ts +0 -0
  78. package/src/{utils/hooks → hooks}/useStateWithCallback.ts +0 -0
  79. package/src/utils/index.ts +3 -2
  80. package/src/utils/isInViewport.ts +11 -0
  81. package/src/utils/isObjectInArray.ts +14 -0
  82. package/src/utils/isVisible.ts +0 -11
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default$1, { createContext, forwardRef, useState, useRef, useContext, useEffect, Children, isValidElement, cloneElement, useMemo, useLayoutEffect, useCallback, Fragment } from 'react';
2
+ import React__default$1, { createContext, forwardRef, useState, useRef, useContext, useEffect, useMemo, Children, useLayoutEffect, useCallback, Fragment } from 'react';
3
3
  import * as ReactDOM from 'react-dom';
4
4
  import ReactDOM__default, { createPortal } from 'react-dom';
5
5
 
@@ -2076,6 +2076,7 @@ Transition.EXITED = EXITED;
2076
2076
  Transition.ENTERING = ENTERING;
2077
2077
  Transition.ENTERED = ENTERED;
2078
2078
  Transition.EXITING = EXITING;
2079
+ var Transition$1 = Transition;
2079
2080
 
2080
2081
  var _addClass = function addClass$1(node, classes) {
2081
2082
  return node && classes && classes.split(' ').forEach(function (c) {
@@ -2331,7 +2332,7 @@ var CSSTransition = /*#__PURE__*/function (_React$Component) {
2331
2332
  _this$props.classNames;
2332
2333
  var props = _objectWithoutPropertiesLoose$1(_this$props, ["classNames"]);
2333
2334
 
2334
- return /*#__PURE__*/React__default$1.createElement(Transition, _extends$1({}, props, {
2335
+ return /*#__PURE__*/React__default$1.createElement(Transition$1, _extends$1({}, props, {
2335
2336
  onEnter: this.onEnter,
2336
2337
  onEntered: this.onEntered,
2337
2338
  onEntering: this.onEntering,
@@ -2347,7 +2348,7 @@ var CSSTransition = /*#__PURE__*/function (_React$Component) {
2347
2348
  CSSTransition.defaultProps = {
2348
2349
  classNames: ''
2349
2350
  };
2350
- CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$1({}, Transition.propTypes, {
2351
+ CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$1({}, Transition$1.propTypes, {
2351
2352
  /**
2352
2353
  * The animation classNames applied to the component as it appears, enters,
2353
2354
  * exits or has finished the transition. A single name can be provided, which
@@ -2477,842 +2478,136 @@ CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$1({},
2477
2478
  */
2478
2479
  onExited: propTypesExports.func
2479
2480
  }) : {};
2481
+ var CSSTransition$1 = CSSTransition;
2480
2482
 
2481
- function _assertThisInitialized$1(self) {
2482
- if (self === void 0) {
2483
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
2484
- }
2485
- return self;
2486
- }
2487
-
2488
- /**
2489
- * Given `this.props.children`, return an object mapping key to child.
2490
- *
2491
- * @param {*} children `this.props.children`
2492
- * @return {object} Mapping of key to child
2493
- */
2494
-
2495
- function getChildMapping(children, mapFn) {
2496
- var mapper = function mapper(child) {
2497
- return mapFn && isValidElement(child) ? mapFn(child) : child;
2498
- };
2499
-
2500
- var result = Object.create(null);
2501
- if (children) Children.map(children, function (c) {
2502
- return c;
2503
- }).forEach(function (child) {
2504
- // run the map function here instead so that the key is the computed one
2505
- result[child.key] = mapper(child);
2506
- });
2507
- return result;
2483
+ // code borrowed from https://github.com/reach/reach-ui
2484
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2485
+ function useForkedRef() {
2486
+ var refs = [];
2487
+ for (var _i = 0; _i < arguments.length; _i++) {
2488
+ refs[_i] = arguments[_i];
2489
+ }
2490
+ return useMemo(function () {
2491
+ if (refs.every(function (ref) { return ref == null; })) {
2492
+ return null;
2493
+ }
2494
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2495
+ return function (node) {
2496
+ refs.forEach(function (ref) {
2497
+ assignRef(ref, node);
2498
+ });
2499
+ };
2500
+ }, refs);
2508
2501
  }
2509
- /**
2510
- * When you're adding or removing children some may be added or removed in the
2511
- * same render pass. We want to show *both* since we want to simultaneously
2512
- * animate elements in and out. This function takes a previous set of keys
2513
- * and a new set of keys and merges them with its best guess of the correct
2514
- * ordering. In the future we may expose some of the utilities in
2515
- * ReactMultiChild to make this easy, but for now React itself does not
2516
- * directly have this concept of the union of prevChildren and nextChildren
2517
- * so we implement it here.
2518
- *
2519
- * @param {object} prev prev children as returned from
2520
- * `ReactTransitionChildMapping.getChildMapping()`.
2521
- * @param {object} next next children as returned from
2522
- * `ReactTransitionChildMapping.getChildMapping()`.
2523
- * @return {object} a key set that contains all keys in `prev` and all keys
2524
- * in `next` in a reasonable order.
2525
- */
2526
-
2527
- function mergeChildMappings(prev, next) {
2528
- prev = prev || {};
2529
- next = next || {};
2530
-
2531
- function getValueForKey(key) {
2532
- return key in next ? next[key] : prev[key];
2533
- } // For each key of `next`, the list of keys to insert before that key in
2534
- // the combined list
2535
-
2536
-
2537
- var nextKeysPending = Object.create(null);
2538
- var pendingKeys = [];
2539
-
2540
- for (var prevKey in prev) {
2541
- if (prevKey in next) {
2542
- if (pendingKeys.length) {
2543
- nextKeysPending[prevKey] = pendingKeys;
2544
- pendingKeys = [];
2545
- }
2546
- } else {
2547
- pendingKeys.push(prevKey);
2502
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2503
+ function assignRef(ref,
2504
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2505
+ value) {
2506
+ if (ref == null)
2507
+ return;
2508
+ if (isFunction(ref)) {
2509
+ ref(value);
2548
2510
  }
2549
- }
2550
-
2551
- var i;
2552
- var childMapping = {};
2553
-
2554
- for (var nextKey in next) {
2555
- if (nextKeysPending[nextKey]) {
2556
- for (i = 0; i < nextKeysPending[nextKey].length; i++) {
2557
- var pendingNextKey = nextKeysPending[nextKey][i];
2558
- childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
2559
- }
2511
+ else {
2512
+ try {
2513
+ ref.current = value;
2514
+ }
2515
+ catch (error) {
2516
+ throw new Error("Cannot assign value \"".concat(value, "\" to ref \"").concat(ref, "\""));
2517
+ }
2560
2518
  }
2561
-
2562
- childMapping[nextKey] = getValueForKey(nextKey);
2563
- } // Finally, add the keys which didn't appear before any key in `next`
2564
-
2565
-
2566
- for (i = 0; i < pendingKeys.length; i++) {
2567
- childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
2568
- }
2569
-
2570
- return childMapping;
2571
- }
2572
-
2573
- function getProp(child, prop, props) {
2574
- return props[prop] != null ? props[prop] : child.props[prop];
2575
- }
2576
-
2577
- function getInitialChildMapping(props, onExited) {
2578
- return getChildMapping(props.children, function (child) {
2579
- return cloneElement(child, {
2580
- onExited: onExited.bind(null, child),
2581
- in: true,
2582
- appear: getProp(child, 'appear', props),
2583
- enter: getProp(child, 'enter', props),
2584
- exit: getProp(child, 'exit', props)
2585
- });
2586
- });
2587
2519
  }
2588
- function getNextChildMapping(nextProps, prevChildMapping, onExited) {
2589
- var nextChildMapping = getChildMapping(nextProps.children);
2590
- var children = mergeChildMappings(prevChildMapping, nextChildMapping);
2591
- Object.keys(children).forEach(function (key) {
2592
- var child = children[key];
2593
- if (!isValidElement(child)) return;
2594
- var hasPrev = (key in prevChildMapping);
2595
- var hasNext = (key in nextChildMapping);
2596
- var prevChild = prevChildMapping[key];
2597
- var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)
2598
-
2599
- if (hasNext && (!hasPrev || isLeaving)) {
2600
- // console.log('entering', key)
2601
- children[key] = cloneElement(child, {
2602
- onExited: onExited.bind(null, child),
2603
- in: true,
2604
- exit: getProp(child, 'exit', nextProps),
2605
- enter: getProp(child, 'enter', nextProps)
2606
- });
2607
- } else if (!hasNext && hasPrev && !isLeaving) {
2608
- // item is old (exiting)
2609
- // console.log('leaving', key)
2610
- children[key] = cloneElement(child, {
2611
- in: false
2612
- });
2613
- } else if (hasNext && hasPrev && isValidElement(prevChild)) {
2614
- // item hasn't changed transition states
2615
- // copy over the last transition props;
2616
- // console.log('unchanged', key)
2617
- children[key] = cloneElement(child, {
2618
- onExited: onExited.bind(null, child),
2619
- in: prevChild.props.in,
2620
- exit: getProp(child, 'exit', nextProps),
2621
- enter: getProp(child, 'enter', nextProps)
2622
- });
2623
- }
2624
- });
2625
- return children;
2520
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
2521
+ function isFunction(value) {
2522
+ return !!(value && {}.toString.call(value) == '[object Function]');
2626
2523
  }
2627
2524
 
2628
- var values = Object.values || function (obj) {
2629
- return Object.keys(obj).map(function (k) {
2630
- return obj[k];
2631
- });
2632
- };
2633
-
2634
- var defaultProps = {
2635
- component: 'div',
2636
- childFactory: function childFactory(child) {
2637
- return child;
2638
- }
2525
+ var useStateWithCallback = function (initialState, handler, runHandler) {
2526
+ var _a = useState(initialState), state = _a[0], setState = _a[1];
2527
+ handler &&
2528
+ useEffect(function () {
2529
+ runHandler && handler(state);
2530
+ }, [state]);
2531
+ return [state, setState];
2639
2532
  };
2640
- /**
2641
- * The `<TransitionGroup>` component manages a set of transition components
2642
- * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
2643
- * components, `<TransitionGroup>` is a state machine for managing the mounting
2644
- * and unmounting of components over time.
2645
- *
2646
- * Consider the example below. As items are removed or added to the TodoList the
2647
- * `in` prop is toggled automatically by the `<TransitionGroup>`.
2648
- *
2649
- * Note that `<TransitionGroup>` does not define any animation behavior!
2650
- * Exactly _how_ a list item animates is up to the individual transition
2651
- * component. This means you can mix and match animations across different list
2652
- * items.
2653
- */
2654
-
2655
- var TransitionGroup = /*#__PURE__*/function (_React$Component) {
2656
- _inheritsLoose(TransitionGroup, _React$Component);
2657
2533
 
2658
- function TransitionGroup(props, context) {
2659
- var _this;
2660
-
2661
- _this = _React$Component.call(this, props, context) || this;
2662
-
2663
- var handleExited = _this.handleExited.bind(_assertThisInitialized$1(_this)); // Initial children should all be entering, dependent on appear
2664
-
2665
-
2666
- _this.state = {
2667
- contextValue: {
2668
- isMounting: true
2669
- },
2670
- handleExited: handleExited,
2671
- firstRender: true
2672
- };
2673
- return _this;
2674
- }
2675
-
2676
- var _proto = TransitionGroup.prototype;
2677
-
2678
- _proto.componentDidMount = function componentDidMount() {
2679
- this.mounted = true;
2680
- this.setState({
2681
- contextValue: {
2682
- isMounting: false
2683
- }
2684
- });
2685
- };
2686
-
2687
- _proto.componentWillUnmount = function componentWillUnmount() {
2688
- this.mounted = false;
2689
- };
2690
-
2691
- TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
2692
- var prevChildMapping = _ref.children,
2693
- handleExited = _ref.handleExited,
2694
- firstRender = _ref.firstRender;
2695
- return {
2696
- children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),
2697
- firstRender: false
2534
+ var CCollapse = forwardRef(function (_a, ref) {
2535
+ var children = _a.children, className = _a.className, horizontal = _a.horizontal, onHide = _a.onHide, onShow = _a.onShow, visible = _a.visible, rest = __rest$1(_a, ["children", "className", "horizontal", "onHide", "onShow", "visible"]);
2536
+ var _b = useState(), height = _b[0], setHeight = _b[1];
2537
+ var _c = useState(), width = _c[0], setWidth = _c[1];
2538
+ var collapseRef = useRef(null);
2539
+ var forkedRef = useForkedRef(ref, collapseRef);
2540
+ var getTransitionClass = function (state) {
2541
+ return state === 'entering'
2542
+ ? 'collapsing'
2543
+ : state === 'entered'
2544
+ ? 'collapse show'
2545
+ : state === 'exiting'
2546
+ ? 'collapsing'
2547
+ : 'collapse';
2698
2548
  };
2699
- } // node is `undefined` when user provided `nodeRef` prop
2700
- ;
2701
-
2702
- _proto.handleExited = function handleExited(child, node) {
2703
- var currentChildMapping = getChildMapping(this.props.children);
2704
- if (child.key in currentChildMapping) return;
2705
-
2706
- if (child.props.onExited) {
2707
- child.props.onExited(node);
2708
- }
2709
-
2710
- if (this.mounted) {
2711
- this.setState(function (state) {
2712
- var children = _extends$1({}, state.children);
2713
-
2714
- delete children[child.key];
2715
- return {
2716
- children: children
2717
- };
2718
- });
2719
- }
2720
- };
2721
-
2722
- _proto.render = function render() {
2723
- var _this$props = this.props,
2724
- Component = _this$props.component,
2725
- childFactory = _this$props.childFactory,
2726
- props = _objectWithoutPropertiesLoose$1(_this$props, ["component", "childFactory"]);
2727
-
2728
- var contextValue = this.state.contextValue;
2729
- var children = values(this.state.children).map(childFactory);
2730
- delete props.appear;
2731
- delete props.enter;
2732
- delete props.exit;
2733
-
2734
- if (Component === null) {
2735
- return /*#__PURE__*/React__default$1.createElement(TransitionGroupContext.Provider, {
2736
- value: contextValue
2737
- }, children);
2738
- }
2739
-
2740
- return /*#__PURE__*/React__default$1.createElement(TransitionGroupContext.Provider, {
2741
- value: contextValue
2742
- }, /*#__PURE__*/React__default$1.createElement(Component, props, children));
2743
- };
2744
-
2745
- return TransitionGroup;
2746
- }(React__default$1.Component);
2747
-
2748
- TransitionGroup.propTypes = process.env.NODE_ENV !== "production" ? {
2749
- /**
2750
- * `<TransitionGroup>` renders a `<div>` by default. You can change this
2751
- * behavior by providing a `component` prop.
2752
- * If you use React v16+ and would like to avoid a wrapping `<div>` element
2753
- * you can pass in `component={null}`. This is useful if the wrapping div
2754
- * borks your css styles.
2755
- */
2756
- component: propTypesExports.any,
2757
-
2758
- /**
2759
- * A set of `<Transition>` components, that are toggled `in` and out as they
2760
- * leave. the `<TransitionGroup>` will inject specific transition props, so
2761
- * remember to spread them through if you are wrapping the `<Transition>` as
2762
- * with our `<Fade>` example.
2763
- *
2764
- * While this component is meant for multiple `Transition` or `CSSTransition`
2765
- * children, sometimes you may want to have a single transition child with
2766
- * content that you want to be transitioned out and in when you change it
2767
- * (e.g. routes, images etc.) In that case you can change the `key` prop of
2768
- * the transition child as you change its content, this will cause
2769
- * `TransitionGroup` to transition the child out and back in.
2770
- */
2771
- children: propTypesExports.node,
2772
-
2773
- /**
2774
- * A convenience prop that enables or disables appear animations
2775
- * for all children. Note that specifying this will override any defaults set
2776
- * on individual children Transitions.
2777
- */
2778
- appear: propTypesExports.bool,
2779
-
2780
- /**
2781
- * A convenience prop that enables or disables enter animations
2782
- * for all children. Note that specifying this will override any defaults set
2783
- * on individual children Transitions.
2784
- */
2785
- enter: propTypesExports.bool,
2786
-
2787
- /**
2788
- * A convenience prop that enables or disables exit animations
2789
- * for all children. Note that specifying this will override any defaults set
2790
- * on individual children Transitions.
2791
- */
2792
- exit: propTypesExports.bool,
2793
-
2794
- /**
2795
- * You may need to apply reactive updates to a child as it is exiting.
2796
- * This is generally done by using `cloneElement` however in the case of an exiting
2797
- * child the element has already been removed and not accessible to the consumer.
2798
- *
2799
- * If you do need to update a child as it leaves you can provide a `childFactory`
2800
- * to wrap every child, even the ones that are leaving.
2801
- *
2802
- * @type Function(child: ReactElement) -> ReactElement
2803
- */
2804
- childFactory: propTypesExports.func
2805
- } : {};
2806
- TransitionGroup.defaultProps = defaultProps;
2807
-
2808
- /**
2809
- * The `<ReplaceTransition>` component is a specialized `Transition` component
2810
- * that animates between two children.
2811
- *
2812
- * ```jsx
2813
- * <ReplaceTransition in>
2814
- * <Fade><div>I appear first</div></Fade>
2815
- * <Fade><div>I replace the above</div></Fade>
2816
- * </ReplaceTransition>
2817
- * ```
2818
- */
2819
-
2820
- var ReplaceTransition = /*#__PURE__*/function (_React$Component) {
2821
- _inheritsLoose(ReplaceTransition, _React$Component);
2822
-
2823
- function ReplaceTransition() {
2824
- var _this;
2825
-
2826
- for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
2827
- _args[_key] = arguments[_key];
2828
- }
2829
-
2830
- _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;
2831
-
2832
- _this.handleEnter = function () {
2833
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2834
- args[_key2] = arguments[_key2];
2835
- }
2836
-
2837
- return _this.handleLifecycle('onEnter', 0, args);
2549
+ var onEntering = function () {
2550
+ onShow && onShow();
2551
+ if (horizontal) {
2552
+ collapseRef.current && setWidth(collapseRef.current.scrollWidth);
2553
+ return;
2554
+ }
2555
+ collapseRef.current && setHeight(collapseRef.current.scrollHeight);
2838
2556
  };
2839
-
2840
- _this.handleEntering = function () {
2841
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
2842
- args[_key3] = arguments[_key3];
2843
- }
2844
-
2845
- return _this.handleLifecycle('onEntering', 0, args);
2557
+ var onEntered = function () {
2558
+ if (horizontal) {
2559
+ setWidth(0);
2560
+ return;
2561
+ }
2562
+ setHeight(0);
2846
2563
  };
2847
-
2848
- _this.handleEntered = function () {
2849
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
2850
- args[_key4] = arguments[_key4];
2851
- }
2852
-
2853
- return _this.handleLifecycle('onEntered', 0, args);
2564
+ var onExit = function () {
2565
+ if (horizontal) {
2566
+ collapseRef.current && setWidth(collapseRef.current.scrollWidth);
2567
+ return;
2568
+ }
2569
+ collapseRef.current && setHeight(collapseRef.current.scrollHeight);
2854
2570
  };
2855
-
2856
- _this.handleExit = function () {
2857
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
2858
- args[_key5] = arguments[_key5];
2859
- }
2860
-
2861
- return _this.handleLifecycle('onExit', 1, args);
2571
+ var onExiting = function () {
2572
+ onHide && onHide();
2573
+ if (horizontal) {
2574
+ setWidth(0);
2575
+ return;
2576
+ }
2577
+ setHeight(0);
2862
2578
  };
2863
-
2864
- _this.handleExiting = function () {
2865
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
2866
- args[_key6] = arguments[_key6];
2867
- }
2868
-
2869
- return _this.handleLifecycle('onExiting', 1, args);
2579
+ var onExited = function () {
2580
+ if (horizontal) {
2581
+ setWidth(0);
2582
+ return;
2583
+ }
2584
+ setHeight(0);
2870
2585
  };
2871
-
2872
- _this.handleExited = function () {
2873
- for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
2874
- args[_key7] = arguments[_key7];
2875
- }
2876
-
2877
- return _this.handleLifecycle('onExited', 1, args);
2878
- };
2879
-
2880
- return _this;
2881
- }
2882
-
2883
- var _proto = ReplaceTransition.prototype;
2884
-
2885
- _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {
2886
- var _child$props;
2887
-
2888
- var children = this.props.children;
2889
- var child = React__default$1.Children.toArray(children)[idx];
2890
- if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);
2891
-
2892
- if (this.props[handler]) {
2893
- var maybeNode = child.props.nodeRef ? undefined : ReactDOM__default.findDOMNode(this);
2894
- this.props[handler](maybeNode);
2895
- }
2896
- };
2897
-
2898
- _proto.render = function render() {
2899
- var _this$props = this.props,
2900
- children = _this$props.children,
2901
- inProp = _this$props.in,
2902
- props = _objectWithoutPropertiesLoose$1(_this$props, ["children", "in"]);
2903
-
2904
- var _React$Children$toArr = React__default$1.Children.toArray(children),
2905
- first = _React$Children$toArr[0],
2906
- second = _React$Children$toArr[1];
2907
-
2908
- delete props.onEnter;
2909
- delete props.onEntering;
2910
- delete props.onEntered;
2911
- delete props.onExit;
2912
- delete props.onExiting;
2913
- delete props.onExited;
2914
- return /*#__PURE__*/React__default$1.createElement(TransitionGroup, props, inProp ? React__default$1.cloneElement(first, {
2915
- key: 'first',
2916
- onEnter: this.handleEnter,
2917
- onEntering: this.handleEntering,
2918
- onEntered: this.handleEntered
2919
- }) : React__default$1.cloneElement(second, {
2920
- key: 'second',
2921
- onEnter: this.handleExit,
2922
- onEntering: this.handleExiting,
2923
- onEntered: this.handleExited
2924
- }));
2925
- };
2926
-
2927
- return ReplaceTransition;
2928
- }(React__default$1.Component);
2929
-
2930
- ReplaceTransition.propTypes = process.env.NODE_ENV !== "production" ? {
2931
- in: propTypesExports.bool.isRequired,
2932
- children: function children(props, propName) {
2933
- if (React__default$1.Children.count(props[propName]) !== 2) return new Error("\"" + propName + "\" must be exactly two transition components.");
2934
- return null;
2935
- }
2936
- } : {};
2937
-
2938
- var _leaveRenders, _enterRenders;
2939
-
2940
- function areChildrenDifferent(oldChildren, newChildren) {
2941
- if (oldChildren === newChildren) return false;
2942
-
2943
- if (React__default$1.isValidElement(oldChildren) && React__default$1.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {
2944
- return false;
2945
- }
2946
-
2947
- return true;
2948
- }
2949
- /**
2950
- * Enum of modes for SwitchTransition component
2951
- * @enum { string }
2952
- */
2953
-
2954
-
2955
- var modes = {
2956
- out: 'out-in',
2957
- in: 'in-out'
2958
- };
2959
-
2960
- var callHook = function callHook(element, name, cb) {
2961
- return function () {
2962
- var _element$props;
2963
-
2964
- element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);
2965
- cb();
2966
- };
2967
- };
2968
-
2969
- var leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {
2970
- var current = _ref.current,
2971
- changeState = _ref.changeState;
2972
- return React__default$1.cloneElement(current, {
2973
- in: false,
2974
- onExited: callHook(current, 'onExited', function () {
2975
- changeState(ENTERING, null);
2976
- })
2977
- });
2978
- }, _leaveRenders[modes.in] = function (_ref2) {
2979
- var current = _ref2.current,
2980
- changeState = _ref2.changeState,
2981
- children = _ref2.children;
2982
- return [current, React__default$1.cloneElement(children, {
2983
- in: true,
2984
- onEntered: callHook(children, 'onEntered', function () {
2985
- changeState(ENTERING);
2986
- })
2987
- })];
2988
- }, _leaveRenders);
2989
- var enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {
2990
- var children = _ref3.children,
2991
- changeState = _ref3.changeState;
2992
- return React__default$1.cloneElement(children, {
2993
- in: true,
2994
- onEntered: callHook(children, 'onEntered', function () {
2995
- changeState(ENTERED, React__default$1.cloneElement(children, {
2996
- in: true
2997
- }));
2998
- })
2999
- });
3000
- }, _enterRenders[modes.in] = function (_ref4) {
3001
- var current = _ref4.current,
3002
- children = _ref4.children,
3003
- changeState = _ref4.changeState;
3004
- return [React__default$1.cloneElement(current, {
3005
- in: false,
3006
- onExited: callHook(current, 'onExited', function () {
3007
- changeState(ENTERED, React__default$1.cloneElement(children, {
3008
- in: true
3009
- }));
3010
- })
3011
- }), React__default$1.cloneElement(children, {
3012
- in: true
3013
- })];
3014
- }, _enterRenders);
3015
- /**
3016
- * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).
3017
- * You can use it when you want to control the render between state transitions.
3018
- * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.
3019
- *
3020
- * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.
3021
- * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.
3022
- *
3023
- * **Note**: If you want the animation to happen simultaneously
3024
- * (that is, to have the old child removed and a new child inserted **at the same time**),
3025
- * you should use
3026
- * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)
3027
- * instead.
3028
- *
3029
- * ```jsx
3030
- * function App() {
3031
- * const [state, setState] = useState(false);
3032
- * return (
3033
- * <SwitchTransition>
3034
- * <CSSTransition
3035
- * key={state ? "Goodbye, world!" : "Hello, world!"}
3036
- * addEndListener={(node, done) => node.addEventListener("transitionend", done, false)}
3037
- * classNames='fade'
3038
- * >
3039
- * <button onClick={() => setState(state => !state)}>
3040
- * {state ? "Goodbye, world!" : "Hello, world!"}
3041
- * </button>
3042
- * </CSSTransition>
3043
- * </SwitchTransition>
3044
- * );
3045
- * }
3046
- * ```
3047
- *
3048
- * ```css
3049
- * .fade-enter{
3050
- * opacity: 0;
3051
- * }
3052
- * .fade-exit{
3053
- * opacity: 1;
3054
- * }
3055
- * .fade-enter-active{
3056
- * opacity: 1;
3057
- * }
3058
- * .fade-exit-active{
3059
- * opacity: 0;
3060
- * }
3061
- * .fade-enter-active,
3062
- * .fade-exit-active{
3063
- * transition: opacity 500ms;
3064
- * }
3065
- * ```
3066
- */
3067
-
3068
- var SwitchTransition = /*#__PURE__*/function (_React$Component) {
3069
- _inheritsLoose(SwitchTransition, _React$Component);
3070
-
3071
- function SwitchTransition() {
3072
- var _this;
3073
-
3074
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3075
- args[_key] = arguments[_key];
3076
- }
3077
-
3078
- _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
3079
- _this.state = {
3080
- status: ENTERED,
3081
- current: null
3082
- };
3083
- _this.appeared = false;
3084
-
3085
- _this.changeState = function (status, current) {
3086
- if (current === void 0) {
3087
- current = _this.state.current;
3088
- }
3089
-
3090
- _this.setState({
3091
- status: status,
3092
- current: current
3093
- });
3094
- };
3095
-
3096
- return _this;
3097
- }
3098
-
3099
- var _proto = SwitchTransition.prototype;
3100
-
3101
- _proto.componentDidMount = function componentDidMount() {
3102
- this.appeared = true;
3103
- };
3104
-
3105
- SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
3106
- if (props.children == null) {
3107
- return {
3108
- current: null
3109
- };
3110
- }
3111
-
3112
- if (state.status === ENTERING && props.mode === modes.in) {
3113
- return {
3114
- status: ENTERING
3115
- };
3116
- }
3117
-
3118
- if (state.current && areChildrenDifferent(state.current, props.children)) {
3119
- return {
3120
- status: EXITING
3121
- };
3122
- }
3123
-
3124
- return {
3125
- current: React__default$1.cloneElement(props.children, {
3126
- in: true
3127
- })
3128
- };
3129
- };
3130
-
3131
- _proto.render = function render() {
3132
- var _this$props = this.props,
3133
- children = _this$props.children,
3134
- mode = _this$props.mode,
3135
- _this$state = this.state,
3136
- status = _this$state.status,
3137
- current = _this$state.current;
3138
- var data = {
3139
- children: children,
3140
- current: current,
3141
- changeState: this.changeState,
3142
- status: status
3143
- };
3144
- var component;
3145
-
3146
- switch (status) {
3147
- case ENTERING:
3148
- component = enterRenders[mode](data);
3149
- break;
3150
-
3151
- case EXITING:
3152
- component = leaveRenders[mode](data);
3153
- break;
3154
-
3155
- case ENTERED:
3156
- component = current;
3157
- }
3158
-
3159
- return /*#__PURE__*/React__default$1.createElement(TransitionGroupContext.Provider, {
3160
- value: {
3161
- isMounting: !this.appeared
3162
- }
3163
- }, component);
3164
- };
3165
-
3166
- return SwitchTransition;
3167
- }(React__default$1.Component);
3168
-
3169
- SwitchTransition.propTypes = process.env.NODE_ENV !== "production" ? {
3170
- /**
3171
- * Transition modes.
3172
- * `out-in`: Current element transitions out first, then when complete, the new element transitions in.
3173
- * `in-out`: New element transitions in first, then when complete, the current element transitions out.
3174
- *
3175
- * @type {'out-in'|'in-out'}
3176
- */
3177
- mode: propTypesExports.oneOf([modes.in, modes.out]),
3178
-
3179
- /**
3180
- * Any `Transition` or `CSSTransition` component.
3181
- */
3182
- children: propTypesExports.oneOfType([propTypesExports.element.isRequired])
3183
- } : {};
3184
- SwitchTransition.defaultProps = {
3185
- mode: modes.out
3186
- };
3187
-
3188
- // code borrowed from https://github.com/reach/reach-ui
3189
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3190
- function useForkedRef() {
3191
- var refs = [];
3192
- for (var _i = 0; _i < arguments.length; _i++) {
3193
- refs[_i] = arguments[_i];
3194
- }
3195
- return useMemo(function () {
3196
- if (refs.every(function (ref) { return ref == null; })) {
3197
- return null;
3198
- }
3199
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3200
- return function (node) {
3201
- refs.forEach(function (ref) {
3202
- assignRef(ref, node);
3203
- });
3204
- };
3205
- }, refs);
3206
- }
3207
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3208
- function assignRef(ref,
3209
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3210
- value) {
3211
- if (ref == null)
3212
- return;
3213
- if (isFunction(ref)) {
3214
- ref(value);
3215
- }
3216
- else {
3217
- try {
3218
- ref.current = value;
3219
- }
3220
- catch (error) {
3221
- throw new Error("Cannot assign value \"".concat(value, "\" to ref \"").concat(ref, "\""));
3222
- }
3223
- }
3224
- }
3225
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
3226
- function isFunction(value) {
3227
- return !!(value && {}.toString.call(value) == '[object Function]');
3228
- }
3229
-
3230
- var useStateWithCallback = function (initialState, handler, runHandler) {
3231
- var _a = useState(initialState), state = _a[0], setState = _a[1];
3232
- handler &&
3233
- useEffect(function () {
3234
- runHandler && handler(state);
3235
- }, [state]);
3236
- return [state, setState];
3237
- };
3238
-
3239
- var CCollapse = forwardRef(function (_a, ref) {
3240
- var children = _a.children, className = _a.className, horizontal = _a.horizontal, onHide = _a.onHide, onShow = _a.onShow, visible = _a.visible, rest = __rest$1(_a, ["children", "className", "horizontal", "onHide", "onShow", "visible"]);
3241
- var _b = useState(), height = _b[0], setHeight = _b[1];
3242
- var _c = useState(), width = _c[0], setWidth = _c[1];
3243
- var collapseRef = useRef(null);
3244
- var forkedRef = useForkedRef(ref, collapseRef);
3245
- var getTransitionClass = function (state) {
3246
- return state === 'entering'
3247
- ? 'collapsing'
3248
- : state === 'entered'
3249
- ? 'collapse show'
3250
- : state === 'exiting'
3251
- ? 'collapsing'
3252
- : 'collapse';
3253
- };
3254
- var onEntering = function () {
3255
- onShow && onShow();
3256
- if (horizontal) {
3257
- collapseRef.current && setWidth(collapseRef.current.scrollWidth);
3258
- return;
3259
- }
3260
- collapseRef.current && setHeight(collapseRef.current.scrollHeight);
3261
- };
3262
- var onEntered = function () {
3263
- if (horizontal) {
3264
- setWidth(0);
3265
- return;
3266
- }
3267
- setHeight(0);
3268
- };
3269
- var onExit = function () {
3270
- if (horizontal) {
3271
- collapseRef.current && setWidth(collapseRef.current.scrollWidth);
3272
- return;
3273
- }
3274
- collapseRef.current && setHeight(collapseRef.current.scrollHeight);
3275
- };
3276
- var onExiting = function () {
3277
- onHide && onHide();
3278
- if (horizontal) {
3279
- setWidth(0);
3280
- return;
3281
- }
3282
- setHeight(0);
3283
- };
3284
- var onExited = function () {
3285
- if (horizontal) {
3286
- setWidth(0);
3287
- return;
3288
- }
3289
- setHeight(0);
3290
- };
3291
- var _className = classNames$1({
3292
- 'collapse-horizontal': horizontal,
3293
- }, className);
3294
- return (React__default$1.createElement(CSSTransition, { in: visible, nodeRef: collapseRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 350 }, function (state) {
3295
- var transitionClass = getTransitionClass(state);
3296
- var currentHeight = height === 0 ? null : { height: height };
3297
- var currentWidth = width === 0 ? null : { width: width };
3298
- return (React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass), style: __assign$1(__assign$1({}, currentHeight), currentWidth) }, rest, { ref: forkedRef }), children));
3299
- }));
3300
- });
3301
- CCollapse.propTypes = {
3302
- children: propTypesExports.node,
3303
- className: propTypesExports.string,
3304
- horizontal: propTypesExports.bool,
3305
- onHide: propTypesExports.func,
3306
- onShow: propTypesExports.func,
3307
- visible: propTypesExports.bool,
3308
- };
3309
- CCollapse.displayName = 'CCollapse';
2586
+ var _className = classNames$1({
2587
+ 'collapse-horizontal': horizontal,
2588
+ }, className);
2589
+ return (React__default$1.createElement(CSSTransition$1, { in: visible, nodeRef: collapseRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 350 }, function (state) {
2590
+ var transitionClass = getTransitionClass(state);
2591
+ var currentHeight = height === 0 ? null : { height: height };
2592
+ var currentWidth = width === 0 ? null : { width: width };
2593
+ return (React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass), style: __assign$1(__assign$1({}, currentHeight), currentWidth) }, rest, { ref: forkedRef }), children));
2594
+ }));
2595
+ });
2596
+ CCollapse.propTypes = {
2597
+ children: propTypesExports.node,
2598
+ className: propTypesExports.string,
2599
+ horizontal: propTypesExports.bool,
2600
+ onHide: propTypesExports.func,
2601
+ onShow: propTypesExports.func,
2602
+ visible: propTypesExports.bool,
2603
+ };
2604
+ CCollapse.displayName = 'CCollapse';
3310
2605
 
3311
2606
  var CAccordionBody = forwardRef(function (_a, ref) {
3312
2607
  var children = _a.children, className = _a.className, rest = __rest$1(_a, ["children", "className"]);
3313
2608
  var visible = useContext(CAccordionItemContext).visible;
3314
2609
  var _className = classNames$1('accordion-body', className);
3315
- return (React__default$1.createElement(CCollapse, { className: "accordion-collpase", visible: visible },
2610
+ return (React__default$1.createElement(CCollapse, { className: "accordion-collapse", visible: visible },
3316
2611
  React__default$1.createElement("div", __assign$1({ className: _className }, rest, { ref: ref }), children)));
3317
2612
  });
3318
2613
  CAccordionBody.propTypes = {
@@ -3445,7 +2740,7 @@ var CAlert = forwardRef(function (_a, ref) {
3445
2740
  var getTransitionClass = function (state) {
3446
2741
  return state === 'entered' && 'show';
3447
2742
  };
3448
- return (React__default$1.createElement(Transition, { in: _visible, mountOnEnter: true, nodeRef: alertRef, onExit: onClose, timeout: 150, unmountOnExit: true }, function (state) {
2743
+ return (React__default$1.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: alertRef, onExit: onClose, timeout: 150, unmountOnExit: true }, function (state) {
3449
2744
  var transitionClass = getTransitionClass(state);
3450
2745
  return (React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass), role: "alert" }, rest, { ref: forkedRef }),
3451
2746
  children,
@@ -3539,7 +2834,7 @@ var CBackdrop = forwardRef(function (_a, ref) {
3539
2834
  var getTransitionClass = function (state) {
3540
2835
  return state === 'entered' && 'show';
3541
2836
  };
3542
- return (React__default$1.createElement(Transition, { in: visible, mountOnEnter: true, nodeRef: backdropRef, timeout: 150, unmountOnExit: true }, function (state) {
2837
+ return (React__default$1.createElement(Transition$1, { in: visible, mountOnEnter: true, nodeRef: backdropRef, timeout: 150, unmountOnExit: true }, function (state) {
3543
2838
  var transitionClass = getTransitionClass(state);
3544
2839
  return (React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass) }, rest, { ref: forkedRef })));
3545
2840
  }));
@@ -3827,12 +3122,26 @@ var getPreviousSibling = function (elem, selector) {
3827
3122
  return;
3828
3123
  };
3829
3124
 
3830
- var isVisible = function (element) {
3125
+ var isInViewport = function (element) {
3831
3126
  var rect = element.getBoundingClientRect();
3832
- return (rect.top >= 0 &&
3833
- rect.left >= 0 &&
3834
- rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
3835
- rect.right <= (window.innerWidth || document.documentElement.clientWidth));
3127
+ return (Math.floor(rect.top) >= 0 &&
3128
+ Math.floor(rect.left) >= 0 &&
3129
+ Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) &&
3130
+ Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
3131
+ };
3132
+
3133
+ var isObjectInArray = function (array, item, ignore) {
3134
+ if (ignore === void 0) { ignore = []; }
3135
+ return array.some(function (_item) {
3136
+ var result = true;
3137
+ for (var key in item) {
3138
+ if (!ignore.includes(key) && item[key] !== _item[key]) {
3139
+ result = false;
3140
+ break;
3141
+ }
3142
+ }
3143
+ return result;
3144
+ });
3836
3145
  };
3837
3146
 
3838
3147
  var CCarouselContext = createContext({});
@@ -3879,7 +3188,7 @@ var CCarousel = forwardRef(function (_a, ref) {
3879
3188
  var nextItemWhenVisible = function () {
3880
3189
  // Don't call next when the page isn't visible
3881
3190
  // or the carousel or its parent isn't visible
3882
- if (!document.hidden && carouselRef.current && isVisible(carouselRef.current)) {
3191
+ if (!document.hidden && carouselRef.current && isInViewport(carouselRef.current)) {
3883
3192
  if (animating) {
3884
3193
  return;
3885
3194
  }
@@ -3913,7 +3222,7 @@ var CCarousel = forwardRef(function (_a, ref) {
3913
3222
  }
3914
3223
  };
3915
3224
  var handleScroll = function () {
3916
- if (!document.hidden && carouselRef.current && isVisible(carouselRef.current)) {
3225
+ if (!document.hidden && carouselRef.current && isInViewport(carouselRef.current)) {
3917
3226
  setVisible(true);
3918
3227
  }
3919
3228
  else {
@@ -4534,6 +3843,7 @@ var formatters$2 = {
4534
3843
  return addLeadingZeros(fractionalSeconds, token.length);
4535
3844
  }
4536
3845
  };
3846
+ var formatters$3 = formatters$2;
4537
3847
 
4538
3848
  var dayPeriodEnum = {
4539
3849
  am: 'am',
@@ -4631,7 +3941,7 @@ var formatters = {
4631
3941
  });
4632
3942
  }
4633
3943
 
4634
- return formatters$2.y(date, token);
3944
+ return formatters$3.y(date, token);
4635
3945
  },
4636
3946
  // Local week-numbering year
4637
3947
  Y: function Y(date, token, localize, options) {
@@ -4764,7 +4074,7 @@ var formatters = {
4764
4074
  switch (token) {
4765
4075
  case 'M':
4766
4076
  case 'MM':
4767
- return formatters$2.M(date, token);
4077
+ return formatters$3.M(date, token);
4768
4078
  // 1st, 2nd, ..., 12th
4769
4079
 
4770
4080
  case 'Mo':
@@ -4869,7 +4179,7 @@ var formatters = {
4869
4179
  });
4870
4180
  }
4871
4181
 
4872
- return formatters$2.d(date, token);
4182
+ return formatters$3.d(date, token);
4873
4183
  },
4874
4184
  // Day of year
4875
4185
  D: function D(date, token, localize) {
@@ -5190,7 +4500,7 @@ var formatters = {
5190
4500
  });
5191
4501
  }
5192
4502
 
5193
- return formatters$2.h(date, token);
4503
+ return formatters$3.h(date, token);
5194
4504
  },
5195
4505
  // Hour [0-23]
5196
4506
  H: function H(date, token, localize) {
@@ -5200,7 +4510,7 @@ var formatters = {
5200
4510
  });
5201
4511
  }
5202
4512
 
5203
- return formatters$2.H(date, token);
4513
+ return formatters$3.H(date, token);
5204
4514
  },
5205
4515
  // Hour [0-11]
5206
4516
  K: function K(date, token, localize) {
@@ -5235,7 +4545,7 @@ var formatters = {
5235
4545
  });
5236
4546
  }
5237
4547
 
5238
- return formatters$2.m(date, token);
4548
+ return formatters$3.m(date, token);
5239
4549
  },
5240
4550
  // Second
5241
4551
  s: function s(date, token, localize) {
@@ -5245,11 +4555,11 @@ var formatters = {
5245
4555
  });
5246
4556
  }
5247
4557
 
5248
- return formatters$2.s(date, token);
4558
+ return formatters$3.s(date, token);
5249
4559
  },
5250
4560
  // Fraction of second
5251
4561
  S: function S(date, token) {
5252
- return formatters$2.S(date, token);
4562
+ return formatters$3.S(date, token);
5253
4563
  },
5254
4564
  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
5255
4565
  X: function X(date, token, _localize, options) {
@@ -5599,6 +4909,8 @@ var formatDistance = function formatDistance(token, count, options) {
5599
4909
  return result;
5600
4910
  };
5601
4911
 
4912
+ var formatDistance$1 = formatDistance;
4913
+
5602
4914
  function buildFormatLongFn(args) {
5603
4915
  return function () {
5604
4916
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -5641,6 +4953,7 @@ var formatLong = {
5641
4953
  defaultWidth: 'full'
5642
4954
  })
5643
4955
  };
4956
+ var formatLong$1 = formatLong;
5644
4957
 
5645
4958
  var formatRelativeLocale = {
5646
4959
  lastWeek: "'last' eeee 'at' p",
@@ -5655,6 +4968,8 @@ var formatRelative = function formatRelative(token, _date, _baseDate, _options)
5655
4968
  return formatRelativeLocale[token];
5656
4969
  };
5657
4970
 
4971
+ var formatRelative$1 = formatRelative;
4972
+
5658
4973
  function buildLocalizeFn(args) {
5659
4974
  return function (dirtyIndex, options) {
5660
4975
  var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
@@ -5822,6 +5137,7 @@ var localize = {
5822
5137
  defaultFormattingWidth: 'wide'
5823
5138
  })
5824
5139
  };
5140
+ var localize$1 = localize;
5825
5141
 
5826
5142
  function buildMatchFn(args) {
5827
5143
  return function (string) {
@@ -5985,6 +5301,7 @@ var match = {
5985
5301
  defaultParseWidth: 'any'
5986
5302
  })
5987
5303
  };
5304
+ var match$1 = match;
5988
5305
 
5989
5306
  /**
5990
5307
  * @type {Locale}
@@ -5997,11 +5314,11 @@ var match = {
5997
5314
  */
5998
5315
  var locale = {
5999
5316
  code: 'en-US',
6000
- formatDistance: formatDistance,
6001
- formatLong: formatLong,
6002
- formatRelative: formatRelative,
6003
- localize: localize,
6004
- match: match,
5317
+ formatDistance: formatDistance$1,
5318
+ formatLong: formatLong$1,
5319
+ formatRelative: formatRelative$1,
5320
+ localize: localize$1,
5321
+ match: match$1,
6005
5322
  options: {
6006
5323
  weekStartsOn: 0
6007
5324
  /* Sunday */
@@ -6427,12 +5744,12 @@ var uaParser_min = {
6427
5744
  set exports(v){ uaParser_minExports = v; },
6428
5745
  };
6429
5746
 
6430
- /* UAParser.js v1.0.32
5747
+ /* UAParser.js v1.0.33
6431
5748
  Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
6432
5749
  MIT License */
6433
5750
 
6434
5751
  (function (module, exports) {
6435
- (function(window,undefined$1){var LIBVERSION="1.0.32",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",EMBEDDED="embedded",UA_MAX_LENGTH=350;var AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",BROWSER="Browser",CHROME="Chrome",EDGE="Edge",FIREFOX="Firefox",GOOGLE="Google",HUAWEI="Huawei",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",OPERA="Opera",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",FACEBOOK="Facebook";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i]);}else {mergedRegexes[i]=regexes[i];}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i];}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\d\.]/g,EMPTY).split(".")[0]:undefined$1},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\s\s*/,EMPTY).replace(/\s\s*$/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match);}else {this[q[0]]=q[1];}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined$1;}else {this[q[0]]=match?match.replace(q[1],q[2]):undefined$1;}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined$1;}}else {this[q]=match?match:undefined$1;}}}}i+=2;}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined$1:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined$1:i}}return str};var oldSafariMap={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},windowsVersionMap={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"};var regexes={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+" Mini"]],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[NAME,VERSION],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"UC"+BROWSER]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[VERSION,[NAME,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,"WeChat"]],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,"IE"]],[/yabrowser\/([\w\.]+)/i],[VERSION,[NAME,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 Secure "+BROWSER],VERSION],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" Focus"]],[/\bopt\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,"Dolphin"]],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,"MIUI "+BROWSER]],[/fxios\/([-\w\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\bqihu|(qi?ho?o?|360)browser/i],[[NAME,"360 "+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 "+BROWSER],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g," "],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[NAME,VERSION],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+" WebView"],VERSION],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,"Android "+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[VERSION,[NAME,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,"Netscape"],VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[ARCHITECTURE,"amd64"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[ARCHITECTURE,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ARCHITECTURE,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,"armhf"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\w)[;\)]/i],[[ARCHITECTURE,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\((ip(?:hone|od)[\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,"OPPO"],[TYPE,MOBILE]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,"Vivo"],[TYPE,MOBILE]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,"Realme"],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[MODEL,[VENDOR,"Lenovo"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[MODEL,/_/g," "],[VENDOR,"Nokia"],[TYPE,MOBILE]],[/(pixel c)\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,"Xperia Tablet"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,"OnePlus"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,"Fire Phone $1"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,"HTC"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g," "],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,"Acer"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,"Meizu"],[TYPE,MOBILE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,"Fairphone"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,"AT&T"],[TYPE,MOBILE]],[/\bsie-(\w*)/i],[MODEL,[VENDOR,"Siemens"],[TYPE,MOBILE]],[/\b(rct\w+) b/i],[MODEL,[VENDOR,"RCA"],[TYPE,TABLET]],[/\b(venue[\d ]{2,7}) b/i],[MODEL,[VENDOR,"Dell"],[TYPE,TABLET]],[/\b(q(?:mv|ta)\w+) b/i],[MODEL,[VENDOR,"Verizon"],[TYPE,TABLET]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[MODEL,[VENDOR,"Barnes & Noble"],[TYPE,TABLET]],[/\b(tm\d{3}\w+) b/i],[MODEL,[VENDOR,"NuVision"],[TYPE,TABLET]],[/\b(k88) b/i],[MODEL,[VENDOR,"ZTE"],[TYPE,TABLET]],[/\b(nx\d{3}j) b/i],[MODEL,[VENDOR,"ZTE"],[TYPE,MOBILE]],[/\b(gen\d{3}) b.+49h/i],[MODEL,[VENDOR,"Swiss"],[TYPE,MOBILE]],[/\b(zur\d{3}) b/i],[MODEL,[VENDOR,"Swiss"],[TYPE,TABLET]],[/\b((zeki)?tb.*\b) b/i],[MODEL,[VENDOR,"Zeki"],[TYPE,TABLET]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[VENDOR,"Dragon Touch"],MODEL,[TYPE,TABLET]],[/\b(ns-?\w{0,9}) b/i],[MODEL,[VENDOR,"Insignia"],[TYPE,TABLET]],[/\b((nxa|next)-?\w{0,9}) b/i],[MODEL,[VENDOR,"NextBook"],[TYPE,TABLET]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,"Voice"],MODEL,[TYPE,MOBILE]],[/\b(lvtel\-)?(v1[12]) b/i],[[VENDOR,"LvTel"],MODEL,[TYPE,MOBILE]],[/\b(ph-1) /i],[MODEL,[VENDOR,"Essential"],[TYPE,MOBILE]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[MODEL,[VENDOR,"Envizen"],[TYPE,TABLET]],[/\b(trio[-\w\. ]+) b/i],[MODEL,[VENDOR,"MachSpeed"],[TYPE,TABLET]],[/\btu_(1491) b/i],[MODEL,[VENDOR,"Rotor"],[TYPE,TABLET]],[/(shield[\w ]+) b/i],[MODEL,[VENDOR,"Nvidia"],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g," "],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,"Nvidia"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,"SmartTV"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+" TV"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+"cast"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\w)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\w ]+)( bui|\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\w\. ]{0,9});.+buil/i],[MODEL,[VENDOR,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[NAME,"Windows"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,"."],[NAME,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[NAME,"Mac OS"],[VERSION,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[VERSION,[NAME,"webOS"]],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROME+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[NAME,"Chromium OS"],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[NAME,VERSION],[/(sunos) ?([\w\.\d]*)/i],[[NAME,"Solaris"],VERSION],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined$1;}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _ua=ua||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes,extensions):regexes;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined$1;_browser[VERSION]=undefined$1;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined$1;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined$1;_device[MODEL]=undefined$1;_device[TYPE]=undefined$1;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined$1;_engine[VERSION]=undefined$1;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined$1;_os[VERSION]=undefined$1;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return {ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);{if(module.exports){exports=module.exports=UAParser;}exports.UAParser=UAParser;}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop];}};}})(typeof window==="object"?window:commonjsGlobal);
5752
+ (function(window,undefined$1){var LIBVERSION="0.7.33",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",EMBEDDED="embedded",UA_MAX_LENGTH=350;var AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",BROWSER="Browser",CHROME="Chrome",EDGE="Edge",FIREFOX="Firefox",GOOGLE="Google",HUAWEI="Huawei",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",OPERA="Opera",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",FACEBOOK="Facebook";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i]);}else {mergedRegexes[i]=regexes[i];}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i];}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\d\.]/g,EMPTY).split(".")[0]:undefined$1},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\s\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match);}else {this[q[0]]=q[1];}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined$1;}else {this[q[0]]=match?match.replace(q[1],q[2]):undefined$1;}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined$1;}}else {this[q]=match?match:undefined$1;}}}}i+=2;}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined$1:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined$1:i}}return str};var oldSafariMap={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},windowsVersionMap={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"};var regexes={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+" Mini"]],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[NAME,VERSION],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"UC"+BROWSER]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[VERSION,[NAME,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,"WeChat"]],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,"IE"]],[/yabrowser\/([\w\.]+)/i],[VERSION,[NAME,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 Secure "+BROWSER],VERSION],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" Focus"]],[/\bopt\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,"Dolphin"]],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,"MIUI "+BROWSER]],[/fxios\/([-\w\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\bqihu|(qi?ho?o?|360)browser/i],[[NAME,"360 "+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 "+BROWSER],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g," "],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[NAME,VERSION],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+" WebView"],VERSION],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,"Android "+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[VERSION,[NAME,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,"Netscape"],VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[NAME,VERSION],[/(cobalt)\/([\w\.]+)/i],[NAME,[VERSION,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[ARCHITECTURE,"amd64"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[ARCHITECTURE,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ARCHITECTURE,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,"armhf"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\w)[;\)]/i],[[ARCHITECTURE,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\((ip(?:hone|od)[\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,"OPPO"],[TYPE,MOBILE]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,"Vivo"],[TYPE,MOBILE]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,"Realme"],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[MODEL,[VENDOR,"Lenovo"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[MODEL,/_/g," "],[VENDOR,"Nokia"],[TYPE,MOBILE]],[/(pixel c)\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,"Xperia Tablet"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,"OnePlus"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,"Fire Phone $1"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,"HTC"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g," "],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,"Acer"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,"Meizu"],[TYPE,MOBILE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,"Fairphone"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,"AT&T"],[TYPE,MOBILE]],[/\bsie-(\w*)/i],[MODEL,[VENDOR,"Siemens"],[TYPE,MOBILE]],[/\b(rct\w+) b/i],[MODEL,[VENDOR,"RCA"],[TYPE,TABLET]],[/\b(venue[\d ]{2,7}) b/i],[MODEL,[VENDOR,"Dell"],[TYPE,TABLET]],[/\b(q(?:mv|ta)\w+) b/i],[MODEL,[VENDOR,"Verizon"],[TYPE,TABLET]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[MODEL,[VENDOR,"Barnes & Noble"],[TYPE,TABLET]],[/\b(tm\d{3}\w+) b/i],[MODEL,[VENDOR,"NuVision"],[TYPE,TABLET]],[/\b(k88) b/i],[MODEL,[VENDOR,"ZTE"],[TYPE,TABLET]],[/\b(nx\d{3}j) b/i],[MODEL,[VENDOR,"ZTE"],[TYPE,MOBILE]],[/\b(gen\d{3}) b.+49h/i],[MODEL,[VENDOR,"Swiss"],[TYPE,MOBILE]],[/\b(zur\d{3}) b/i],[MODEL,[VENDOR,"Swiss"],[TYPE,TABLET]],[/\b((zeki)?tb.*\b) b/i],[MODEL,[VENDOR,"Zeki"],[TYPE,TABLET]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[VENDOR,"Dragon Touch"],MODEL,[TYPE,TABLET]],[/\b(ns-?\w{0,9}) b/i],[MODEL,[VENDOR,"Insignia"],[TYPE,TABLET]],[/\b((nxa|next)-?\w{0,9}) b/i],[MODEL,[VENDOR,"NextBook"],[TYPE,TABLET]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,"Voice"],MODEL,[TYPE,MOBILE]],[/\b(lvtel\-)?(v1[12]) b/i],[[VENDOR,"LvTel"],MODEL,[TYPE,MOBILE]],[/\b(ph-1) /i],[MODEL,[VENDOR,"Essential"],[TYPE,MOBILE]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[MODEL,[VENDOR,"Envizen"],[TYPE,TABLET]],[/\b(trio[-\w\. ]+) b/i],[MODEL,[VENDOR,"MachSpeed"],[TYPE,TABLET]],[/\btu_(1491) b/i],[MODEL,[VENDOR,"Rotor"],[TYPE,TABLET]],[/(shield[\w ]+) b/i],[MODEL,[VENDOR,"Nvidia"],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g," "],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,"Nvidia"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,"SmartTV"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+" TV"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+"cast"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\w)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\w ]+)( bui|\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\w\. ]{0,9});.+buil/i],[MODEL,[VENDOR,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[NAME,"Windows"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,"."],[NAME,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[NAME,"Mac OS"],[VERSION,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[VERSION,[NAME,"webOS"]],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROME+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[NAME,"Chromium OS"],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[NAME,VERSION],[/(sunos) ?([\w\.\d]*)/i],[[NAME,"Solaris"],VERSION],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined$1;}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _ua=ua||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes,extensions):regexes;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined$1;_browser[VERSION]=undefined$1;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined$1;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined$1;_device[MODEL]=undefined$1;_device[TYPE]=undefined$1;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined$1;_engine[VERSION]=undefined$1;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined$1;_os[VERSION]=undefined$1;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return {ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);{if(module.exports){exports=module.exports=UAParser;}exports.UAParser=UAParser;}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop];}};}})(typeof window==="object"?window:commonjsGlobal);
6436
5753
  } (uaParser_min, uaParser_minExports));
6437
5754
 
6438
5755
  Object.defineProperty(lib, '__esModule', { value: true });
@@ -7702,40 +7019,145 @@ var isToday = function (date) {
7702
7019
  date.getFullYear() === today.getFullYear());
7703
7020
  };
7704
7021
 
7705
- var CCalendar = forwardRef(function (_a, ref) {
7706
- 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;
7707
- var isInitialMount = useRef(true);
7708
- var _h = useState(calendarDate ? new Date(calendarDate) : startDate ? new Date(startDate) : new Date()), _calendarDate = _h[0], setCalendarDate = _h[1];
7022
+ var Calendar = function (props) {
7023
+ var addMonths = props.addMonths, calendarDate = props.calendarDate, dayFormat = props.dayFormat, disabledDates = props.disabledDates, endDate = props.endDate, firstDayOfWeek = props.firstDayOfWeek, hoverDate = props.hoverDate, locale = props.locale, maxDate = props.maxDate, minDate = props.minDate, onCellClick = props.onCellClick, onCellKeyDown = props.onCellKeyDown, onCellMouseEnter = props.onCellMouseEnter, onCellMouseLeave = props.onCellMouseLeave, onMonthClick = props.onMonthClick, onYearClick = props.onYearClick, selectEndDate = props.selectEndDate, startDate = props.startDate, view = props.view, weekdayFormat = props.weekdayFormat;
7024
+ var _a = useState(calendarDate), date = _a[0], setDate = _a[1];
7025
+ var _b = useState([]), listOfMonths = _b[0], setListOfMonths = _b[1];
7709
7026
  useEffect(function () {
7710
- if (calendarDate) {
7711
- var d = new Date(calendarDate);
7712
- !isSameDateAs(_calendarDate, d) && setCalendarDate(d);
7027
+ if (addMonths !== 0) {
7028
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7029
+ return;
7713
7030
  }
7031
+ setDate(calendarDate);
7714
7032
  }, [calendarDate]);
7715
- var _j = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _j[0], setStartDate = _j[1];
7033
+ useEffect(function () {
7034
+ setListOfMonths(createGroupsInArray(getMonthsNames(locale), 4));
7035
+ }, []);
7036
+ var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7037
+ var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7038
+ var weekDays = monthDetails[0];
7039
+ return (React__default$1.createElement("table", null,
7040
+ view === 'days' && (React__default$1.createElement("thead", null,
7041
+ React__default$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7042
+ var date = _a.date;
7043
+ return (React__default$1.createElement("th", { key: idx, className: "calendar-cell" },
7044
+ React__default$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7045
+ ? weekdayFormat(date)
7046
+ : typeof weekdayFormat === 'string'
7047
+ ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7048
+ : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat))));
7049
+ })))),
7050
+ React__default$1.createElement("tbody", null,
7051
+ view === 'days' &&
7052
+ monthDetails.map(function (week, index) {
7053
+ return (React__default$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7054
+ var _b;
7055
+ var date = _a.date, month = _a.month;
7056
+ return (React__default$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7057
+ today: month === 'current' && isToday(date),
7058
+ disabled: isDateDisabled(date, minDate, maxDate, disabledDates)
7059
+ },
7060
+ _b[month] = true,
7061
+ _b.last = isLastDayOfMonth(date),
7062
+ _b['range-hover'] = month === 'current' &&
7063
+ (hoverDate && selectEndDate
7064
+ ? isDateInRange(date, startDate, hoverDate)
7065
+ : isDateInRange(date, hoverDate, endDate)),
7066
+ _b.range = month === 'current' && isDateInRange(date, startDate, endDate),
7067
+ _b.selected = isDateSelected(date, startDate, endDate),
7068
+ _b.start = isStartDate(date, startDate, endDate),
7069
+ _b.end = isEndDate(date, startDate, endDate),
7070
+ _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7071
+ onBlur: function () { return onCellMouseLeave(); },
7072
+ onClick: function () { return onCellClick(date); },
7073
+ onFocus: function () { return onCellMouseEnter(date); },
7074
+ onKeyDown: function (event) { return onCellKeyDown(event, date); },
7075
+ onMouseEnter: function () { return onCellMouseEnter(date); },
7076
+ onMouseLeave: function () { return onCellMouseLeave(); },
7077
+ }), (month !== 'current' && {
7078
+ onMouseEnter: function () { return onCellMouseLeave(); },
7079
+ })),
7080
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7081
+ ? dayFormat(date)
7082
+ : date.toLocaleDateString(locale, { day: dayFormat }))));
7083
+ })));
7084
+ }),
7085
+ view === 'months' &&
7086
+ listOfMonths.map(function (row, index) {
7087
+ return (React__default$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7088
+ return (React__default$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () { return onMonthClick(index * 3 + idx - addMonths, 'days'); } },
7089
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7090
+ })));
7091
+ }),
7092
+ view === 'years' &&
7093
+ listOfYears.map(function (row, index) {
7094
+ return (React__default$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7095
+ return (React__default$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7096
+ return onYearClick(new Date(year, date.getMonth() - addMonths, date.getDate()), 'months');
7097
+ } },
7098
+ React__default$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7099
+ })));
7100
+ }))));
7101
+ };
7102
+ var Navigation = function (props) {
7103
+ var addMonths = props.addMonths, calendarDate = props.calendarDate, locale = props.locale, navigation = props.navigation, navNextDoubleIcon = props.navNextDoubleIcon, navNextIcon = props.navNextIcon, navPrevDoubleIcon = props.navPrevDoubleIcon, navPrevIcon = props.navPrevIcon, navYearFirst = props.navYearFirst, onMonthClick = props.onMonthClick, onNavigationClick = props.onNavigationClick, onYearClick = props.onYearClick, view = props.view;
7104
+ var _a = useState(), date = _a[0], setDate = _a[1];
7105
+ useEffect(function () {
7106
+ if (addMonths !== 0) {
7107
+ setDate(new Date(calendarDate.getFullYear(), calendarDate.getMonth() + addMonths, 1));
7108
+ return;
7109
+ }
7110
+ setDate(calendarDate);
7111
+ }, [calendarDate]);
7112
+ return (React__default$1.createElement("div", { className: "calendar-nav" },
7113
+ navigation && (React__default$1.createElement("div", { className: "calendar-nav-prev" },
7114
+ React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7115
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7116
+ React__default$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7117
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && onMonthClick(); } }, date && date.toLocaleDateString(locale, { month: 'long' }))),
7118
+ React__default$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && onYearClick(); } }, (navYearFirst && { style: { order: '-1' } })), date && date.toLocaleDateString(locale, { year: 'numeric' }))),
7119
+ navigation && (React__default$1.createElement("div", { className: "calendar-nav-next" },
7120
+ view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next'); } }, navNextIcon ? (navNextIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7121
+ React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return onNavigationClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7122
+ };
7123
+ var CCalendar = forwardRef(function (_a, ref) {
7124
+ var startDate = _a.startDate, endDate = _a.endDate, _b = _a.calendarDate, calendarDate = _b === void 0 ? startDate || endDate || null : _b, _c = _a.calendars, calendars = _c === void 0 ? 1 : _c, className = _a.className, _d = _a.dayFormat, dayFormat = _d === void 0 ? 'numeric' : _d, disabledDates = _a.disabledDates, _e = _a.firstDayOfWeek, firstDayOfWeek = _e === void 0 ? 1 : _e, _f = _a.locale, locale = _f === void 0 ? 'default' : _f, maxDate = _a.maxDate, minDate = _a.minDate, _g = _a.navigation, navigation = _g === void 0 ? true : _g, navNextIcon = _a.navNextIcon, navNextDoubleIcon = _a.navNextDoubleIcon, navPrevIcon = _a.navPrevIcon, navPrevDoubleIcon = _a.navPrevDoubleIcon, navYearFirst = _a.navYearFirst, range = _a.range, selectEndDate = _a.selectEndDate, _h = _a.weekdayFormat, weekdayFormat = _h === void 0 ? 2 : _h, onCalendarCellHover = _a.onCalendarCellHover, onCalendarDateChange = _a.onCalendarDateChange, onEndDateChange = _a.onEndDateChange, onStartDateChange = _a.onStartDateChange, onSelectEndChange = _a.onSelectEndChange, onViewChanged = _a.onViewChanged;
7125
+ var isInitialMount = useRef(true);
7126
+ var _j = useState(null), _calendarDate = _j[0], setCalendarDate = _j[1];
7127
+ useEffect(function () {
7128
+ if (calendarDate === null) {
7129
+ setCalendarDate(new Date());
7130
+ return;
7131
+ }
7132
+ if (calendarDate) {
7133
+ var date = new Date(calendarDate);
7134
+ !isSameDateAs(_calendarDate, date) && setCalendarDate(date);
7135
+ }
7136
+ }, [calendarDate]);
7137
+ var _k = useStateWithCallback(startDate ? new Date(startDate) : null, onStartDateChange, !isInitialMount.current), _startDate = _k[0], setStartDate = _k[1];
7716
7138
  useEffect(function () {
7717
7139
  var date = startDate ? new Date(startDate) : null;
7718
7140
  if (!isSameDateAs(date, _startDate)) {
7719
7141
  setStartDate(date);
7720
7142
  }
7721
7143
  }, [startDate]);
7722
- var _k = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _k[0], setEndDate = _k[1];
7144
+ var _l = useStateWithCallback(endDate ? new Date(endDate) : null, onEndDateChange, !isInitialMount.current), _endDate = _l[0], setEndDate = _l[1];
7723
7145
  useEffect(function () {
7724
7146
  var date = endDate ? new Date(endDate) : null;
7725
7147
  if (!isSameDateAs(date, _endDate)) {
7726
7148
  setEndDate(date);
7727
7149
  }
7728
7150
  }, [endDate]);
7729
- var _l = useState(null), _hoverDate = _l[0], setHoverDate = _l[1];
7730
- var _m = useState(maxDate ? new Date(maxDate) : null), _maxDate = _m[0], setMaxDate = _m[1];
7151
+ var _m = useState(null), _hoverDate = _m[0], setHoverDate = _m[1];
7152
+ var _o = useState(maxDate ? new Date(maxDate) : null), _maxDate = _o[0], setMaxDate = _o[1];
7731
7153
  useEffect(function () {
7732
7154
  maxDate && setMaxDate(new Date(maxDate));
7733
7155
  }, [maxDate]);
7734
- var _o = useState(minDate ? new Date(minDate) : null), _minDate = _o[0], setMinDate = _o[1];
7156
+ var _p = useState(minDate ? new Date(minDate) : null), _minDate = _p[0], setMinDate = _p[1];
7735
7157
  useEffect(function () {
7736
7158
  minDate && setMinDate(new Date(minDate));
7737
7159
  }, [minDate]);
7738
- var _p = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _p[0], setSelectEndDate = _p[1];
7160
+ var _q = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _q[0], setSelectEndDate = _q[1];
7739
7161
  useEffect(function () {
7740
7162
  setSelectEndDate(selectEndDate);
7741
7163
  }, [selectEndDate]);
@@ -7745,12 +7167,15 @@ var CCalendar = forwardRef(function (_a, ref) {
7745
7167
  onSelectEndChange &&
7746
7168
  onSelectEndChange(_selectEndDate);
7747
7169
  }, [_selectEndDate]);
7748
- var _q = useStateWithCallback('days', onViewChanged), view = _q[0], setView = _q[1];
7170
+ var _r = useStateWithCallback('days', onViewChanged), view = _r[0], setView = _r[1];
7749
7171
  useEffect(function () {
7750
7172
  isInitialMount.current = false;
7751
7173
  }, []);
7752
7174
  var setCalendarPage = function (years, months, setMonth) {
7753
7175
  if (months === void 0) { months = 0; }
7176
+ if (_calendarDate === null) {
7177
+ return;
7178
+ }
7754
7179
  var year = _calendarDate.getFullYear();
7755
7180
  var month = _calendarDate.getMonth();
7756
7181
  var d = new Date(year, month, 1);
@@ -7841,105 +7266,16 @@ var CCalendar = forwardRef(function (_a, ref) {
7841
7266
  return;
7842
7267
  }
7843
7268
  };
7844
- var Calendar = function (props) {
7845
- var addMonths = props.addMonths;
7846
- var date = _calendarDate;
7847
- if (addMonths !== 0) {
7848
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7849
- }
7850
- var monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), firstDayOfWeek);
7851
- var listOfMonths = createGroupsInArray(getMonthsNames(locale), 4);
7852
- var listOfYears = createGroupsInArray(getYears(date.getFullYear()), 4);
7853
- var weekDays = monthDetails[0];
7854
- return (React__default$1.createElement("table", null,
7855
- view === 'days' && (React__default$1.createElement("thead", null,
7856
- React__default$1.createElement("tr", null, weekDays.map(function (_a, idx) {
7857
- var date = _a.date;
7858
- return (React__default$1.createElement("th", { key: idx, className: "calendar-cell" },
7859
- React__default$1.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function'
7860
- ? weekdayFormat(date)
7861
- : typeof weekdayFormat === 'string'
7862
- ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
7863
- : date
7864
- .toLocaleDateString(locale, { weekday: 'long' })
7865
- .slice(0, weekdayFormat))));
7866
- })))),
7867
- React__default$1.createElement("tbody", null,
7868
- view === 'days' &&
7869
- monthDetails.map(function (week, index) {
7870
- return (React__default$1.createElement("tr", { key: index }, week.map(function (_a, idx) {
7871
- var _b;
7872
- var date = _a.date, month = _a.month;
7873
- return (React__default$1.createElement("td", __assign$1({ className: classNames$1('calendar-cell', (_b = {
7874
- today: month === 'current' && isToday(date),
7875
- disabled: isDateDisabled(date, _minDate, _maxDate, disabledDates)
7876
- },
7877
- _b[month] = true,
7878
- _b.last = isLastDayOfMonth(date),
7879
- _b['range-hover'] = month === 'current' &&
7880
- (_hoverDate && _selectEndDate
7881
- ? isDateInRange(date, _startDate, _hoverDate)
7882
- : isDateInRange(date, _hoverDate, _endDate)),
7883
- _b.range = month === 'current' && isDateInRange(date, _startDate, _endDate),
7884
- _b.selected = isDateSelected(date, _startDate, _endDate),
7885
- _b.start = isStartDate(date, _startDate, _endDate),
7886
- _b.end = isEndDate(date, _startDate, _endDate),
7887
- _b)), key: idx, tabIndex: 0, title: date.toLocaleDateString(locale) }, (month === 'current' && {
7888
- onBlur: function () { return handleCellMouseLeave(); },
7889
- onClick: function () { return handleCellOnClick(date); },
7890
- onFocus: function () { return handleCellMouseEnter(date); },
7891
- onKeyDown: function (event) { return handleCellKeyDown(event, date); },
7892
- onMouseEnter: function () { return handleCellMouseEnter(date); },
7893
- onMouseLeave: function () { return handleCellMouseLeave(); },
7894
- }), (month !== 'current' && {
7895
- onMouseEnter: function () { return handleCellMouseLeave(); },
7896
- })),
7897
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function'
7898
- ? dayFormat(date)
7899
- : date.toLocaleDateString(locale, { day: dayFormat }))));
7900
- })));
7901
- }),
7902
- view === 'months' &&
7903
- listOfMonths.map(function (row, index) {
7904
- return (React__default$1.createElement("tr", { key: index }, row.map(function (month, idx) {
7905
- return (React__default$1.createElement("td", { key: idx, className: "calendar-cell month", onClick: function () {
7906
- setCalendarPage(0, 0, index * 3 + idx - addMonths);
7907
- setView('days');
7908
- } },
7909
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, month)));
7910
- })));
7911
- }),
7912
- view === 'years' &&
7913
- listOfYears.map(function (row, index) {
7914
- return (React__default$1.createElement("tr", { key: index }, row.map(function (year, idx) {
7915
- return (React__default$1.createElement("td", { key: idx, className: "calendar-cell year", onClick: function () {
7916
- setCalendarDate(new Date(year, date.getMonth() - addMonths, date.getDate()));
7917
- setView('months');
7918
- } },
7919
- React__default$1.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' }))));
7920
- })));
7921
- }))));
7922
- };
7923
- var Navigation = function (props) {
7924
- var addMonths = props.addMonths;
7925
- var date = _calendarDate;
7926
- if (addMonths !== 0) {
7927
- date = new Date(_calendarDate.getFullYear(), _calendarDate.getMonth() + addMonths, 1);
7928
- }
7929
- return (React__default$1.createElement("div", { className: "calendar-nav" },
7930
- navigation && (React__default$1.createElement("div", { className: "calendar-nav-prev" },
7931
- React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev', true); } }, navPrevDoubleIcon ? (navPrevDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))),
7932
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('prev'); } }, navPrevIcon ? (navPrevIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" })))))),
7933
- React__default$1.createElement("div", __assign$1({ className: "calendar-nav-date" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })),
7934
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && setView('months'); } }, date.toLocaleDateString(locale, { month: 'long' }))),
7935
- React__default$1.createElement(CButton, __assign$1({ color: "transparent", size: "sm", onClick: function () { return navigation && setView('years'); } }, (navYearFirst && { style: { order: '-1' } })), date.toLocaleDateString(locale, { year: 'numeric' }))),
7936
- navigation && (React__default$1.createElement("div", { className: "calendar-nav-next" },
7937
- view === 'days' && (React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next'); } }, navNextIcon ? (navNextIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" })))),
7938
- React__default$1.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return handleNavigationOnClick('next', true); } }, navNextDoubleIcon ? (navNextDoubleIcon) : (React__default$1.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" })))))));
7939
- };
7940
- return (React__default$1.createElement("div", { className: classNames$1('calendars', className) }, Array.from({ length: calendars }, function (_, index) { return (React__default$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7941
- Navigation({ addMonths: index }),
7942
- Calendar({ addMonths: index }))); })));
7269
+ return (React__default$1.createElement("div", { className: classNames$1('calendars', className) }, _calendarDate &&
7270
+ Array.from({ length: calendars }, function (_, index) { return (React__default$1.createElement("div", { className: classNames$1('calendar', view), key: index, ref: ref },
7271
+ React__default$1.createElement(Navigation, { addMonths: index, calendarDate: _calendarDate, locale: locale, navigation: navigation, navNextDoubleIcon: navNextDoubleIcon, navNextIcon: navNextIcon, navPrevDoubleIcon: navPrevDoubleIcon, navPrevIcon: navPrevIcon, navYearFirst: navYearFirst, onMonthClick: function () { return setView('months'); }, onNavigationClick: handleNavigationOnClick, onYearClick: function () { return setView('years'); }, view: view }),
7272
+ React__default$1.createElement(Calendar, { addMonths: index, calendarDate: _calendarDate, dayFormat: dayFormat, disabledDates: disabledDates, endDate: _endDate, firstDayOfWeek: firstDayOfWeek, hoverDate: _hoverDate, locale: locale, maxDate: _maxDate, minDate: _minDate, onCellClick: handleCellOnClick, onCellKeyDown: handleCellKeyDown, onCellMouseEnter: handleCellMouseEnter, onCellMouseLeave: handleCellMouseLeave, onMonthClick: function (month, view) {
7273
+ setCalendarPage(0, 0, month);
7274
+ setView(view);
7275
+ }, onYearClick: function (date, view) {
7276
+ setCalendarDate(date);
7277
+ setView(view);
7278
+ }, selectEndDate: _selectEndDate, startDate: _startDate, view: view, weekdayFormat: weekdayFormat }))); })));
7943
7279
  });
7944
7280
  CCalendar.propTypes = {
7945
7281
  className: propTypesExports.string,
@@ -8111,15 +7447,16 @@ CFormText.displayName = 'CFormText';
8111
7447
 
8112
7448
  var CFormControlWrapper = function (_a) {
8113
7449
  var children = _a.children, describedby = _a.describedby, feedback = _a.feedback, feedbackInvalid = _a.feedbackInvalid, feedbackValid = _a.feedbackValid, floatingClassName = _a.floatingClassName, floatingLabel = _a.floatingLabel, id = _a.id, invalid = _a.invalid, label = _a.label, text = _a.text, tooltipFeedback = _a.tooltipFeedback, valid = _a.valid;
7450
+ var formControlValidation = function () { return (React__default$1.createElement(CFormControlValidation, { describedby: describedby, feedback: feedback, feedbackInvalid: feedbackInvalid, feedbackValid: feedbackValid, floatingLabel: floatingLabel, invalid: invalid, tooltipFeedback: tooltipFeedback, valid: valid })); };
8114
7451
  return floatingLabel ? (React__default$1.createElement(CFormFloating, { className: floatingClassName },
8115
7452
  children,
8116
7453
  React__default$1.createElement(CFormLabel, { htmlFor: id }, label || floatingLabel),
8117
7454
  text && React__default$1.createElement(CFormText, { id: describedby }, text),
8118
- React__default$1.createElement(CFormControlValidation, { describedby: describedby, feedback: feedback, feedbackInvalid: feedbackInvalid, feedbackValid: feedbackValid, floatingLabel: floatingLabel, invalid: invalid, tooltipFeedback: tooltipFeedback, valid: valid }))) : (React__default$1.createElement(React__default$1.Fragment, null,
7455
+ formControlValidation())) : (React__default$1.createElement(React__default$1.Fragment, null,
8119
7456
  label && React__default$1.createElement(CFormLabel, { htmlFor: id }, label),
8120
7457
  children,
8121
7458
  text && React__default$1.createElement(CFormText, { id: describedby }, text),
8122
- React__default$1.createElement(CFormControlValidation, { describedby: describedby, feedback: feedback, feedbackInvalid: feedbackInvalid, feedbackValid: feedbackValid, floatingLabel: floatingLabel, invalid: invalid, tooltipFeedback: tooltipFeedback, valid: valid })));
7459
+ formControlValidation()));
8123
7460
  };
8124
7461
  CFormControlWrapper.propTypes = __assign$1({ children: propTypesExports.node, floatingClassName: propTypesExports.string, floatingLabel: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]), label: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]), text: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]) }, CFormControlValidation.propTypes);
8125
7462
  CFormControlWrapper.displayName = 'CFormControlWrapper';
@@ -10983,46 +10320,34 @@ var getAmPm = function (date, locale) {
10983
10320
  }
10984
10321
  return date.getHours() >= 12 ? 'pm' : 'am';
10985
10322
  };
10986
- var getListOfHours = function (locale, ampm) {
10323
+ var getLocalizedTimePartials = function (locale, ampm) {
10987
10324
  if (ampm === void 0) { ampm = 'auto'; }
10988
- return Array.from({ length: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? 12 : 24 }, function (_, i) {
10989
- return {
10990
- value: (ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i,
10991
- label: ((ampm === 'auto' && isAmPm(locale)) || ampm === true ? i + 1 : i).toLocaleString(locale),
10992
- };
10993
- });
10994
- };
10995
- var getListOfMinutes = function (locale, valueAsString) {
10996
- if (valueAsString === void 0) { valueAsString = false; }
10997
- return Array.from({ length: 60 }, function (_, i) {
10998
- var d = new Date();
10999
- d.setMinutes(i);
10325
+ var date = new Date();
10326
+ var hour12 = ['am', 'AM', 'pm', 'PM'].some(function (el) { return date.toLocaleString(locale).includes(el); });
10327
+ var listOfHours = Array.from({ length: (ampm === 'auto' && hour12) || ampm === true ? 12 : 24 }, function (_, i) {
11000
10328
  return {
11001
- value: valueAsString ? i.toString() : i,
11002
- label: d
11003
- .toLocaleTimeString(locale, {
11004
- minute: '2-digit',
11005
- second: '2-digit',
11006
- })
11007
- .split(/[^A-Za-z0-9]/)[0],
10329
+ value: (ampm === 'auto' && hour12) || ampm === true ? i + 1 : i,
10330
+ label: ((ampm === 'auto' && hour12) || ampm === true ? i + 1 : i).toLocaleString(locale),
11008
10331
  };
11009
10332
  });
11010
- };
11011
- var getListOfSeconds = function (locale, valueAsString) {
11012
- if (valueAsString === void 0) { valueAsString = false; }
11013
- return Array.from({ length: 60 }, function (_, i) {
11014
- var d = new Date();
11015
- d.setSeconds(i);
10333
+ var listOfMinutesSeconds = Array.from({ length: 60 }, function (_, i) {
10334
+ date.setMinutes(i);
11016
10335
  return {
11017
- value: valueAsString ? i.toString() : i,
11018
- label: d
10336
+ value: i,
10337
+ label: date
11019
10338
  .toLocaleTimeString(locale, {
11020
10339
  minute: '2-digit',
11021
10340
  second: '2-digit',
11022
10341
  })
11023
- .split(/[^A-Za-z0-9]/)[1],
10342
+ .split(/[^A-Za-z0-9\u06F0-\u06F90-9]/)[0],
11024
10343
  };
11025
10344
  });
10345
+ return {
10346
+ listOfHours: listOfHours,
10347
+ listOfMinutes: listOfMinutesSeconds,
10348
+ listOfSeconds: listOfMinutesSeconds,
10349
+ hour12: hour12,
10350
+ };
11026
10351
  };
11027
10352
  var getSelectedHour = function (date, locale, ampm) {
11028
10353
  if (ampm === void 0) { ampm = 'auto'; }
@@ -11050,13 +10375,22 @@ var CTimePicker = forwardRef(function (_a, ref) {
11050
10375
  var _o = useState(null), initialDate = _o[0], setInitialDate = _o[1];
11051
10376
  var _p = useState(date ? getAmPm(new Date(date), locale) : 'am'), _ampm = _p[0], setAmPm = _p[1];
11052
10377
  var _q = useState(visible), _visible = _q[0], setVisible = _q[1];
10378
+ var _r = useState({
10379
+ listOfHours: [],
10380
+ listOfMinutes: [],
10381
+ listOfSeconds: [],
10382
+ hour12: false,
10383
+ }), localizedTimePartials = _r[0], setLocalizedTimePartials = _r[1];
10384
+ useEffect(function () {
10385
+ setLocalizedTimePartials(getLocalizedTimePartials(locale, ampm));
10386
+ }, [date]);
11053
10387
  useEffect(function () {
11054
10388
  setDate(convertTimeToDate(time));
11055
10389
  }, [time]);
11056
10390
  useEffect(function () {
11057
10391
  if (inputRef.current) {
11058
10392
  inputRef.current.value = date
11059
- ? date.toLocaleTimeString(locale, __assign$1({ hour12: (ampm === 'auto' && isAmPm(locale)) || (typeof ampm === 'boolean' && ampm) }, (!seconds && { timeStyle: 'short' })))
10393
+ ? date.toLocaleTimeString(locale, __assign$1({ hour12: localizedTimePartials && localizedTimePartials.hour12 }, (!seconds && { timeStyle: 'short' })))
11060
10394
  : '';
11061
10395
  }
11062
10396
  date && setAmPm(getAmPm(new Date(date), locale));
@@ -11077,7 +10411,7 @@ var CTimePicker = forwardRef(function (_a, ref) {
11077
10411
  }
11078
10412
  }
11079
10413
  if (set === 'hours') {
11080
- if ((ampm === 'auto' && isAmPm(locale)) || ampm === true) {
10414
+ if (localizedTimePartials && localizedTimePartials.hour12) {
11081
10415
  _date.setHours(convert12hTo24h(_ampm, parseInt(value)));
11082
10416
  }
11083
10417
  else {
@@ -11101,30 +10435,40 @@ var CTimePicker = forwardRef(function (_a, ref) {
11101
10435
  indicator && (React__default$1.createElement("span", { className: "picker-input-group-indicator" }, typeof indicator === 'boolean' ? (React__default$1.createElement("span", { className: "picker-input-group-icon time-picker-input-icon" })) : (indicator))),
11102
10436
  cleaner && date && (React__default$1.createElement("span", { className: "picker-input-group-cleaner", role: "button", onClick: function (event) { return handleClear(event); } }, typeof cleaner === 'boolean' ? (React__default$1.createElement("span", { className: "picker-input-group-icon time-picker-cleaner-icon" })) : (cleaner))))))); };
11103
10437
  var TimePickerSelect = function () {
10438
+ var _a;
11104
10439
  return (React__default$1.createElement(React__default$1.Fragment, null,
11105
10440
  React__default$1.createElement("span", { className: "time-picker-inline-icon" }),
11106
- React__default$1.createElement(CFormSelect, { disabled: disabled, options: getListOfHours(locale).map(function (option) {
11107
- return {
11108
- value: option.value.toString(),
11109
- label: option.label,
11110
- };
11111
- }), onChange: function (event) {
10441
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10442
+ ((_a = localizedTimePartials.listOfHours) === null || _a === void 0 ? void 0 : _a.map(function (option) {
10443
+ return {
10444
+ value: option.value.toString(),
10445
+ label: option.label,
10446
+ };
10447
+ })), onChange: function (event) {
11112
10448
  return handleTimeChange('hours', event.target.value);
11113
10449
  }, value: getSelectedHour(date, locale) }),
11114
10450
  React__default$1.createElement(React__default$1.Fragment, null, ":"),
11115
- React__default$1.createElement(CFormSelect, { disabled: disabled,
11116
- // @ts-expect-error the getListOfMinutes function returns corect type
11117
- options: getListOfMinutes(locale, true), onChange: function (event) {
10451
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10452
+ localizedTimePartials.listOfMinutes.map(function (option) {
10453
+ return {
10454
+ value: option.value.toString(),
10455
+ label: option.label,
10456
+ };
10457
+ }), onChange: function (event) {
11118
10458
  return handleTimeChange('minutes', event.target.value);
11119
10459
  }, value: getSelectedMinutes(date) }),
11120
10460
  seconds && (React__default$1.createElement(React__default$1.Fragment, null,
11121
10461
  React__default$1.createElement(React__default$1.Fragment, null, ":"),
11122
- React__default$1.createElement(CFormSelect, { disabled: disabled,
11123
- // @ts-expect-error the getListOfSeconds function returns corect type
11124
- options: getListOfSeconds(locale, true), onChange: function (event) {
10462
+ React__default$1.createElement(CFormSelect, { disabled: disabled, options: localizedTimePartials &&
10463
+ localizedTimePartials.listOfSeconds.map(function (option) {
10464
+ return {
10465
+ value: option.value.toString(),
10466
+ label: option.label,
10467
+ };
10468
+ }), onChange: function (event) {
11125
10469
  return handleTimeChange('seconds', event.target.value);
11126
10470
  }, value: getSelectedSeconds(date) }))),
11127
- isAmPm(locale) && (React__default$1.createElement(CFormSelect, { disabled: disabled, options: [
10471
+ localizedTimePartials && localizedTimePartials.hour12 && (React__default$1.createElement(CFormSelect, { disabled: disabled, options: [
11128
10472
  { value: 'am', label: 'AM' },
11129
10473
  { value: 'pm', label: 'PM' },
11130
10474
  ], onChange: function (event) {
@@ -11132,10 +10476,10 @@ var CTimePicker = forwardRef(function (_a, ref) {
11132
10476
  }, value: _ampm }))));
11133
10477
  };
11134
10478
  var TimePickerRoll = function () { return (React__default$1.createElement(React__default$1.Fragment, null,
11135
- React__default$1.createElement(CTimePickerRollCol, { elements: getListOfHours(locale, ampm), onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
11136
- React__default$1.createElement(CTimePickerRollCol, { elements: getListOfMinutes(locale), onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
11137
- seconds && (React__default$1.createElement(CTimePickerRollCol, { elements: getListOfSeconds(locale), onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
11138
- ((ampm === 'auto' && isAmPm(locale)) || ampm === true) && (React__default$1.createElement(CTimePickerRollCol, { elements: [
10479
+ React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfHours, onClick: function (index) { return handleTimeChange('hours', index.toString()); }, selected: getSelectedHour(date, locale, ampm) }),
10480
+ React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfMinutes, onClick: function (index) { return handleTimeChange('minutes', index.toString()); }, selected: getSelectedMinutes(date) }),
10481
+ seconds && (React__default$1.createElement(CTimePickerRollCol, { elements: localizedTimePartials && localizedTimePartials.listOfSeconds, onClick: function (index) { return handleTimeChange('seconds', index.toString()); }, selected: getSelectedSeconds(date) })),
10482
+ localizedTimePartials && localizedTimePartials.hour12 && (React__default$1.createElement(CTimePickerRollCol, { elements: [
11139
10483
  { value: 'am', label: 'AM' },
11140
10484
  { value: 'pm', label: 'PM' },
11141
10485
  ], onClick: function (value) { return handleTimeChange('toggle', value); }, selected: _ampm })))); };
@@ -11384,6 +10728,73 @@ CDropdownItemPlain.propTypes = {
11384
10728
  };
11385
10729
  CDropdownItemPlain.displayName = 'CDropdownItemPlain';
11386
10730
 
10731
+ var CSpinner = forwardRef(function (_a, ref) {
10732
+ var className = _a.className, color = _a.color, _b = _a.component, Component = _b === void 0 ? 'div' : _b, size = _a.size, _c = _a.variant, variant = _c === void 0 ? 'border' : _c, _d = _a.visuallyHiddenLabel, visuallyHiddenLabel = _d === void 0 ? 'Loading...' : _d, rest = __rest$1(_a, ["className", "color", "component", "size", "variant", "visuallyHiddenLabel"]);
10733
+ var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
10734
+ return (React__default$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
10735
+ React__default$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
10736
+ });
10737
+ CSpinner.propTypes = {
10738
+ className: propTypesExports.string,
10739
+ color: colorPropType,
10740
+ component: propTypesExports.string,
10741
+ size: propTypesExports.oneOf(['sm']),
10742
+ variant: propTypesExports.oneOf(['border', 'grow']),
10743
+ visuallyHiddenLabel: propTypesExports.string,
10744
+ };
10745
+ CSpinner.displayName = 'CSpinner';
10746
+
10747
+ var CElementCover = forwardRef(function (_a, ref) {
10748
+ var children = _a.children, className = _a.className, boundaries = _a.boundaries, _b = _a.opacity, opacity = _b === void 0 ? 0.4 : _b, rest = __rest$1(_a, ["children", "className", "boundaries", "opacity"]);
10749
+ var elementCoverRef = useRef(null);
10750
+ var forkedRef = useForkedRef(ref, elementCoverRef);
10751
+ var _c = useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
10752
+ var getCustomBoundaries = function () {
10753
+ if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
10754
+ return {};
10755
+ }
10756
+ var parent = elementCoverRef.current.parentElement;
10757
+ if (!parent) {
10758
+ return {};
10759
+ }
10760
+ var parentCoords = parent.getBoundingClientRect();
10761
+ var customBoundaries = {};
10762
+ boundaries.forEach(function (_a) {
10763
+ var sides = _a.sides, query = _a.query;
10764
+ var element = parent.querySelector(query);
10765
+ if (!element || !sides) {
10766
+ return;
10767
+ }
10768
+ var coords = element.getBoundingClientRect();
10769
+ sides.forEach(function (side) {
10770
+ var sideMargin = Math.abs(coords[side] - parentCoords[side]);
10771
+ customBoundaries[side] = "".concat(sideMargin, "px");
10772
+ });
10773
+ });
10774
+ return customBoundaries;
10775
+ };
10776
+ useEffect(function () {
10777
+ setCustomBoundaries(getCustomBoundaries());
10778
+ }, [JSON.stringify(getCustomBoundaries())]);
10779
+ var classes = classNames$1(className);
10780
+ var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
10781
+ var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgba(255,255,255,".concat(opacity, ")") });
10782
+ return (React__default$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }),
10783
+ React__default$1.createElement("div", { style: {
10784
+ position: 'absolute',
10785
+ top: '50%',
10786
+ left: '50%',
10787
+ transform: 'translateX(-50%) translateY(-50%)',
10788
+ } }, children || React__default$1.createElement(CSpinner, { variant: "grow", color: "primary" }))));
10789
+ });
10790
+ CElementCover.propTypes = {
10791
+ boundaries: propTypesExports.array,
10792
+ children: propTypesExports.node,
10793
+ className: propTypesExports.string,
10794
+ opacity: propTypesExports.number,
10795
+ };
10796
+ CElementCover.displayName = 'CElementCover';
10797
+
11387
10798
  var CFooter = forwardRef(function (_a, ref) {
11388
10799
  var _b;
11389
10800
  var children = _a.children, className = _a.className, position = _a.position, rest = __rest$1(_a, ["children", "className", "position"]);
@@ -11459,6 +10870,10 @@ CCol.propTypes = {
11459
10870
  className: propTypesExports.string,
11460
10871
  xs: col,
11461
10872
  sm: col,
10873
+ md: col,
10874
+ lg: col,
10875
+ xl: col,
10876
+ xxl: col,
11462
10877
  };
11463
10878
  CCol.displayName = 'CCol';
11464
10879
 
@@ -11707,22 +11122,6 @@ CListGroupItem.propTypes = {
11707
11122
  };
11708
11123
  CListGroupItem.displayName = 'CListGroupItem';
11709
11124
 
11710
- var CSpinner = forwardRef(function (_a, ref) {
11711
- 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"]);
11712
- var _className = classNames$1("spinner-".concat(variant), "text-".concat(color), size && "spinner-".concat(variant, "-").concat(size), className);
11713
- return (React__default$1.createElement(Component, __assign$1({ className: _className, role: "status" }, rest, { ref: ref }),
11714
- React__default$1.createElement("span", { className: "visually-hidden" }, visuallyHiddenLabel)));
11715
- });
11716
- CSpinner.propTypes = {
11717
- className: propTypesExports.string,
11718
- color: colorPropType,
11719
- component: propTypesExports.string,
11720
- size: propTypesExports.oneOf(['sm']),
11721
- variant: propTypesExports.oneOf(['border', 'grow']),
11722
- visuallyHiddenLabel: propTypesExports.string,
11723
- };
11724
- CSpinner.displayName = 'CSpinner';
11725
-
11726
11125
  var CLoadingButton = forwardRef(function (_a, ref) {
11727
11126
  var children = _a.children, className = _a.className, disabledOnLoading = _a.disabledOnLoading, loading = _a.loading, onClick = _a.onClick, _b = _a.spinnerType, spinnerType = _b === void 0 ? 'border' : _b, timeout = _a.timeout, rest = __rest$1(_a, ["children", "className", "disabledOnLoading", "loading", "onClick", "spinnerType", "timeout"]);
11728
11127
  var _c = useState(), _loading = _c[0], setLoading = _c[1];
@@ -11884,7 +11283,7 @@ var CModal = forwardRef(function (_a, ref) {
11884
11283
  React__default$1.createElement(CModalContent, __assign$1({}, rest, { ref: modalContentRef }), children)))));
11885
11284
  };
11886
11285
  return (React__default$1.createElement(React__default$1.Fragment, null,
11887
- React__default$1.createElement(Transition, { in: _visible, mountOnEnter: true, nodeRef: modalRef, onEnter: onShow, onExit: onClose, unmountOnExit: unmountOnClose, timeout: !transition ? 0 : duration }, function (state) {
11286
+ React__default$1.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: modalRef, onEnter: onShow, onExit: onClose, unmountOnExit: unmountOnClose, timeout: !transition ? 0 : duration }, function (state) {
11888
11287
  var transitionClass = getTransitionClass(state);
11889
11288
  return typeof window !== 'undefined' && portal
11890
11289
  ? createPortal(modal(forkedRef, transitionClass), document.body)
@@ -12397,7 +11796,7 @@ var CNavGroup = forwardRef(function (_a, ref) {
12397
11796
  var _className = classNames$1('nav-group', { show: _visible }, className);
12398
11797
  return (React__default$1.createElement("li", __assign$1({ className: _className }, rest, { ref: ref }),
12399
11798
  toggler && (React__default$1.createElement("a", { className: "nav-link nav-group-toggle", onClick: function (event) { return handleTogglerOnCLick(event); } }, toggler)),
12400
- React__default$1.createElement(Transition, { in: _visible, nodeRef: navItemsRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 300 }, function (state) { return (React__default$1.createElement("ul", { className: classNames$1('nav-group-items', {
11799
+ React__default$1.createElement(Transition$1, { in: _visible, nodeRef: navItemsRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 300 }, function (state) { return (React__default$1.createElement("ul", { className: classNames$1('nav-group-items', {
12401
11800
  compact: compact,
12402
11801
  }), style: __assign$1(__assign$1({}, style), transitionStyles[state]), ref: navItemsRef }, React__default$1.Children.map(children, function (child, index) {
12403
11802
  if (React__default$1.isValidElement(child)) {
@@ -12555,8 +11954,8 @@ CNavbarToggler.displayName = 'CNavbarToggler';
12555
11954
 
12556
11955
  var COffcanvas = forwardRef(function (_a, ref) {
12557
11956
  var _b;
12558
- 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"]);
12559
- var _h = useState(visible), _visible = _h[0], setVisible = _h[1];
11957
+ var children = _a.children, _c = _a.backdrop, backdrop = _c === void 0 ? true : _c, className = _a.className, _d = _a.keyboard, keyboard = _d === void 0 ? true : _d, onHide = _a.onHide, onShow = _a.onShow, placement = _a.placement, _e = _a.portal, portal = _e === void 0 ? false : _e, _f = _a.responsive, responsive = _f === void 0 ? true : _f, _g = _a.scroll, scroll = _g === void 0 ? false : _g, _h = _a.visible, visible = _h === void 0 ? false : _h, rest = __rest$1(_a, ["children", "backdrop", "className", "keyboard", "onHide", "onShow", "placement", "portal", "responsive", "scroll", "visible"]);
11958
+ var _j = useState(visible), _visible = _j[0], setVisible = _j[1];
12560
11959
  var offcanvasRef = useRef(null);
12561
11960
  var forkedRef = useForkedRef(ref, offcanvasRef);
12562
11961
  useEffect(function () {
@@ -12575,19 +11974,27 @@ var COffcanvas = forwardRef(function (_a, ref) {
12575
11974
  document.body.style.removeProperty('padding-right');
12576
11975
  }
12577
11976
  }, [_visible]);
12578
- var _className = classNames$1('offcanvas', (_b = {},
11977
+ var getTransitionClass = function (state) {
11978
+ return state === 'entering'
11979
+ ? 'showing'
11980
+ : state === 'entered'
11981
+ ? 'show'
11982
+ : state === 'exiting'
11983
+ ? 'show hiding'
11984
+ : '';
11985
+ };
11986
+ var _className = classNames$1((_b = {},
11987
+ _b["offcanvas".concat(typeof responsive !== 'boolean' ? '-' + responsive : '')] = responsive,
12579
11988
  _b["offcanvas-".concat(placement)] = placement,
12580
- _b.show = _visible,
12581
11989
  _b), className);
12582
- var transitionStyles = {
12583
- entering: { visibility: 'visible' },
12584
- entered: { visibility: 'visible' },
12585
- exiting: { visibility: 'visible' },
12586
- exited: { visibility: 'hidden' },
12587
- };
12588
11990
  var handleDismiss = function () {
12589
11991
  setVisible(false);
12590
11992
  };
11993
+ var handleBackdropDismiss = function () {
11994
+ if (backdrop !== 'static') {
11995
+ setVisible(false);
11996
+ }
11997
+ };
12591
11998
  var handleKeyDown = useCallback(function (event) {
12592
11999
  if (event.key === 'Escape' && keyboard) {
12593
12000
  return handleDismiss();
@@ -12595,21 +12002,21 @@ var COffcanvas = forwardRef(function (_a, ref) {
12595
12002
  }, [ref, handleDismiss]);
12596
12003
  var offcanvas = function (ref, state) {
12597
12004
  return (React__default$1.createElement(React__default$1.Fragment, null,
12598
- React__default$1.createElement("div", __assign$1({ className: _className, role: "dialog", style: __assign$1({}, transitionStyles[state]), tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
12005
+ React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, getTransitionClass(state)), role: "dialog", tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: ref }), children)));
12599
12006
  };
12600
12007
  return (React__default$1.createElement(React__default$1.Fragment, null,
12601
- React__default$1.createElement(Transition, { 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) {
12008
+ React__default$1.createElement(Transition$1, { in: _visible, nodeRef: offcanvasRef, onEnter: onShow, onEntered: function () { var _a; return (_a = offcanvasRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, onExit: onHide, timeout: 300 }, function (state) {
12602
12009
  return typeof window !== 'undefined' && portal
12603
12010
  ? createPortal(offcanvas(forkedRef, state), document.body)
12604
12011
  : offcanvas(forkedRef, state);
12605
12012
  }),
12606
12013
  typeof window !== 'undefined' && portal
12607
12014
  ? backdrop &&
12608
- createPortal(React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }), document.body)
12609
- : backdrop && (React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleDismiss, visible: _visible }))));
12015
+ createPortal(React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }), document.body)
12016
+ : backdrop && (React__default$1.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible }))));
12610
12017
  });
12611
12018
  COffcanvas.propTypes = {
12612
- backdrop: propTypesExports.bool,
12019
+ backdrop: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.oneOf(['static'])]),
12613
12020
  children: propTypesExports.node,
12614
12021
  className: propTypesExports.string,
12615
12022
  keyboard: propTypesExports.bool,
@@ -12618,6 +12025,10 @@ COffcanvas.propTypes = {
12618
12025
  placement: propTypesExports.oneOf(['start', 'end', 'top', 'bottom'])
12619
12026
  .isRequired,
12620
12027
  portal: propTypesExports.bool,
12028
+ responsive: propTypesExports.oneOfType([
12029
+ propTypesExports.bool,
12030
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
12031
+ ]),
12621
12032
  scroll: propTypesExports.bool,
12622
12033
  visible: propTypesExports.bool,
12623
12034
  };
@@ -12810,7 +12221,7 @@ var CPopover = function (_a) {
12810
12221
  onMouseLeave: function () { return setVisible(false); },
12811
12222
  }))),
12812
12223
  typeof window !== 'undefined' &&
12813
- createPortal(React__default$1.createElement(Transition, { in: _visible, mountOnEnter: true, nodeRef: popoverRef, onEnter: onShow, onExit: onHide, timeout: {
12224
+ createPortal(React__default$1.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: popoverRef, onEnter: onShow, onExit: onHide, timeout: {
12814
12225
  enter: 0,
12815
12226
  exit: 200,
12816
12227
  }, unmountOnExit: true }, function (state) {
@@ -12835,438 +12246,51 @@ CPopover.propTypes = {
12835
12246
  };
12836
12247
  CPopover.displayName = 'CPopover';
12837
12248
 
12838
- const cilArrowBottom = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75' class='ci-primary'/>"];
12249
+ var cilArrowBottom = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75' class='ci-primary'/>"];
12839
12250
 
12840
- const cilArrowTop = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625' class='ci-primary'/>"];
12251
+ var cilArrowTop = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625' class='ci-primary'/>"];
12841
12252
 
12842
- const cilFilterX = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225' class='ci-primary'/>"];
12253
+ var cilFilterX = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225' class='ci-primary'/>"];
12843
12254
 
12844
- const cilSwapVertical = ["512 512","<polygon fill='var(--ci-primary-color, currentColor)' points='384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372' class='ci-primary'/>"];
12255
+ var cilSwapVertical = ["512 512", "<polygon fill='var(--ci-primary-color, currentColor)' points='384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373' class='ci-primary'/><polygon fill='var(--ci-primary-color, currentColor)' points='159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372' class='ci-primary'/>"];
12845
12256
 
12846
- var CElementCover = forwardRef(function (_a, ref) {
12847
- 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"]);
12848
- var elementCoverRef = useRef(null);
12849
- var forkedRef = useForkedRef(ref, elementCoverRef);
12850
- var _c = useState({}), customBoundaries = _c[0], setCustomBoundaries = _c[1];
12851
- var getCustomBoundaries = function () {
12852
- if (!elementCoverRef || !elementCoverRef.current || !boundaries) {
12853
- return {};
12854
- }
12855
- var parent = elementCoverRef.current.parentElement;
12856
- if (!parent) {
12857
- return {};
12858
- }
12859
- var parentCoords = parent.getBoundingClientRect();
12860
- var customBoundaries = {};
12861
- boundaries.forEach(function (_a) {
12862
- var sides = _a.sides, query = _a.query;
12863
- var element = parent.querySelector(query);
12864
- if (!element || !sides) {
12865
- return;
12866
- }
12867
- var coords = element.getBoundingClientRect();
12868
- sides.forEach(function (side) {
12869
- var sideMargin = Math.abs(coords[side] - parentCoords[side]);
12870
- customBoundaries[side] = "".concat(sideMargin, "px");
12871
- });
12872
- });
12873
- return customBoundaries;
12874
- };
12875
- useEffect(function () {
12876
- setCustomBoundaries(getCustomBoundaries());
12877
- }, [JSON.stringify(getCustomBoundaries())]);
12878
- //render
12879
- var classes = classNames$1(className);
12880
- var containerCoords = __assign$1({ top: 0, left: 0, right: 0, bottom: 0 }, customBoundaries);
12881
- var coverStyles = __assign$1(__assign$1({}, containerCoords), { position: 'absolute', backgroundColor: "rgb(255,255,255,".concat(opacity, ")") });
12882
- return (React__default$1.createElement("div", __assign$1({ className: classes, style: coverStyles }, rest, { ref: forkedRef }), children || (React__default$1.createElement("div", { style: {
12883
- position: 'absolute',
12884
- top: '50%',
12885
- left: '50%',
12886
- transform: 'translateX(-50%) translateY(-50%)',
12887
- } },
12888
- React__default$1.createElement(CSpinner, { variant: "grow", color: "primary" })))));
12889
- });
12890
- CElementCover.propTypes = {
12891
- boundaries: propTypesExports.array,
12892
- children: propTypesExports.node,
12893
- className: propTypesExports.string,
12894
- opacity: propTypesExports.number,
12895
- };
12896
- CElementCover.displayName = 'CElementCover';
12897
-
12898
- var CSmartPagination = forwardRef(function (_a, ref) {
12899
- var className = _a.className, _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, _c = _a.align, align = _c === void 0 ? 'start' : _c, _d = _a.arrows, arrows = _d === void 0 ? true : _d, _e = _a.dots, dots = _e === void 0 ? true : _e, _f = _a.doubleArrows, doubleArrows = _f === void 0 ? true : _f, _g = _a.firstButton, firstButton = _g === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u2039") : _l, size = _a.size, rest = __rest$1(_a, ["className", "activePage", "align", "arrows", "dots", "doubleArrows", "firstButton", "lastButton", "limit", "nextButton", "onActivePageChange", "pages", "previousButton", "size"]);
12900
- var _classNames = classNames$1("justify-content-".concat(align), className);
12901
- var showDots = (function () {
12902
- return dots && limit > 4 && limit < pages;
12903
- })();
12904
- var maxPrevItems = (function () {
12905
- return Math.floor((limit - 1) / 2);
12906
- })();
12907
- var maxNextItems = (function () {
12908
- return Math.ceil((limit - 1) / 2);
12909
- })();
12910
- var beforeDots = (function () {
12911
- return showDots && activePage > maxPrevItems + 1;
12912
- })();
12913
- var afterDots = (function () {
12914
- return showDots && activePage < pages - maxNextItems;
12915
- })();
12916
- var computedLimit = (function () {
12917
- return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
12918
- })();
12919
- var range = (function () {
12920
- return activePage + maxNextItems;
12921
- })();
12922
- var lastItem = (function () {
12923
- return range >= pages ? pages : range - (afterDots ? 1 : 0);
12924
- })();
12925
- var itemsAmount = (function () {
12926
- return pages < computedLimit ? pages : computedLimit;
12927
- })();
12928
- var items = (function () {
12929
- if (activePage - maxPrevItems <= 1) {
12930
- return Array.from({
12931
- length: itemsAmount,
12932
- }, function (_v, i) { return i + 1; });
12933
- }
12934
- else {
12935
- return Array.from({
12936
- length: itemsAmount,
12937
- }, function (_v, i) {
12938
- return lastItem - i;
12939
- }).reverse();
12940
- }
12941
- })();
12942
- var setPage = function (number) {
12943
- if (number !== activePage) {
12944
- onActivePageChange && onActivePageChange(number);
12945
- }
12946
- };
12947
- return (React__default$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
12948
- doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
12949
- arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
12950
- beforeDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12951
- items.map(function (i) {
12952
- return (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(i); }, "aria-label": activePage === i ? "Current page ".concat(i) : "Go to page ".concat(i), active: activePage === i, key: i }, i));
12953
- }),
12954
- afterDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
12955
- arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
12956
- doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
12957
- });
12958
- CSmartPagination.propTypes = {
12959
- className: propTypesExports.oneOfType([propTypesExports.string]),
12960
- activePage: propTypesExports.number,
12961
- dots: propTypesExports.bool,
12962
- arrows: propTypesExports.bool,
12963
- doubleArrows: propTypesExports.bool,
12964
- firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12965
- previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12966
- nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12967
- lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
12968
- size: propTypesExports.oneOf(['sm', 'lg']),
12969
- align: propTypesExports.oneOf(['start', 'center', 'end']),
12970
- limit: propTypesExports.number,
12971
- pages: propTypesExports.number.isRequired,
12972
- onActivePageChange: propTypesExports.func,
12973
- };
12974
- CSmartPagination.displayName = 'CSmartPagination';
12975
-
12976
- var CTableHead = forwardRef(function (_a, ref) {
12977
- var _b;
12978
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12979
- var _className = classNames$1((_b = {},
12980
- _b["table-".concat(color)] = color,
12981
- _b), className);
12982
- return (React__default$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12983
- });
12984
- CTableHead.propTypes = {
12985
- children: propTypesExports.node,
12986
- className: propTypesExports.string,
12987
- color: colorPropType,
12988
- };
12989
- CTableHead.displayName = 'CTableHead';
12990
-
12991
- var CTableHeaderCell = forwardRef(function (_a, ref) {
12992
- var _b;
12993
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
12994
- var _className = classNames$1((_b = {},
12995
- _b["table-".concat(color)] = color,
12996
- _b), className);
12997
- return (React__default$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
12998
- });
12999
- CTableHeaderCell.propTypes = {
13000
- children: propTypesExports.node,
13001
- className: propTypesExports.string,
13002
- color: colorPropType,
13003
- };
13004
- CTableHeaderCell.displayName = 'CTableHeaderCell';
13005
-
13006
- var CTableBody = forwardRef(function (_a, ref) {
13007
- var _b;
13008
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13009
- var _className = classNames$1((_b = {},
13010
- _b["table-".concat(color)] = color,
13011
- _b), className);
13012
- return (React__default$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13013
- });
13014
- CTableBody.propTypes = {
13015
- children: propTypesExports.node,
13016
- className: propTypesExports.string,
13017
- color: colorPropType,
13018
- };
13019
- CTableBody.displayName = 'CTableBody';
13020
-
13021
- var CTableDataCell = forwardRef(function (_a, ref) {
13022
- var _b;
13023
- 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"]);
13024
- var _className = classNames$1((_b = {},
13025
- _b["align-".concat(align)] = align,
13026
- _b['table-active'] = active,
13027
- _b["table-".concat(color)] = color,
13028
- _b), className);
13029
- var Component = rest.scope ? 'th' : 'td';
13030
- return (React__default$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13031
- });
13032
- CTableDataCell.propTypes = {
13033
- active: propTypesExports.bool,
13034
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13035
- children: propTypesExports.node,
13036
- className: propTypesExports.string,
13037
- color: colorPropType,
13038
- };
13039
- CTableDataCell.displayName = 'CTableDataCell';
13040
-
13041
- var CTableRow = forwardRef(function (_a, ref) {
13042
- var _b;
13043
- 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"]);
13044
- var _className = classNames$1((_b = {},
13045
- _b["align-".concat(align)] = align,
13046
- _b['table-active'] = active,
13047
- _b["table-".concat(color)] = color,
13048
- _b), className);
13049
- return (React__default$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13050
- });
13051
- CTableRow.propTypes = {
13052
- active: propTypesExports.bool,
13053
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13054
- children: propTypesExports.node,
13055
- className: propTypesExports.string,
13056
- color: colorPropType,
13057
- };
13058
- CTableRow.displayName = 'CTableRow';
13059
-
13060
- var CTableFoot = forwardRef(function (_a, ref) {
13061
- var _b;
13062
- var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13063
- var _className = classNames$1((_b = {},
13064
- _b["table-".concat(color)] = color,
13065
- _b), className);
13066
- return (React__default$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13067
- });
13068
- CTableFoot.propTypes = {
13069
- children: propTypesExports.node,
13070
- className: propTypesExports.string,
13071
- color: colorPropType,
13072
- };
13073
- CTableFoot.displayName = 'CTableFoot';
13074
-
13075
- var CTableCaption = forwardRef(function (_a, ref) {
13076
- var children = _a.children, props = __rest$1(_a, ["children"]);
13077
- return (React__default$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
13078
- });
13079
- CTableCaption.propTypes = {
13080
- children: propTypesExports.node,
13081
- };
13082
- CTableCaption.displayName = 'CTableCaption';
13083
-
13084
- var CTableResponsiveWrapper = function (_a) {
13085
- var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
13086
- return responsive ? (React__default$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
13087
- };
13088
- CTableResponsiveWrapper.propTypes = {
13089
- children: propTypesExports.any,
13090
- responsive: propTypesExports.oneOfType([
13091
- propTypesExports.bool,
13092
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13093
- ]),
13094
- };
13095
- CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
13096
-
13097
- var CTable = forwardRef(function (_a, ref) {
13098
- var _b;
13099
- 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, _c = _a.items, items = _c === void 0 ? [] : _c, 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"]);
13100
- var _className = classNames$1('table', (_b = {},
13101
- _b["align-".concat(align)] = align,
13102
- _b["border-".concat(borderColor)] = borderColor,
13103
- _b["caption-top"] = captionTop || caption === 'top',
13104
- _b['table-bordered'] = bordered,
13105
- _b['table-borderless'] = borderless,
13106
- _b["table-".concat(color)] = color,
13107
- _b['table-hover'] = hover,
13108
- _b['table-sm'] = small,
13109
- _b['table-striped'] = striped,
13110
- _b['table-striped-columns'] = stripedColumns,
13111
- _b), className);
13112
- var rawColumnNames = columns
13113
- ? columns.map(function (column) {
13114
- if (typeof column === 'object')
13115
- return column.key;
13116
- else
13117
- return column;
13118
- })
13119
- : Object.keys(items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13120
- var pretifyName = function (name) {
13121
- return name
13122
- .replace(/[-_.]/g, ' ')
13123
- .replace(/ +/g, ' ')
13124
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13125
- .split(' ')
13126
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13127
- .join(' ');
13128
- };
13129
- var label = function (column) {
13130
- return typeof column === 'object'
13131
- ? column.label !== undefined
13132
- ? column.label
13133
- : pretifyName(column.key)
13134
- : pretifyName(column);
13135
- };
13136
- return (React__default$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
13137
- React__default$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
13138
- ((caption && caption !== 'top') || captionTop) && (React__default$1.createElement(CTableCaption, null, caption || captionTop)),
13139
- columns && (React__default$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
13140
- React__default$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
13141
- items && (React__default$1.createElement(CTableBody, null, items.map(function (item, index) { return (React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
13142
- return item[colName] ? (React__default$1.createElement(CTableDataCell, __assign$1({}, (item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])))), { key: index }), item[colName])) : null;
13143
- }))); }))),
13144
- children,
13145
- footer && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
13146
- React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
13147
- });
13148
- CTable.propTypes = {
13149
- align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13150
- borderColor: propTypesExports.string,
13151
- bordered: propTypesExports.bool,
13152
- borderless: propTypesExports.bool,
13153
- caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
13154
- captionTop: propTypesExports.string,
13155
- children: propTypesExports.node,
13156
- className: propTypesExports.string,
13157
- color: colorPropType,
13158
- columns: propTypesExports.array,
13159
- footer: propTypesExports.array,
13160
- hover: propTypesExports.bool,
13161
- items: propTypesExports.array,
13162
- responsive: propTypesExports.oneOfType([
13163
- propTypesExports.bool,
13164
- propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13165
- ]),
13166
- small: propTypesExports.bool,
13167
- striped: propTypesExports.bool,
13168
- stripedColumns: propTypesExports.bool,
13169
- tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
13170
- tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
13171
- };
13172
- CTable.displayName = 'CTable';
13173
-
13174
- var CSmartTableBody = forwardRef(function (_a, ref) {
13175
- 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"]);
13176
- var tableDataCellProps = function (item, colName) {
13177
- var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
13178
- return props;
13179
- };
13180
- var getColumnName = function (event) {
13181
- var target = event.target;
13182
- var closest = target.closest('tr');
13183
- var children = closest ? Array.from(closest.children) : [];
13184
- var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
13185
- return rawColumnNames[children.indexOf(clickedCell)];
13186
- };
13187
- var colspan = selectable ? rawColumnNames.length + 1 : rawColumnNames.length;
13188
- return (React__default$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
13189
- style: { cursor: 'pointer' },
13190
- }), rest, { ref: ref }),
13191
- currentItems.map(function (item, trIndex) {
13192
- return (React__default$1.createElement(React__default$1.Fragment, { key: trIndex },
13193
- React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
13194
- return onRowClick &&
13195
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), event);
13196
- } }),
13197
- selectable && (React__default$1.createElement(CTableDataCell, null,
13198
- React__default$1.createElement(CFormCheck, { checked: item._selected ? item._selected : false, onChange: function (event) {
13199
- return onRowChecked && onRowChecked(item._id, event.target.checked);
13200
- } }))),
13201
- rawColumnNames.map(function (colName, index) {
13202
- return ((scopedColumns &&
13203
- scopedColumns[colName] &&
13204
- React__default$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
13205
- key: index,
13206
- })) || (React__default$1.createElement(CTableDataCell, __assign$1({}, tableDataCellProps(item, colName), { key: index }), String(item[colName]))));
13207
- })),
13208
- scopedColumns && scopedColumns.details && (React__default$1.createElement(React__default$1.Fragment, null,
13209
- React__default$1.createElement(CTableRow, null,
13210
- React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
13211
- React__default$1.createElement(CTableRow, { onClick: function (event) {
13212
- return onRowClick &&
13213
- onRowClick(item, trIndex + firstItemOnActivePageIndex, getColumnName(event), true);
13214
- }, className: "p-0", key: "details".concat(trIndex) },
13215
- React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
13216
- }),
13217
- !currentItems.length && (React__default$1.createElement(CTableRow, null,
13218
- React__default$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
13219
- });
13220
- CSmartTableBody.propTypes = {
13221
- clickableRows: propTypesExports.bool,
13222
- currentItems: propTypesExports.array.isRequired,
13223
- firstItemOnActivePageIndex: propTypesExports.number.isRequired,
13224
- noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
13225
- onRowChecked: propTypesExports.func,
13226
- onRowClick: propTypesExports.func,
13227
- rawColumnNames: propTypesExports.array.isRequired,
13228
- scopedColumns: propTypesExports.object,
13229
- selectable: propTypesExports.bool,
13230
- };
13231
- CSmartTableBody.displayName = 'CSmartTableBody';
13232
-
13233
- /******************************************************************************
13234
- Copyright (c) Microsoft Corporation.
13235
-
13236
- Permission to use, copy, modify, and/or distribute this software for any
13237
- purpose with or without fee is hereby granted.
13238
-
13239
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
13240
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13241
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
13242
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13243
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13244
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13245
- PERFORMANCE OF THIS SOFTWARE.
13246
- ***************************************************************************** */
13247
-
13248
- var __assign = function() {
13249
- __assign = Object.assign || function __assign(t) {
13250
- for (var s, i = 1, n = arguments.length; i < n; i++) {
13251
- s = arguments[i];
13252
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
13253
- }
13254
- return t;
13255
- };
13256
- return __assign.apply(this, arguments);
13257
- };
13258
-
13259
- function __rest(s, e) {
13260
- var t = {};
13261
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13262
- t[p] = s[p];
13263
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
13264
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13265
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13266
- t[p[i]] = s[p[i]];
13267
- }
13268
- return t;
13269
- }
12257
+ /******************************************************************************
12258
+ Copyright (c) Microsoft Corporation.
12259
+
12260
+ Permission to use, copy, modify, and/or distribute this software for any
12261
+ purpose with or without fee is hereby granted.
12262
+
12263
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12264
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12265
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12266
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12267
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12268
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12269
+ PERFORMANCE OF THIS SOFTWARE.
12270
+ ***************************************************************************** */
12271
+
12272
+ var __assign = function() {
12273
+ __assign = Object.assign || function __assign(t) {
12274
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12275
+ s = arguments[i];
12276
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
12277
+ }
12278
+ return t;
12279
+ };
12280
+ return __assign.apply(this, arguments);
12281
+ };
12282
+
12283
+ function __rest(s, e) {
12284
+ var t = {};
12285
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12286
+ t[p] = s[p];
12287
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
12288
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12289
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12290
+ t[p[i]] = s[p[i]];
12291
+ }
12292
+ return t;
12293
+ }
13270
12294
 
13271
12295
  var propTypes = {exports: {}};
13272
12296
 
@@ -14496,103 +13520,565 @@ var classnames = {exports: {}};
14496
13520
  }
14497
13521
  }
14498
13522
 
14499
- return classes.join(' ');
14500
- }
13523
+ return classes.join(' ');
13524
+ }
13525
+
13526
+ if (module.exports) {
13527
+ classNames.default = classNames;
13528
+ module.exports = classNames;
13529
+ } else {
13530
+ window.classNames = classNames;
13531
+ }
13532
+ }());
13533
+ } (classnames));
13534
+
13535
+ var classNames = classnames.exports;
13536
+
13537
+ var toCamelCase = function (str) {
13538
+ return str
13539
+ .replace(/([-_][a-z0-9])/gi, function ($1) {
13540
+ return $1.toUpperCase();
13541
+ })
13542
+ .replace(/-/gi, '');
13543
+ };
13544
+ var CIcon = forwardRef(function (_a, ref) {
13545
+ var _b;
13546
+ var className = _a.className, content = _a.content, customClassName = _a.customClassName, height = _a.height, icon = _a.icon, name = _a.name, size = _a.size, title = _a.title, use = _a.use, width = _a.width, rest = __rest(_a, ["className", "content", "customClassName", "height", "icon", "name", "size", "title", "use", "width"]);
13547
+ var _c = useState(0), change = _c[0], setChange = _c[1];
13548
+ var _icon = icon || content || name;
13549
+ if (content) {
13550
+ process &&
13551
+ process.env &&
13552
+ process.env.NODE_ENV === 'development' &&
13553
+ console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
13554
+ }
13555
+ if (name) {
13556
+ process &&
13557
+ process.env &&
13558
+ process.env.NODE_ENV === 'development' &&
13559
+ console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13560
+ }
13561
+ useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
13562
+ var iconName = useMemo(function () {
13563
+ return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
13564
+ }, [change]);
13565
+ var titleCode = title ? "<title>".concat(title, "</title>") : '';
13566
+ var code = useMemo(function () {
13567
+ if (Array.isArray(_icon)) {
13568
+ return _icon;
13569
+ }
13570
+ if (typeof _icon === 'string' && React__default$1['icons']) {
13571
+ return React__default$1['icons'][iconName];
13572
+ }
13573
+ }, [change]);
13574
+ var iconCode = useMemo(function () {
13575
+ return Array.isArray(code) ? code[1] || code[0] : code;
13576
+ }, [change]);
13577
+ var scale = (function () {
13578
+ return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
13579
+ })();
13580
+ var viewBox = (function () {
13581
+ return rest['viewBox'] || "0 0 ".concat(scale);
13582
+ })();
13583
+ // render
13584
+ var _className = customClassName
13585
+ ? classNames(customClassName)
13586
+ : classNames('icon', (_b = {},
13587
+ _b["icon-".concat(size)] = size,
13588
+ _b["icon-custom-size"] = height || width,
13589
+ _b), className);
13590
+ return use ? (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
13591
+ React__default$1.createElement("use", { href: use }))) : (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, className: _className }, (height && { height: height }), (width && { width: width }), { role: "img", dangerouslySetInnerHTML: { __html: titleCode + iconCode } }, rest, { ref: ref })));
13592
+ });
13593
+ CIcon.propTypes = {
13594
+ className: propTypes.exports.string,
13595
+ content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13596
+ customClassName: propTypes.exports.string,
13597
+ height: propTypes.exports.number,
13598
+ icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
13599
+ name: propTypes.exports.string,
13600
+ size: propTypes.exports.oneOf([
13601
+ 'custom',
13602
+ 'custom-size',
13603
+ 'sm',
13604
+ 'lg',
13605
+ 'xl',
13606
+ 'xxl',
13607
+ '3xl',
13608
+ '4xl',
13609
+ '5xl',
13610
+ '6xl',
13611
+ '7xl',
13612
+ '8xl',
13613
+ '9xl',
13614
+ ]),
13615
+ title: propTypes.exports.any,
13616
+ use: propTypes.exports.any,
13617
+ width: propTypes.exports.number,
13618
+ };
13619
+ CIcon.displayName = 'CIcon';
13620
+
13621
+ var CSmartPagination = forwardRef(function (_a, ref) {
13622
+ var className = _a.className, _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, _c = _a.align, align = _c === void 0 ? 'start' : _c, _d = _a.arrows, arrows = _d === void 0 ? true : _d, _e = _a.dots, dots = _e === void 0 ? true : _e, _f = _a.doubleArrows, doubleArrows = _f === void 0 ? true : _f, _g = _a.firstButton, firstButton = _g === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00AB") : _g, _h = _a.lastButton, lastButton = _h === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u00BB") : _h, _j = _a.limit, limit = _j === void 0 ? 5 : _j, _k = _a.nextButton, nextButton = _k === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u203A") : _k, onActivePageChange = _a.onActivePageChange, pages = _a.pages, _l = _a.previousButton, previousButton = _l === void 0 ? React__default$1.createElement(React__default$1.Fragment, null, "\u2039") : _l, size = _a.size, rest = __rest$1(_a, ["className", "activePage", "align", "arrows", "dots", "doubleArrows", "firstButton", "lastButton", "limit", "nextButton", "onActivePageChange", "pages", "previousButton", "size"]);
13623
+ var _classNames = classNames$1("justify-content-".concat(align), className);
13624
+ var showDots = (function () {
13625
+ return dots && limit > 4 && limit < pages;
13626
+ })();
13627
+ var maxPrevItems = (function () {
13628
+ return Math.floor((limit - 1) / 2);
13629
+ })();
13630
+ var maxNextItems = (function () {
13631
+ return Math.ceil((limit - 1) / 2);
13632
+ })();
13633
+ var beforeDots = (function () {
13634
+ return showDots && activePage > maxPrevItems + 1;
13635
+ })();
13636
+ var afterDots = (function () {
13637
+ return showDots && activePage < pages - maxNextItems;
13638
+ })();
13639
+ var computedLimit = (function () {
13640
+ return limit - (afterDots ? 1 : 0) - (beforeDots ? 1 : 0);
13641
+ })();
13642
+ var range = (function () {
13643
+ return activePage + maxNextItems;
13644
+ })();
13645
+ var lastItem = (function () {
13646
+ return range >= pages ? pages : range - (afterDots ? 1 : 0);
13647
+ })();
13648
+ var itemsAmount = (function () {
13649
+ return pages < computedLimit ? pages : computedLimit;
13650
+ })();
13651
+ var items = (function () {
13652
+ if (activePage - maxPrevItems <= 1) {
13653
+ return Array.from({
13654
+ length: itemsAmount,
13655
+ }, function (_v, i) { return i + 1; });
13656
+ }
13657
+ else {
13658
+ return Array.from({
13659
+ length: itemsAmount,
13660
+ }, function (_v, i) {
13661
+ return lastItem - i;
13662
+ }).reverse();
13663
+ }
13664
+ })();
13665
+ var setPage = function (number) {
13666
+ if (number !== activePage) {
13667
+ onActivePageChange && onActivePageChange(number);
13668
+ }
13669
+ };
13670
+ return (React__default$1.createElement(CPagination, __assign$1({ className: _classNames, "aria-label": "pagination", size: size }, rest, { ref: ref }),
13671
+ doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(1); }, "aria-label": "Go to first page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, firstButton)),
13672
+ arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage - 1); }, "aria-label": "Go to previous page", "aria-disabled": activePage === 1, disabled: activePage === 1 }, previousButton)),
13673
+ beforeDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13674
+ items.map(function (i) {
13675
+ return (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(i); }, "aria-label": activePage === i ? "Current page ".concat(i) : "Go to page ".concat(i), active: activePage === i, key: i }, i));
13676
+ }),
13677
+ afterDots && (React__default$1.createElement(CPaginationItem, { role: "separator", disabled: true }, "\u2026")),
13678
+ arrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(activePage + 1); }, "aria-label": "Go to next page", "aria-disabled": activePage === pages, disabled: activePage === pages }, nextButton)),
13679
+ doubleArrows && (React__default$1.createElement(CPaginationItem, { onClick: function () { return setPage(pages); }, "aria-label": "Go to last page", "aria-disabled": activePage === pages, disabled: activePage === pages }, lastButton))));
13680
+ });
13681
+ CSmartPagination.propTypes = {
13682
+ className: propTypesExports.oneOfType([propTypesExports.string]),
13683
+ activePage: propTypesExports.number,
13684
+ dots: propTypesExports.bool,
13685
+ arrows: propTypesExports.bool,
13686
+ doubleArrows: propTypesExports.bool,
13687
+ firstButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13688
+ previousButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13689
+ nextButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13690
+ lastButton: propTypesExports.oneOfType([propTypesExports.node, propTypesExports.string]),
13691
+ size: propTypesExports.oneOf(['sm', 'lg']),
13692
+ align: propTypesExports.oneOf(['start', 'center', 'end']),
13693
+ limit: propTypesExports.number,
13694
+ pages: propTypesExports.number.isRequired,
13695
+ onActivePageChange: propTypesExports.func,
13696
+ };
13697
+ CSmartPagination.displayName = 'CSmartPagination';
13698
+
13699
+ var CTableHead = forwardRef(function (_a, ref) {
13700
+ var _b;
13701
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13702
+ var _className = classNames$1((_b = {},
13703
+ _b["table-".concat(color)] = color,
13704
+ _b), className);
13705
+ return (React__default$1.createElement("thead", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13706
+ });
13707
+ CTableHead.propTypes = {
13708
+ children: propTypesExports.node,
13709
+ className: propTypesExports.string,
13710
+ color: colorPropType,
13711
+ };
13712
+ CTableHead.displayName = 'CTableHead';
13713
+
13714
+ var CTableHeaderCell = forwardRef(function (_a, ref) {
13715
+ var _b;
13716
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13717
+ var _className = classNames$1((_b = {},
13718
+ _b["table-".concat(color)] = color,
13719
+ _b), className);
13720
+ return (React__default$1.createElement("th", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13721
+ });
13722
+ CTableHeaderCell.propTypes = {
13723
+ children: propTypesExports.node,
13724
+ className: propTypesExports.string,
13725
+ color: colorPropType,
13726
+ };
13727
+ CTableHeaderCell.displayName = 'CTableHeaderCell';
13728
+
13729
+ var CTableBody = forwardRef(function (_a, ref) {
13730
+ var _b;
13731
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13732
+ var _className = classNames$1((_b = {},
13733
+ _b["table-".concat(color)] = color,
13734
+ _b), className);
13735
+ return (React__default$1.createElement("tbody", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13736
+ });
13737
+ CTableBody.propTypes = {
13738
+ children: propTypesExports.node,
13739
+ className: propTypesExports.string,
13740
+ color: colorPropType,
13741
+ };
13742
+ CTableBody.displayName = 'CTableBody';
14501
13743
 
14502
- if (module.exports) {
14503
- classNames.default = classNames;
14504
- module.exports = classNames;
14505
- } else {
14506
- window.classNames = classNames;
14507
- }
14508
- }());
14509
- } (classnames));
13744
+ var CTableDataCell = forwardRef(function (_a, ref) {
13745
+ var _b;
13746
+ var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
13747
+ var _className = classNames$1((_b = {},
13748
+ _b["align-".concat(align)] = align,
13749
+ _b['table-active'] = active,
13750
+ _b["table-".concat(color)] = color,
13751
+ _b), className);
13752
+ var Component = rest.scope ? 'th' : 'td';
13753
+ return (React__default$1.createElement(Component, __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13754
+ });
13755
+ CTableDataCell.propTypes = {
13756
+ active: propTypesExports.bool,
13757
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13758
+ children: propTypesExports.node,
13759
+ className: propTypesExports.string,
13760
+ color: colorPropType,
13761
+ };
13762
+ CTableDataCell.displayName = 'CTableDataCell';
14510
13763
 
14511
- var classNames = classnames.exports;
13764
+ var CTableRow = forwardRef(function (_a, ref) {
13765
+ var _b;
13766
+ var children = _a.children, active = _a.active, align = _a.align, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "active", "align", "className", "color"]);
13767
+ var _className = classNames$1((_b = {},
13768
+ _b["align-".concat(align)] = align,
13769
+ _b['table-active'] = active,
13770
+ _b["table-".concat(color)] = color,
13771
+ _b), className);
13772
+ return (React__default$1.createElement("tr", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13773
+ });
13774
+ CTableRow.propTypes = {
13775
+ active: propTypesExports.bool,
13776
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13777
+ children: propTypesExports.node,
13778
+ className: propTypesExports.string,
13779
+ color: colorPropType,
13780
+ };
13781
+ CTableRow.displayName = 'CTableRow';
14512
13782
 
14513
- var toCamelCase = function (str) {
14514
- return str
14515
- .replace(/([-_][a-z0-9])/gi, function ($1) {
14516
- return $1.toUpperCase();
14517
- })
14518
- .replace(/-/gi, '');
13783
+ var CTableFoot = forwardRef(function (_a, ref) {
13784
+ var _b;
13785
+ var children = _a.children, className = _a.className, color = _a.color, rest = __rest$1(_a, ["children", "className", "color"]);
13786
+ var _className = classNames$1((_b = {},
13787
+ _b["table-".concat(color)] = color,
13788
+ _b), className);
13789
+ return (React__default$1.createElement("tfoot", __assign$1({ className: _className ? _className : undefined }, rest, { ref: ref }), children));
13790
+ });
13791
+ CTableFoot.propTypes = {
13792
+ children: propTypesExports.node,
13793
+ className: propTypesExports.string,
13794
+ color: colorPropType,
14519
13795
  };
14520
- var CIcon = forwardRef(function (_a, ref) {
13796
+ CTableFoot.displayName = 'CTableFoot';
13797
+
13798
+ var CTableCaption = forwardRef(function (_a, ref) {
13799
+ var children = _a.children, props = __rest$1(_a, ["children"]);
13800
+ return (React__default$1.createElement("caption", __assign$1({}, props, { ref: ref }), children));
13801
+ });
13802
+ CTableCaption.propTypes = {
13803
+ children: propTypesExports.node,
13804
+ };
13805
+ CTableCaption.displayName = 'CTableCaption';
13806
+
13807
+ var CTableResponsiveWrapper = function (_a) {
13808
+ var children = _a.children, responsive = _a.responsive, rest = __rest$1(_a, ["children", "responsive"]);
13809
+ return responsive ? (React__default$1.createElement("div", __assign$1({ className: typeof responsive === 'boolean' ? 'table-responsive' : "table-responsive-".concat(responsive) }, rest), children)) : (children);
13810
+ };
13811
+ CTableResponsiveWrapper.propTypes = {
13812
+ children: propTypesExports.any,
13813
+ responsive: propTypesExports.oneOfType([
13814
+ propTypesExports.bool,
13815
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13816
+ ]),
13817
+ };
13818
+ CTableResponsiveWrapper.displayName = 'CTableResponsiveWrapper';
13819
+
13820
+ var CTable = forwardRef(function (_a, ref) {
14521
13821
  var _b;
14522
- 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"]);
14523
- var _c = useState(0), change = _c[0], setChange = _c[1];
14524
- var _icon = icon || content || name;
14525
- if (content) {
14526
- process &&
14527
- process.env &&
14528
- process.env.NODE_ENV === 'development' &&
14529
- console.warn('[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.');
14530
- }
14531
- if (name) {
14532
- process &&
14533
- process.env &&
14534
- process.env.NODE_ENV === 'development' &&
14535
- console.warn('[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.');
13822
+ var children = _a.children, align = _a.align, borderColor = _a.borderColor, bordered = _a.bordered, borderless = _a.borderless, caption = _a.caption, captionTop = _a.captionTop, className = _a.className, color = _a.color, columns = _a.columns, footer = _a.footer, hover = _a.hover, items = _a.items, responsive = _a.responsive, small = _a.small, striped = _a.striped, stripedColumns = _a.stripedColumns, tableFootProps = _a.tableFootProps, tableHeadProps = _a.tableHeadProps, rest = __rest$1(_a, ["children", "align", "borderColor", "bordered", "borderless", "caption", "captionTop", "className", "color", "columns", "footer", "hover", "items", "responsive", "small", "striped", "stripedColumns", "tableFootProps", "tableHeadProps"]);
13823
+ var _className = classNames$1('table', (_b = {},
13824
+ _b["align-".concat(align)] = align,
13825
+ _b["border-".concat(borderColor)] = borderColor,
13826
+ _b["caption-top"] = captionTop || caption === 'top',
13827
+ _b['table-bordered'] = bordered,
13828
+ _b['table-borderless'] = borderless,
13829
+ _b["table-".concat(color)] = color,
13830
+ _b['table-hover'] = hover,
13831
+ _b['table-sm'] = small,
13832
+ _b['table-striped'] = striped,
13833
+ _b['table-striped-columns'] = stripedColumns,
13834
+ _b), className);
13835
+ var rawColumnNames = columns
13836
+ ? columns.map(function (column) {
13837
+ if (typeof column === 'object')
13838
+ return column.key;
13839
+ else
13840
+ return column;
13841
+ })
13842
+ : Object.keys((items && items[0]) || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13843
+ var pretifyName = function (name) {
13844
+ return name
13845
+ .replace(/[-_.]/g, ' ')
13846
+ .replace(/ +/g, ' ')
13847
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
13848
+ .split(' ')
13849
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
13850
+ .join(' ');
13851
+ };
13852
+ var label = function (column) {
13853
+ return typeof column === 'object'
13854
+ ? column.label !== undefined
13855
+ ? column.label
13856
+ : pretifyName(column.key)
13857
+ : pretifyName(column);
13858
+ };
13859
+ return (React__default$1.createElement(CTableResponsiveWrapper, { responsive: responsive },
13860
+ React__default$1.createElement("table", __assign$1({ className: _className }, rest, { ref: ref }),
13861
+ ((caption && caption !== 'top') || captionTop) && (React__default$1.createElement(CTableCaption, null, caption || captionTop)),
13862
+ columns && (React__default$1.createElement(CTableHead, __assign$1({}, tableHeadProps),
13863
+ React__default$1.createElement(CTableRow, null, columns.map(function (column, index) { return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, (column._props && __assign$1({}, column._props)), (column._style && { style: __assign$1({}, column._style) }), { key: index }), label(column))); })))),
13864
+ items && (React__default$1.createElement(CTableBody, null, items.map(function (item, index) { return (React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), { key: index }), rawColumnNames.map(function (colName, index) {
13865
+ return item[colName] ? (React__default$1.createElement(CTableDataCell, __assign$1({}, (item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])))), { key: index }), item[colName])) : null;
13866
+ }))); }))),
13867
+ children,
13868
+ footer && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
13869
+ React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); })))))));
13870
+ });
13871
+ CTable.propTypes = {
13872
+ align: propTypesExports.oneOf(['bottom', 'middle', 'top']),
13873
+ borderColor: propTypesExports.string,
13874
+ bordered: propTypesExports.bool,
13875
+ borderless: propTypesExports.bool,
13876
+ caption: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.oneOf(['top'])]),
13877
+ captionTop: propTypesExports.string,
13878
+ children: propTypesExports.node,
13879
+ className: propTypesExports.string,
13880
+ color: colorPropType,
13881
+ columns: propTypesExports.array,
13882
+ footer: propTypesExports.array,
13883
+ hover: propTypesExports.bool,
13884
+ items: propTypesExports.array,
13885
+ responsive: propTypesExports.oneOfType([
13886
+ propTypesExports.bool,
13887
+ propTypesExports.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
13888
+ ]),
13889
+ small: propTypesExports.bool,
13890
+ striped: propTypesExports.bool,
13891
+ stripedColumns: propTypesExports.bool,
13892
+ tableFootProps: propTypesExports.shape(__assign$1({}, CTableFoot.propTypes)),
13893
+ tableHeadProps: propTypesExports.shape(__assign$1({}, CTableHead.propTypes)),
13894
+ };
13895
+ CTable.displayName = 'CTable';
13896
+
13897
+ var filterColumns = function (items, columnFilter, columnFilterState, itemsDataColumns) {
13898
+ if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
13899
+ return items;
14536
13900
  }
14537
- useMemo(function () { return setChange(change + 1); }, [_icon, JSON.stringify(_icon)]);
14538
- var iconName = useMemo(function () {
14539
- return _icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon;
14540
- }, [change]);
14541
- var titleCode = title ? "<title>".concat(title, "</title>") : '';
14542
- var code = useMemo(function () {
14543
- if (Array.isArray(_icon)) {
14544
- return _icon;
13901
+ Object.entries(columnFilterState).forEach(function (_a) {
13902
+ var key = _a[0], value = _a[1];
13903
+ if (value instanceof Function) {
13904
+ items = items.filter(function (item) { return value(item[key]); });
13905
+ return;
14545
13906
  }
14546
- if (typeof _icon === 'string' && React__default$1['icons']) {
14547
- return React__default$1['icons'][iconName];
13907
+ var columnFilter = String(value).toLowerCase();
13908
+ if (columnFilter && itemsDataColumns.includes(key)) {
13909
+ items = items.filter(function (item) {
13910
+ return String(item[key]).toLowerCase().includes(columnFilter);
13911
+ });
14548
13912
  }
14549
- }, [change]);
14550
- var iconCode = useMemo(function () {
14551
- return Array.isArray(code) ? code[1] || code[0] : code;
14552
- }, [change]);
14553
- var scale = (function () {
14554
- return Array.isArray(code) && code.length > 1 ? code[0] : '64 64';
14555
- })();
14556
- var viewBox = (function () {
14557
- return rest['viewBox'] || "0 0 ".concat(scale);
14558
- })();
14559
- // render
14560
- var _className = customClassName
14561
- ? classNames(customClassName)
14562
- : classNames('icon', (_b = {},
14563
- _b["icon-".concat(size)] = size,
14564
- _b["icon-custom-size"] = height || width,
14565
- _b), className);
14566
- return use ? (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: _className }, (height && { height: height }), (width && { width: width }), { role: "img" }, rest, { ref: ref }),
14567
- React__default$1.createElement("use", { href: use }))) : (React__default$1.createElement("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, className: _className }, (height && { height: height }), (width && { width: width }), { role: "img", dangerouslySetInnerHTML: { __html: titleCode + iconCode } }, rest, { ref: ref })));
13913
+ });
13914
+ return items;
13915
+ };
13916
+ var filterTable = function (items, tableFilter, tableFilterState, itemsDataColumns) {
13917
+ if (!tableFilterState ||
13918
+ (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
13919
+ return items;
13920
+ }
13921
+ var filter = tableFilterState.toLowerCase();
13922
+ var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
13923
+ items = items.filter(function (item) {
13924
+ return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
13925
+ });
13926
+ return items;
13927
+ };
13928
+ var getClickedColumnName = function (target, columnNames) {
13929
+ var closest = target.closest('tr');
13930
+ var children = closest ? Array.from(closest.children) : [];
13931
+ var clickedCell = children.filter(function (child) { return child.contains(target); })[0];
13932
+ return columnNames[children.indexOf(clickedCell)];
13933
+ };
13934
+ var getColumnKey = function (column) {
13935
+ return typeof column === 'object' ? column.key : column;
13936
+ };
13937
+ var getColumnLabel = function (column) {
13938
+ return typeof column === 'object'
13939
+ ? column.label !== undefined
13940
+ ? column.label
13941
+ : pretifyName(column.key)
13942
+ : pretifyName(column);
13943
+ };
13944
+ var getColumnNames = function (columns, items) {
13945
+ return columns
13946
+ ? columns.map(function (column) {
13947
+ if (typeof column === 'object')
13948
+ return column.key;
13949
+ else
13950
+ return column;
13951
+ })
13952
+ : getColumnNamesFromItems(items);
13953
+ };
13954
+ var getColumnNamesFromItems = function (items) {
13955
+ return Object.keys(items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
13956
+ };
13957
+ var getColumnSorterState = function (key, sorterState) {
13958
+ if (sorterState && sorterState.column === key) {
13959
+ if (sorterState.state) {
13960
+ return sorterState.state;
13961
+ }
13962
+ return 0;
13963
+ }
13964
+ return 0;
13965
+ };
13966
+ var getColumnValues = function (items, key) {
13967
+ return items.map(function (item) { return item[key]; });
13968
+ };
13969
+ var getTableDataCellProps = function (item, colName) {
13970
+ var props = item._cellProps && __assign$1(__assign$1({}, (item._cellProps['all'] && __assign$1({}, item._cellProps['all']))), (item._cellProps[colName] && __assign$1({}, item._cellProps[colName])));
13971
+ return props;
13972
+ };
13973
+ var getTableHeaderCellProps = function (column) {
13974
+ if (typeof column === 'object' && column._props) {
13975
+ return column._props;
13976
+ }
13977
+ return {};
13978
+ };
13979
+ var getTableHeaderCellStyles = function (column, columnSorter) {
13980
+ var style = {};
13981
+ if (columnSorter &&
13982
+ (typeof column !== 'object' ||
13983
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
13984
+ style['cursor'] = 'pointer';
13985
+ }
13986
+ if (typeof column === 'object' && column._style) {
13987
+ return __assign$1(__assign$1({}, style), column._style);
13988
+ }
13989
+ return style;
13990
+ };
13991
+ var isSortable = function (i, columns, columnSorter, itemsDataColumns, columnNames) {
13992
+ var isDataColumn = itemsDataColumns.includes(columnNames[i]);
13993
+ var column;
13994
+ if (columns)
13995
+ column = columns[i];
13996
+ return (columnSorter &&
13997
+ (!columns ||
13998
+ typeof column !== 'object' ||
13999
+ (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter))) &&
14000
+ isDataColumn);
14001
+ };
14002
+ var pretifyName = function (name) {
14003
+ return name
14004
+ .replace(/[-_.]/g, ' ')
14005
+ .replace(/ +/g, ' ')
14006
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
14007
+ .split(' ')
14008
+ .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
14009
+ .join(' ');
14010
+ };
14011
+ var sortItems = function (columnSorter, items, itemsDataColumns, sorterState) {
14012
+ var column = sorterState.column;
14013
+ if (!column ||
14014
+ !itemsDataColumns.includes(column) ||
14015
+ (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14016
+ return items;
14017
+ }
14018
+ var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14019
+ var sorted = items.slice().sort(function (item, item2) {
14020
+ var value = item[column];
14021
+ var value2 = item2[column];
14022
+ var a = typeof value === 'number' ? value : String(value).toLowerCase();
14023
+ var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14024
+ return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14025
+ });
14026
+ return sorted;
14027
+ };
14028
+
14029
+ var CSmartTableBody = forwardRef(function (_a, ref) {
14030
+ var clickableRows = _a.clickableRows, columnNames = _a.columnNames, currentItems = _a.currentItems, firstItemOnActivePageIndex = _a.firstItemOnActivePageIndex, noItemsLabel = _a.noItemsLabel, onRowChecked = _a.onRowChecked, onRowClick = _a.onRowClick, scopedColumns = _a.scopedColumns, selectable = _a.selectable, selected = _a.selected, rest = __rest$1(_a, ["clickableRows", "columnNames", "currentItems", "firstItemOnActivePageIndex", "noItemsLabel", "onRowChecked", "onRowClick", "scopedColumns", "selectable", "selected"]);
14031
+ var colspan = selectable ? columnNames.length + 1 : columnNames.length;
14032
+ return (React__default$1.createElement(CTableBody, __assign$1({}, (clickableRows && {
14033
+ style: { cursor: 'pointer' },
14034
+ }), rest, { ref: ref }),
14035
+ currentItems.map(function (item, trIndex) {
14036
+ return (React__default$1.createElement(React__default$1.Fragment, { key: trIndex },
14037
+ React__default$1.createElement(CTableRow, __assign$1({}, (item._props && __assign$1({}, item._props)), (clickableRows && { tabIndex: 0 }), { onClick: function (event) {
14038
+ return onRowClick &&
14039
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), event);
14040
+ } }),
14041
+ selectable && (React__default$1.createElement(CTableDataCell, null,
14042
+ React__default$1.createElement(CFormCheck, { checked: selected &&
14043
+ isObjectInArray(selected, item, ['_cellProps', '_props', '_selected']), onChange: function (event) {
14044
+ var _item = __assign$1({}, item);
14045
+ delete _item['_cellProps'];
14046
+ delete _item['_props'];
14047
+ delete _item['_selected'];
14048
+ onRowChecked && onRowChecked(_item, event.target.checked);
14049
+ } }))),
14050
+ columnNames.map(function (colName, index) {
14051
+ return ((scopedColumns &&
14052
+ scopedColumns[colName] &&
14053
+ React__default$1.cloneElement(scopedColumns[colName](item, trIndex + firstItemOnActivePageIndex), {
14054
+ key: index,
14055
+ })) || (React__default$1.createElement(CTableDataCell, __assign$1({}, getTableDataCellProps(item, colName), { key: index }), String(item[colName]))));
14056
+ })),
14057
+ scopedColumns && scopedColumns.details && (React__default$1.createElement(React__default$1.Fragment, null,
14058
+ React__default$1.createElement(CTableRow, null,
14059
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { borderBottomWidth: 0 }, tabIndex: -1 })),
14060
+ React__default$1.createElement(CTableRow, { onClick: function (event) {
14061
+ return onRowClick &&
14062
+ onRowClick(item, trIndex + firstItemOnActivePageIndex, getClickedColumnName(event.target, columnNames), true);
14063
+ }, className: "p-0", key: "details".concat(trIndex) },
14064
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan, className: "p-0", style: { border: 0 } }, scopedColumns.details(item, trIndex + firstItemOnActivePageIndex)))))));
14065
+ }),
14066
+ !currentItems.length && (React__default$1.createElement(CTableRow, null,
14067
+ React__default$1.createElement(CTableDataCell, { colSpan: colspan }, noItemsLabel)))));
14568
14068
  });
14569
- CIcon.propTypes = {
14570
- className: propTypes.exports.string,
14571
- content: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
14572
- customClassName: propTypes.exports.string,
14573
- height: propTypes.exports.number,
14574
- icon: propTypes.exports.oneOfType([propTypes.exports.array, propTypes.exports.string]),
14575
- name: propTypes.exports.string,
14576
- size: propTypes.exports.oneOf([
14577
- 'custom',
14578
- 'custom-size',
14579
- 'sm',
14580
- 'lg',
14581
- 'xl',
14582
- 'xxl',
14583
- '3xl',
14584
- '4xl',
14585
- '5xl',
14586
- '6xl',
14587
- '7xl',
14588
- '8xl',
14589
- '9xl',
14590
- ]),
14591
- title: propTypes.exports.any,
14592
- use: propTypes.exports.any,
14593
- width: propTypes.exports.number,
14069
+ CSmartTableBody.propTypes = {
14070
+ clickableRows: propTypesExports.bool,
14071
+ currentItems: propTypesExports.array.isRequired,
14072
+ firstItemOnActivePageIndex: propTypesExports.number.isRequired,
14073
+ noItemsLabel: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.node]),
14074
+ onRowChecked: propTypesExports.func,
14075
+ onRowClick: propTypesExports.func,
14076
+ columnNames: propTypesExports.array.isRequired,
14077
+ scopedColumns: propTypesExports.object,
14078
+ selectable: propTypesExports.bool,
14079
+ selected: propTypesExports.array,
14594
14080
  };
14595
- CIcon.displayName = 'CIcon';
14081
+ CSmartTableBody.displayName = 'CSmartTableBody';
14596
14082
 
14597
14083
  var CSmartTableCleaner = forwardRef(function (_a, ref) {
14598
14084
  var _b = _a.content, content = _b === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilFilterX }) : _b, isFiltered = _a.isFiltered, rest = __rest$1(_a, ["content", "isFiltered"]);
@@ -14607,23 +14093,20 @@ CSmartTableCleaner.propTypes = {
14607
14093
  };
14608
14094
  CSmartTableCleaner.displayName = 'CSmartTableCleaner';
14609
14095
 
14610
- var CSmartTableFilter = forwardRef(function (_a, ref) {
14611
- var filterLabel = _a.filterLabel, filterPlaceholder = _a.filterPlaceholder, value = _a.value, rest = __rest$1(_a, ["filterLabel", "filterPlaceholder", "value"]);
14612
- return (React__default$1.createElement("div", { className: "row mb-2" },
14613
- React__default$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, filterLabel),
14614
- React__default$1.createElement("div", { className: "col-sm-auto" },
14615
- React__default$1.createElement(CFormInput, __assign$1({ placeholder: filterPlaceholder, value: value }, rest, { ref: ref })))));
14616
- });
14617
- CSmartTableFilter.propTypes = {
14618
- filterLabel: propTypesExports.string,
14619
- filterPlaceholder: propTypesExports.string,
14620
- value: propTypesExports.oneOfType([propTypesExports.number, propTypesExports.string]),
14621
- };
14622
- CSmartTableFilter.displayName = 'CSmartTableFilter';
14623
-
14624
14096
  var CSmartTableHead = forwardRef(function (_a, ref) {
14625
- var columnFilter = _a.columnFilter, columnFilterState = _a.columnFilterState, columnSorter = _a.columnSorter, _b = _a.component, Component = _b === void 0 ? CTableHead : _b, columns = _a.columns, handleOnCustomFilterChange = _a.handleOnCustomFilterChange, handleFilterOnChange = _a.handleFilterOnChange, handleFilterOnInput = _a.handleFilterOnInput, handleSelectAllChecked = _a.handleSelectAllChecked, handleSort = _a.handleSort, items = _a.items, selectable = _a.selectable, selectAll = _a.selectAll, sorterState = _a.sorterState, sortingIcon = _a.sortingIcon, sortingIconAscending = _a.sortingIconAscending, sortingIconDescending = _a.sortingIconDescending, rest = __rest$1(_a, ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "handleOnCustomFilterChange", "handleFilterOnChange", "handleFilterOnInput", "handleSelectAllChecked", "handleSort", "items", "selectable", "selectAll", "sorterState", "sortingIcon", "sortingIconAscending", "sortingIconDescending"]);
14097
+ var columnFilter = _a.columnFilter, columnFilterState = _a.columnFilterState, columnSorter = _a.columnSorter, _b = _a.component, Component = _b === void 0 ? CTableHead : _b, columns = _a.columns, handleOnCustomFilterChange = _a.handleOnCustomFilterChange, handleFilterOnChange = _a.handleFilterOnChange, handleFilterOnInput = _a.handleFilterOnInput, handleSelectAllChecked = _a.handleSelectAllChecked, handleSort = _a.handleSort, items = _a.items, selectable = _a.selectable, selectAll = _a.selectAll, selectedAll = _a.selectedAll, sorterState = _a.sorterState, sortingIcon = _a.sortingIcon, sortingIconAscending = _a.sortingIconAscending, sortingIconDescending = _a.sortingIconDescending, rest = __rest$1(_a, ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "handleOnCustomFilterChange", "handleFilterOnChange", "handleFilterOnInput", "handleSelectAllChecked", "handleSort", "items", "selectable", "selectAll", "selectedAll", "sorterState", "sortingIcon", "sortingIconAscending", "sortingIconDescending"]);
14098
+ var selectAllcheckboxRef = useRef(null);
14626
14099
  var _c = useState(false), refresh = _c[0], setRefresh = _c[1];
14100
+ useEffect(function () {
14101
+ if (selectedAll === 'indeterminate') {
14102
+ if (selectAllcheckboxRef.current)
14103
+ selectAllcheckboxRef.current.indeterminate = true;
14104
+ }
14105
+ else {
14106
+ if (selectAllcheckboxRef.current)
14107
+ selectAllcheckboxRef.current.indeterminate = false;
14108
+ }
14109
+ }, [selectedAll]);
14627
14110
  useEffect(function () {
14628
14111
  if (columnFilterState && Object.keys(columnFilterState).length === 0) {
14629
14112
  setRefresh(true);
@@ -14637,83 +14120,24 @@ var CSmartTableHead = forwardRef(function (_a, ref) {
14637
14120
  setRefresh(false);
14638
14121
  }
14639
14122
  }, [refresh]);
14640
- var tableHeaderCellProps = function (column) {
14641
- if (typeof column === 'object' && column._props) {
14642
- return column._props;
14643
- }
14644
- return {};
14645
- };
14646
- var tableHeaderCellStyles = function (column) {
14647
- var style = { verticalAlign: 'middle', overflow: 'hidden', cursor: '' };
14648
- if (columnSorter &&
14649
- (typeof column !== 'object' ||
14650
- (typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
14651
- style.cursor = 'pointer';
14652
- }
14653
- if (typeof column === 'object' && column._style) {
14654
- return __assign$1(__assign$1({}, style), column._style);
14655
- }
14656
- return style;
14657
- };
14658
- var pretifyName = function (name) {
14659
- return name
14660
- .replace(/[-_.]/g, ' ')
14661
- .replace(/ +/g, ' ')
14662
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
14663
- .split(' ')
14664
- .map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
14665
- .join(' ');
14666
- };
14667
- var label = function (column) {
14668
- return typeof column === 'object'
14669
- ? column.label !== undefined
14670
- ? column.label
14671
- : pretifyName(column.key)
14672
- : pretifyName(column);
14673
- };
14674
- var key = function (column) { return (typeof column === 'object' ? column.key : column); };
14675
- var getColumnSorterState = function (key) {
14676
- if (sorterState && sorterState.column === key) {
14677
- if (sorterState.state) {
14678
- return sorterState.state;
14679
- }
14680
- return 0;
14681
- }
14682
- return 0;
14683
- };
14684
- var getValues = function (items, key) {
14685
- return items.map(function (a) { return a[key]; });
14686
- };
14687
14123
  var columnSorterIcon = function (column) {
14688
- if (getColumnSorterState(key(column)) === 0) {
14124
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
14689
14125
  return React__default$1.createElement("span", { className: "opacity-25 float-end me-1" }, sortingIcon);
14690
14126
  }
14691
- if (getColumnSorterState(key(column)) === 'asc') {
14127
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'asc') {
14692
14128
  return React__default$1.createElement("span", { className: "float-end me-1" }, sortingIconAscending);
14693
14129
  }
14694
- if (getColumnSorterState(key(column)) === 'desc') {
14130
+ if (getColumnSorterState(getColumnKey(column), sorterState) === 'desc') {
14695
14131
  return React__default$1.createElement("span", { className: "float-end me-1" }, sortingIconDescending);
14696
14132
  }
14697
14133
  return;
14698
14134
  };
14699
- var checkboxRef = useRef(null);
14700
- useEffect(function () {
14701
- if (selectAll === 'indeterminate') {
14702
- if (checkboxRef.current)
14703
- checkboxRef.current.indeterminate = true;
14704
- }
14705
- else {
14706
- if (checkboxRef.current)
14707
- checkboxRef.current.indeterminate = false;
14708
- }
14709
- }, [selectAll]);
14710
14135
  return (React__default$1.createElement(Component, __assign$1({}, rest, { ref: ref }),
14711
14136
  React__default$1.createElement(CTableRow, null,
14712
- selectable && (React__default$1.createElement(CTableHeaderCell, null,
14713
- React__default$1.createElement(CFormCheck, { checked: typeof selectAll === 'boolean' ? selectAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: checkboxRef }))),
14137
+ selectable && (React__default$1.createElement(CTableHeaderCell, null, selectAll && (React__default$1.createElement(CFormCheck, { checked: typeof selectedAll === 'boolean' ? selectedAll : false, onChange: function () { return handleSelectAllChecked && handleSelectAllChecked(); }, ref: selectAllcheckboxRef })))),
14714
14138
  columns.map(function (column, index) {
14715
- return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(key(column), index); }, style: tableHeaderCellStyles(column), key: index }),
14716
- React__default$1.createElement("div", { className: "d-inline" }, label(column)),
14139
+ return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { onClick: function () { return handleSort && handleSort(getColumnKey(column), index); }, style: getTableHeaderCellStyles(column, columnSorter), key: index }),
14140
+ React__default$1.createElement("div", { className: "d-inline" }, getColumnLabel(column)),
14717
14141
  columnSorter &&
14718
14142
  (typeof column !== 'object'
14719
14143
  ? true
@@ -14725,23 +14149,23 @@ var CSmartTableHead = forwardRef(function (_a, ref) {
14725
14149
  columnFilter && (React__default$1.createElement(CTableRow, null,
14726
14150
  selectable && React__default$1.createElement(CTableHeaderCell, null),
14727
14151
  columns.map(function (column, index) {
14728
- return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, tableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14152
+ return (React__default$1.createElement(CTableHeaderCell, __assign$1({}, getTableHeaderCellProps(column), { key: index }), (typeof column !== 'object'
14729
14153
  ? true
14730
14154
  : typeof column.filter === 'undefined'
14731
14155
  ? true
14732
14156
  : column.filter) ? (typeof column !== 'string' && typeof column.filter === 'function' ? (!refresh &&
14733
- column.filter(getValues(items, key(column)), function (value) {
14157
+ column.filter(getColumnValues(items, getColumnKey(column)), function (value) {
14734
14158
  return handleOnCustomFilterChange &&
14735
- handleOnCustomFilterChange(key(column), value);
14159
+ handleOnCustomFilterChange(getColumnKey(column), value);
14736
14160
  })) : (React__default$1.createElement(CFormInput, { size: "sm", onInput: function (event) {
14737
14161
  return handleFilterOnInput &&
14738
- handleFilterOnInput(key(column), event.target.value);
14162
+ handleFilterOnInput(getColumnKey(column), event.target.value);
14739
14163
  }, onChange: function (event) {
14740
14164
  return handleFilterOnChange &&
14741
- handleFilterOnChange(key(column), event.target.value);
14742
- }, value: columnFilterState && columnFilterState[key(column)]
14743
- ? columnFilterState[key(column)]
14744
- : '', "aria-label": "column name: '".concat(label(column), "' filter input") }))) : ('')));
14165
+ handleFilterOnChange(getColumnKey(column), event.target.value);
14166
+ }, value: columnFilterState && columnFilterState[getColumnKey(column)]
14167
+ ? columnFilterState[getColumnKey(column)]
14168
+ : '', "aria-label": "column name: '".concat(getColumnLabel(column), "' filter input") }))) : ('')));
14745
14169
  })))));
14746
14170
  });
14747
14171
  CSmartTableHead.propTypes = {
@@ -14756,7 +14180,8 @@ CSmartTableHead.propTypes = {
14756
14180
  handleSelectAllChecked: propTypesExports.func,
14757
14181
  handleSort: propTypesExports.func,
14758
14182
  selectable: propTypesExports.bool,
14759
- selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14183
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14184
+ selectedAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.string]),
14760
14185
  sorterState: propTypesExports.object,
14761
14186
  sortingIcon: propTypesExports.node,
14762
14187
  sortingIconAscending: propTypesExports.node,
@@ -14764,72 +14189,152 @@ CSmartTableHead.propTypes = {
14764
14189
  };
14765
14190
  CSmartTableHead.displayName = 'CSmartTableHead';
14766
14191
 
14767
- var CSmartTableItemsPerPageSelector = forwardRef(function (_a, ref) {
14768
- var itemsPerPage = _a.itemsPerPage, itemsPerPageLabel = _a.itemsPerPageLabel, itemsPerPageOptions = _a.itemsPerPageOptions, rest = __rest$1(_a, ["itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions"]);
14769
- return (React__default$1.createElement("div", { className: "row" },
14770
- React__default$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14771
- React__default$1.createElement("div", { className: "col-auto" },
14772
- React__default$1.createElement(CFormSelect, __assign$1({ defaultValue: itemsPerPage }, rest, { ref: ref }), itemsPerPageOptions &&
14773
- itemsPerPageOptions.map(function (number, index) {
14774
- return (React__default$1.createElement("option", { value: number, key: index }, number));
14775
- })))));
14776
- });
14777
- CSmartTableItemsPerPageSelector.propTypes = {
14778
- itemsPerPage: propTypesExports.number,
14779
- itemsPerPageLabel: propTypesExports.string,
14780
- itemsPerPageOptions: propTypesExports.array,
14781
- };
14782
- CSmartTableItemsPerPageSelector.displayName = 'CSmartTableItemsPerPageSelector';
14783
-
14784
14192
  var CSmartTable = forwardRef(function (_a, ref) {
14785
14193
  var _b = _a.activePage, activePage = _b === void 0 ? 1 : _b, cleaner = _a.cleaner, clickableRows = _a.clickableRows, columnFilter = _a.columnFilter, columnFilterValue = _a.columnFilterValue, // TODO: consider to use only columnFilter prop
14786
- columns = _a.columns, columnSorter = _a.columnSorter, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selectable = _a.selectable, sorterValue = _a.sorterValue, _h = _a.sortingIcon, sortingIcon = _h === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _h, _j = _a.sortingIconAscending, sortingIconAscending = _j === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _j, _k = _a.sortingIconDescending, sortingIconDescending = _k === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowBottom, key: "cab" }) : _k, tableBodyProps = _a.tableBodyProps, tableFootProps = _a.tableFootProps, tableFilter = _a.tableFilter, _l = _a.tableFilterLabel, tableFilterLabel = _l === void 0 ? 'Filter:' : _l, _m = _a.tableFilterPlaceholder, tableFilterPlaceholder = _m === void 0 ? 'type string...' : _m, tableFilterValue = _a.tableFilterValue, // TODO: consider to use only tableFilter prop
14787
- 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"]);
14788
- // instance data
14194
+ columns = _a.columns, columnSorter = _a.columnSorter, elementCover = _a.elementCover, footer = _a.footer, _c = _a.header, header = _c === void 0 ? true : _c, items = _a.items, itemsNumber = _a.itemsNumber, _d = _a.itemsPerPage, itemsPerPage = _d === void 0 ? 10 : _d, _e = _a.itemsPerPageLabel, itemsPerPageLabel = _e === void 0 ? 'Items per page:' : _e, _f = _a.itemsPerPageOptions, itemsPerPageOptions = _f === void 0 ? [5, 10, 20, 50] : _f, itemsPerPageSelect = _a.itemsPerPageSelect, loading = _a.loading, _g = _a.noItemsLabel, noItemsLabel = _g === void 0 ? 'No items found' : _g, onActivePageChange = _a.onActivePageChange, onColumnFilterChange = _a.onColumnFilterChange, onFilteredItemsChange = _a.onFilteredItemsChange, onItemsPerPageChange = _a.onItemsPerPageChange, onRowClick = _a.onRowClick, onSelectAll = _a.onSelectAll, onSelectedItemsChange = _a.onSelectedItemsChange, onSorterChange = _a.onSorterChange, onTableFilterChange = _a.onTableFilterChange, pagination = _a.pagination, paginationProps = _a.paginationProps, scopedColumns = _a.scopedColumns, selected = _a.selected, selectable = _a.selectable, _h = _a.selectAll, selectAll = _h === void 0 ? true : _h, sorterValue = _a.sorterValue, _j = _a.sortingIcon, sortingIcon = _j === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilSwapVertical, key: "csv" }) : _j, _k = _a.sortingIconAscending, sortingIconAscending = _k === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowTop, key: "cat" }) : _k, _l = _a.sortingIconDescending, sortingIconDescending = _l === void 0 ? React__default$1.createElement(CIcon, { width: 18, icon: cilArrowBottom, key: "cab" }) : _l, tableBodyProps = _a.tableBodyProps, tableFootProps = _a.tableFootProps, tableFilter = _a.tableFilter, _m = _a.tableFilterLabel, tableFilterLabel = _m === void 0 ? 'Filter:' : _m, _o = _a.tableFilterPlaceholder, tableFilterPlaceholder = _o === void 0 ? 'type string...' : _o, tableFilterValue = _a.tableFilterValue, // TODO: consider to use only tableFilter prop
14195
+ tableHeadProps = _a.tableHeadProps, tableProps = _a.tableProps, rest = __rest$1(_a, ["activePage", "cleaner", "clickableRows", "columnFilter", "columnFilterValue", "columns", "columnSorter", "elementCover", "footer", "header", "items", "itemsNumber", "itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions", "itemsPerPageSelect", "loading", "noItemsLabel", "onActivePageChange", "onColumnFilterChange", "onFilteredItemsChange", "onItemsPerPageChange", "onRowClick", "onSelectAll", "onSelectedItemsChange", "onSorterChange", "onTableFilterChange", "pagination", "paginationProps", "scopedColumns", "selected", "selectable", "selectAll", "sorterValue", "sortingIcon", "sortingIconAscending", "sortingIconDescending", "tableBodyProps", "tableFootProps", "tableFilter", "tableFilterLabel", "tableFilterPlaceholder", "tableFilterValue", "tableHeadProps", "tableProps"]);
14789
14196
  var mountedRef = useRef(false);
14790
- var _o = useState(activePage), _activePage = _o[0], setActivePage = _o[1];
14791
- var _p = useState([]), _items = _p[0], setItems = _p[1];
14792
- var _q = useState(itemsPerPage), _itemsPerPage = _q[0], setItemsPerPage = _q[1];
14793
- var _r = useState({}), columnFilterState = _r[0], setColumnFilterState = _r[1];
14794
- var _s = useState(), selectedAll = _s[0], setSelectedAll = _s[1];
14795
- var _t = useState({}), sorterState = _t[0], setSorterState = _t[1];
14796
- var _u = useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _u[0], setTableFilterState = _u[1];
14197
+ var _p = useState(activePage), _activePage = _p[0], setActivePage = _p[1];
14198
+ var _q = useState([]), _items = _q[0], setItems = _q[1];
14199
+ var _r = useState(itemsNumber), _itemsNumber = _r[0], setItemsNumber = _r[1];
14200
+ var _s = useState(itemsPerPage), _itemsPerPage = _s[0], setItemsPerPage = _s[1];
14201
+ var _t = useState([]), _selected = _t[0], setSelected = _t[1];
14202
+ var _u = useState({}), columnFilterState = _u[0], setColumnFilterState = _u[1];
14203
+ var _v = useState(), selectedAll = _v[0], setSelectedAll = _v[1];
14204
+ var _w = useState({}), sorterState = _w[0], setSorterState = _w[1];
14205
+ var _x = useState(tableFilterValue ? tableFilterValue : ''), tableFilterState = _x[0], setTableFilterState = _x[1];
14797
14206
  useEffect(function () {
14798
14207
  setActivePage(activePage);
14799
14208
  }, [activePage]);
14800
- // watch
14801
- useMemo(function () {
14209
+ useEffect(function () {
14802
14210
  if (items && items.length < _itemsPerPage * _activePage - _itemsPerPage) {
14803
14211
  setActivePage(1);
14804
14212
  }
14805
- // Create the internal array of items
14806
- Array.isArray(items) &&
14807
- setItems(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
14808
- return __assign$1(__assign$1({}, item), { _id: index });
14809
- }));
14213
+ items &&
14214
+ items.forEach(function (item) {
14215
+ if (item._selected) {
14216
+ var _item = __assign$1({}, item);
14217
+ delete _item['_cellProps'];
14218
+ delete _item['_props'];
14219
+ delete _item['_selected'];
14220
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [_item], false));
14221
+ }
14222
+ });
14223
+ if (Array.isArray(items)) {
14224
+ setItems(items);
14225
+ setItemsNumber(itemsNumber || items.length);
14226
+ }
14810
14227
  }, [JSON.stringify(items)]);
14811
- useMemo(function () {
14228
+ useEffect(function () {
14229
+ Array.isArray(selected) && setSelected(selected);
14230
+ }, [JSON.stringify(selected)]);
14231
+ useEffect(function () {
14232
+ itemsNumber && setItemsNumber(itemsNumber);
14233
+ }, [itemsNumber]);
14234
+ useEffect(function () {
14812
14235
  columnFilterValue && setColumnFilterState(columnFilterValue);
14813
14236
  }, [JSON.stringify(columnFilterValue)]);
14814
- useMemo(function () {
14237
+ useEffect(function () {
14815
14238
  setSorterState(__assign$1({}, sorterValue));
14816
14239
  }, [JSON.stringify(sorterValue)]);
14817
- useMemo(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14818
- // functions
14819
- var isSortable = function (i) {
14820
- var isDataColumn = itemsDataColumns.includes(rawColumnNames[i]);
14821
- var column;
14822
- if (columns)
14823
- column = columns[i];
14824
- return (columnSorter &&
14825
- (!columns ||
14826
- typeof column !== 'object' ||
14827
- (typeof column === 'object' &&
14828
- (typeof column.sorter === 'undefined' || column.sorter))) &&
14829
- isDataColumn);
14830
- };
14831
- var sorterChange = function (column, index) {
14832
- if (!isSortable(index)) {
14240
+ useEffect(function () { return setItemsPerPage(itemsPerPage); }, [itemsPerPage]);
14241
+ useEffect(function () {
14242
+ mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14243
+ }, [_activePage]);
14244
+ useEffect(function () {
14245
+ mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14246
+ itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14247
+ }, [_itemsPerPage]);
14248
+ useEffect(function () {
14249
+ mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14250
+ }, [JSON.stringify(sorterState)]);
14251
+ useEffect(function () {
14252
+ mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14253
+ }, [columnFilterState]);
14254
+ useEffect(function () {
14255
+ mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14256
+ }, [tableFilterState]);
14257
+ useEffect(function () {
14258
+ if (selectable) {
14259
+ onSelectedItemsChange && onSelectedItemsChange(_selected);
14260
+ if (_selected.length === _itemsNumber) {
14261
+ setSelectedAll(true);
14262
+ return;
14263
+ }
14264
+ if (_selected.length === 0) {
14265
+ setSelectedAll(false);
14266
+ return;
14267
+ }
14268
+ if (_selected.length !== 0 && _selected.length !== _itemsNumber) {
14269
+ setSelectedAll('indeterminate');
14270
+ }
14271
+ }
14272
+ }, [JSON.stringify(_selected), _itemsNumber]);
14273
+ var columnNames = useMemo(function () { return getColumnNames(columns, _items); }, [columns, _items]);
14274
+ var itemsDataColumns = useMemo(function () { return columnNames.filter(function (name) { return getColumnNamesFromItems(_items).includes(name); }); }, [columnNames, _items]);
14275
+ var filteredColumns = useMemo(function () { return filterColumns(_items, columnFilter, columnFilterState, itemsDataColumns); }, [columnFilterState, JSON.stringify(_items)]);
14276
+ var filteredTable = useMemo(function () { return filterTable(filteredColumns, tableFilter, tableFilterState, itemsDataColumns); }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14277
+ var sortedItems = useMemo(function () { return sortItems(columnSorter, filteredTable, itemsDataColumns, sorterState); }, [
14278
+ JSON.stringify(filteredTable),
14279
+ JSON.stringify(sorterState),
14280
+ JSON.stringify(columnSorter),
14281
+ JSON.stringify(filteredColumns),
14282
+ JSON.stringify(_items),
14283
+ ]);
14284
+ var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14285
+ var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14286
+ var currentItems = _activePage
14287
+ ? sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage)
14288
+ : sortedItems;
14289
+ useEffect(function () {
14290
+ mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14291
+ }, [JSON.stringify(sortedItems)]);
14292
+ var handleClean = function () {
14293
+ setTableFilterState('');
14294
+ setColumnFilterState({});
14295
+ setSorterState({});
14296
+ };
14297
+ var handleColumnFilterChange = function (colName, value, type) {
14298
+ var _a;
14299
+ var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14300
+ if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14301
+ return;
14302
+ }
14303
+ var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14304
+ setActivePage(1);
14305
+ setColumnFilterState(newState);
14306
+ };
14307
+ var handleItemsPerPageChange = function (event) {
14308
+ if (typeof itemsPerPageSelect !== 'object' ||
14309
+ (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external)) {
14310
+ setItemsPerPage(Number(event.target.value));
14311
+ }
14312
+ };
14313
+ var handleRowChecked = function (item, value) {
14314
+ if (value && !isObjectInArray(_selected, item, ['_cellProps', '_props', '_selected'])) {
14315
+ setSelected(__spreadArray(__spreadArray([], _selected, true), [item], false));
14316
+ return;
14317
+ }
14318
+ setSelected(_selected.filter(function (_item) { return !isObjectInArray([_item], item, ['_cellProps', '_props', '_selected']); }));
14319
+ };
14320
+ var handleSelectAllChecked = function () {
14321
+ if (selectedAll === true) {
14322
+ setSelected([]);
14323
+ return;
14324
+ }
14325
+ onSelectAll && onSelectAll();
14326
+ if (selectAll && typeof selectAll === 'object' && selectAll.external) {
14327
+ return;
14328
+ }
14329
+ setSelected(_items.map(function (item) {
14330
+ delete item['_cellProps'];
14331
+ delete item['_props'];
14332
+ delete item['_selected'];
14333
+ return item;
14334
+ }));
14335
+ };
14336
+ var handleSorterChange = function (column, index) {
14337
+ if (!isSortable(index, columns, columnSorter, itemsDataColumns, columnNames)) {
14833
14338
  return;
14834
14339
  }
14835
14340
  //if column changed or sort was descending change asc to true
@@ -14856,22 +14361,7 @@ var CSmartTable = forwardRef(function (_a, ref) {
14856
14361
  }
14857
14362
  setSorterState(__assign$1({}, state));
14858
14363
  };
14859
- var itemsPerPageChange = function (event) {
14860
- if (typeof itemsPerPageSelect !== 'object' ||
14861
- (typeof itemsPerPageSelect === 'object' && !itemsPerPageSelect.external))
14862
- setItemsPerPage(Number(event.target.value));
14863
- };
14864
- var columnFilterChange = function (colName, value, type) {
14865
- var _a;
14866
- var isLazy = columnFilter && typeof columnFilter === 'object' && columnFilter.lazy === true;
14867
- if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14868
- return;
14869
- }
14870
- var newState = __assign$1(__assign$1({}, columnFilterState), (_a = {}, _a["".concat(colName)] = value, _a));
14871
- setActivePage(1);
14872
- setColumnFilterState(newState);
14873
- };
14874
- var tableFilterChange = function (value, type) {
14364
+ var handleTableFilterChange = function (value, type) {
14875
14365
  var isLazy = tableFilter && typeof tableFilter === 'object' && tableFilter.lazy === true;
14876
14366
  if ((isLazy && type === 'input') || (!isLazy && type === 'change')) {
14877
14367
  return;
@@ -14879,169 +14369,55 @@ var CSmartTable = forwardRef(function (_a, ref) {
14879
14369
  setActivePage(1);
14880
14370
  setTableFilterState(value);
14881
14371
  };
14882
- var clean = function () {
14883
- setTableFilterState('');
14884
- setColumnFilterState({});
14885
- setSorterState({});
14886
- };
14887
- // computed
14888
- var genCols = Object.keys(_items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
14889
- var rawColumnNames = columns
14890
- ? columns.map(function (column) {
14891
- if (typeof column === 'object')
14892
- return column.key;
14893
- else
14894
- return column;
14895
- })
14896
- : genCols; //! || el
14897
- var itemsDataColumns = rawColumnNames.filter(function (name) { return genCols.includes(name); });
14898
- // variables
14899
- var filteredColumns = useMemo(function () {
14900
- var items = _items;
14901
- if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
14902
- return items;
14903
- }
14904
- Object.entries(columnFilterState).forEach(function (_a) {
14905
- var key = _a[0], value = _a[1];
14906
- if (value instanceof Function) {
14907
- items = items.filter(function (item) { return value(item[key]); });
14908
- return;
14909
- }
14910
- var columnFilter = String(value).toLowerCase();
14911
- if (columnFilter && itemsDataColumns.includes(key)) {
14912
- items = items.filter(function (item) {
14913
- return String(item[key]).toLowerCase().includes(columnFilter);
14914
- });
14915
- }
14916
- });
14917
- return items;
14918
- }, [columnFilterState, JSON.stringify(_items)]);
14919
- var filteredTable = useMemo(function () {
14920
- var items = filteredColumns;
14921
- if (!tableFilterState ||
14922
- (tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
14923
- return items;
14924
- }
14925
- var filter = tableFilterState.toLowerCase();
14926
- var valueContainFilter = function (val) { return String(val).toLowerCase().includes(filter); };
14927
- items = items.filter(function (item) {
14928
- return !!itemsDataColumns.find(function (key) { return valueContainFilter(item[key]); });
14929
- });
14930
- return items;
14931
- }, [tableFilterState, JSON.stringify(tableFilterValue), JSON.stringify(filteredColumns)]);
14932
- var sortedItems = useMemo(function () {
14933
- var col = sorterState === null || sorterState === void 0 ? void 0 : sorterState.column;
14934
- if (!col ||
14935
- !itemsDataColumns.includes(col) ||
14936
- (columnSorter && typeof columnSorter === 'object' && columnSorter.external)) {
14937
- return filteredTable;
14938
- }
14939
- var flip = sorterState.state === 'asc' ? 1 : sorterState.state === 'desc' ? -1 : 0;
14940
- var sorted = filteredTable.slice().sort(function (item, item2) {
14941
- var value = item[col];
14942
- var value2 = item2[col];
14943
- var a = typeof value === 'number' ? value : String(value).toLowerCase();
14944
- var b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();
14945
- return a > b ? 1 * flip : b > a ? -1 * flip : 0;
14946
- });
14947
- return sorted;
14948
- }, [
14949
- JSON.stringify(filteredTable),
14950
- JSON.stringify(sorterState),
14951
- JSON.stringify(columnSorter),
14952
- JSON.stringify(filteredColumns),
14953
- JSON.stringify(_items),
14954
- ]);
14955
- var numberOfPages = _itemsPerPage ? Math.ceil(sortedItems.length / _itemsPerPage) : 1;
14956
- var firstItemOnActivePageIndex = _activePage ? (_activePage - 1) * _itemsPerPage : 0;
14957
- var itemsOnActivePage = sortedItems.slice(firstItemOnActivePageIndex, firstItemOnActivePageIndex + _itemsPerPage);
14958
- var currentItems = _activePage ? itemsOnActivePage : sortedItems;
14959
- var isFiltered = tableFilterState || (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) || Object.values(columnFilterState).join('');
14960
- // effects
14961
- useEffect(function () {
14962
- mountedRef.current && onActivePageChange && onActivePageChange(_activePage);
14963
- }, [_activePage]);
14964
- useEffect(function () {
14965
- mountedRef.current && onItemsPerPageChange && onItemsPerPageChange(_itemsPerPage);
14966
- itemsPerPage !== _itemsPerPage && setActivePage(1); // TODO: set proper page after _itemsPerPage update
14967
- }, [_itemsPerPage]);
14968
- useEffect(function () {
14969
- mountedRef.current && sorterState && onSorterChange && onSorterChange(sorterState);
14970
- }, [JSON.stringify(sorterState)]);
14971
- useEffect(function () {
14972
- mountedRef.current && onColumnFilterChange && onColumnFilterChange(columnFilterState);
14973
- }, [columnFilterState]);
14974
- useEffect(function () {
14975
- mountedRef.current && onTableFilterChange && onTableFilterChange(tableFilterState);
14976
- }, [tableFilterState]);
14977
- useEffect(function () {
14978
- mountedRef.current && onFilteredItemsChange && onFilteredItemsChange(sortedItems);
14979
- }, [JSON.stringify(sortedItems)]);
14980
- var handleRowChecked = function (id, value) {
14981
- var newArr = __spreadArray([], _items, true);
14982
- newArr[id]._selected = value;
14983
- setItems(newArr);
14984
- };
14985
- var handleSelectAllChecked = function () {
14986
- if (selectedAll === true) {
14987
- setItems(_items.map(function (item) {
14988
- return __assign$1(__assign$1({}, item), { _selected: false });
14989
- }));
14990
- return;
14991
- }
14992
- setItems(_items.map(function (item) {
14993
- return __assign$1(__assign$1({}, item), { _selected: true });
14994
- }));
14995
- };
14996
- useEffect(function () {
14997
- if (selectable) {
14998
- var selected = _items.filter(function (item) { return item._selected === true; });
14999
- onSelectedItemsChange && onSelectedItemsChange(selected);
15000
- if (selected.length === _items.length) {
15001
- setSelectedAll(true);
15002
- return;
15003
- }
15004
- if (selected.length === 0) {
15005
- setSelectedAll(false);
15006
- return;
15007
- }
15008
- if (selected.length !== 0 && selected.length !== _items.length) {
15009
- setSelectedAll('indeterminate');
15010
- }
15011
- }
15012
- }, [_items]);
15013
14372
  useEffect(function () {
15014
14373
  mountedRef.current = true;
15015
14374
  }, []);
15016
14375
  return (React__default$1.createElement(React__default$1.Fragment, null,
15017
14376
  React__default$1.createElement("div", __assign$1({}, rest, { ref: ref }), (itemsPerPageSelect || tableFilter || cleaner) && (React__default$1.createElement("div", { className: "row my-2 mx-0" }, (tableFilter || cleaner) && (React__default$1.createElement(React__default$1.Fragment, null,
15018
- React__default$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React__default$1.createElement(CSmartTableFilter, { filterLabel: tableFilterLabel, filterPlaceholder: tableFilterPlaceholder, onInput: function (e) {
15019
- tableFilterChange(e.target.value, 'input');
15020
- }, onChange: function (e) {
15021
- tableFilterChange(e.target.value, 'change');
15022
- }, value: tableFilterState || '' }))),
15023
- React__default$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React__default$1.createElement(CSmartTableCleaner, { isFiltered: isFiltered, onClick: function () { return clean(); }, onKeyUp: function (event) {
14377
+ React__default$1.createElement("div", { className: "col-auto p-0" }, tableFilter && (React__default$1.createElement("div", { className: "row mb-2" },
14378
+ React__default$1.createElement(CFormLabel, { className: "col-sm-auto col-form-label" }, tableFilterLabel),
14379
+ React__default$1.createElement("div", { className: "col-sm-auto" },
14380
+ React__default$1.createElement(CFormInput, { onInput: function (e) {
14381
+ handleTableFilterChange(e.target.value, 'input');
14382
+ }, onChange: function (e) {
14383
+ handleTableFilterChange(e.target.value, 'change');
14384
+ }, placeholder: tableFilterPlaceholder, value: tableFilterState || '' }))))),
14385
+ React__default$1.createElement("div", { className: "col-auto p-0" }, cleaner && (React__default$1.createElement(CSmartTableCleaner, { isFiltered: tableFilterState ||
14386
+ (sorterState === null || sorterState === void 0 ? void 0 : sorterState.column) ||
14387
+ Object.values(columnFilterState).join(''), onClick: function () { return handleClean(); }, onKeyUp: function (event) {
15024
14388
  if (event.key === 'Enter')
15025
- clean();
14389
+ handleClean();
15026
14390
  } })))))))),
15027
14391
  React__default$1.createElement("div", { className: "position-relative" },
15028
14392
  React__default$1.createElement(CTable, __assign$1({}, tableProps),
15029
- header && (React__default$1.createElement(CSmartTableHead, __assign$1({}, tableHeadProps, { columnFilter: columnFilter, columnFilterState: columnFilterState, columns: columns ? columns : rawColumnNames, columnSorter: columnSorter, items: _items, selectable: selectable, selectAll: selectedAll, sorterState: sorterState, sortingIcon: sortingIcon, sortingIconAscending: sortingIconAscending, sortingIconDescending: sortingIconDescending, handleFilterOnChange: function (key, event) { return columnFilterChange(key, event, 'change'); }, handleFilterOnInput: function (key, event) { return columnFilterChange(key, event, 'input'); }, handleOnCustomFilterChange: function (key, event) { return columnFilterChange(key, event); }, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, handleSort: function (key, index) { return sorterChange(key, index); } }))),
14393
+ header && (React__default$1.createElement(CSmartTableHead, __assign$1({}, tableHeadProps, { columnFilter: columnFilter, columnFilterState: columnFilterState, columns: columns ? columns : columnNames, columnSorter: columnSorter, items: _items, selectable: selectable, selectAll: selectAll, selectedAll: selectedAll, sorterState: sorterState, sortingIcon: sortingIcon, sortingIconAscending: sortingIconAscending, sortingIconDescending: sortingIconDescending, handleFilterOnChange: function (key, event) {
14394
+ return handleColumnFilterChange(key, event, 'change');
14395
+ }, handleFilterOnInput: function (key, event) { return handleColumnFilterChange(key, event, 'input'); }, handleOnCustomFilterChange: function (key, event) { return handleColumnFilterChange(key, event); }, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, handleSort: function (key, index) { return handleSorterChange(key, index); } }))),
15030
14396
  React__default$1.createElement(CSmartTableBody, __assign$1({ clickableRows: clickableRows, currentItems: currentItems, firstItemOnActivePageIndex: firstItemOnActivePageIndex, noItemsLabel: noItemsLabel, onRowClick: function (item, index, columnName, event) {
15031
14397
  return clickableRows && onRowClick && onRowClick(item, index, columnName, event);
15032
- }, onRowChecked: function (id, value) { return handleRowChecked(id, value); }, rawColumnNames: rawColumnNames, scopedColumns: scopedColumns, selectable: selectable }, tableBodyProps)),
15033
- footer && (React__default$1.createElement(CSmartTableHead, __assign$1({ component: CTableFoot }, tableFootProps, { columnFilter: false, columnSorter: false, columns: columns ? columns : rawColumnNames, items: _items, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, selectable: selectable, selectAll: selectedAll })))),
14398
+ }, onRowChecked: function (item, value) { return handleRowChecked(item, value); }, columnNames: columnNames, scopedColumns: scopedColumns, selectable: selectable, selected: _selected }, tableBodyProps)),
14399
+ typeof footer === 'boolean' && footer && (React__default$1.createElement(CSmartTableHead, __assign$1({ component: CTableFoot }, tableFootProps, { columnFilter: false, columnSorter: false, columns: columns ? columns : columnNames, items: _items, handleSelectAllChecked: function () { return handleSelectAllChecked(); }, selectable: selectable, selectAll: selectAll, selectedAll: selectedAll }))),
14400
+ Array.isArray(footer) && (React__default$1.createElement(CTableFoot, __assign$1({}, tableFootProps),
14401
+ React__default$1.createElement(CTableRow, null, footer.map(function (item, index) { return (React__default$1.createElement(CTableDataCell, __assign$1({}, (typeof item === 'object' && item._props && __assign$1({}, item._props)), { key: index }), typeof item === 'object' ? item.label : item)); }))))),
15034
14402
  loading && (React__default$1.createElement(CElementCover, { boundaries: [
15035
- { sides: ['top'], query: 'td' },
14403
+ { sides: ['top'], query: 'tbody' },
15036
14404
  { sides: ['bottom'], query: 'tbody' },
15037
- ] }))),
14405
+ ] }, elementCover))),
15038
14406
  (pagination || itemsPerPageSelect) && (React__default$1.createElement("div", { className: "row" },
15039
14407
  React__default$1.createElement("div", { className: "col" }, ((pagination && numberOfPages > 1) || paginationProps) && (React__default$1.createElement(CSmartPagination, __assign$1({ activePage: _activePage, onActivePageChange: function (page) {
15040
14408
  pagination && typeof pagination === 'object' && pagination.external
15041
14409
  ? onActivePageChange && onActivePageChange(page)
15042
14410
  : setActivePage(page);
15043
14411
  }, pages: numberOfPages }, paginationProps)))),
15044
- React__default$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React__default$1.createElement(CSmartTableItemsPerPageSelector, { itemsPerPage: _itemsPerPage, itemsPerPageLabel: itemsPerPageLabel, itemsPerPageOptions: itemsPerPageOptions, onChange: function (event) { return itemsPerPageChange(event); } })))))));
14412
+ React__default$1.createElement("div", { className: "col-auto ms-auto" }, itemsPerPageSelect && (React__default$1.createElement("div", { className: "row" },
14413
+ React__default$1.createElement(CFormLabel, { className: "col-auto col-form-label" }, itemsPerPageLabel),
14414
+ React__default$1.createElement("div", { className: "col-auto" },
14415
+ React__default$1.createElement(CFormSelect, { defaultValue: _itemsPerPage, onChange: function (event) {
14416
+ return handleItemsPerPageChange(event);
14417
+ } }, itemsPerPageOptions &&
14418
+ itemsPerPageOptions.map(function (number, index) {
14419
+ return (React__default$1.createElement("option", { value: number, key: index }, number));
14420
+ }))))))))));
15045
14421
  });
15046
14422
  CSmartTable.propTypes = {
15047
14423
  activePage: propTypesExports.number,
@@ -15051,9 +14427,11 @@ CSmartTable.propTypes = {
15051
14427
  columnFilterValue: propTypesExports.object,
15052
14428
  columns: propTypesExports.array,
15053
14429
  columnSorter: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
15054
- footer: propTypesExports.bool,
14430
+ elementCover: propTypesExports.node,
14431
+ footer: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.array]),
15055
14432
  header: propTypesExports.bool,
15056
14433
  items: propTypesExports.array,
14434
+ itemsNumber: propTypesExports.number,
15057
14435
  itemsPerPage: propTypesExports.number,
15058
14436
  itemsPerPageLabel: propTypesExports.string,
15059
14437
  itemsPerPageOptions: propTypesExports.array,
@@ -15065,6 +14443,7 @@ CSmartTable.propTypes = {
15065
14443
  onFilteredItemsChange: propTypesExports.func,
15066
14444
  onItemsPerPageChange: propTypesExports.func,
15067
14445
  onRowClick: propTypesExports.func,
14446
+ onSelectAll: propTypesExports.func,
15068
14447
  onSelectedItemsChange: propTypesExports.func,
15069
14448
  onSorterChange: propTypesExports.func,
15070
14449
  onTableFilterChange: propTypesExports.func,
@@ -15072,6 +14451,8 @@ CSmartTable.propTypes = {
15072
14451
  paginationProps: propTypesExports.any,
15073
14452
  scopedColumns: propTypesExports.object,
15074
14453
  selectable: propTypesExports.bool,
14454
+ selectAll: propTypesExports.oneOfType([propTypesExports.bool, propTypesExports.object]),
14455
+ selected: propTypesExports.array,
15075
14456
  sorterValue: propTypesExports.object,
15076
14457
  sortingIcon: propTypesExports.node,
15077
14458
  sortingIconAscending: propTypesExports.node,
@@ -15113,13 +14494,13 @@ var CSidebar = forwardRef(function (_a, ref) {
15113
14494
  useEffect(function () {
15114
14495
  var _a, _b;
15115
14496
  sidebarRef.current && setMobile(isOnMobile(sidebarRef.current));
15116
- sidebarRef.current && setInViewport(isVisible(sidebarRef.current));
14497
+ sidebarRef.current && setInViewport(isInViewport(sidebarRef.current));
15117
14498
  window.addEventListener('resize', function () { return handleResize(); });
15118
14499
  window.addEventListener('mouseup', handleClickOutside);
15119
14500
  window.addEventListener('keyup', handleKeyup);
15120
14501
  (_a = sidebarRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', handleOnClick);
15121
14502
  (_b = sidebarRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('transitionend', function () {
15122
- sidebarRef.current && setInViewport(isVisible(sidebarRef.current));
14503
+ sidebarRef.current && setInViewport(isInViewport(sidebarRef.current));
15123
14504
  });
15124
14505
  return function () {
15125
14506
  var _a, _b;
@@ -15128,7 +14509,7 @@ var CSidebar = forwardRef(function (_a, ref) {
15128
14509
  window.removeEventListener('keyup', handleKeyup);
15129
14510
  (_a = sidebarRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', handleOnClick);
15130
14511
  (_b = sidebarRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('transitionend', function () {
15131
- sidebarRef.current && setInViewport(isVisible(sidebarRef.current));
14512
+ sidebarRef.current && setInViewport(isInViewport(sidebarRef.current));
15132
14513
  });
15133
14514
  };
15134
14515
  });
@@ -15137,7 +14518,7 @@ var CSidebar = forwardRef(function (_a, ref) {
15137
14518
  };
15138
14519
  var handleResize = function () {
15139
14520
  sidebarRef.current && setMobile(isOnMobile(sidebarRef.current));
15140
- sidebarRef.current && setInViewport(isVisible(sidebarRef.current));
14521
+ sidebarRef.current && setInViewport(isInViewport(sidebarRef.current));
15141
14522
  };
15142
14523
  var handleKeyup = function (event) {
15143
14524
  if (mobile &&
@@ -15260,7 +14641,7 @@ var CTabPane = forwardRef(function (_a, ref) {
15260
14641
  var _className = classNames$1('tab-pane', 'fade', {
15261
14642
  active: visible,
15262
14643
  }, className);
15263
- return (React__default$1.createElement(Transition, { in: visible, nodeRef: tabPaneRef, onEnter: onShow, onExit: onHide, timeout: 150 }, function (state) {
14644
+ return (React__default$1.createElement(Transition$1, { in: visible, nodeRef: tabPaneRef, onEnter: onShow, onExit: onHide, timeout: 150 }, function (state) {
15264
14645
  var transitionClass = getTransitionClass(state);
15265
14646
  return (React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass) }, rest, { ref: forkedRef }), children));
15266
14647
  }));
@@ -15317,7 +14698,7 @@ var CToast = forwardRef(function (_a, ref) {
15317
14698
  ? 'showing'
15318
14699
  : 'fade';
15319
14700
  };
15320
- return (React__default$1.createElement(Transition, { in: _visible, nodeRef: toastRef, onEnter: function () { return onShow && onShow(index ? index : null); }, onExited: function () { return onClose && onClose(index ? index : null); }, timeout: 250, unmountOnExit: true }, function (state) {
14701
+ return (React__default$1.createElement(Transition$1, { in: _visible, nodeRef: toastRef, onEnter: function () { return onShow && onShow(index ? index : null); }, onExited: function () { return onClose && onClose(index ? index : null); }, timeout: 250, unmountOnExit: true }, function (state) {
15321
14702
  var transitionClass = getTransitionClass(state);
15322
14703
  return (React__default$1.createElement(CToastContext.Provider, { value: contextValues },
15323
14704
  React__default$1.createElement("div", __assign$1({ className: classNames$1(_className, transitionClass), "aria-live": "assertive", "aria-atomic": "true", role: "alert", onMouseEnter: function () { return clearTimeout(timeout.current); }, onMouseLeave: function () { return _autohide(); } }, rest, { key: key, ref: forkedRef }), children)));
@@ -15471,7 +14852,7 @@ var CTooltip = function (_a) {
15471
14852
  onMouseLeave: function () { return setVisible(false); },
15472
14853
  }))),
15473
14854
  typeof window !== 'undefined' &&
15474
- createPortal(React__default$1.createElement(Transition, { in: _visible, mountOnEnter: true, nodeRef: tooltipRef, onEnter: onShow, onExit: onHide, timeout: {
14855
+ createPortal(React__default$1.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: tooltipRef, onEnter: onShow, onExit: onHide, timeout: {
15475
14856
  enter: 0,
15476
14857
  exit: 200,
15477
14858
  }, unmountOnExit: true }, function (state) {
@@ -15624,5 +15005,5 @@ CWidgetStatsF.propTypes = {
15624
15005
  };
15625
15006
  CWidgetStatsF.displayName = 'CWidgetStatsF';
15626
15007
 
15627
- export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDatePicker, CDateRangePicker, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CFooter, CForm, CFormCheck, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTimePicker, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
15008
+ export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBackdrop, CBadge, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardGroup, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCol, CCollapse, CContainer, CDatePicker, CDateRangePicker, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CElementCover, CFooter, CForm, CFormCheck, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CImage, CInputGroup, CInputGroupText, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, CRow, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarHeader, CSidebarNav, CSidebarToggler, CSmartPagination, CSmartTable, CSpinner, CTabContent, CTabPane, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTimePicker, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, CVirtualScroller, CWidgetStatsA, CWidgetStatsB, CWidgetStatsC, CWidgetStatsD, CWidgetStatsE, CWidgetStatsF };
15628
15009
  //# sourceMappingURL=index.es.js.map