@expcat/tigercat-vue 2.0.4 → 2.1.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 (114) hide show
  1. package/README.md +20 -10
  2. package/dist/chunk-26QCTL2E.mjs +180 -0
  3. package/dist/{chunk-GS4SV2HK.mjs → chunk-32X54QKW.mjs} +1 -1
  4. package/dist/chunk-3ONCXHE5.mjs +184 -0
  5. package/dist/{chunk-KOG3HKOF.mjs → chunk-6AMWX5K4.mjs} +1 -4
  6. package/dist/chunk-6GR3XC5V.mjs +281 -0
  7. package/dist/chunk-6GR5U4UB.mjs +225 -0
  8. package/dist/chunk-7DWWNFRP.mjs +302 -0
  9. package/dist/chunk-AECXFT7D.mjs +121 -0
  10. package/dist/chunk-AOLRZG4E.mjs +347 -0
  11. package/dist/chunk-AY7CGLMO.mjs +368 -0
  12. package/dist/chunk-BBNCP55O.mjs +156 -0
  13. package/dist/chunk-F3ZVVVYD.mjs +257 -0
  14. package/dist/{chunk-OTGGPXDT.mjs → chunk-IEAEB4TX.mjs} +255 -44
  15. package/dist/chunk-P6FMU4AT.mjs +54 -0
  16. package/dist/chunk-PFIV5MXD.mjs +48 -0
  17. package/dist/chunk-TBOXTAIA.mjs +94 -0
  18. package/dist/{chunk-H6FZBFRT.mjs → chunk-TPESRDUG.mjs} +6 -1
  19. package/dist/{chunk-2XCXK3NQ.mjs → chunk-U4B5QT72.mjs} +1 -1
  20. package/dist/chunk-UUWPSRNV.mjs +337 -0
  21. package/dist/chunk-UXJRH72H.mjs +834 -0
  22. package/dist/chunk-VFS5XAZ3.mjs +602 -0
  23. package/dist/{chunk-WC5MKASU.mjs → chunk-VN2TWPRC.mjs} +169 -55
  24. package/dist/components/ActivityFeed.d.mts +1 -1
  25. package/dist/components/ActivityFeed.mjs +1 -1
  26. package/dist/components/Alert.d.mts +2 -2
  27. package/dist/components/AreaChart.mjs +2 -2
  28. package/dist/components/AspectRatio.d.mts +44 -0
  29. package/dist/components/AspectRatio.mjs +8 -0
  30. package/dist/components/BarChart.mjs +2 -2
  31. package/dist/components/Carousel.d.mts +1 -1
  32. package/dist/components/Cascader.d.mts +34 -0
  33. package/dist/components/Cascader.mjs +1 -1
  34. package/dist/components/ChartLegend.d.mts +1 -1
  35. package/dist/components/ChatWindow.mjs +1 -1
  36. package/dist/components/CodeEditor.mjs +1 -1
  37. package/dist/components/ColorSwatch.d.mts +1 -1
  38. package/dist/components/ContextMenu.d.mts +234 -0
  39. package/dist/components/ContextMenu.mjs +17 -0
  40. package/dist/components/DataTableWithToolbar.d.mts +1 -1
  41. package/dist/components/DataTableWithToolbar.mjs +2 -2
  42. package/dist/components/DonutChart.mjs +3 -3
  43. package/dist/components/Dropdown.d.mts +1 -1
  44. package/dist/components/FloatButton.d.mts +2 -2
  45. package/dist/components/FunnelChart.d.mts +1 -1
  46. package/dist/components/FunnelChart.mjs +2 -2
  47. package/dist/components/Highlight.d.mts +146 -0
  48. package/dist/components/Highlight.mjs +8 -0
  49. package/dist/components/ImageCompare.d.mts +284 -0
  50. package/dist/components/ImageCompare.mjs +8 -0
  51. package/dist/components/Input.d.mts +1 -1
  52. package/dist/components/InputOTP.d.mts +261 -0
  53. package/dist/components/InputOTP.mjs +11 -0
  54. package/dist/components/Kbd.d.mts +118 -0
  55. package/dist/components/Kbd.mjs +8 -0
  56. package/dist/components/LineChart.mjs +2 -2
  57. package/dist/components/List.d.mts +1 -1
  58. package/dist/components/List.mjs +1 -1
  59. package/dist/components/LoadingBar.d.mts +8 -0
  60. package/dist/components/LoadingBar.mjs +114 -0
  61. package/dist/components/LoadingBarContainer.d.mts +78 -0
  62. package/dist/components/LoadingBarContainer.mjs +8 -0
  63. package/dist/components/LoadingBarRoot.d.mts +6 -0
  64. package/dist/components/LoadingBarRoot.mjs +6 -0
  65. package/dist/components/Marquee.d.mts +158 -0
  66. package/dist/components/Marquee.mjs +8 -0
  67. package/dist/components/MaskInput.d.mts +201 -0
  68. package/dist/components/MaskInput.mjs +11 -0
  69. package/dist/components/Masonry.d.mts +66 -0
  70. package/dist/components/Masonry.mjs +8 -0
  71. package/dist/components/Menu.d.mts +2 -2
  72. package/dist/components/Modal.d.mts +1 -1
  73. package/dist/components/NavigationMenu.d.mts +411 -0
  74. package/dist/components/NavigationMenu.mjs +25 -0
  75. package/dist/components/NotificationCenter.d.mts +1 -1
  76. package/dist/components/NotificationCenter.mjs +2 -2
  77. package/dist/components/PageHeader.d.mts +140 -0
  78. package/dist/components/PageHeader.mjs +11 -0
  79. package/dist/components/PieChart.mjs +2 -2
  80. package/dist/components/Popconfirm.d.mts +3 -3
  81. package/dist/components/Popover.d.mts +2 -2
  82. package/dist/components/RadarChart.mjs +2 -2
  83. package/dist/components/ScatterChart.mjs +2 -2
  84. package/dist/components/ScrollArea.d.mts +136 -0
  85. package/dist/components/ScrollArea.mjs +8 -0
  86. package/dist/components/SplitButton.d.mts +286 -0
  87. package/dist/components/SplitButton.mjs +12 -0
  88. package/dist/components/Spotlight.d.mts +1 -1
  89. package/dist/components/SunburstChart.mjs +2 -2
  90. package/dist/components/TagsInput.d.mts +214 -0
  91. package/dist/components/TagsInput.mjs +12 -0
  92. package/dist/components/Timeline.d.mts +1 -1
  93. package/dist/components/Tooltip.d.mts +2 -2
  94. package/dist/components/Tour.d.mts +3 -3
  95. package/dist/components/Tree.d.mts +1 -1
  96. package/dist/components/TreeMapChart.d.mts +1 -1
  97. package/dist/components/TreeMapChart.mjs +2 -2
  98. package/dist/components/TreeSelect.d.mts +51 -0
  99. package/dist/components/TreeSelect.mjs +2 -1
  100. package/dist/components/Upload.d.mts +1 -1
  101. package/dist/components/VirtualTable.d.mts +1 -1
  102. package/dist/components/Watermark.d.mts +1 -1
  103. package/dist/index.d.mts +17 -1
  104. package/dist/index.mjs +356 -0
  105. package/package.json +117 -2
  106. package/dist/{chunk-MAKOSWR6.mjs → chunk-37W7XTA6.mjs} +3 -3
  107. package/dist/{chunk-WUQMFKQ6.mjs → chunk-66OS5A4D.mjs} +3 -3
  108. package/dist/{chunk-NNC75I7F.mjs → chunk-CHEXI7MO.mjs} +3 -3
  109. package/dist/{chunk-KFJIZED5.mjs → chunk-EHGFW5GX.mjs} +3 -3
  110. package/dist/{chunk-ZGA66PSG.mjs → chunk-EZYOCPMM.mjs} +3 -3
  111. package/dist/{chunk-XGXZF27U.mjs → chunk-JHMT5Q6P.mjs} +3 -3
  112. package/dist/{chunk-NGAA73CV.mjs → chunk-VLW3UBIR.mjs} +3 -3
  113. package/dist/{chunk-OTHJIFDV.mjs → chunk-W5XFWVNV.mjs} +3 -3
  114. package/dist/{chunk-3KITFMBJ.mjs → chunk-ZOYHZF4N.mjs} +3 -3
