funda-ui 4.7.115 → 4.7.133

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 (51) hide show
  1. package/CascadingSelect/index.d.ts +1 -0
  2. package/CascadingSelect/index.js +7 -3
  3. package/CascadingSelectE2E/index.d.ts +1 -0
  4. package/CascadingSelectE2E/index.js +7 -3
  5. package/Date/index.js +25 -2
  6. package/EventCalendar/index.js +25 -2
  7. package/EventCalendarTimeline/index.js +25 -2
  8. package/README.md +9 -11
  9. package/Refresher/index.d.ts +22 -0
  10. package/Refresher/index.js +564 -0
  11. package/SplitterPanel/index.css +63 -0
  12. package/SplitterPanel/index.d.ts +20 -0
  13. package/SplitterPanel/index.js +800 -0
  14. package/Utils/date.d.ts +15 -5
  15. package/Utils/date.js +22 -2
  16. package/Utils/time.d.ts +34 -0
  17. package/Utils/time.js +162 -0
  18. package/Utils/useIsMobile.js +66 -2
  19. package/all.d.ts +2 -0
  20. package/all.js +2 -0
  21. package/lib/cjs/CascadingSelect/index.d.ts +1 -0
  22. package/lib/cjs/CascadingSelect/index.js +7 -3
  23. package/lib/cjs/CascadingSelectE2E/index.d.ts +1 -0
  24. package/lib/cjs/CascadingSelectE2E/index.js +7 -3
  25. package/lib/cjs/Date/index.js +25 -2
  26. package/lib/cjs/EventCalendar/index.js +25 -2
  27. package/lib/cjs/EventCalendarTimeline/index.js +25 -2
  28. package/lib/cjs/Refresher/index.d.ts +22 -0
  29. package/lib/cjs/Refresher/index.js +564 -0
  30. package/lib/cjs/SplitterPanel/index.d.ts +20 -0
  31. package/lib/cjs/SplitterPanel/index.js +800 -0
  32. package/lib/cjs/Utils/date.d.ts +15 -5
  33. package/lib/cjs/Utils/date.js +22 -2
  34. package/lib/cjs/Utils/time.d.ts +34 -0
  35. package/lib/cjs/Utils/time.js +162 -0
  36. package/lib/cjs/Utils/useIsMobile.js +66 -2
  37. package/lib/cjs/index.d.ts +2 -0
  38. package/lib/cjs/index.js +2 -0
  39. package/lib/css/SplitterPanel/index.css +63 -0
  40. package/lib/esm/CascadingSelect/Group.tsx +4 -2
  41. package/lib/esm/CascadingSelect/index.tsx +3 -0
  42. package/lib/esm/CascadingSelectE2E/Group.tsx +4 -2
  43. package/lib/esm/CascadingSelectE2E/index.tsx +3 -0
  44. package/lib/esm/Refresher/index.tsx +121 -0
  45. package/lib/esm/SplitterPanel/index.scss +82 -0
  46. package/lib/esm/SplitterPanel/index.tsx +174 -0
  47. package/lib/esm/Utils/hooks/useIsMobile.tsx +90 -4
  48. package/lib/esm/Utils/libs/date.ts +28 -8
  49. package/lib/esm/Utils/libs/time.ts +125 -0
  50. package/lib/esm/index.js +2 -0
  51. package/package.json +1 -1
package/Utils/date.d.ts CHANGED
@@ -95,6 +95,16 @@ declare function getYesterdayDate(v: Date | string): string;
95
95
  * @returns {String} yyyy-MM-dd
96
96
  */
97
97
  declare function getSpecifiedDate(v: Date | string, days: number): string;
98
+ /**
99
+ * Calculates the total number of days from today going back a specified number of months.
100
+ *
101
+ * @param {number} monthsAgo - The number of months to go back (e.g., 3 means the past 3 months).
102
+ * @returns {number} The total number of days between the calculated past date and today.
103
+ *
104
+ * @example
105
+ * getDaysInLastMonths(3); // Returns number of days in the past 3 months
106
+ */
107
+ declare function getDaysInLastMonths(monthsAgo?: number): number;
98
108
  /**
99
109
  * Get next month date
100
110
  * @param {Date | String} v
@@ -134,15 +144,15 @@ declare function getCurrentYear(): number;
134
144
  /**
135
145
  * Get current month
136
146
  * @param {Boolean} padZeroEnabled
137
- * @returns {Number}
147
+ * @returns {Number|String}
138
148
  */
