@servicetitan/anvil2 1.42.0 → 1.42.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/{DateFieldRange-CgVqJrVg.js → DateFieldRange--oSGfjYa.js} +2 -2
- package/dist/{DateFieldRange-CgVqJrVg.js.map → DateFieldRange--oSGfjYa.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CLoWDlPO.js → DateFieldSingle-0a8Bk7Yj.js} +2 -2
- package/dist/{DateFieldSingle-CLoWDlPO.js.map → DateFieldSingle-0a8Bk7Yj.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-M5KDI_hn-akXtkIZA.js → DateFieldYearless-C3_oGDr3-5meexzZO.js} +40 -33
- package/dist/{DateFieldYearless-M5KDI_hn-akXtkIZA.js.map → DateFieldYearless-C3_oGDr3-5meexzZO.js.map} +1 -1
- package/dist/{DateFieldYearless-CXlUH0c7.js → DateFieldYearless-DCv9WJdu.js} +2 -2
- package/dist/{DateFieldYearless-CXlUH0c7.js.map → DateFieldYearless-DCv9WJdu.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/Pagination-DU_qvFRR.js +430 -0
- package/dist/Pagination-DU_qvFRR.js.map +1 -0
- package/dist/Pagination.js +1 -429
- package/dist/Pagination.js.map +1 -1
- package/dist/assets/icons/st/gnav_field_pro_active.svg +1 -0
- package/dist/assets/icons/st/gnav_field_pro_inactive.svg +1 -0
- package/dist/assets/icons/st.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useTrackingId } from './useTrackingId.js';
|
|
3
3
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
4
|
-
import { b as DateFieldYearless$1 } from './DateFieldYearless-
|
|
4
|
+
import { b as DateFieldYearless$1 } from './DateFieldYearless-C3_oGDr3-5meexzZO.js';
|
|
5
5
|
|
|
6
6
|
const DateFieldYearless = (props) => {
|
|
7
7
|
const data = {
|
|
@@ -19,4 +19,4 @@ const DateFieldYearless = (props) => {
|
|
|
19
19
|
DateFieldYearless.displayName = DateFieldYearless$1.displayName;
|
|
20
20
|
|
|
21
21
|
export { DateFieldYearless as D };
|
|
22
|
-
//# sourceMappingURL=DateFieldYearless-
|
|
22
|
+
//# sourceMappingURL=DateFieldYearless-DCv9WJdu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateFieldYearless-
|
|
1
|
+
{"version":3,"file":"DateFieldYearless-DCv9WJdu.js","sources":["../src/components/DateFieldYearless/DateFieldYearless.tsx"],"sourcesContent":["import {\n childrenToString,\n DateFieldYearless as CoreDateFieldYearless,\n DateFieldYearlessProps as CoreDateFieldYearlessProps,\n DateFieldYearlessChange as CoreDateFieldYearlessChange,\n DateFieldYearlessChangeHandler as CoreDateFieldYearlessChangeHandler,\n YearlessDate as CoreYearlessDate,\n YearlessDateMode as CoreYearlessDateMode,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the DateFieldYearless component\n * @property {YearlessDate | null} [value] - The controlled value of the date field\n * @property {YearlessDate | null} [defaultValue] - The default value for uncontrolled usage\n * @property {DateFieldYearlessChangeHandler} [onChange] - Callback function when the date value changes\n * @property {YearlessDateMode} [mode] - The date format mode (mm/dd or dd/mm)\n * @property {boolean} [disableHint] - Whether to disable the hint text\n * @property {boolean} [required] - Whether the field is required\n * @property {YearlessDate | null} [minDate] - The minimum allowed date\n * @property {YearlessDate | null} [maxDate] - The maximum allowed date\n * @property {Object} [unavailable] - Configuration for unavailable dates\n * @property {YearlessDate[]} [unavailable.dates] - Array of dates that are not selectable\n * @extends CoreDateFieldYearlessProps\n * @extends DataTrackingId\n */\nexport type DateFieldYearlessProps = CoreDateFieldYearlessProps &\n DataTrackingId;\n\n/**\n * Represents a change event for the DateFieldYearless component\n * @property {YearlessDate | null} value - The current date value\n * @property {boolean} isInputValid - Whether the input is valid\n * @property {boolean} isInputEmpty - Whether the input is empty\n * @property {boolean} isValid - Whether the overall value is valid\n */\nexport type DateFieldYearlessChange = CoreDateFieldYearlessChange;\n\n/**\n * Handler function for DateFieldYearless change events\n * @param change - The change event object\n */\nexport type DateFieldYearlessChangeHandler = CoreDateFieldYearlessChangeHandler;\n\n/**\n * Represents a date without a year component\n * @property {number | null} day - The day of the month (1-31)\n * @property {number | null} month - The month of the year (1-12)\n */\nexport type YearlessDate = CoreYearlessDate;\n\n/**\n * The format mode for yearless date input\n * @typedef {\"mm/dd\" | \"dd/mm\"} YearlessDateMode\n */\nexport type YearlessDateMode = CoreYearlessDateMode;\n\n/**\n * DateFieldYearless component for inputting dates without year information.\n *\n * Features:\n * - Supports both controlled and uncontrolled usage\n * - Supports different date formats (mm/dd or dd/mm)\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * <DateFieldYearless\n * label=\"Birthday\"\n * mode=\"mm/dd\"\n * required\n * onChange={(change) => console.log('Date changed:', change.value)}\n * />\n */\nexport const DateFieldYearless = (props: DateFieldYearlessProps) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldYearless\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreDateFieldYearless data-tracking-id={trackingId} {...props} />;\n};\n\nDateFieldYearless.displayName = CoreDateFieldYearless.displayName;\n"],"names":["CoreDateFieldYearless"],"mappings":";;;;;AA0Ea,MAAA,iBAAA,GAAoB,CAAC,KAAkC,KAAA;AAClE,EAAA,MAAM,IAAO,GAAA;AAAA,IACX,KAAA,EAAO,gBAAiB,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,IACnC,YAAY,KAAM,CAAA,UAAA;AAAA,IAClB,WAAA,EAAa,gBAAiB,CAAA,KAAA,CAAM,WAAW;AAAA,GACjD;AAEA,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,mBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AACD,EAAA,uBAAQ,GAAA,CAAAA,mBAAA,EAAA,EAAsB,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AACzE;AAEA,iBAAA,CAAkB,cAAcA,mBAAsB,CAAA,WAAA;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateFieldYearless } from './DateFieldYearless-
|
|
1
|
+
export { D as DateFieldYearless } from './DateFieldYearless-DCv9WJdu.js';
|
|
2
2
|
//# sourceMappingURL=DateFieldYearless.js.map
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useRef, useMemo, useState, useLayoutEffect } from 'react';
|
|
3
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
4
|
+
import { S as SrOnly } from './SrOnly-C_I8eH4C.js';
|
|
5
|
+
import { c as cx } from './index-tZvMCc77.js';
|
|
6
|
+
import { B as BreakpointSm } from './primitive-BoyEHaOo.js';
|
|
7
|
+
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
8
|
+
import { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o-B1-LbfjY.js';
|
|
9
|
+
import { a as Menu } from './Menu-TtVJnSrA-yBYichuJ.js';
|
|
10
|
+
import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
|
|
11
|
+
import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
|
|
12
|
+
import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
|
|
13
|
+
import { T as Text } from './Text-CED_yrId-DsRYZw2-.js';
|
|
14
|
+
import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
|
|
15
|
+
import { S as SvgKeyboardArrowLeft, a as SvgKeyboardArrowRight } from './keyboard_arrow_right-DZWNVytH.js';
|
|
16
|
+
|
|
17
|
+
import './Pagination.css';const pagination$1 = "_pagination_1gk5t_2";
|
|
18
|
+
const styles$5 = {
|
|
19
|
+
pagination: pagination$1
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const styles$4 = {
|
|
23
|
+
"pagination-item": "_pagination-item_1fk4w_2",
|
|
24
|
+
"pagination-item-button": "_pagination-item-button_1fk4w_15"
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const PaginationItem = forwardRef(
|
|
28
|
+
(props, ref) => {
|
|
29
|
+
const { page, isActive, onClick, className, ...rest } = props;
|
|
30
|
+
const paginationClassName = cx(styles$4["pagination-item"], className);
|
|
31
|
+
const paginationButtonClassName = cx(styles$4["pagination-item-button"], {
|
|
32
|
+
[styles$4.active]: isActive
|
|
33
|
+
});
|
|
34
|
+
return /* @__PURE__ */ jsx("li", { ref, ...rest, className: paginationClassName, children: /* @__PURE__ */ jsx(
|
|
35
|
+
ButtonToggle,
|
|
36
|
+
{
|
|
37
|
+
className: paginationButtonClassName,
|
|
38
|
+
size: "small",
|
|
39
|
+
onClick,
|
|
40
|
+
"aria-current": isActive ? "page" : void 0,
|
|
41
|
+
checked: isActive,
|
|
42
|
+
children: page
|
|
43
|
+
}
|
|
44
|
+
) });
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
PaginationItem.displayName = "PaginationItem";
|
|
48
|
+
|
|
49
|
+
const styles$3 = {
|
|
50
|
+
"pagination-item-overflow-menu": "_pagination-item-overflow-menu_ainsh_2",
|
|
51
|
+
"pagination-item-overflow-menu-content": "_pagination-item-overflow-menu-content_ainsh_7"
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const PaginationOverflowMenu = forwardRef((props, ref) => {
|
|
55
|
+
const { startPage, endPage, length, onItemClick, ...rest } = props;
|
|
56
|
+
return /* @__PURE__ */ jsx("li", { className: styles$3["pagination-item-overflow-menu"], ref, ...rest, children: /* @__PURE__ */ jsx(
|
|
57
|
+
Menu,
|
|
58
|
+
{
|
|
59
|
+
icon: SvgMoreHoriz,
|
|
60
|
+
size: "small",
|
|
61
|
+
appearance: "ghost",
|
|
62
|
+
maxHeight: 200,
|
|
63
|
+
contentClassName: styles$3["pagination-item-overflow-menu-content"],
|
|
64
|
+
"aria-label": "More pages",
|
|
65
|
+
children: Array.from({ length }).map((_, index) => /* @__PURE__ */ jsx(
|
|
66
|
+
Menu.Item,
|
|
67
|
+
{
|
|
68
|
+
label: `${startPage + index}`,
|
|
69
|
+
onClick: () => {
|
|
70
|
+
onItemClick(startPage + index);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
index
|
|
74
|
+
))
|
|
75
|
+
},
|
|
76
|
+
`${startPage}-${endPage}`
|
|
77
|
+
) });
|
|
78
|
+
});
|
|
79
|
+
PaginationOverflowMenu.displayName = "PaginationOverflowMenu";
|
|
80
|
+
|
|
81
|
+
const styles$2 = {
|
|
82
|
+
"pagination-items-per-page-button": "_pagination-items-per-page-button_8rijc_2"
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const PaginationItemsPerPageMenu = forwardRef((props, ref) => {
|
|
86
|
+
const { itemsPerPage, itemsPerPageOptions, onItemsPerPageChange } = props;
|
|
87
|
+
return /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: "2", ref, children: [
|
|
88
|
+
/* @__PURE__ */ jsx(Text, { size: "small", children: "Rows per page" }),
|
|
89
|
+
/* @__PURE__ */ jsx(
|
|
90
|
+
Menu,
|
|
91
|
+
{
|
|
92
|
+
trigger: ({ ref: ref2, ...rest }) => {
|
|
93
|
+
return /* @__PURE__ */ jsx(
|
|
94
|
+
Button,
|
|
95
|
+
{
|
|
96
|
+
ref: ref2,
|
|
97
|
+
...rest,
|
|
98
|
+
className: styles$2["pagination-items-per-page-button"],
|
|
99
|
+
appearance: "ghost",
|
|
100
|
+
icon: { after: SvgKeyboardArrowDown },
|
|
101
|
+
size: "small",
|
|
102
|
+
children: itemsPerPage
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
},
|
|
106
|
+
children: itemsPerPageOptions.map((option) => /* @__PURE__ */ jsx(
|
|
107
|
+
Menu.Item,
|
|
108
|
+
{
|
|
109
|
+
label: option,
|
|
110
|
+
onClick: () => {
|
|
111
|
+
onItemsPerPageChange?.(option);
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
option
|
|
115
|
+
))
|
|
116
|
+
}
|
|
117
|
+
)
|
|
118
|
+
] });
|
|
119
|
+
});
|
|
120
|
+
PaginationItemsPerPageMenu.displayName = "PaginationItemsPerPageMenu";
|
|
121
|
+
|
|
122
|
+
const styles$1 = {
|
|
123
|
+
"pagination-list": "_pagination-list_tabhr_2"
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const PaginationList = forwardRef(
|
|
127
|
+
(props, ref) => {
|
|
128
|
+
const { page, totalPages, children, onPageChange, className } = props;
|
|
129
|
+
const paginationListClassName = cx(styles$1["pagination-list"], className);
|
|
130
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
131
|
+
/* @__PURE__ */ jsx(
|
|
132
|
+
Button,
|
|
133
|
+
{
|
|
134
|
+
appearance: "ghost",
|
|
135
|
+
icon: SvgKeyboardArrowLeft,
|
|
136
|
+
size: "small",
|
|
137
|
+
"aria-label": "Previous page",
|
|
138
|
+
disabled: page === 1,
|
|
139
|
+
onClick: () => {
|
|
140
|
+
if (page > 1) {
|
|
141
|
+
onPageChange?.(page - 1);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
/* @__PURE__ */ jsx("ul", { ref, className: paginationListClassName, children }),
|
|
147
|
+
/* @__PURE__ */ jsx(
|
|
148
|
+
Button,
|
|
149
|
+
{
|
|
150
|
+
appearance: "ghost",
|
|
151
|
+
icon: SvgKeyboardArrowRight,
|
|
152
|
+
size: "small",
|
|
153
|
+
"aria-label": "Next page",
|
|
154
|
+
disabled: page === totalPages,
|
|
155
|
+
onClick: () => {
|
|
156
|
+
if (page < totalPages) {
|
|
157
|
+
onPageChange?.(page + 1);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
] });
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
PaginationList.displayName = "PaginationList";
|
|
166
|
+
|
|
167
|
+
const styles$6 = {
|
|
168
|
+
"pagination-total-count": "_pagination-total-count_efq0t_2"
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const PaginationTotalCount = ({
|
|
172
|
+
firstItem,
|
|
173
|
+
lastItem,
|
|
174
|
+
totalCount,
|
|
175
|
+
className
|
|
176
|
+
}) => {
|
|
177
|
+
const paginationTotalCountClassName = cx(
|
|
178
|
+
styles$6["pagination-total-count"],
|
|
179
|
+
className
|
|
180
|
+
);
|
|
181
|
+
return /* @__PURE__ */ jsxs(
|
|
182
|
+
Text,
|
|
183
|
+
{
|
|
184
|
+
size: "small",
|
|
185
|
+
"aria-live": "polite",
|
|
186
|
+
"aria-atomic": "true",
|
|
187
|
+
className: paginationTotalCountClassName,
|
|
188
|
+
children: [
|
|
189
|
+
firstItem,
|
|
190
|
+
" - ",
|
|
191
|
+
lastItem,
|
|
192
|
+
" ",
|
|
193
|
+
totalCount ? `of ${totalCount}` : "",
|
|
194
|
+
" items"
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
const PaginationElement = forwardRef(
|
|
201
|
+
(props, ref) => {
|
|
202
|
+
const { className, children, ...rest } = props;
|
|
203
|
+
const paginationClassName = cx(styles$5.pagination, className);
|
|
204
|
+
return /* @__PURE__ */ jsx("nav", { ref, className: paginationClassName, ...rest, children });
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
PaginationElement.displayName = "Pagination";
|
|
208
|
+
const Pagination$1 = Object.assign(PaginationElement, {
|
|
209
|
+
List: PaginationList,
|
|
210
|
+
Item: PaginationItem,
|
|
211
|
+
OverflowMenu: PaginationOverflowMenu,
|
|
212
|
+
ItemsPerPageMenu: PaginationItemsPerPageMenu,
|
|
213
|
+
TotalCount: PaginationTotalCount
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
const usePaginationArray = ({
|
|
217
|
+
page,
|
|
218
|
+
totalPages,
|
|
219
|
+
maxArrayLength = 7
|
|
220
|
+
}) => {
|
|
221
|
+
const prevRef = useRef(null);
|
|
222
|
+
return useMemo(() => {
|
|
223
|
+
const maxPagesToShow = maxArrayLength - 2;
|
|
224
|
+
let result = [];
|
|
225
|
+
const addRange = (start, end) => {
|
|
226
|
+
const count = end - start + 1;
|
|
227
|
+
if (count === 1) {
|
|
228
|
+
result.push({ type: "page", page: start });
|
|
229
|
+
} else if (count >= 2) {
|
|
230
|
+
result.push({
|
|
231
|
+
type: "overflow",
|
|
232
|
+
startPage: start,
|
|
233
|
+
endPage: end,
|
|
234
|
+
length: count
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
if (totalPages <= maxArrayLength) {
|
|
239
|
+
result = Array.from({ length: totalPages }, (_, i) => ({
|
|
240
|
+
type: "page",
|
|
241
|
+
page: i + 1
|
|
242
|
+
}));
|
|
243
|
+
} else if (page <= maxPagesToShow) {
|
|
244
|
+
for (let i = 1; i <= maxPagesToShow; i++) {
|
|
245
|
+
result.push({ type: "page", page: i });
|
|
246
|
+
}
|
|
247
|
+
addRange(maxArrayLength - 1, totalPages - 1);
|
|
248
|
+
result.push({ type: "page", page: totalPages });
|
|
249
|
+
} else if (page >= totalPages - maxPagesToShow + 1) {
|
|
250
|
+
result.push({ type: "page", page: 1 });
|
|
251
|
+
addRange(2, totalPages - maxPagesToShow);
|
|
252
|
+
for (let i = totalPages - (maxPagesToShow - 1); i <= totalPages; i++) {
|
|
253
|
+
result.push({ type: "page", page: i });
|
|
254
|
+
}
|
|
255
|
+
} else {
|
|
256
|
+
result.push({ type: "page", page: 1 });
|
|
257
|
+
addRange(2, page - 2);
|
|
258
|
+
result.push({ type: "page", page: page - 1 });
|
|
259
|
+
result.push({ type: "page", page });
|
|
260
|
+
result.push({ type: "page", page: page + 1 });
|
|
261
|
+
addRange(page + 2, totalPages - 1);
|
|
262
|
+
result.push({ type: "page", page: totalPages });
|
|
263
|
+
}
|
|
264
|
+
const prev = prevRef.current;
|
|
265
|
+
let shouldRemakeForJump = false;
|
|
266
|
+
if (prev && prev.totalPages === totalPages && prev.maxArrayLength === maxArrayLength) {
|
|
267
|
+
const start = Math.min(prev.prevPage, page);
|
|
268
|
+
const end = Math.max(prev.prevPage, page);
|
|
269
|
+
const hasOverflowBetween = prev.array.some(
|
|
270
|
+
(item) => item.type === "overflow" && // Check if overflow intersects with the range (not completely covers)
|
|
271
|
+
!(item.endPage < start || item.startPage > end)
|
|
272
|
+
);
|
|
273
|
+
const newPageInOverflow = prev.array.some(
|
|
274
|
+
(item) => item.type === "overflow" && item.startPage <= page && item.endPage >= page
|
|
275
|
+
);
|
|
276
|
+
shouldRemakeForJump = hasOverflowBetween || newPageInOverflow;
|
|
277
|
+
}
|
|
278
|
+
if (shouldRemakeForJump) {
|
|
279
|
+
prevRef.current = {
|
|
280
|
+
array: result,
|
|
281
|
+
totalPages,
|
|
282
|
+
maxArrayLength,
|
|
283
|
+
prevPage: page
|
|
284
|
+
};
|
|
285
|
+
return result;
|
|
286
|
+
}
|
|
287
|
+
if (prev && prev.totalPages === totalPages && prev.maxArrayLength === maxArrayLength && prev.array.some((item) => item.type === "page" && item.page === page)) {
|
|
288
|
+
return prev.array;
|
|
289
|
+
}
|
|
290
|
+
prevRef.current = {
|
|
291
|
+
array: result,
|
|
292
|
+
totalPages,
|
|
293
|
+
maxArrayLength,
|
|
294
|
+
prevPage: page
|
|
295
|
+
};
|
|
296
|
+
return result;
|
|
297
|
+
}, [page, totalPages, maxArrayLength]);
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
const pagination = "_pagination_1pkjs_1";
|
|
301
|
+
const styles = {
|
|
302
|
+
pagination: pagination
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
const Pagination = forwardRef(
|
|
306
|
+
(props, ref) => {
|
|
307
|
+
const {
|
|
308
|
+
"aria-label": ariaLabel,
|
|
309
|
+
page,
|
|
310
|
+
itemsPerPage,
|
|
311
|
+
itemsPerPageOptions,
|
|
312
|
+
totalItemCount: totalItemCountProp,
|
|
313
|
+
showCount,
|
|
314
|
+
onPageChange,
|
|
315
|
+
onItemsPerPageChange,
|
|
316
|
+
className,
|
|
317
|
+
...rest
|
|
318
|
+
} = props;
|
|
319
|
+
const data = {
|
|
320
|
+
"aria-label": ariaLabel
|
|
321
|
+
};
|
|
322
|
+
const trackingId = useTrackingId({
|
|
323
|
+
name: "Pagination",
|
|
324
|
+
data,
|
|
325
|
+
hasOverride: !!rest["data-tracking-id"]
|
|
326
|
+
});
|
|
327
|
+
const totalItemCount = totalItemCountProp ?? 0;
|
|
328
|
+
const totalPages = Math.ceil(totalItemCount / itemsPerPage);
|
|
329
|
+
const elRef = useRef(null);
|
|
330
|
+
const combinedRef = useMergeRefs([elRef, ref]);
|
|
331
|
+
const [isNarrow, setIsNarrow] = useState(false);
|
|
332
|
+
const pageArray = usePaginationArray({
|
|
333
|
+
page,
|
|
334
|
+
totalPages,
|
|
335
|
+
maxArrayLength: 7
|
|
336
|
+
});
|
|
337
|
+
const isPageAvailable = pageArray.some(
|
|
338
|
+
(item) => item.type === "page" && item.page === page
|
|
339
|
+
);
|
|
340
|
+
if (!isPageAvailable && page !== 1 && totalPages > 0) {
|
|
341
|
+
requestAnimationFrame(() => {
|
|
342
|
+
onPageChange?.(1);
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
const firstItem = 1 + (page - 1) * itemsPerPage;
|
|
346
|
+
const lastItem = firstItem - 1 + itemsPerPage;
|
|
347
|
+
const itemRangeText = `${firstItem} - ${lastItem} ${totalItemCount ? `of ${totalItemCount}` : ""} items`;
|
|
348
|
+
useLayoutEffect(() => {
|
|
349
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
350
|
+
const entry = entries[0];
|
|
351
|
+
if (entry) {
|
|
352
|
+
setIsNarrow(
|
|
353
|
+
entry.contentRect.width < Number(BreakpointSm.value.replace("px", ""))
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
if (elRef.current) {
|
|
358
|
+
resizeObserver.observe(elRef.current);
|
|
359
|
+
}
|
|
360
|
+
return () => {
|
|
361
|
+
resizeObserver.disconnect();
|
|
362
|
+
};
|
|
363
|
+
}, []);
|
|
364
|
+
return /* @__PURE__ */ jsxs(
|
|
365
|
+
Pagination$1,
|
|
366
|
+
{
|
|
367
|
+
ref: combinedRef,
|
|
368
|
+
"data-tracking-id": trackingId,
|
|
369
|
+
className: cx(styles.pagination, className),
|
|
370
|
+
children: [
|
|
371
|
+
/* @__PURE__ */ jsx(
|
|
372
|
+
Pagination$1.List,
|
|
373
|
+
{
|
|
374
|
+
page,
|
|
375
|
+
totalPages,
|
|
376
|
+
onPageChange: (page2) => onPageChange?.(page2),
|
|
377
|
+
className: styles.paginationList,
|
|
378
|
+
children: pageArray.map((item) => {
|
|
379
|
+
if (item.type === "page") {
|
|
380
|
+
return /* @__PURE__ */ jsx(
|
|
381
|
+
Pagination$1.Item,
|
|
382
|
+
{
|
|
383
|
+
page: item.page,
|
|
384
|
+
isActive: item.page === page,
|
|
385
|
+
onClick: () => onPageChange?.(item.page)
|
|
386
|
+
},
|
|
387
|
+
item.page
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
return /* @__PURE__ */ jsx(
|
|
391
|
+
Pagination$1.OverflowMenu,
|
|
392
|
+
{
|
|
393
|
+
startPage: item.startPage,
|
|
394
|
+
endPage: item.endPage,
|
|
395
|
+
length: item.length,
|
|
396
|
+
onItemClick: (item2) => onPageChange?.(item2)
|
|
397
|
+
},
|
|
398
|
+
item.startPage
|
|
399
|
+
);
|
|
400
|
+
})
|
|
401
|
+
}
|
|
402
|
+
),
|
|
403
|
+
isNarrow === false && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
404
|
+
itemsPerPageOptions && /* @__PURE__ */ jsx(
|
|
405
|
+
Pagination$1.ItemsPerPageMenu,
|
|
406
|
+
{
|
|
407
|
+
itemsPerPage,
|
|
408
|
+
itemsPerPageOptions,
|
|
409
|
+
onItemsPerPageChange: (itemsPerPage2) => onItemsPerPageChange?.(itemsPerPage2)
|
|
410
|
+
}
|
|
411
|
+
),
|
|
412
|
+
showCount && /* @__PURE__ */ jsx(
|
|
413
|
+
Pagination$1.TotalCount,
|
|
414
|
+
{
|
|
415
|
+
firstItem,
|
|
416
|
+
lastItem,
|
|
417
|
+
totalCount: totalItemCount
|
|
418
|
+
}
|
|
419
|
+
)
|
|
420
|
+
] }),
|
|
421
|
+
!showCount || isNarrow ? /* @__PURE__ */ jsx(SrOnly, { "aria-live": "polite", "aria-atomic": "true", children: itemRangeText }) : null
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
);
|
|
427
|
+
Pagination.displayName = "Pagination";
|
|
428
|
+
|
|
429
|
+
export { Pagination as P };
|
|
430
|
+
//# sourceMappingURL=Pagination-DU_qvFRR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination-DU_qvFRR.js","sources":["../../hammer-react/dist/Pagination-BaxseNqz.js","../src/components/Pagination/internal/usePaginationArray.ts","../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { forwardRef } from 'react';\nimport cx from 'classnames';\nimport { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o.js';\nimport { M as Menu } from './Menu-TtVJnSrA.js';\nimport IconMoreHoriz from '@servicetitan/hammer-icon/mdi/round/more_horiz.svg';\nimport IconKeyboardArrowDown from '@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg';\nimport { B as Button } from './Button-BaHFf1AT.js';\nimport { T as Text } from './Text-CED_yrId.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport Prev from '@servicetitan/hammer-icon/mdi/round/keyboard_arrow_left.svg';\nimport Next from '@servicetitan/hammer-icon/mdi/round/keyboard_arrow_right.svg';\n\nimport './Pagination.css';const pagination = \"_pagination_1gk5t_2\";\nconst styles$5 = {\n\tpagination: pagination\n};\n\nconst styles$4 = {\n\t\"pagination-item\": \"_pagination-item_1fk4w_2\",\n\t\"pagination-item-button\": \"_pagination-item-button_1fk4w_15\"\n};\n\nconst PaginationItem = forwardRef(\n (props, ref) => {\n const { page, isActive, onClick, className, ...rest } = props;\n const paginationClassName = cx(styles$4[\"pagination-item\"], className);\n const paginationButtonClassName = cx(styles$4[\"pagination-item-button\"], {\n [styles$4.active]: isActive\n });\n return /* @__PURE__ */ jsx(\"li\", { ref, ...rest, className: paginationClassName, children: /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n className: paginationButtonClassName,\n size: \"small\",\n onClick,\n \"aria-current\": isActive ? \"page\" : void 0,\n checked: isActive,\n children: page\n }\n ) });\n }\n);\nPaginationItem.displayName = \"PaginationItem\";\n\nconst styles$3 = {\n\t\"pagination-item-overflow-menu\": \"_pagination-item-overflow-menu_ainsh_2\",\n\t\"pagination-item-overflow-menu-content\": \"_pagination-item-overflow-menu-content_ainsh_7\"\n};\n\nconst PaginationOverflowMenu = forwardRef((props, ref) => {\n const { startPage, endPage, length, onItemClick, ...rest } = props;\n return /* @__PURE__ */ jsx(\"li\", { className: styles$3[\"pagination-item-overflow-menu\"], ref, ...rest, children: /* @__PURE__ */ jsx(\n Menu,\n {\n icon: IconMoreHoriz,\n size: \"small\",\n appearance: \"ghost\",\n maxHeight: 200,\n contentClassName: styles$3[\"pagination-item-overflow-menu-content\"],\n \"aria-label\": \"More pages\",\n children: Array.from({ length }).map((_, index) => /* @__PURE__ */ jsx(\n Menu.Item,\n {\n label: `${startPage + index}`,\n onClick: () => {\n onItemClick(startPage + index);\n }\n },\n index\n ))\n },\n `${startPage}-${endPage}`\n ) });\n});\nPaginationOverflowMenu.displayName = \"PaginationOverflowMenu\";\n\nconst styles$2 = {\n\t\"pagination-items-per-page-button\": \"_pagination-items-per-page-button_8rijc_2\"\n};\n\nconst PaginationItemsPerPageMenu = forwardRef((props, ref) => {\n const { itemsPerPage, itemsPerPageOptions, onItemsPerPageChange } = props;\n return /* @__PURE__ */ jsxs(Flex, { alignItems: \"center\", gap: \"2\", ref, children: [\n /* @__PURE__ */ jsx(Text, { size: \"small\", children: \"Rows per page\" }),\n /* @__PURE__ */ jsx(\n Menu,\n {\n trigger: ({ ref: ref2, ...rest }) => {\n return /* @__PURE__ */ jsx(\n Button,\n {\n ref: ref2,\n ...rest,\n className: styles$2[\"pagination-items-per-page-button\"],\n appearance: \"ghost\",\n icon: { after: IconKeyboardArrowDown },\n size: \"small\",\n children: itemsPerPage\n }\n );\n },\n children: itemsPerPageOptions.map((option) => /* @__PURE__ */ jsx(\n Menu.Item,\n {\n label: option,\n onClick: () => {\n onItemsPerPageChange?.(option);\n }\n },\n option\n ))\n }\n )\n ] });\n});\nPaginationItemsPerPageMenu.displayName = \"PaginationItemsPerPageMenu\";\n\nconst styles$1 = {\n\t\"pagination-list\": \"_pagination-list_tabhr_2\"\n};\n\nconst PaginationList = forwardRef(\n (props, ref) => {\n const { page, totalPages, children, onPageChange, className } = props;\n const paginationListClassName = cx(styles$1[\"pagination-list\"], className);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n Button,\n {\n appearance: \"ghost\",\n icon: Prev,\n size: \"small\",\n \"aria-label\": \"Previous page\",\n disabled: page === 1,\n onClick: () => {\n if (page > 1) {\n onPageChange?.(page - 1);\n }\n }\n }\n ),\n /* @__PURE__ */ jsx(\"ul\", { ref, className: paginationListClassName, children }),\n /* @__PURE__ */ jsx(\n Button,\n {\n appearance: \"ghost\",\n icon: Next,\n size: \"small\",\n \"aria-label\": \"Next page\",\n disabled: page === totalPages,\n onClick: () => {\n if (page < totalPages) {\n onPageChange?.(page + 1);\n }\n }\n }\n )\n ] });\n }\n);\nPaginationList.displayName = \"PaginationList\";\n\nconst styles = {\n\t\"pagination-total-count\": \"_pagination-total-count_efq0t_2\"\n};\n\nconst PaginationTotalCount = ({\n firstItem,\n lastItem,\n totalCount,\n className\n}) => {\n const paginationTotalCountClassName = cx(\n styles[\"pagination-total-count\"],\n className\n );\n return /* @__PURE__ */ jsxs(\n Text,\n {\n size: \"small\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\",\n className: paginationTotalCountClassName,\n children: [\n firstItem,\n \" - \",\n lastItem,\n \" \",\n totalCount ? `of ${totalCount}` : \"\",\n \" items\"\n ]\n }\n );\n};\n\nconst PaginationElement = forwardRef(\n (props, ref) => {\n const { className, children, ...rest } = props;\n const paginationClassName = cx(styles$5.pagination, className);\n return /* @__PURE__ */ jsx(\"nav\", { ref, className: paginationClassName, ...rest, children });\n }\n);\nPaginationElement.displayName = \"Pagination\";\nconst Pagination = Object.assign(PaginationElement, {\n List: PaginationList,\n Item: PaginationItem,\n OverflowMenu: PaginationOverflowMenu,\n ItemsPerPageMenu: PaginationItemsPerPageMenu,\n TotalCount: PaginationTotalCount\n});\n\nexport { Pagination as P };\n//# sourceMappingURL=Pagination-BaxseNqz.js.map\n","import { useMemo, useRef } from \"react\";\n\nexport type PageArrayItem =\n | { type: \"page\"; page: number }\n | { type: \"overflow\"; startPage: number; endPage: number; length: number };\n\n/**\n * Custom hook for managing pagination array state and generation.\n *\n * Features:\n * - Automatically generates pagination array based on current page and total pages\n * - Avoids unnecessary regeneration if the current page is already visible\n * - Updates array when page or total pages change and the visible set must change\n * - Handles jumps to first/last page with overflow between current and target\n * - Provides stable reference for the current pagination array\n *\n * @param page The currently selected page\n * @param totalPages Total number of pages\n * @param maxArrayLength Maximum length of the pagination array (including overflows)\n * @returns The current pagination array\n *\n * @example\n * const pageArray = usePaginationArray({\n * page: 5,\n * totalPages: 10,\n * maxArrayLength: 7\n * });\n */\nexport const usePaginationArray = ({\n page,\n totalPages,\n maxArrayLength = 7,\n}: {\n page: number;\n totalPages: number;\n maxArrayLength?: number;\n}): PageArrayItem[] => {\n const prevRef = useRef<{\n array: PageArrayItem[];\n totalPages: number;\n maxArrayLength: number;\n prevPage: number;\n } | null>(null);\n\n return useMemo(() => {\n const maxPagesToShow = maxArrayLength - 2;\n let result: PageArrayItem[] = [];\n const addRange = (start: number, end: number) => {\n const count = end - start + 1;\n if (count === 1) {\n result.push({ type: \"page\", page: start });\n } else if (count >= 2) {\n result.push({\n type: \"overflow\",\n startPage: start,\n endPage: end,\n length: count,\n });\n }\n };\n\n if (totalPages <= maxArrayLength) {\n result = Array.from({ length: totalPages }, (_, i) => ({\n type: \"page\" as const,\n page: i + 1,\n }));\n } else if (page <= maxPagesToShow) {\n // Leading section\n for (let i = 1; i <= maxPagesToShow; i++) {\n result.push({ type: \"page\", page: i });\n }\n addRange(maxArrayLength - 1, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n } else if (page >= totalPages - maxPagesToShow + 1) {\n // Trailing section\n result.push({ type: \"page\", page: 1 });\n addRange(2, totalPages - maxPagesToShow);\n for (let i = totalPages - (maxPagesToShow - 1); i <= totalPages; i++) {\n result.push({ type: \"page\", page: i });\n }\n } else {\n // Middle section\n result.push({ type: \"page\", page: 1 });\n addRange(2, page - 2);\n result.push({ type: \"page\", page: page - 1 });\n result.push({ type: \"page\", page: page });\n result.push({ type: \"page\", page: page + 1 });\n addRange(page + 2, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n }\n\n const prev = prevRef.current;\n\n // Check if we should remake array due to overflow between pages or new page being in overflow\n let shouldRemakeForJump = false;\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength\n ) {\n // Check if there is overflow between the new page and the current page\n const start = Math.min(prev.prevPage, page);\n const end = Math.max(prev.prevPage, page);\n const hasOverflowBetween = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n // Check if overflow intersects with the range (not completely covers)\n !(item.endPage < start || item.startPage > end),\n );\n\n // Check if the new page is part of an overflow\n const newPageInOverflow = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n item.startPage <= page &&\n item.endPage >= page,\n );\n\n shouldRemakeForJump = hasOverflowBetween || newPageInOverflow;\n }\n\n // If we should remake for jump, always return the new array\n if (shouldRemakeForJump) {\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }\n\n // Optimization: if the new page is already present in the previous array, reuse the array\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength &&\n prev.array.some((item) => item.type === \"page\" && item.page === page)\n ) {\n return prev.array;\n }\n\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }, [page, totalPages, maxArrayLength]);\n};\n","import {\n Pagination as CorePagination,\n useMergeRefs,\n type PaginationProps as CorePaginationProps,\n} from \"@servicetitan/hammer-react\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\nimport { forwardRef, useLayoutEffect, useRef, useState } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { usePaginationArray } from \"./internal/usePaginationArray\";\nimport { SrOnly } from \"../SrOnly\";\nimport styles from \"./Pagination.module.scss\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\n\n/**\n * Props for the Pagination component\n * @property {number} page - The current page number\n * @property {number} itemsPerPage - Number of items displayed per page\n * @property {number[]} [itemsPerPageOptions] - Available options for items per page selection\n * @property {number} [totalItemCount] - Total number of items across all pages\n * @property {boolean} [showCount] - Whether to display the item count information\n * @property {(page: number) => void} [onPageChange] - Callback when page changes\n * @property {(page: number) => void} [onNextClick] - Callback when next button is clicked\n * @property {(itemsPerPage: number) => void} [onItemsPerPageChange] - Callback when items per page changes\n * @property {(page: number) => void} [onPreviousClick] - Callback when previous button is clicked\n * @extends Omit<CorePaginationProps, \"children\">\n * @extends DataTrackingId\n */\nexport type PaginationProps = Omit<CorePaginationProps, \"children\"> &\n DataTrackingId & {\n page: number;\n itemsPerPage: number;\n itemsPerPageOptions?: number[];\n totalItemCount?: number;\n showCount?: boolean;\n onPageChange?: (page: number) => void;\n onItemsPerPageChange?: (itemsPerPage: number) => void;\n };\n\n/**\n * Pagination component for navigating through paginated content with automatic page array generation.\n *\n * Features:\n * - Automatic page array generation with overflow handling\n * - Supports items per page selection with customizable options\n * - Displays item count information with screen reader support\n * - Handles edge cases like invalid page numbers\n * - Includes previous/next navigation buttons\n * - Supports overflow menus for large page ranges\n * - Fully accessible with proper ARIA attributes\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Pagination\n * page={1}\n * itemsPerPage={10}\n * totalItemCount={100}\n * itemsPerPageOptions={[10, 20, 50]}\n * showCount={true}\n * onPageChange={(page) => console.log('Page changed to:', page)}\n * onItemsPerPageChange={(itemsPerPage) => console.log('Items per page:', itemsPerPage)}\n * />\n */\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (props, ref) => {\n const {\n \"aria-label\": ariaLabel,\n page,\n itemsPerPage,\n itemsPerPageOptions,\n totalItemCount: totalItemCountProp,\n showCount,\n onPageChange,\n onItemsPerPageChange,\n className,\n ...rest\n } = props;\n\n const data = {\n \"aria-label\": ariaLabel,\n };\n\n const trackingId = useTrackingId({\n name: \"Pagination\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n const totalItemCount = totalItemCountProp ?? 0;\n const totalPages = Math.ceil(totalItemCount / itemsPerPage);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n const [isNarrow, setIsNarrow] = useState(false);\n\n const pageArray = usePaginationArray({\n page,\n totalPages,\n maxArrayLength: 7,\n });\n\n // Check if current page is available in the pageArray, fallback to page 1 if not\n const isPageAvailable = pageArray.some(\n (item) => item.type === \"page\" && item.page === page,\n );\n\n if (!isPageAvailable && page !== 1 && totalPages > 0) {\n // Use requestAnimationFrame to avoid calling onPageChange during render\n requestAnimationFrame(() => {\n onPageChange?.(1);\n });\n }\n\n const firstItem = 1 + (page - 1) * itemsPerPage;\n const lastItem = firstItem - 1 + itemsPerPage;\n const itemRangeText = `${firstItem} - ${lastItem} ${\n totalItemCount ? `of ${totalItemCount}` : \"\"\n } items`;\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setIsNarrow(\n entry.contentRect.width <\n Number(core.primitive.BreakpointSm.value.replace(\"px\", \"\")),\n );\n }\n });\n if (elRef.current) {\n resizeObserver.observe(elRef.current);\n }\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return (\n <CorePagination\n ref={combinedRef}\n data-tracking-id={trackingId}\n className={cx(styles.pagination, className)}\n >\n <CorePagination.List\n page={page}\n totalPages={totalPages}\n onPageChange={(page) => onPageChange?.(page)}\n className={styles.paginationList}\n >\n {pageArray.map((item) => {\n if (item.type === \"page\") {\n return (\n <CorePagination.Item\n key={item.page}\n page={item.page}\n isActive={item.page === page}\n onClick={() => onPageChange?.(item.page)}\n />\n );\n }\n return (\n <CorePagination.OverflowMenu\n key={item.startPage}\n startPage={item.startPage}\n endPage={item.endPage}\n length={item.length}\n onItemClick={(item) => onPageChange?.(item)}\n />\n );\n })}\n </CorePagination.List>\n {isNarrow === false && (\n <>\n {itemsPerPageOptions && (\n <CorePagination.ItemsPerPageMenu\n itemsPerPage={itemsPerPage}\n itemsPerPageOptions={itemsPerPageOptions}\n onItemsPerPageChange={(itemsPerPage) =>\n onItemsPerPageChange?.(itemsPerPage)\n }\n />\n )}\n {showCount && (\n <CorePagination.TotalCount\n firstItem={firstItem}\n lastItem={lastItem}\n totalCount={totalItemCount}\n />\n )}\n </>\n )}\n {!showCount || isNarrow ? (\n <SrOnly aria-live=\"polite\" aria-atomic=\"true\">\n {itemRangeText}\n </SrOnly>\n ) : null}\n </CorePagination>\n );\n },\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["pagination","IconMoreHoriz","IconKeyboardArrowDown","Prev","Next","styles","Pagination","core.primitive.BreakpointSm","CorePagination","page","item","itemsPerPage"],"mappings":";;;;;;;;;;;;;;;;AAa0B,MAAMA,YAAU,GAAG,qBAAqB;AAClE,MAAM,QAAQ,GAAG;AACjB,CAAC,UAAU,EAAEA;AACb,CAAC;;AAED,MAAM,QAAQ,GAAG;AACjB,CAAC,iBAAiB,EAAE,0BAA0B;AAC9C,CAAC,wBAAwB,EAAE;AAC3B,CAAC;;AAED,MAAM,cAAc,GAAG,UAAU;AACjC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAClB,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AACjE,IAAI,MAAM,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;AAC1E,IAAI,MAAM,yBAAyB,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AAC7E,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG;AACzB,KAAK,CAAC;AACN,IAAI,uBAAuB,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,kBAAkB,GAAG;AAClH,MAAM,YAAY;AAClB,MAAM;AACN,QAAQ,SAAS,EAAE,yBAAyB;AAC5C,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,OAAO;AACf,QAAQ,cAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM;AAClD,QAAQ,OAAO,EAAE,QAAQ;AACzB,QAAQ,QAAQ,EAAE;AAClB;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;;AAE7C,MAAM,QAAQ,GAAG;AACjB,CAAC,+BAA+B,EAAE,wCAAwC;AAC1E,CAAC,uCAAuC,EAAE;AAC1C,CAAC;;AAED,MAAM,sBAAsB,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AAC1D,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AACpE,EAAE,uBAAuB,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,kBAAkB,GAAG;AACtI,IAAI,IAAI;AACR,IAAI;AACJ,MAAM,IAAI,EAAEC,YAAa;AACzB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,UAAU,EAAE,OAAO;AACzB,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,gBAAgB,EAAE,QAAQ,CAAC,uCAAuC,CAAC;AACzE,MAAM,YAAY,EAAE,YAAY;AAChC,MAAM,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,qBAAqB,GAAG;AAC5E,QAAQ,IAAI,CAAC,IAAI;AACjB,QAAQ;AACR,UAAU,KAAK,EAAE,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;AACvC,UAAU,OAAO,EAAE,MAAM;AACzB,YAAY,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;AAC1C;AACA,SAAS;AACT,QAAQ;AACR,OAAO;AACP,KAAK;AACL,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5B,GAAG,EAAE,CAAC;AACN,CAAC,CAAC;AACF,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;AAE7D,MAAM,QAAQ,GAAG;AACjB,CAAC,kCAAkC,EAAE;AACrC,CAAC;;AAED,MAAM,0BAA0B,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AAC9D,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,KAAK;AAC3E,EAAE,uBAAuB,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrF,oBAAoB,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAC3E,oBAAoB,GAAG;AACvB,MAAM,IAAI;AACV,MAAM;AACN,QAAQ,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,KAAK;AAC7C,UAAU,uBAAuB,GAAG;AACpC,YAAY,MAAM;AAClB,YAAY;AACZ,cAAc,GAAG,EAAE,IAAI;AACvB,cAAc,GAAG,IAAI;AACrB,cAAc,SAAS,EAAE,QAAQ,CAAC,kCAAkC,CAAC;AACrE,cAAc,UAAU,EAAE,OAAO;AACjC,cAAc,IAAI,EAAE,EAAE,KAAK,EAAEC,oBAAqB,EAAE;AACpD,cAAc,IAAI,EAAE,OAAO;AAC3B,cAAc,QAAQ,EAAE;AACxB;AACA,WAAW;AACX,SAAS;AACT,QAAQ,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,qBAAqB,GAAG;AACzE,UAAU,IAAI,CAAC,IAAI;AACnB,UAAU;AACV,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,MAAM;AAC3B,cAAc,oBAAoB,GAAG,MAAM,CAAC;AAC5C;AACA,WAAW;AACX,UAAU;AACV,SAAS;AACT;AACA;AACA,GAAG,EAAE,CAAC;AACN,CAAC,CAAC;AACF,0BAA0B,CAAC,WAAW,GAAG,4BAA4B;;AAErE,MAAM,QAAQ,GAAG;AACjB,CAAC,iBAAiB,EAAE;AACpB,CAAC;;AAED,MAAM,cAAc,GAAG,UAAU;AACjC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAClB,IAAI,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK;AACzE,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;AAC9E,IAAI,uBAAuB,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE;AACtD,sBAAsB,GAAG;AACzB,QAAQ,MAAM;AACd,QAAQ;AACR,UAAU,UAAU,EAAE,OAAO;AAC7B,UAAU,IAAI,EAAEC,oBAAI;AACpB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,YAAY,EAAE,eAAe;AACvC,UAAU,QAAQ,EAAE,IAAI,KAAK,CAAC;AAC9B,UAAU,OAAO,EAAE,MAAM;AACzB,YAAY,IAAI,IAAI,GAAG,CAAC,EAAE;AAC1B,cAAc,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;AACtC;AACA;AACA;AACA,OAAO;AACP,sBAAsB,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC;AACtF,sBAAsB,GAAG;AACzB,QAAQ,MAAM;AACd,QAAQ;AACR,UAAU,UAAU,EAAE,OAAO;AAC7B,UAAU,IAAI,EAAEC,qBAAI;AACpB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,YAAY,EAAE,WAAW;AACnC,UAAU,QAAQ,EAAE,IAAI,KAAK,UAAU;AACvC,UAAU,OAAO,EAAE,MAAM;AACzB,YAAY,IAAI,IAAI,GAAG,UAAU,EAAE;AACnC,cAAc,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;;AAE7C,MAAMC,QAAM,GAAG;AACf,CAAC,wBAAwB,EAAE;AAC3B,CAAC;;AAED,MAAM,oBAAoB,GAAG,CAAC;AAC9B,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE;AACF,CAAC,KAAK;AACN,EAAE,MAAM,6BAA6B,GAAG,EAAE;AAC1C,IAAIA,QAAM,CAAC,wBAAwB,CAAC;AACpC,IAAI;AACJ,GAAG;AACH,EAAE,uBAAuB,IAAI;AAC7B,IAAI,IAAI;AACR,IAAI;AACJ,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,WAAW,EAAE,QAAQ;AAC3B,MAAM,aAAa,EAAE,MAAM;AAC3B,MAAM,SAAS,EAAE,6BAA6B;AAC9C,MAAM,QAAQ,EAAE;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,GAAG;AACX,QAAQ,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE;AAC5C,QAAQ;AACR;AACA;AACA,GAAG;AACH,CAAC;;AAED,MAAM,iBAAiB,GAAG,UAAU;AACpC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAClB,IAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAClD,IAAI,MAAM,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;AAClE,IAAI,uBAAuB,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjG;AACA,CAAC;AACD,iBAAiB,CAAC,WAAW,GAAG,YAAY;AAC5C,MAAMC,YAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;AACpD,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,YAAY,EAAE,sBAAsB;AACtC,EAAE,gBAAgB,EAAE,0BAA0B;AAC9C,EAAE,UAAU,EAAE;AACd,CAAC,CAAC;;ACtLK,MAAM,qBAAqB,CAAC;AAAA,EACjC,IAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAiB,GAAA;AACnB,CAIuB,KAAA;AACrB,EAAM,MAAA,OAAA,GAAU,OAKN,IAAI,CAAA;AAEd,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,MAAM,iBAAiB,cAAiB,GAAA,CAAA;AACxC,IAAA,IAAI,SAA0B,EAAC;AAC/B,IAAM,MAAA,QAAA,GAAW,CAAC,KAAA,EAAe,GAAgB,KAAA;AAC/C,MAAM,MAAA,KAAA,GAAQ,MAAM,KAAQ,GAAA,CAAA;AAC5B,MAAA,IAAI,UAAU,CAAG,EAAA;AACf,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,OAAO,CAAA;AAAA,OAC3C,MAAA,IAAW,SAAS,CAAG,EAAA;AACrB,QAAA,MAAA,CAAO,IAAK,CAAA;AAAA,UACV,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,KAAA;AAAA,UACX,OAAS,EAAA,GAAA;AAAA,UACT,MAAQ,EAAA;AAAA,SACT,CAAA;AAAA;AACH,KACF;AAEA,IAAA,IAAI,cAAc,cAAgB,EAAA;AAChC,MAAS,MAAA,GAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAc,EAAA,CAAC,GAAG,CAAO,MAAA;AAAA,QACrD,IAAM,EAAA,MAAA;AAAA,QACN,MAAM,CAAI,GAAA;AAAA,OACV,CAAA,CAAA;AAAA,KACJ,MAAA,IAAW,QAAQ,cAAgB,EAAA;AAEjC,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAK,IAAA,cAAA,EAAgB,CAAK,EAAA,EAAA;AACxC,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,GAAG,CAAA;AAAA;AAEvC,MAAS,QAAA,CAAA,cAAA,GAAiB,CAAG,EAAA,UAAA,GAAa,CAAC,CAAA;AAC3C,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,YAAY,CAAA;AAAA,KACrC,MAAA,IAAA,IAAA,IAAQ,UAAa,GAAA,cAAA,GAAiB,CAAG,EAAA;AAElD,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,GAAG,CAAA;AACrC,MAAS,QAAA,CAAA,CAAA,EAAG,aAAa,cAAc,CAAA;AACvC,MAAA,KAAA,IAAS,IAAI,UAAc,IAAA,cAAA,GAAiB,CAAI,CAAA,EAAA,CAAA,IAAK,YAAY,CAAK,EAAA,EAAA;AACpE,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,GAAG,CAAA;AAAA;AACvC,KACK,MAAA;AAEL,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,GAAG,CAAA;AACrC,MAAS,QAAA,CAAA,CAAA,EAAG,OAAO,CAAC,CAAA;AACpB,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,QAAQ,IAAM,EAAA,IAAA,GAAO,GAAG,CAAA;AAC5C,MAAA,MAAA,CAAO,IAAK,CAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,MAAY,CAAA;AACxC,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,QAAQ,IAAM,EAAA,IAAA,GAAO,GAAG,CAAA;AAC5C,MAAS,QAAA,CAAA,IAAA,GAAO,CAAG,EAAA,UAAA,GAAa,CAAC,CAAA;AACjC,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,YAAY,CAAA;AAAA;AAGhD,IAAA,MAAM,OAAO,OAAQ,CAAA,OAAA;AAGrB,IAAA,IAAI,mBAAsB,GAAA,KAAA;AAC1B,IAAA,IACE,QACA,IAAK,CAAA,UAAA,KAAe,UACpB,IAAA,IAAA,CAAK,mBAAmB,cACxB,EAAA;AAEA,MAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,GAAI,CAAA,IAAA,CAAK,UAAU,IAAI,CAAA;AAC1C,MAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,IAAA,CAAK,UAAU,IAAI,CAAA;AACxC,MAAM,MAAA,kBAAA,GAAqB,KAAK,KAAM,CAAA,IAAA;AAAA,QACpC,CAAC,IACC,KAAA,IAAA,CAAK,IAAS,KAAA,UAAA;AAAA,QAEd,EAAE,IAAA,CAAK,OAAU,GAAA,KAAA,IAAS,KAAK,SAAY,GAAA,GAAA;AAAA,OAC/C;AAGA,MAAM,MAAA,iBAAA,GAAoB,KAAK,KAAM,CAAA,IAAA;AAAA,QACnC,CAAC,SACC,IAAK,CAAA,IAAA,KAAS,cACd,IAAK,CAAA,SAAA,IAAa,IAClB,IAAA,IAAA,CAAK,OAAW,IAAA;AAAA,OACpB;AAEA,MAAA,mBAAA,GAAsB,kBAAsB,IAAA,iBAAA;AAAA;AAI9C,IAAA,IAAI,mBAAqB,EAAA;AACvB,MAAA,OAAA,CAAQ,OAAU,GAAA;AAAA,QAChB,KAAO,EAAA,MAAA;AAAA,QACP,UAAA;AAAA,QACA,cAAA;AAAA,QACA,QAAU,EAAA;AAAA,OACZ;AACA,MAAO,OAAA,MAAA;AAAA;AAIT,IAAA,IACE,QACA,IAAK,CAAA,UAAA,KAAe,cACpB,IAAK,CAAA,cAAA,KAAmB,kBACxB,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,CAAC,SAAS,IAAK,CAAA,IAAA,KAAS,UAAU,IAAK,CAAA,IAAA,KAAS,IAAI,CACpE,EAAA;AACA,MAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AAGd,IAAA,OAAA,CAAQ,OAAU,GAAA;AAAA,MAChB,KAAO,EAAA,MAAA;AAAA,MACP,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AACA,IAAO,OAAA,MAAA;AAAA,GACN,EAAA,CAAC,IAAM,EAAA,UAAA,EAAY,cAAc,CAAC,CAAA;AACvC,CAAA;;;;;;;ACvFO,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,CAAC,OAAO,GAAQ,KAAA;AACd,IAAM,MAAA;AAAA,MACJ,YAAc,EAAA,SAAA;AAAA,MACd,IAAA;AAAA,MACA,YAAA;AAAA,MACA,mBAAA;AAAA,MACA,cAAgB,EAAA,kBAAA;AAAA,MAChB,SAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AAEJ,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,YAAc,EAAA;AAAA,KAChB;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,YAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,IAAA,CAAK,kBAAkB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,iBAAiB,kBAAsB,IAAA,CAAA;AAC7C,IAAA,MAAM,UAAa,GAAA,IAAA,CAAK,IAAK,CAAA,cAAA,GAAiB,YAAY,CAAA;AAC1D,IAAM,MAAA,KAAA,GAAQ,OAAuB,IAAI,CAAA;AACzC,IAAA,MAAM,WAAc,GAAA,YAAA,CAAa,CAAC,KAAA,EAAO,GAAG,CAAC,CAAA;AAC7C,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAE9C,IAAA,MAAM,YAAY,kBAAmB,CAAA;AAAA,MACnC,IAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAgB,EAAA;AAAA,KACjB,CAAA;AAGD,IAAA,MAAM,kBAAkB,SAAU,CAAA,IAAA;AAAA,MAChC,CAAC,IAAS,KAAA,IAAA,CAAK,IAAS,KAAA,MAAA,IAAU,KAAK,IAAS,KAAA;AAAA,KAClD;AAEA,IAAA,IAAI,CAAC,eAAA,IAAmB,IAAS,KAAA,CAAA,IAAK,aAAa,CAAG,EAAA;AAEpD,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,OACjB,CAAA;AAAA;AAGH,IAAM,MAAA,SAAA,GAAY,CAAK,GAAA,CAAA,IAAA,GAAO,CAAK,IAAA,YAAA;AACnC,IAAM,MAAA,QAAA,GAAW,YAAY,CAAI,GAAA,YAAA;AACjC,IAAM,MAAA,aAAA,GAAgB,CAAG,EAAA,SAAS,CAAM,GAAA,EAAA,QAAQ,IAC9C,cAAiB,GAAA,CAAA,GAAA,EAAM,cAAc,CAAA,CAAA,GAAK,EAC5C,CAAA,MAAA,CAAA;AAEA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,cAAiB,GAAA,IAAI,cAAe,CAAA,CAAC,OAAY,KAAA;AACrD,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAA,IAAI,KAAO,EAAA;AACT,UAAA,WAAA;AAAA,YACE,KAAA,CAAM,WAAY,CAAA,KAAA,GAChB,MAAO,CAAAC,YAAe,CAAa,KAAM,CAAA,OAAA,CAAQ,IAAM,EAAA,EAAE,CAAC;AAAA,WAC9D;AAAA;AACF,OACD,CAAA;AACD,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAe,cAAA,CAAA,OAAA,CAAQ,MAAM,OAAO,CAAA;AAAA;AAEtC,MAAA,OAAO,MAAM;AACX,QAAA,cAAA,CAAe,UAAW,EAAA;AAAA,OAC5B;AAAA,KACF,EAAG,EAAE,CAAA;AAEL,IACE,uBAAA,IAAA;AAAA,MAACC,YAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,WAAA;AAAA,QACL,kBAAkB,EAAA,UAAA;AAAA,QAClB,SAAW,EAAA,EAAA,CAAG,MAAO,CAAA,UAAA,EAAY,SAAS,CAAA;AAAA,QAE1C,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAACA,YAAe,CAAA,IAAA;AAAA,YAAf;AAAA,cACC,IAAA;AAAA,cACA,UAAA;AAAA,cACA,YAAc,EAAA,CAACC,KAAS,KAAA,YAAA,GAAeA,KAAI,CAAA;AAAA,cAC3C,WAAW,MAAO,CAAA,cAAA;AAAA,cAEjB,QAAA,EAAA,SAAA,CAAU,GAAI,CAAA,CAAC,IAAS,KAAA;AACvB,gBAAI,IAAA,IAAA,CAAK,SAAS,MAAQ,EAAA;AACxB,kBACE,uBAAA,GAAA;AAAA,oBAACD,YAAe,CAAA,IAAA;AAAA,oBAAf;AAAA,sBAEC,MAAM,IAAK,CAAA,IAAA;AAAA,sBACX,QAAA,EAAU,KAAK,IAAS,KAAA,IAAA;AAAA,sBACxB,OAAS,EAAA,MAAM,YAAe,GAAA,IAAA,CAAK,IAAI;AAAA,qBAAA;AAAA,oBAHlC,IAAK,CAAA;AAAA,mBAIZ;AAAA;AAGJ,gBACE,uBAAA,GAAA;AAAA,kBAACA,YAAe,CAAA,YAAA;AAAA,kBAAf;AAAA,oBAEC,WAAW,IAAK,CAAA,SAAA;AAAA,oBAChB,SAAS,IAAK,CAAA,OAAA;AAAA,oBACd,QAAQ,IAAK,CAAA,MAAA;AAAA,oBACb,WAAa,EAAA,CAACE,KAAS,KAAA,YAAA,GAAeA,KAAI;AAAA,mBAAA;AAAA,kBAJrC,IAAK,CAAA;AAAA,iBAKZ;AAAA,eAEH;AAAA;AAAA,WACH;AAAA,UACC,QAAA,KAAa,yBAET,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,YACC,mBAAA,oBAAA,GAAA;AAAA,cAACF,YAAe,CAAA,gBAAA;AAAA,cAAf;AAAA,gBACC,YAAA;AAAA,gBACA,mBAAA;AAAA,gBACA,oBAAsB,EAAA,CAACG,aACrB,KAAA,oBAAA,GAAuBA,aAAY;AAAA;AAAA,aAEvC;AAAA,YAED,SACC,oBAAA,GAAA;AAAA,cAACH,YAAe,CAAA,UAAA;AAAA,cAAf;AAAA,gBACC,SAAA;AAAA,gBACA,QAAA;AAAA,gBACA,UAAY,EAAA;AAAA;AAAA;AACd,WAEJ,EAAA,CAAA;AAAA,UAED,CAAC,SAAa,IAAA,QAAA,mBACZ,GAAA,CAAA,MAAA,EAAA,EAAO,aAAU,QAAS,EAAA,aAAA,EAAY,MACpC,EAAA,QAAA,EAAA,aAAA,EACH,CACE,GAAA;AAAA;AAAA;AAAA,KACN;AAAA;AAGN;AAEA,UAAA,CAAW,WAAc,GAAA,YAAA;;;;"}
|