package/README.md CHANGED
@@ -17,7 +17,7 @@ pnpm add @expcat/tigercat-vue
17
17
  npm install @expcat/tigercat-vue
18
18
  ```
19
19
 
20
- **Requirements:** Vue 3.3, Tailwind CSS ≥3.4
20
+ **Requirements:** Vue 3.x, Tailwind CSS 4.x, Node.js 22.13.0
21
21
 
22
22
  ## Quick Start
23
23
 
@@ -35,15 +35,25 @@ import { ConfigProvider, Button } from '@expcat/tigercat-vue'
35
35
 
36
36
  ## Components
37
37
 
38
- | Category | Components |
39
- | -------------- | ------------------------------------------------------------------------------------- |
40
- | **Basic** | Alert, Avatar, Badge, Button, Code, Divider, Icon, Link, Tag, Text |
41
- | **Form** | Input, Select, Checkbox, Radio, Switch, Slider, DatePicker, TimePicker, Upload, Form |
42
- | **Layout** | Card, Container, Grid (Row/Col), Layout, List, Descriptions, Skeleton, Space |
43
- | **Navigation** | Menu, Tabs, Breadcrumb, Pagination, Steps, Dropdown, Tree |
44
- | **Feedback** | Modal, Drawer, Message, Notification, Loading, Popconfirm, Popover, Tooltip, Progress |
45
- | **Data** | Table, Timeline |
46
- | **Charts** | BarChart, LineChart, AreaChart, PieChart, DonutChart, RadarChart, ScatterChart |
38
+ 172 public component entries across 9 categories. The authoritative list with
39
+ import subpaths lives in
40
+ [component-index.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/component-index.md)
41
+ (generated); the table below is only a sampler.
42
+
43
+ | Category | Count | Examples |
44
+ | -------------- | ----- | ------------------------------------------------------------- |
45
+ | **Basic** | 30 | Button, Alert, Avatar, Badge, Icon, Tag, Text, Result, QRCode |
46
+ | **Form** | 31 | Input, Select, DatePicker, Form, Upload, InputOTP, TagsInput |
47
+ | **Layout** | 19 | Card, Row/Col, Layout, List, Descriptions, Skeleton, Space |
48
+ | **Navigation** | 33 | Menu, Tabs, Breadcrumb, Pagination, Steps, Dropdown, Tree |
49
+ | **Feedback** | 13 | Modal, Drawer, Message, Popover, Tooltip, Progress, Tour |
50
+ | **Data** | 7 | Table, Calendar, Collapse, Timeline, DataExport |
51
+ | **Charts** | 20 | BarChart, LineChart, PieChart, RadarChart, GaugeChart, Gantt |
52
+ | **Advanced** | 12 | VirtualTable, VirtualList, RichTextEditor, CodeEditor |
53
+ | **Composite** | 7 | DataTableWithToolbar, ChatWindow, FormWizard, TaskBoard |
54
+
55
+ `Message` and `notification` are also available as imperative command APIs from
56
+ the package root; `notification` is a command API, not a component.
47
57
 
48
58
  ## License
49
59
 
@@ -0,0 +1,180 @@
1
+ // src/components/Masonry.ts
2
+ import {
3
+ computed,
4
+ defineComponent,
5
+ h,
6
+ nextTick,
7
+ onBeforeUnmount,
8
+ onMounted,
9
+ ref,
10
+ shallowRef,
11
+ watch
12
+ } from "vue";
13
+ import {
14
+ classNames,
15
+ coerceClassValue,
16
+ computeMasonryColumnHeights,
17
+ distributeMasonryItems,
18
+ getMasonryColumnClasses,
19
+ getMasonryColumnStyle,
20
+ getMasonryGapStyle,
21
+ getMasonryItemClasses,
22
+ getMasonryRootClasses,
23
+ isBrowser,
24
+ moduloDistributeMasonryItems,
25
+ observeScrollAreaSize,
26
+ readMasonryItemHeight,
27
+ resolveMasonryColumnCount,
28
+ resolveMasonryGap,
29
+ mergeStyleValues,
30
+ MASONRY_DEFAULT_COLUMNS,
31
+ MASONRY_DEFAULT_GAP
32
+ } from "@expcat/tigercat-core";
33
+ function vnodeSignature(vnodes) {
34
+ return vnodes.map((vnode, index) => `${index}:${String(vnode.key ?? "")}`).join("\0");
35
+ }
36
+ function sameHeights(previous, next) {
37
+ return previous.length === next.length && previous.every((height, index) => height === next[index]);
38
+ }
39
+ var Masonry = defineComponent({
40
+ name: "TigerMasonry",
41
+ inheritAttrs: false,
42
+ props: {
43
+ columns: {
44
+ type: [Number, Object],
45
+ default: MASONRY_DEFAULT_COLUMNS
46
+ },
47
+ gap: {
48
+ type: [Number, Object],
49
+ default: MASONRY_DEFAULT_GAP
50
+ },
51
+ className: { type: String, default: void 0 },
52
+ columnClassName: { type: String, default: void 0 },
53
+ itemClassName: { type: String, default: void 0 }
54
+ },
55
+ emits: ["layout"],
56
+ setup(props, { slots, emit, attrs, expose }) {
57
+ const itemElements = /* @__PURE__ */ new Map();
58
+ const heights = shallowRef([]);
59
+ const distribution = shallowRef([]);
60
+ const childrenSignature = shallowRef("");
61
+ const windowWidth = ref(isBrowser() ? window.innerWidth : 1024);
62
+ let lastSignature = "";
63
+ let stopObserving = null;
64
+ let disposed = false;
65
+ const columnCount = computed(() => resolveMasonryColumnCount(props.columns, windowWidth.value));
66
+ const gap = computed(() => resolveMasonryGap(props.gap, windowWidth.value));
67
+ function setItemRef(index, el) {
68
+ if (el instanceof HTMLElement) {
69
+ itemElements.set(index, el);
70
+ return;
71
+ }
72
+ const current = itemElements.get(index);
73
+ if (!current || !current.isConnected) {
74
+ itemElements.delete(index);
75
+ }
76
+ }
77
+ function emitLayout(nextDistribution) {
78
+ const detail = {
79
+ columnCount: columnCount.value,
80
+ columnHeights: computeMasonryColumnHeights(heights.value, nextDistribution, gap.value)
81
+ };
82
+ emit("layout", detail);
83
+ }
84
+ function redistribute() {
85
+ const next = distributeMasonryItems(heights.value, columnCount.value);
86
+ distribution.value = next;
87
+ emitLayout(next);
88
+ }
89
+ function relayout() {
90
+ const indices = Array.from(itemElements.keys());
91
+ const maxIndex = indices.length > 0 ? Math.max(...indices) : -1;
92
+ const nextHeights = [];
93
+ for (let index = 0; index <= maxIndex; index++) {
94
+ const element = itemElements.get(index);
95
+ nextHeights.push(element ? readMasonryItemHeight(element) : 0);
96
+ }
97
+ const countChanged = nextHeights.length !== heights.value.length;
98
+ if (!countChanged && sameHeights(heights.value, nextHeights)) return;
99
+ heights.value = nextHeights;
100
+ redistribute();
101
+ }
102
+ function handleResize() {
103
+ windowWidth.value = window.innerWidth;
104
+ }
105
+ const isResponsive = () => typeof props.columns === "object" || typeof props.gap === "object";
106
+ onMounted(() => {
107
+ if (isResponsive()) window.addEventListener("resize", handleResize);
108
+ relayout();
109
+ });
110
+ onBeforeUnmount(() => {
111
+ disposed = true;
112
+ window.removeEventListener("resize", handleResize);
113
+ stopObserving?.();
114
+ stopObserving = null;
115
+ itemElements.clear();
116
+ });
117
+ watch(childrenSignature, () => {
118
+ void nextTick(relayout);
119
+ });
120
+ watch([columnCount, gap], redistribute);
121
+ watch([distribution, childrenSignature], () => {
122
+ void nextTick(() => {
123
+ if (disposed) return;
124
+ stopObserving?.();
125
+ stopObserving = observeScrollAreaSize(Array.from(itemElements.values()), relayout);
126
+ });
127
+ });
128
+ expose({
129
+ relayout,
130
+ getColumnCount: () => columnCount.value
131
+ });
132
+ return () => {
133
+ const vnodes = (slots.default?.() ?? []).filter((vnode) => vnode);
134
+ const signature = vnodeSignature(vnodes);
135
+ if (signature !== lastSignature) {
136
+ lastSignature = signature;
137
+ childrenSignature.value = signature;
138
+ }
139
+ const activeDistribution = distribution.value.length > 0 && heights.value.length === vnodes.length ? distribution.value : moduloDistributeMasonryItems(vnodes.length, columnCount.value);
140
+ return h(
141
+ "div",
142
+ {
143
+ ...attrs,
144
+ class: classNames(getMasonryRootClasses(props.className), coerceClassValue(attrs.class)),
145
+ style: mergeStyleValues(getMasonryGapStyle(gap.value), attrs.style),
146
+ "data-masonry": ""
147
+ },
148
+ activeDistribution.map(
149
+ (indices, columnIndex) => h(
150
+ "div",
151
+ {
152
+ key: `column-${columnIndex}`,
153
+ class: getMasonryColumnClasses(props.columnClassName),
154
+ style: getMasonryColumnStyle(gap.value),
155
+ "data-masonry-column": columnIndex
156
+ },
157
+ indices.map(
158
+ (index) => h(
159
+ "div",
160
+ {
161
+ key: `item-${index}`,
162
+ class: getMasonryItemClasses(props.itemClassName),
163
+ "data-masonry-item": index,
164
+ ref: (el) => setItemRef(index, el)
165
+ },
166
+ vnodes[index]
167
+ )
168
+ )
169
+ )
170
+ )
171
+ );
172
+ };
173
+ }
174
+ });
175
+ var Masonry_default = Masonry;
176
+
177
+ export {
178
+ Masonry,
179
+ Masonry_default
180
+ };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-U6OGGZBY.mjs";
5
5
  import {
6
6
  List
7
- } from "./chunk-KOG3HKOF.mjs";
7
+ } from "./chunk-6AMWX5K4.mjs";
8
8
  import {
9
9
  Button
10
10
  } from "./chunk-YZBQ6IR7.mjs";
@@ -0,0 +1,184 @@
1
+ // src/components/Marquee.ts
2
+ import { defineComponent, h, ref } from "vue";
3
+ import {
4
+ composeComponentClasses,
5
+ getMarqueeContentClasses,
6
+ getMarqueeRootClasses,
7
+ getMarqueeTrackClasses,
8
+ getMarqueeTrackStyle,
9
+ injectMarqueeStyles,
10
+ isMarqueeFocusInside,
11
+ isMarqueePaused,
12
+ mergeStyleValues,
13
+ resolveMarqueeAriaLabel,
14
+ resolveMarqueeDirection,
15
+ resolveMarqueePauseOnHover,
16
+ resolveMarqueeRepeat
17
+ } from "@expcat/tigercat-core";
18
+ var Marquee = defineComponent({
19
+ name: "TigerMarquee",
20
+ inheritAttrs: false,
21
+ props: {
22
+ /**
23
+ * Scroll direction
24
+ * @default 'left'
25
+ */
26
+ direction: {
27
+ type: String,
28
+ default: "left"
29
+ },
30
+ /**
31
+ * Time for one full loop, in milliseconds
32
+ * @default 20000
33
+ */
34
+ duration: {
35
+ type: Number,
36
+ default: void 0
37
+ },
38
+ /**
39
+ * Pause looping while hovered or while focus is inside the region
40
+ * @default true
41
+ */
42
+ pauseOnHover: {
43
+ type: Boolean,
44
+ default: true
45
+ },
46
+ /**
47
+ * Gap between items and between duplicated copies.
48
+ * A number is pixels; a string is a CSS length.
49
+ * @default 16
50
+ */
51
+ gap: {
52
+ type: [Number, String],
53
+ default: void 0
54
+ },
55
+ /**
56
+ * How many copies of the content to render for a seamless loop.
57
+ * Values below 2 skip looping and show a single static copy.
58
+ * @default 2
59
+ */
60
+ repeat: {
61
+ type: Number,
62
+ default: void 0
63
+ },
64
+ /**
65
+ * Accessible name for the region
66
+ * @default 'Scrolling content'
67
+ */
68
+ ariaLabel: {
69
+ type: String,
70
+ default: void 0
71
+ },
72
+ /**
73
+ * Additional CSS classes
74
+ */
75
+ className: {
76
+ type: String,
77
+ default: void 0
78
+ },
79
+ /**
80
+ * Inline styles
81
+ */
82
+ style: {
83
+ type: Object,
84
+ default: void 0
85
+ }
86
+ },
87
+ setup(props, { slots, attrs }) {
88
+ injectMarqueeStyles();
89
+ const hovered = ref(false);
90
+ const focused = ref(false);
91
+ function callAttrHandler(handler, event) {
92
+ if (typeof handler === "function") {
93
+ const listener = handler;
94
+ listener(event);
95
+ }
96
+ }
97
+ return () => {
98
+ const attrsRecord = attrs;
99
+ const direction = resolveMarqueeDirection(props.direction);
100
+ const pauseOnHover = resolveMarqueePauseOnHover(props.pauseOnHover);
101
+ const copies = resolveMarqueeRepeat(props.repeat);
102
+ const paused = isMarqueePaused({
103
+ pauseOnHover,
104
+ hovered: hovered.value,
105
+ focused: focused.value
106
+ });
107
+ const attrAriaLabel = typeof attrsRecord["aria-label"] === "string" ? attrsRecord["aria-label"] : void 0;
108
+ const ariaLabel = resolveMarqueeAriaLabel(attrAriaLabel ?? props.ariaLabel);
109
+ const contentCopies = Array.from({ length: copies }, (_, index) => {
110
+ const clone = index > 0;
111
+ return h(
112
+ "div",
113
+ {
114
+ class: getMarqueeContentClasses({ direction, clone }),
115
+ "data-marquee-content": "",
116
+ ...clone ? { "data-marquee-clone": "", "aria-hidden": "true" } : {}
117
+ },
118
+ slots.default?.()
119
+ );
120
+ });
121
+ return h(
122
+ "div",
123
+ {
124
+ ...attrs,
125
+ class: composeComponentClasses(
126
+ getMarqueeRootClasses({
127
+ direction,
128
+ pauseOnHover,
129
+ repeat: copies,
130
+ className: props.className
131
+ }),
132
+ attrsRecord.class
133
+ ),
134
+ style: mergeStyleValues(attrsRecord.style, props.style),
135
+ role: "region",
136
+ "aria-label": ariaLabel,
137
+ "data-marquee": "",
138
+ "data-marquee-direction": direction,
139
+ "data-marquee-paused": paused ? "true" : "false",
140
+ "data-marquee-pause-on-hover": pauseOnHover ? "true" : "false",
141
+ onMouseenter: (event) => {
142
+ if (pauseOnHover) hovered.value = true;
143
+ callAttrHandler(attrsRecord.onMouseenter, event);
144
+ },
145
+ onMouseleave: (event) => {
146
+ if (pauseOnHover) hovered.value = false;
147
+ callAttrHandler(attrsRecord.onMouseleave, event);
148
+ },
149
+ onFocusin: (event) => {
150
+ if (pauseOnHover) focused.value = true;
151
+ callAttrHandler(attrsRecord.onFocusin, event);
152
+ },
153
+ onFocusout: (event) => {
154
+ if (pauseOnHover && !isMarqueeFocusInside(event.currentTarget, event.relatedTarget)) {
155
+ focused.value = false;
156
+ }
157
+ callAttrHandler(attrsRecord.onFocusout, event);
158
+ }
159
+ },
160
+ [
161
+ h(
162
+ "div",
163
+ {
164
+ class: getMarqueeTrackClasses(direction),
165
+ style: getMarqueeTrackStyle({
166
+ duration: props.duration,
167
+ gap: props.gap,
168
+ repeat: copies
169
+ }),
170
+ "data-marquee-track": ""
171
+ },
172
+ contentCopies
173
+ )
174
+ ]
175
+ );
176
+ };
177
+ }
178
+ });
179
+ var Marquee_default = Marquee;
180
+
181
+ export {
182
+ Marquee,
183
+ Marquee_default
184
+ };
@@ -449,10 +449,7 @@ var List = defineComponent({
449
449
  const paginationConfig = props.pagination;
450
450
  const paginationLabels = getPaginationLabels(mergedLocale.value);
451
451
  const localeCode = mergedLocale.value?.locale;
452
- const { simple, showQuickJumper } = resolvePaginationDisplayMode(
453
- totalPages,
454
- paginationConfig
455
- );
452
+ const { simple, showQuickJumper } = resolvePaginationDisplayMode(totalPages, paginationConfig);
456
453
  const totalText = paginationConfig.totalText ?? ((value, range) => formatPaginationTotal(paginationLabels.totalText, value, range, localeCode));
457
454
  const pageIndicatorText = (current, pages) => formatPaginationPageIndicator(
458
455
  paginationLabels.pageIndicatorText,