139
- declare function getCurrentMonth(padZeroEnabled?: boolean): number;
149
+ declare function getCurrentMonth(padZeroEnabled?: boolean): string | number;
140
150
  /**
141
151
  * Get current day
142
152
  * @param {Boolean} padZeroEnabled
143
- * @returns {Number}
153
+ * @returns {Number|String}
144
154
  */
145
- declare function getCurrentDay(padZeroEnabled?: boolean): number;
155
+ declare function getCurrentDay(padZeroEnabled?: boolean): string | number;
146
156
  /**
147
157
  * Get first and last month day
148
158
  * @param {Number} v
@@ -214,4 +224,4 @@ declare function getWeekDatesFromSun(weekOffset: number): Date[];
214
224
  * @returns {Array<Date>}
215
225
  */
216
226
  declare function getWeekDatesFromMon(weekOffset: number): Date[];
217
- export { isTimeString, getNow, padZero, dateFormat, getDateDetails, isValidDate, isValidHours, isValidMinutesAndSeconds, isValidYear, isValidMonth, isValidDay, getLastDayInMonth, getFirstAndLastMonthDay, getCalendarDate, getFullTime, getTodayDate, getCurrentMonth, getCurrentYear, getCurrentDay, getCurrentDate, getTomorrowDate, getYesterdayDate, getNextMonthDate, getPrevMonthDate, getNextYearDate, getPrevYearDate, getSpecifiedDate, setDateHours, setDateMinutes, setDateDays, timestampToDate, getMonthDates, getWeekDatesFromSun, getWeekDatesFromMon };
227
+ export { isTimeString, getNow, padZero, dateFormat, getDateDetails, isValidDate, isValidHours, isValidMinutesAndSeconds, isValidYear, isValidMonth, isValidDay, getLastDayInMonth, getFirstAndLastMonthDay, getCalendarDate, getFullTime, getTodayDate, getCurrentMonth, getCurrentYear, getCurrentDay, getCurrentDate, getTomorrowDate, getYesterdayDate, getNextMonthDate, getPrevMonthDate, getNextYearDate, getPrevYearDate, getSpecifiedDate, getDaysInLastMonths, setDateHours, setDateMinutes, setDateDays, timestampToDate, getMonthDates, getWeekDatesFromSun, getWeekDatesFromMon };
package/Utils/date.js CHANGED
@@ -53,6 +53,7 @@ __webpack_require__.r(__webpack_exports__);
53
53
  /* harmony export */ "getCurrentMonth": () => (/* binding */ getCurrentMonth),
54
54
  /* harmony export */ "getCurrentYear": () => (/* binding */ getCurrentYear),
55
55
  /* harmony export */ "getDateDetails": () => (/* binding */ getDateDetails),
56
+ /* harmony export */ "getDaysInLastMonths": () => (/* binding */ getDaysInLastMonths),
56
57
  /* harmony export */ "getFirstAndLastMonthDay": () => (/* binding */ getFirstAndLastMonthDay),
57
58
  /* harmony export */ "getFullTime": () => (/* binding */ getFullTime),
58
59
  /* harmony export */ "getLastDayInMonth": () => (/* binding */ getLastDayInMonth),
@@ -271,6 +272,25 @@ function getSpecifiedDate(v, days) {
271
272
  return specifiedDay;
272
273
  }
273
274
 
275
+ /**
276
+ * Calculates the total number of days from today going back a specified number of months.
277
+ *
278
+ * @param {number} monthsAgo - The number of months to go back (e.g., 3 means the past 3 months).
279
+ * @returns {number} The total number of days between the calculated past date and today.
280
+ *
281
+ * @example
282
+ * getDaysInLastMonths(3); // Returns number of days in the past 3 months
283
+ */
284
+ function getDaysInLastMonths() {
285
+ var monthsAgo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;
286
+ var today = new Date();
287
+ var pastDate = new Date();
288
+ pastDate.setMonth(today.getMonth() - monthsAgo);
289
+ var diffInMs = today.getTime() - pastDate.getTime();
290
+ var diffInDays = Math.round(diffInMs / (1000 * 60 * 60 * 24));
291
+ return diffInDays;
292
+ }
293
+
274
294
  /**
275
295
  * Get next month date
276
296
  * @param {Date | String} v
@@ -351,7 +371,7 @@ function getCurrentYear() {
351
371
  /**
352
372
  * Get current month
353
373
  * @param {Boolean} padZeroEnabled
354
- * @returns {Number}
374
+ * @returns {Number|String}
355
375
  */
356
376
  function getCurrentMonth() {
357
377
  var padZeroEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -362,7 +382,7 @@ function getCurrentMonth() {
362
382
  /**
363
383
  * Get current day
364
384
  * @param {Boolean} padZeroEnabled
365
- * @returns {Number}
385
+ * @returns {Number|String}
366
386
  */
367
387
  function getCurrentDay() {
368
388
  var padZeroEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Get timeslots from starting and ending time
3
+ * @param {string} startTime - start time in format "HH:mm"
4
+ * @param {string} endTime - end time in format "HH:mm"
5
+ * @param {number} timeInterval - time interval in minutes
6
+ * @param {boolean} formatRange - if true returns ranges like "10:00 - 11:00", if false returns single times like "10:00"
7
+ * @returns {string[]} Array of time slots
8
+ * @example
9
+
10
+ console.log(getTimeslots("10:00", "14:00", 60, true)); //['10:00 - 11:00', '11:00 - 12:00', '12:00 - 13:00', '13:00 - 14:00']
11
+ console.log(getTimeslots("10:00", "14:00", 60)); // ['10:00', '11:00', '12:00', '13:00']
12
+ */
13
+ declare function getTimeslots(startTime: string, endTime: string, timeInterval: number, formatRange?: boolean): string[];
14
+ /**
15
+ * Get minutes between two dates
16
+ * @param {Date} startDate - start date
17
+ * @param {Date} endDate - ebd date
18
+ * @returns Number
19
+ */
20
+ declare function getMinutesBetweenDates(startDate: any, endDate: any): number;
21
+ /**
22
+ * Get minutes between two time
23
+ * @param {String} startTime - start time
24
+ * @param {String} endTime - ebd time
25
+ * @returns Number
26
+ */
27
+ declare function getMinutesBetweenTime(startTime: any, endTime: any): string;
28
+ /**
29
+ * Convert HH:MM:SS into minute
30
+ * @param {String} timeStr - time string
31
+ * @returns Number
32
+ */
33
+ declare function convertTimeToMin(timeStr: any): number;
34
+ export { getTimeslots, getMinutesBetweenDates, getMinutesBetweenTime, convertTimeToMin };
package/Utils/time.js ADDED
@@ -0,0 +1,162 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["RPB"] = factory();
8
+ else
9
+ root["RPB"] = factory();
10
+ })(this, () => {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ // The require scope
14
+ /******/ var __webpack_require__ = {};
15
+ /******/
16
+ /************************************************************************/
17
+ /******/ /* webpack/runtime/define property getters */
18
+ /******/ (() => {
19
+ /******/ // define getter functions for harmony exports
20
+ /******/ __webpack_require__.d = (exports, definition) => {
21
+ /******/ for(var key in definition) {
22
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
23
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
24
+ /******/ }
25
+ /******/ }
26
+ /******/ };
27
+ /******/ })();
28
+ /******/
29
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
30
+ /******/ (() => {
31
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
32
+ /******/ })();
33
+ /******/
34
+ /******/ /* webpack/runtime/make namespace object */
35
+ /******/ (() => {
36
+ /******/ // define __esModule on exports
37
+ /******/ __webpack_require__.r = (exports) => {
38
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
39
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
40
+ /******/ }
41
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
42
+ /******/ };
43
+ /******/ })();
44
+ /******/
45
+ /************************************************************************/
46
+ var __webpack_exports__ = {};
47
+ __webpack_require__.r(__webpack_exports__);
48
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
49
+ /* harmony export */ "convertTimeToMin": () => (/* binding */ convertTimeToMin),
50
+ /* harmony export */ "getMinutesBetweenDates": () => (/* binding */ getMinutesBetweenDates),
51
+ /* harmony export */ "getMinutesBetweenTime": () => (/* binding */ getMinutesBetweenTime),
52
+ /* harmony export */ "getTimeslots": () => (/* binding */ getTimeslots)
53
+ /* harmony export */ });
54
+ /**
55
+ * Get timeslots from starting and ending time
56
+ * @param {string} startTime - start time in format "HH:mm"
57
+ * @param {string} endTime - end time in format "HH:mm"
58
+ * @param {number} timeInterval - time interval in minutes
59
+ * @param {boolean} formatRange - if true returns ranges like "10:00 - 11:00", if false returns single times like "10:00"
60
+ * @returns {string[]} Array of time slots
61
+ * @example
62
+
63
+ console.log(getTimeslots("10:00", "14:00", 60, true)); //['10:00 - 11:00', '11:00 - 12:00', '12:00 - 13:00', '13:00 - 14:00']
64
+ console.log(getTimeslots("10:00", "14:00", 60)); // ['10:00', '11:00', '12:00', '13:00']
65
+ */
66
+
67
+ function getTimeslots(startTime, endTime, timeInterval) {
68
+ var formatRange = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
69
+ var parseTime = function parseTime(s) {
70
+ var c = s.split(':');
71
+ return parseInt(c[0]) * 60 + parseInt(c[1]);
72
+ };
73
+ var convertHours = function convertHours(mins) {
74
+ var hour = Math.floor(mins / 60);
75
+ mins = Math.trunc(mins % 60);
76
+ var converted = pad(hour, 2) + ':' + pad(mins, 2);
77
+ return converted;
78
+ };
79
+ var pad = function pad(str, max) {
80
+ str = str.toString();
81
+ return str.length < max ? pad("0" + str, max) : str;
82
+ };
83
+
84
+ // calculate time slot
85
+ var calculateTimeSlot = function calculateTimeSlot(_startTime, _endTime, _timeInterval) {
86
+ var timeSlots = [];
87
+ // Round start and end times to next 30 min interval
88
+ _startTime = Math.ceil(_startTime / 30) * 30;
89
+ _endTime = Math.ceil(_endTime / 30) * 30;
90
+
91
+ // Start and end of interval in the loop
92
+ var currentTime = _startTime;
93
+ while (currentTime < _endTime) {
94
+ if (formatRange) {
95
+ var t = convertHours(currentTime) + ' - ' + convertHours(currentTime + _timeInterval);
96
+ timeSlots.push(t);
97
+ } else {
98
+ timeSlots.push(convertHours(currentTime));
99
+ }
100
+ currentTime += _timeInterval;
101
+ }
102
+ return timeSlots;
103
+ };
104
+ var inputEndTime = parseTime(endTime);
105
+ var inputStartTime = parseTime(startTime);
106
+ var timeSegment = calculateTimeSlot(inputStartTime, inputEndTime, timeInterval);
107
+ return timeSegment;
108
+ }
109
+
110
+ /**
111
+ * Get minutes between two dates
112
+ * @param {Date} startDate - start date
113
+ * @param {Date} endDate - ebd date
114
+ * @returns Number
115
+ */
116
+ function getMinutesBetweenDates(startDate, endDate) {
117
+ var diff = endDate.getTime() - startDate.getTime();
118
+ return diff / 60000;
119
+ }
120
+
121
+ /**
122
+ * Get minutes between two time
123
+ * @param {String} startTime - start time
124
+ * @param {String} endTime - ebd time
125
+ * @returns Number
126
+ */
127
+ function getMinutesBetweenTime(startTime, endTime) {
128
+ var pad = function pad(num) {
129
+ return ("0" + num).slice(-2);
130
+ };
131
+ var s = startTime.split(":"),
132
+ sMin = +s[1] + s[0] * 60,
133
+ e = endTime.split(":"),
134
+ eMin = +e[1] + e[0] * 60,
135
+ diff = eMin - sMin;
136
+ if (diff < 0) {
137
+ sMin -= 12 * 60;
138
+ diff = eMin - sMin;
139
+ }
140
+ var h = Math.floor(diff / 60),
141
+ m = diff % 60;
142
+ return "" + pad(h) + ":" + pad(m);
143
+ }
144
+
145
+ /**
146
+ * Convert HH:MM:SS into minute
147
+ * @param {String} timeStr - time string
148
+ * @returns Number
149
+ */
150
+ function convertTimeToMin(timeStr) {
151
+ var _time = timeStr.split(':').length === 3 ? "".concat(timeStr) : "".concat(timeStr, ":00");
152
+ var res = _time.split(':'); // split it at the colons
153
+
154
+ // Hours are worth 60 minutes.
155
+ var minutes = +res[0] * 60 + +res[1];
156
+ return minutes;
157
+ }
158
+
159
+ /******/ return __webpack_exports__;
160
+ /******/ })()
161
+ ;
162
+ });
@@ -127,7 +127,7 @@ const App = () => {
127
127
  */
128
128
 
129
129
  var useIsMobile = function useIsMobile() {
130
- var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 768;
130
+ var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 600;
131
131
  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
132
132
  _useState2 = _slicedToArray(_useState, 2),
133
133
  isMobile = _useState2[0],
@@ -141,7 +141,71 @@ var useIsMobile = function useIsMobile() {
141
141
  setIsMounted(true);
142
142
  var handleResize = function handleResize() {
143
143
  if (window) {
144
- setIsMobile(window.innerWidth <= breakpoint);
144
+ var detectDeviceType = function detectDeviceType() {
145
+ // 1. First check if window and navigator are available (SSR compatibility)
146
+ if (typeof window === 'undefined' || !navigator) {
147
+ return 'desktop'; // Default to desktop
148
+ }
149
+
150
+ // 2. Get user agent string
151
+ var ua = navigator.userAgent.toLowerCase();
152
+
153
+ // 3. Get platform info
154
+ var platform = navigator.platform.toLowerCase();
155
+
156
+ // 4. Check screen characteristics using window.matchMedia
157
+ var isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
158
+ var isPortrait = window.matchMedia('(orientation: portrait)').matches;
159
+ var isLandscape = window.matchMedia('(orientation: landscape)').matches;
160
+
161
+ // 5. Get screen dimensions
162
+ var screenWidth = window.screen.width;
163
+ var screenHeight = window.screen.height;
164
+ var minScreenSize = Math.min(screenWidth, screenHeight);
165
+ var maxScreenSize = Math.max(screenWidth, screenHeight);
166
+
167
+ // Define device characteristics
168
+ var isTablet =
169
+ // Traditional UA detection
170
+ /ipad/.test(ua) || /android/.test(ua) && !/mobile/.test(ua) || /tablet/.test(ua) || /playbook/.test(ua) || /nexus (7|9|10)/.test(ua) || /sm-t/.test(ua) || /huawei(.*)mediapad/.test(ua) ||
171
+ // Special detection for iPad Pro and newer iPads
172
+ navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 ||
173
+ // Screen size characteristics (tablets typically fall within this range)
174
+ minScreenSize >= breakpoint && maxScreenSize <= 1366 && isTouch ||
175
+ // Specific device detection
176
+ /kindle|silk|kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi/i.test(ua);
177
+ var isMobile = !isTablet && (
178
+ // Prevent tablets from being detected as phones
179
+ // Traditional mobile device detection
180
+ /iphone|ipod|android.*mobile|windows phone|mobi/.test(ua) ||
181
+ // Screen size characteristics (phones typically smaller than 600px)
182
+ minScreenSize < breakpoint && isTouch ||
183
+ // Additional mobile device detection
184
+ /blackberry|\bbb\d+|meego|webos|palm|phone|pocket|mobile|mini|iemobile/i.test(ua));
185
+
186
+ // 6. Comprehensive decision logic
187
+ if (isMobile) {
188
+ // Additional check for small tablets
189
+ if (maxScreenSize >= 1024 && isTouch) {
190
+ return 'tablet';
191
+ }
192
+ return 'mobile';
193
+ }
194
+ if (isTablet) {
195
+ // Additional check for touch-enabled laptops
196
+ if (maxScreenSize > 1366 && /windows/.test(ua)) {
197
+ return 'desktop';
198
+ }
199
+ return 'tablet';
200
+ }
201
+
202
+ // 7. Check for touch-enabled laptops
203
+ if (isTouch && /windows/.test(ua) && maxScreenSize > 1366) {
204
+ return 'desktop';
205
+ }
206
+ return 'desktop';
207
+ };
208
+ setIsMobile(detectDeviceType() === 'mobile');
145
209
  }
146
210
  };
147
211
 
package/all.d.ts CHANGED
@@ -29,12 +29,14 @@ export const NumberInput: any;
29
29
  export const Pagination: any;
30
30
  export const Radio: any;
31
31
  export const RangeSlider: any;
32
+ export const Refresher: any;
32
33
  export const RootPortal: any;
33
34
  export const ScrollReveal: any;
34
35
  export const Scrollbar: any;
35
36
  export const SearchBar: any;
36
37
  export const Select: any;
37
38
  export const ShowMoreLess: any;
39
+ export const SplitterPanel: any;
38
40
  export const Stepper: any;
39
41
  export const Switch: any;
40
42
  export const Table: any;
package/all.js CHANGED
@@ -31,12 +31,14 @@ exports.NumberInput = _interopRequireDefault(require("./NumberInput")).default;
31
31
  exports.Pagination = _interopRequireDefault(require("./Pagination")).default;
32
32
  exports.Radio = _interopRequireDefault(require("./Radio")).default;
33
33
  exports.RangeSlider = _interopRequireDefault(require("./RangeSlider")).default;
34
+ exports.Refresher = _interopRequireDefault(require("./Refresher")).default;
34
35
  exports.RootPortal = _interopRequireDefault(require("./RootPortal")).default;
35
36
  exports.ScrollReveal = _interopRequireDefault(require("./ScrollReveal")).default;
36
37
  exports.Scrollbar = _interopRequireDefault(require("./Scrollbar")).default;
37
38
  exports.SearchBar = _interopRequireDefault(require("./SearchBar")).default;
38
39
  exports.Select = _interopRequireDefault(require("./Select")).default;
39
40
  exports.ShowMoreLess = _interopRequireDefault(require("./ShowMoreLess")).default;
41
+ exports.SplitterPanel = _interopRequireDefault(require("./SplitterPanel")).default;
40
42
  exports.Stepper = _interopRequireDefault(require("./Stepper")).default;
41
43
  exports.Switch = _interopRequireDefault(require("./Switch")).default;
42
44
  exports.Table = _interopRequireDefault(require("./Table")).default;
@@ -5,6 +5,7 @@ export declare type CascadingSelectProps = {
5
5
  wrapperClassName?: string;
6
6
  controlClassName?: string;
7
7
  controlExClassName?: string;
8
+ perColumnHeadersShow?: boolean;
8
9
  exceededSidePosOffset?: number;
9
10
  value?: string;
10
11
  label?: React.ReactNode | string;
@@ -1857,7 +1857,8 @@ var cls = __webpack_require__(188);
1857
1857
 
1858
1858
 
1859
1859
  function Group(props) {
1860
- var level = props.level,
1860
+ var perColumnHeadersShow = props.perColumnHeadersShow,
1861
+ level = props.level,
1861
1862
  columnTitle = props.columnTitle,
1862
1863
  data = props.data,
1863
1864
  cleanNodeBtnClassName = props.cleanNodeBtnClassName,
@@ -1884,7 +1885,7 @@ function Group(props) {
1884
1885
  }
1885
1886
  });
1886
1887
  } else {
1887
- return columnTitle[level] === '' ? null : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
1888
+ return columnTitle[level] === '' || perColumnHeadersShow === false ? null : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
1888
1889
  key: index,
1889
1890
  className: "cas-select__opt-header"
1890
1891
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
@@ -1919,7 +1920,7 @@ function Group(props) {
1919
1920
  }));
1920
1921
  }
1921
1922
  ;// CONCATENATED MODULE: ./src/index.tsx
1922
- var _excluded = ["popupRef", "wrapperClassName", "controlClassName", "controlExClassName", "exceededSidePosOffset", "disabled", "required", "value", "label", "placeholder", "name", "id", "extractValueByBraces", "columnTitle", "depth", "loader", "displayResult", "displayResultArrow", "controlArrow", "valueType", "showCloseBtn", "style", "tabIndex", "triggerClassName", "triggerContent", "cleanNodeBtnClassName", "cleanNodeBtnContent", "fetchFuncAsync", "fetchFuncMethod", "fetchFuncMethodParams", "fetchCallback", "onFetch", "onChange", "onBlur", "onFocus"];
1923
+ var _excluded = ["popupRef", "wrapperClassName", "controlClassName", "controlExClassName", "perColumnHeadersShow", "exceededSidePosOffset", "disabled", "required", "value", "label", "placeholder", "name", "id", "extractValueByBraces", "columnTitle", "depth", "loader", "displayResult", "displayResultArrow", "controlArrow", "valueType", "showCloseBtn", "style", "tabIndex", "triggerClassName", "triggerContent", "cleanNodeBtnClassName", "cleanNodeBtnContent", "fetchFuncAsync", "fetchFuncMethod", "fetchFuncMethodParams", "fetchCallback", "onFetch", "onChange", "onBlur", "onFocus"];
1923
1924
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
1924
1925
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
1925
1926
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -1952,6 +1953,8 @@ var CascadingSelect = function CascadingSelect(props) {
1952
1953
  wrapperClassName = props.wrapperClassName,
1953
1954
  controlClassName = props.controlClassName,
1954
1955
  controlExClassName = props.controlExClassName,
1956
+ _props$perColumnHeade = props.perColumnHeadersShow,
1957
+ perColumnHeadersShow = _props$perColumnHeade === void 0 ? true : _props$perColumnHeade,
1955
1958
  exceededSidePosOffset = props.exceededSidePosOffset,
1956
1959
  disabled = props.disabled,
1957
1960
  required = props.required,
@@ -2872,6 +2875,7 @@ var CascadingSelect = function CascadingSelect(props) {
2872
2875
  "data-col": level,
2873
2876
  className: "cas-select__items-col"
2874
2877
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Group, {
2878
+ perColumnHeadersShow: perColumnHeadersShow,
2875
2879
  level: level,
2876
2880
  columnTitle: columnTitleData,
2877
2881
  data: item,
@@ -14,6 +14,7 @@ export declare type CascadingSelectE2EProps = {
14
14
  wrapperClassName?: string;
15
15
  controlClassName?: string;
16
16
  controlExClassName?: string;
17
+ perColumnHeadersShow?: boolean;
17
18
  exceededSidePosOffset?: number;
18
19
  value?: string;
19
20
  label?: React.ReactNode | string;
@@ -2213,7 +2213,8 @@ var cls = __webpack_require__(188);
2213
2213
 
2214
2214
 
2215
2215
  function Group(props) {
2216
- var level = props.level,
2216
+ var perColumnHeadersShow = props.perColumnHeadersShow,
2217
+ level = props.level,
2217
2218
  columnTitle = props.columnTitle,
2218
2219
  data = props.data,
2219
2220
  cleanNodeBtnClassName = props.cleanNodeBtnClassName,
@@ -2241,7 +2242,7 @@ function Group(props) {
2241
2242
  }
2242
2243
  });
2243
2244
  } else {
2244
- return columnTitle[level] === '' ? null : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
2245
+ return columnTitle[level] === '' || perColumnHeadersShow === false ? null : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
2245
2246
  key: index,
2246
2247
  className: "cas-select-e2e__opt-header"
2247
2248
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
@@ -2277,7 +2278,7 @@ function Group(props) {
2277
2278
  }));
2278
2279
  }
2279
2280
  ;// CONCATENATED MODULE: ./src/index.tsx
2280
- var _excluded = ["popupRef", "wrapperClassName", "controlClassName", "controlExClassName", "exceededSidePosOffset", "disabled", "required", "value", "label", "placeholder", "name", "id", "extractValueByBraces", "destroyParentIdMatch", "columnTitle", "depth", "loader", "displayResult", "displayResultArrow", "controlArrow", "valueType", "showCloseBtn", "style", "tabIndex", "triggerClassName", "triggerContent", "cleanNodeBtnClassName", "cleanNodeBtnContent", "fetchArray", "onFetch", "onChange", "onBlur", "onFocus"];
2281
+ var _excluded = ["popupRef", "wrapperClassName", "controlClassName", "controlExClassName", "perColumnHeadersShow", "exceededSidePosOffset", "disabled", "required", "value", "label", "placeholder", "name", "id", "extractValueByBraces", "destroyParentIdMatch", "columnTitle", "depth", "loader", "displayResult", "displayResultArrow", "controlArrow", "valueType", "showCloseBtn", "style", "tabIndex", "triggerClassName", "triggerContent", "cleanNodeBtnClassName", "cleanNodeBtnContent", "fetchArray", "onFetch", "onChange", "onBlur", "onFocus"];
2281
2282
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
2282
2283
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2283
2284
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -2311,6 +2312,8 @@ var CascadingSelectE2E = function CascadingSelectE2E(props) {
2311
2312
  wrapperClassName = props.wrapperClassName,
2312
2313
  controlClassName = props.controlClassName,
2313
2314
  controlExClassName = props.controlExClassName,
2315
+ _props$perColumnHeade = props.perColumnHeadersShow,
2316
+ perColumnHeadersShow = _props$perColumnHeade === void 0 ? true : _props$perColumnHeade,
2314
2317
  exceededSidePosOffset = props.exceededSidePosOffset,
2315
2318
  disabled = props.disabled,
2316
2319
  required = props.required,
@@ -3459,6 +3462,7 @@ var CascadingSelectE2E = function CascadingSelectE2E(props) {
3459
3462
  "data-col": level,
3460
3463
  className: "cas-select-e2e__items-col"
3461
3464
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Group, {
3465
+ perColumnHeadersShow: perColumnHeadersShow,
3462
3466
  level: level,
3463
3467
  columnTitle: columnTitleData,
3464
3468
  data: item,
@@ -2530,6 +2530,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
2530
2530
  return (/* binding */_getDateDetails
2531
2531
  );
2532
2532
  },
2533
+ /* harmony export */"getDaysInLastMonths": function getDaysInLastMonths() {
2534
+ return (/* binding */_getDaysInLastMonths
2535
+ );
2536
+ },
2533
2537
  /* harmony export */"getFirstAndLastMonthDay": function getFirstAndLastMonthDay() {
2534
2538
  return (/* binding */_getFirstAndLastMonthDay
2535
2539
  );
@@ -2830,6 +2834,25 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
2830
2834
  return specifiedDay;
2831
2835
  }
2832
2836
 
2837
+ /**
2838
+ * Calculates the total number of days from today going back a specified number of months.
2839
+ *
2840
+ * @param {number} monthsAgo - The number of months to go back (e.g., 3 means the past 3 months).
2841
+ * @returns {number} The total number of days between the calculated past date and today.
2842
+ *
2843
+ * @example
2844
+ * getDaysInLastMonths(3); // Returns number of days in the past 3 months
2845
+ */
2846
+ function _getDaysInLastMonths() {
2847
+ var monthsAgo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;
2848
+ var today = new Date();
2849
+ var pastDate = new Date();
2850
+ pastDate.setMonth(today.getMonth() - monthsAgo);
2851
+ var diffInMs = today.getTime() - pastDate.getTime();
2852
+ var diffInDays = Math.round(diffInMs / (1000 * 60 * 60 * 24));
2853
+ return diffInDays;
2854
+ }
2855
+
2833
2856
  /**
2834
2857
  * Get next month date
2835
2858
  * @param {Date | String} v
@@ -2910,7 +2933,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
2910
2933
  /**
2911
2934
  * Get current month
2912
2935
  * @param {Boolean} padZeroEnabled
2913
- * @returns {Number}
2936
+ * @returns {Number|String}
2914
2937
  */
2915
2938
  function _getCurrentMonth() {
2916
2939
  var padZeroEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -2921,7 +2944,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
2921
2944
  /**
2922
2945
  * Get current day
2923
2946
  * @param {Boolean} padZeroEnabled
2924
- * @returns {Number}
2947
+ * @returns {Number|String}
2925
2948
  */
2926
2949
  function _getCurrentDay() {
2927
2950
  var padZeroEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;