primereact 9.1.0 → 9.2.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.
- package/accordion/package.json +7 -0
- package/api/api.d.ts +2 -2
- package/api/package.json +7 -0
- package/autocomplete/autocomplete.cjs.js +1 -0
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.esm.js +1 -0
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +1 -0
- package/autocomplete/autocomplete.min.js +1 -1
- package/autocomplete/package.json +7 -0
- package/avatar/avatar.cjs.js +2 -2
- package/avatar/avatar.cjs.min.js +1 -1
- package/avatar/avatar.esm.js +2 -2
- package/avatar/avatar.esm.min.js +1 -1
- package/avatar/avatar.js +2 -2
- package/avatar/avatar.min.js +1 -1
- package/avatar/package.json +7 -0
- package/avatargroup/package.json +7 -0
- package/badge/package.json +7 -0
- package/blockui/package.json +7 -0
- package/breadcrumb/package.json +7 -0
- package/button/package.json +7 -0
- package/calendar/calendar.cjs.js +2 -2
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +2 -2
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +2 -2
- package/calendar/calendar.min.js +1 -1
- package/calendar/package.json +7 -0
- package/card/package.json +7 -0
- package/carousel/package.json +7 -0
- package/cascadeselect/package.json +7 -0
- package/chart/package.json +7 -0
- package/checkbox/package.json +7 -0
- package/chip/package.json +7 -0
- package/chips/package.json +7 -0
- package/colorpicker/package.json +7 -0
- package/column/package.json +7 -0
- package/columngroup/package.json +7 -0
- package/confirmdialog/package.json +7 -0
- package/confirmpopup/package.json +7 -0
- package/contextmenu/contextmenu.cjs.js +61 -18
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.d.ts +9 -0
- package/contextmenu/contextmenu.esm.js +63 -20
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +61 -18
- package/contextmenu/contextmenu.min.js +1 -1
- package/contextmenu/package.json +7 -0
- package/core/core.js +226 -115
- package/core/core.min.js +4 -4
- package/csstransition/package.json +7 -0
- package/datascroller/package.json +7 -0
- package/datatable/datatable.cjs.js +84 -79
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.d.ts +2 -11
- package/datatable/datatable.esm.js +85 -80
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +84 -79
- package/datatable/datatable.min.css +1 -1
- package/datatable/datatable.min.js +1 -1
- package/datatable/package.json +7 -0
- package/dataview/package.json +7 -0
- package/deferredcontent/package.json +7 -0
- package/dialog/package.json +7 -0
- package/divider/package.json +7 -0
- package/dock/package.json +7 -0
- package/dropdown/dropdown.cjs.js +1 -0
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +1 -0
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +1 -0
- package/dropdown/dropdown.min.js +1 -1
- package/dropdown/package.json +7 -0
- package/editor/package.json +7 -0
- package/fieldset/package.json +7 -0
- package/fileupload/package.json +7 -0
- package/galleria/package.json +7 -0
- package/hooks/hooks.cjs.js +34 -2
- package/hooks/hooks.cjs.min.js +1 -1
- package/hooks/hooks.d.ts +13 -0
- package/hooks/hooks.esm.js +34 -3
- package/hooks/hooks.esm.min.js +1 -1
- package/hooks/hooks.js +34 -2
- package/hooks/hooks.min.js +1 -1
- package/hooks/package.json +7 -0
- package/image/package.json +7 -0
- package/inplace/package.json +7 -0
- package/inputmask/package.json +7 -0
- package/inputnumber/package.json +7 -0
- package/inputswitch/package.json +7 -0
- package/inputtext/inputtext.min.css +1 -1
- package/inputtext/package.json +7 -0
- package/inputtextarea/package.json +7 -0
- package/keyfilter/package.json +7 -0
- package/knob/package.json +7 -0
- package/listbox/listbox.cjs.js +5 -4
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +5 -4
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +5 -4
- package/listbox/listbox.min.js +1 -1
- package/listbox/package.json +7 -0
- package/megamenu/megamenu.cjs.js +91 -6
- package/megamenu/megamenu.cjs.min.js +1 -1
- package/megamenu/megamenu.d.ts +9 -0
- package/megamenu/megamenu.esm.js +93 -8
- package/megamenu/megamenu.esm.min.js +1 -1
- package/megamenu/megamenu.js +91 -6
- package/megamenu/megamenu.min.css +1 -1
- package/megamenu/megamenu.min.js +1 -1
- package/megamenu/package.json +7 -0
- package/mention/package.json +7 -0
- package/menu/package.json +7 -0
- package/menubar/package.json +7 -0
- package/menuitem/package.json +4 -0
- package/message/package.json +7 -0
- package/messages/package.json +7 -0
- package/multiselect/multiselect.cjs.js +1 -0
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +1 -0
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +1 -0
- package/multiselect/multiselect.min.js +1 -1
- package/multiselect/package.json +7 -0
- package/multistatecheckbox/package.json +7 -0
- package/orderlist/package.json +7 -0
- package/organizationchart/package.json +7 -0
- package/overlaypanel/package.json +7 -0
- package/overlayservice/package.json +7 -0
- package/package.json +1 -1
- package/paginator/package.json +7 -0
- package/panel/package.json +7 -0
- package/panelmenu/package.json +7 -0
- package/password/package.json +7 -0
- package/picklist/package.json +7 -0
- package/portal/package.json +6 -0
- package/primereact.all.cjs.js +554 -244
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +554 -245
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +554 -244
- package/primereact.all.min.js +1 -1
- package/progressbar/package.json +7 -0
- package/progressspinner/package.json +7 -0
- package/radiobutton/package.json +7 -0
- package/rating/package.json +7 -0
- package/resources/primereact.css +781 -832
- package/resources/primereact.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +130 -2
- package/resources/themes/arya-green/theme.css +130 -2
- package/resources/themes/arya-orange/theme.css +130 -2
- package/resources/themes/arya-purple/theme.css +130 -2
- package/resources/themes/bootstrap4-dark-blue/theme.css +131 -2
- package/resources/themes/bootstrap4-dark-purple/theme.css +131 -2
- package/resources/themes/bootstrap4-light-blue/theme.css +131 -2
- package/resources/themes/bootstrap4-light-purple/theme.css +131 -2
- package/resources/themes/fluent-light/theme.css +131 -2
- package/resources/themes/lara-dark-blue/theme.css +131 -2
- package/resources/themes/lara-dark-indigo/theme.css +131 -2
- package/resources/themes/lara-dark-purple/theme.css +131 -2
- package/resources/themes/lara-dark-teal/theme.css +131 -2
- package/resources/themes/lara-light-blue/theme.css +131 -2
- package/resources/themes/lara-light-indigo/theme.css +131 -2
- package/resources/themes/lara-light-purple/theme.css +131 -2
- package/resources/themes/lara-light-teal/theme.css +131 -2
- package/resources/themes/luna-amber/theme.css +131 -2
- package/resources/themes/luna-blue/theme.css +131 -2
- package/resources/themes/luna-green/theme.css +131 -2
- package/resources/themes/luna-pink/theme.css +131 -2
- package/resources/themes/md-dark-deeppurple/theme.css +131 -2
- package/resources/themes/md-dark-indigo/theme.css +131 -2
- package/resources/themes/md-light-deeppurple/theme.css +131 -2
- package/resources/themes/md-light-indigo/theme.css +131 -2
- package/resources/themes/mdc-dark-deeppurple/theme.css +131 -2
- package/resources/themes/mdc-dark-indigo/theme.css +131 -2
- package/resources/themes/mdc-light-deeppurple/theme.css +131 -2
- package/resources/themes/mdc-light-indigo/theme.css +131 -2
- package/resources/themes/mira/theme.css +131 -2
- package/resources/themes/nano/theme.css +131 -2
- package/resources/themes/nova/theme.css +131 -2
- package/resources/themes/nova-accent/theme.css +131 -2
- package/resources/themes/nova-alt/theme.css +131 -2
- package/resources/themes/rhea/theme.css +131 -2
- package/resources/themes/saga-blue/theme.css +131 -2
- package/resources/themes/saga-green/theme.css +131 -2
- package/resources/themes/saga-orange/theme.css +131 -2
- package/resources/themes/saga-purple/theme.css +131 -2
- package/resources/themes/soho-dark/theme.css +131 -2
- package/resources/themes/soho-light/theme.css +131 -2
- package/resources/themes/tailwind-light/theme.css +131 -2
- package/resources/themes/vela-blue/theme.css +131 -2
- package/resources/themes/vela-green/theme.css +131 -2
- package/resources/themes/vela-orange/theme.css +131 -2
- package/resources/themes/vela-purple/theme.css +131 -2
- package/resources/themes/viva-dark/theme.css +131 -2
- package/resources/themes/viva-light/theme.css +131 -2
- package/ripple/package.json +7 -0
- package/row/package.json +7 -0
- package/scrollpanel/package.json +7 -0
- package/scrolltop/package.json +7 -0
- package/selectbutton/package.json +7 -0
- package/selectitem/package.json +4 -0
- package/sidebar/package.json +7 -0
- package/skeleton/package.json +7 -0
- package/slidemenu/package.json +7 -0
- package/slider/package.json +7 -0
- package/speeddial/package.json +7 -0
- package/splitbutton/package.json +7 -0
- package/splitter/package.json +7 -0
- package/steps/package.json +7 -0
- package/styleclass/package.json +7 -0
- package/tabmenu/package.json +7 -0
- package/tabview/package.json +7 -0
- package/tag/package.json +7 -0
- package/terminal/package.json +7 -0
- package/terminalservice/package.json +7 -0
- package/tieredmenu/package.json +7 -0
- package/tieredmenu/tieredmenu.cjs.js +69 -9
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.d.ts +9 -0
- package/tieredmenu/tieredmenu.esm.js +71 -11
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +69 -9
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/timeline/package.json +7 -0
- package/toast/package.json +7 -0
- package/toast/toast.min.css +1 -1
- package/togglebutton/package.json +7 -0
- package/toolbar/package.json +7 -0
- package/tooltip/package.json +7 -0
- package/tree/package.json +7 -0
- package/treenode/package.json +4 -0
- package/treeselect/package.json +7 -0
- package/treetable/package.json +7 -0
- package/treetable/treetable.cjs.js +12 -9
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.d.ts +0 -5
- package/treetable/treetable.esm.js +12 -9
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +12 -9
- package/treetable/treetable.min.css +1 -1
- package/treetable/treetable.min.js +1 -1
- package/tristatecheckbox/package.json +7 -0
- package/utils/package.json +7 -0
- package/utils/utils.cjs.js +14 -9
- package/utils/utils.cjs.min.js +1 -1
- package/utils/utils.esm.js +14 -9
- package/utils/utils.esm.min.js +1 -1
- package/utils/utils.js +14 -9
- package/utils/utils.min.js +1 -1
- package/virtualscroller/package.json +7 -0
- package/virtualscroller/virtualscroller.cjs.js +177 -104
- package/virtualscroller/virtualscroller.cjs.min.js +1 -1
- package/virtualscroller/virtualscroller.d.ts +20 -0
- package/virtualscroller/virtualscroller.esm.js +177 -104
- package/virtualscroller/virtualscroller.esm.min.js +1 -1
- package/virtualscroller/virtualscroller.js +177 -104
- package/virtualscroller/virtualscroller.min.css +1 -1
- package/virtualscroller/virtualscroller.min.js +1 -1
- package/web-types.json +1 -1
|
@@ -119,14 +119,18 @@ var VirtualScrollerBase = {
|
|
|
119
119
|
id: null,
|
|
120
120
|
style: null,
|
|
121
121
|
className: null,
|
|
122
|
+
tabIndex: 0,
|
|
122
123
|
items: null,
|
|
123
124
|
itemSize: 0,
|
|
124
125
|
scrollHeight: null,
|
|
125
126
|
scrollWidth: null,
|
|
126
127
|
orientation: 'vertical',
|
|
128
|
+
step: 0,
|
|
127
129
|
numToleratedItems: null,
|
|
128
130
|
delay: 0,
|
|
129
131
|
resizeDelay: 10,
|
|
132
|
+
appendOnly: false,
|
|
133
|
+
inline: false,
|
|
130
134
|
lazy: false,
|
|
131
135
|
disabled: false,
|
|
132
136
|
loaderDisabled: false,
|
|
@@ -156,6 +160,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
156
160
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
157
161
|
var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
|
|
158
162
|
var props = VirtualScrollerBase.getProps(inProps);
|
|
163
|
+
var prevProps = usePrevious(inProps) || {};
|
|
159
164
|
var vertical = props.orientation === 'vertical';
|
|
160
165
|
var horizontal = props.orientation === 'horizontal';
|
|
161
166
|
var both = props.orientation === 'both';
|
|
@@ -173,25 +178,29 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
173
178
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
174
179
|
lastState = _React$useState4[0],
|
|
175
180
|
setLastState = _React$useState4[1];
|
|
176
|
-
var _React$useState5 = React.useState(
|
|
181
|
+
var _React$useState5 = React.useState(0),
|
|
182
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
183
|
+
pageState = _React$useState6[0],
|
|
184
|
+
setPageState = _React$useState6[1];
|
|
185
|
+
var _React$useState7 = React.useState(both ? {
|
|
177
186
|
rows: 0,
|
|
178
187
|
cols: 0
|
|
179
188
|
} : 0),
|
|
180
|
-
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
181
|
-
numItemsInViewportState = _React$useState6[0],
|
|
182
|
-
setNumItemsInViewportState = _React$useState6[1];
|
|
183
|
-
var _React$useState7 = React.useState(props.numToleratedItems),
|
|
184
189
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
var _React$useState9 = React.useState(props.
|
|
190
|
+
numItemsInViewportState = _React$useState8[0],
|
|
191
|
+
setNumItemsInViewportState = _React$useState8[1];
|
|
192
|
+
var _React$useState9 = React.useState(props.numToleratedItems),
|
|
188
193
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
var _React$useState11 = React.useState(
|
|
194
|
+
numToleratedItemsState = _React$useState10[0],
|
|
195
|
+
setNumToleratedItemsState = _React$useState10[1];
|
|
196
|
+
var _React$useState11 = React.useState(props.loading || false),
|
|
192
197
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
193
|
-
|
|
194
|
-
|
|
198
|
+
loadingState = _React$useState12[0],
|
|
199
|
+
setLoadingState = _React$useState12[1];
|
|
200
|
+
var _React$useState13 = React.useState([]),
|
|
201
|
+
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
202
|
+
loaderArrState = _React$useState14[0],
|
|
203
|
+
setLoaderArrState = _React$useState14[1];
|
|
195
204
|
var elementRef = React.useRef(null);
|
|
196
205
|
var _contentRef = React.useRef(null);
|
|
197
206
|
var _spacerRef = React.useRef(null);
|
|
@@ -202,14 +211,19 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
202
211
|
} : 0);
|
|
203
212
|
var scrollTimeout = React.useRef(null);
|
|
204
213
|
var resizeTimeout = React.useRef(null);
|
|
214
|
+
var contentStyle = React.useRef({});
|
|
215
|
+
var spacerStyle = React.useRef({});
|
|
205
216
|
var defaultWidth = React.useRef(null);
|
|
206
217
|
var defaultHeight = React.useRef(null);
|
|
207
|
-
var
|
|
208
|
-
var
|
|
218
|
+
var defaultContentWidth = React.useRef(null);
|
|
219
|
+
var defaultContentHeight = React.useRef(null);
|
|
220
|
+
var isItemRangeChanged = React.useRef(false);
|
|
221
|
+
var lazyLoadState = React.useRef(null);
|
|
209
222
|
var _useResizeListener = useResizeListener({
|
|
210
223
|
listener: function listener(event) {
|
|
211
224
|
return onResize();
|
|
212
|
-
}
|
|
225
|
+
},
|
|
226
|
+
when: !props.disabled
|
|
213
227
|
}),
|
|
214
228
|
_useResizeListener2 = _slicedToArray(_useResizeListener, 1),
|
|
215
229
|
bindWindowResizeListener = _useResizeListener2[0];
|
|
@@ -218,13 +232,23 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
218
232
|
type: 'orientationchange',
|
|
219
233
|
listener: function listener(event) {
|
|
220
234
|
return onResize();
|
|
221
|
-
}
|
|
235
|
+
},
|
|
236
|
+
when: !props.disabled
|
|
222
237
|
}),
|
|
223
238
|
_useEventListener2 = _slicedToArray(_useEventListener, 1),
|
|
224
239
|
bindOrientationChangeListener = _useEventListener2[0];
|
|
225
240
|
var getElementRef = function getElementRef() {
|
|
226
241
|
return elementRef;
|
|
227
242
|
};
|
|
243
|
+
var getPageByFirst = function getPageByFirst(first) {
|
|
244
|
+
return Math.floor((first + numToleratedItemsState * 4) / (props.step || 1));
|
|
245
|
+
};
|
|
246
|
+
var setContentElement = function setContentElement(element) {
|
|
247
|
+
_contentRef.current = element || _contentRef.current || DomHandler.findSingle(elementRef.current, '.p-virtualscroller-content');
|
|
248
|
+
};
|
|
249
|
+
var isPageChanged = function isPageChanged(first) {
|
|
250
|
+
return props.step ? pageState !== getPageByFirst(first) : true;
|
|
251
|
+
};
|
|
228
252
|
var scrollTo = function scrollTo(options) {
|
|
229
253
|
lastScrollPos.current = both ? {
|
|
230
254
|
top: 0,
|
|
@@ -236,13 +260,14 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
236
260
|
var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
|
237
261
|
var _calculateNumItems = calculateNumItems(),
|
|
238
262
|
numToleratedItems = _calculateNumItems.numToleratedItems;
|
|
263
|
+
var contentPos = getContentPosition();
|
|
239
264
|
var calculateFirst = function calculateFirst() {
|
|
240
265
|
var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
241
266
|
var _numT = arguments.length > 1 ? arguments[1] : undefined;
|
|
242
267
|
return _index <= _numT ? 0 : _index;
|
|
243
268
|
};
|
|
244
|
-
var calculateCoord = function calculateCoord(_first, _size) {
|
|
245
|
-
return _first * _size;
|
|
269
|
+
var calculateCoord = function calculateCoord(_first, _size, _cpos) {
|
|
270
|
+
return _first * _size + _cpos;
|
|
246
271
|
};
|
|
247
272
|
var scrollToItem = function scrollToItem() {
|
|
248
273
|
var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
@@ -253,20 +278,25 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
253
278
|
behavior: behavior
|
|
254
279
|
});
|
|
255
280
|
};
|
|
281
|
+
var newFirst = both ? {
|
|
282
|
+
rows: 0,
|
|
283
|
+
cols: 0
|
|
284
|
+
} : 0;
|
|
285
|
+
var isRangeChanged = false;
|
|
256
286
|
if (both) {
|
|
257
|
-
|
|
287
|
+
newFirst = {
|
|
258
288
|
rows: calculateFirst(index[0], numToleratedItems[0]),
|
|
259
289
|
cols: calculateFirst(index[1], numToleratedItems[1])
|
|
260
290
|
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}
|
|
291
|
+
scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, props.itemSize[0], contentPos.top));
|
|
292
|
+
isRangeChanged = firstState.rows !== newFirst.rows || firstState.cols !== newFirst.cols;
|
|
264
293
|
} else {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
294
|
+
newFirst = calculateFirst(index, numToleratedItems);
|
|
295
|
+
horizontal ? scrollToItem(calculateCoord(newFirst, props.itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(newFirst, props.itemSize, contentPos.top));
|
|
296
|
+
isRangeChanged = firstState !== newFirst;
|
|
269
297
|
}
|
|
298
|
+
isItemRangeChanged.current = isRangeChanged;
|
|
299
|
+
setFirstState(newFirst);
|
|
270
300
|
};
|
|
271
301
|
var scrollInView = function scrollInView(index, to) {
|
|
272
302
|
var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';
|
|
@@ -383,7 +413,8 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
383
413
|
var _calculateNumItems2 = calculateNumItems(),
|
|
384
414
|
numItemsInViewport = _calculateNumItems2.numItemsInViewport,
|
|
385
415
|
numToleratedItems = _calculateNumItems2.numToleratedItems;
|
|
386
|
-
var calculateLast = function calculateLast(_first, _num, _numT
|
|
416
|
+
var calculateLast = function calculateLast(_first, _num, _numT) {
|
|
417
|
+
var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
387
418
|
return getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
|
|
388
419
|
};
|
|
389
420
|
var last = both ? {
|
|
@@ -405,9 +436,15 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
405
436
|
}));
|
|
406
437
|
}
|
|
407
438
|
if (props.lazy) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
439
|
+
Promise.resolve().then(function () {
|
|
440
|
+
lazyLoadState.current = {
|
|
441
|
+
first: props.step ? both ? {
|
|
442
|
+
rows: 0,
|
|
443
|
+
cols: firstState.cols
|
|
444
|
+
} : 0 : firstState,
|
|
445
|
+
last: Math.min(props.step ? props.step : last, props.items.length)
|
|
446
|
+
};
|
|
447
|
+
props.onLazyLoad && props.onLazyLoad(lazyLoadState.current);
|
|
411
448
|
});
|
|
412
449
|
}
|
|
413
450
|
};
|
|
@@ -416,12 +453,21 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
416
453
|
Promise.resolve().then(function () {
|
|
417
454
|
if (_contentRef.current) {
|
|
418
455
|
_contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
456
|
+
_contentRef.current.style.position = 'relative';
|
|
457
|
+
elementRef.current.style.contain = 'none';
|
|
458
|
+
|
|
459
|
+
/*const [contentWidth, contentHeight] = [DomHandler.getWidth(contentRef.current), DomHandler.getHeight(contentRef.current)];
|
|
460
|
+
contentWidth !== defaultContentWidth.current && (elementRef.current.style.width = '');
|
|
461
|
+
contentHeight !== defaultContentHeight.current && (elementRef.current.style.height = '');*/
|
|
462
|
+
|
|
463
|
+
var _ref = [DomHandler.getWidth(elementRef.current), DomHandler.getHeight(elementRef.current)],
|
|
464
|
+
width = _ref[0],
|
|
465
|
+
height = _ref[1];
|
|
466
|
+
(both || horizontal) && (elementRef.current.style.width = (width < defaultWidth.current ? width : props.scrollWidth || defaultWidth.current) + 'px');
|
|
467
|
+
(both || vertical) && (elementRef.current.style.height = (height < defaultHeight.current ? height : props.scrollHeight || defaultHeight.current) + 'px');
|
|
424
468
|
_contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';
|
|
469
|
+
_contentRef.current.style.position = '';
|
|
470
|
+
elementRef.current.style.contain = '';
|
|
425
471
|
}
|
|
426
472
|
});
|
|
427
473
|
}
|
|
@@ -434,10 +480,10 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
434
480
|
var getContentPosition = function getContentPosition() {
|
|
435
481
|
if (_contentRef.current) {
|
|
436
482
|
var style = getComputedStyle(_contentRef.current);
|
|
437
|
-
var left =
|
|
438
|
-
var right =
|
|
439
|
-
var top =
|
|
440
|
-
var bottom =
|
|
483
|
+
var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
|
|
484
|
+
var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
|
|
485
|
+
var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
|
|
486
|
+
var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
|
|
441
487
|
return {
|
|
442
488
|
left: left,
|
|
443
489
|
right: right,
|
|
@@ -474,11 +520,11 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
474
520
|
};
|
|
475
521
|
var setSpacerSize = function setSpacerSize() {
|
|
476
522
|
var items = props.items;
|
|
477
|
-
if (
|
|
523
|
+
if (items) {
|
|
478
524
|
var contentPos = getContentPosition();
|
|
479
525
|
var setProp = function setProp(_name, _value, _size) {
|
|
480
526
|
var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
481
|
-
return
|
|
527
|
+
return spacerStyle.current = _objectSpread(_objectSpread({}, spacerStyle.current), _defineProperty({}, "".concat(_name), (_value || []).length * _size + _cpos + 'px'));
|
|
482
528
|
};
|
|
483
529
|
if (both) {
|
|
484
530
|
setProp('height', items, props.itemSize[0], contentPos.y);
|
|
@@ -489,7 +535,7 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
489
535
|
}
|
|
490
536
|
};
|
|
491
537
|
var setContentPosition = function setContentPosition(pos) {
|
|
492
|
-
if (_contentRef.current) {
|
|
538
|
+
if (_contentRef.current && !props.appendOnly) {
|
|
493
539
|
var first = pos ? pos.first : firstState;
|
|
494
540
|
var calculateTranslateVal = function calculateTranslateVal(_first, _size) {
|
|
495
541
|
return _first * _size;
|
|
@@ -498,7 +544,9 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
498
544
|
var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
499
545
|
var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
500
546
|
_stickyRef.current && (_stickyRef.current.style.top = "-".concat(_y, "px"));
|
|
501
|
-
|
|
547
|
+
contentStyle.current = _objectSpread(_objectSpread({}, contentStyle.current), {
|
|
548
|
+
transform: "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)")
|
|
549
|
+
});
|
|
502
550
|
};
|
|
503
551
|
if (both) {
|
|
504
552
|
setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));
|
|
@@ -542,36 +590,40 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
542
590
|
if (both) {
|
|
543
591
|
var isScrollDown = lastScrollPos.current.top <= scrollTop;
|
|
544
592
|
var isScrollRight = lastScrollPos.current.left <= scrollLeft;
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
593
|
+
if (!props.appendOnly || props.appendOnly && (isScrollDown || isScrollRight)) {
|
|
594
|
+
var currentIndex = {
|
|
595
|
+
rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
|
|
596
|
+
cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
|
|
597
|
+
};
|
|
598
|
+
var triggerIndex = {
|
|
599
|
+
rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
|
|
600
|
+
cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
|
|
601
|
+
};
|
|
602
|
+
newFirst = {
|
|
603
|
+
rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
|
|
604
|
+
cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
|
|
605
|
+
};
|
|
606
|
+
newLast = {
|
|
607
|
+
rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
|
|
608
|
+
cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
|
|
609
|
+
};
|
|
610
|
+
isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols || isItemRangeChanged.current;
|
|
611
|
+
newScrollPos = {
|
|
612
|
+
top: scrollTop,
|
|
613
|
+
left: scrollLeft
|
|
614
|
+
};
|
|
615
|
+
}
|
|
566
616
|
} else {
|
|
567
617
|
var scrollPos = horizontal ? scrollLeft : scrollTop;
|
|
568
618
|
var isScrollDownOrRight = lastScrollPos.current <= scrollPos;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
619
|
+
if (!props.appendOnly || props.appendOnly && isScrollDownOrRight) {
|
|
620
|
+
var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
|
|
621
|
+
var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
|
|
622
|
+
newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
|
|
623
|
+
newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
|
|
624
|
+
isRangeChanged = newFirst !== firstState || newLast !== lastState || isItemRangeChanged.current;
|
|
625
|
+
newScrollPos = scrollPos;
|
|
626
|
+
}
|
|
575
627
|
}
|
|
576
628
|
return {
|
|
577
629
|
first: newFirst,
|
|
@@ -596,8 +648,14 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
596
648
|
setLastState(last);
|
|
597
649
|
lastScrollPos.current = scrollPos;
|
|
598
650
|
props.onScrollIndexChange && props.onScrollIndexChange(newState);
|
|
599
|
-
if (props.lazy) {
|
|
600
|
-
|
|
651
|
+
if (props.lazy && isPageChanged(first)) {
|
|
652
|
+
var newLazyLoadState = {
|
|
653
|
+
first: props.step ? Math.min(getPageByFirst(first) * props.step, props.items.length - props.step) : first,
|
|
654
|
+
last: Math.min(props.step ? (getPageByFirst(first) + 1) * props.step : last, props.items.length)
|
|
655
|
+
};
|
|
656
|
+
var isLazyStateChanged = !lazyLoadState.current || lazyLoadState.current.first !== newLazyLoadState.first || lazyLoadState.current.last !== newLazyLoadState.last;
|
|
657
|
+
isLazyStateChanged && props.onLazyLoad && props.onLazyLoad(newLazyLoadState);
|
|
658
|
+
lazyLoadState.current = newLazyLoadState;
|
|
601
659
|
}
|
|
602
660
|
}
|
|
603
661
|
};
|
|
@@ -607,17 +665,21 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
607
665
|
if (scrollTimeout.current) {
|
|
608
666
|
clearTimeout(scrollTimeout.current);
|
|
609
667
|
}
|
|
610
|
-
if (
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
onScrollChange(event);
|
|
617
|
-
if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
|
|
618
|
-
setLoadingState(false);
|
|
668
|
+
if (isPageChanged(firstState)) {
|
|
669
|
+
if (!loadingState && props.showLoader) {
|
|
670
|
+
var _onScrollPositionChan2 = onScrollPositionChange(event),
|
|
671
|
+
isRangeChanged = _onScrollPositionChan2.isRangeChanged;
|
|
672
|
+
var changed = isRangeChanged || (props.step ? isPageChanged(firstState) : false);
|
|
673
|
+
changed && setLoadingState(true);
|
|
619
674
|
}
|
|
620
|
-
|
|
675
|
+
scrollTimeout.current = setTimeout(function () {
|
|
676
|
+
onScrollChange(event);
|
|
677
|
+
if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
|
|
678
|
+
setLoadingState(false);
|
|
679
|
+
setPageState(getPageByFirst(firstState));
|
|
680
|
+
}
|
|
681
|
+
}, props.delay);
|
|
682
|
+
}
|
|
621
683
|
} else {
|
|
622
684
|
onScrollChange(event);
|
|
623
685
|
}
|
|
@@ -628,9 +690,9 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
628
690
|
}
|
|
629
691
|
resizeTimeout.current = setTimeout(function () {
|
|
630
692
|
if (elementRef.current) {
|
|
631
|
-
var
|
|
632
|
-
width =
|
|
633
|
-
height =
|
|
693
|
+
var _ref2 = [DomHandler.getWidth(elementRef.current), DomHandler.getHeight(elementRef.current)],
|
|
694
|
+
width = _ref2[0],
|
|
695
|
+
height = _ref2[1];
|
|
634
696
|
var isDiffWidth = width !== defaultWidth.current,
|
|
635
697
|
isDiffHeight = height !== defaultHeight.current;
|
|
636
698
|
var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;
|
|
@@ -638,6 +700,8 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
638
700
|
setNumToleratedItemsState(props.numToleratedItems);
|
|
639
701
|
defaultWidth.current = width;
|
|
640
702
|
defaultHeight.current = height;
|
|
703
|
+
defaultContentWidth.current = DomHandler.getWidth(_contentRef.current);
|
|
704
|
+
defaultContentHeight.current = DomHandler.getHeight(_contentRef.current);
|
|
641
705
|
}
|
|
642
706
|
}
|
|
643
707
|
}, props.resizeDelay);
|
|
@@ -670,12 +734,24 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
670
734
|
var loadedItems = function loadedItems() {
|
|
671
735
|
var items = props.items;
|
|
672
736
|
if (items && !loadingState) {
|
|
673
|
-
if (both) return items.slice(firstState.rows, lastState.rows).map(function (item) {
|
|
674
|
-
return props.columns ? item : item.slice(firstState.cols, lastState.cols);
|
|
675
|
-
});else if (horizontal && props.columns) return items;else return items.slice(firstState, lastState);
|
|
737
|
+
if (both) return items.slice(props.appendOnly ? 0 : firstState.rows, lastState.rows).map(function (item) {
|
|
738
|
+
return props.columns ? item : item.slice(props.appendOnly ? 0 : firstState.cols, lastState.cols);
|
|
739
|
+
});else if (horizontal && props.columns) return items;else return items.slice(props.appendOnly ? 0 : firstState, lastState);
|
|
676
740
|
}
|
|
677
741
|
return [];
|
|
678
742
|
};
|
|
743
|
+
var viewInit = function viewInit() {
|
|
744
|
+
if (elementRef.current && DomHandler.isVisible(elementRef.current)) {
|
|
745
|
+
setContentElement(_contentRef.current);
|
|
746
|
+
init();
|
|
747
|
+
bindWindowResizeListener();
|
|
748
|
+
bindOrientationChangeListener();
|
|
749
|
+
defaultWidth.current = DomHandler.getWidth(elementRef.current);
|
|
750
|
+
defaultHeight.current = DomHandler.getHeight(elementRef.current);
|
|
751
|
+
defaultContentWidth.current = DomHandler.getWidth(_contentRef.current);
|
|
752
|
+
defaultContentHeight.current = DomHandler.getHeight(_contentRef.current);
|
|
753
|
+
}
|
|
754
|
+
};
|
|
679
755
|
var init = function init() {
|
|
680
756
|
if (!props.disabled) {
|
|
681
757
|
setSize();
|
|
@@ -684,17 +760,11 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
684
760
|
}
|
|
685
761
|
};
|
|
686
762
|
useMountEffect(function () {
|
|
687
|
-
|
|
688
|
-
init();
|
|
689
|
-
bindWindowResizeListener();
|
|
690
|
-
bindOrientationChangeListener();
|
|
691
|
-
defaultWidth.current = DomHandler.getWidth(elementRef.current);
|
|
692
|
-
defaultHeight.current = DomHandler.getHeight(elementRef.current);
|
|
693
|
-
}
|
|
763
|
+
viewInit();
|
|
694
764
|
});
|
|
695
765
|
useUpdateEffect(function () {
|
|
696
766
|
init();
|
|
697
|
-
}, [props.itemSize, props.scrollHeight]);
|
|
767
|
+
}, [props.itemSize, props.scrollHeight, props.scrollWidth]);
|
|
698
768
|
useUpdateEffect(function () {
|
|
699
769
|
if (props.numToleratedItems !== numToleratedItemsState) {
|
|
700
770
|
setNumToleratedItemsState(props.numToleratedItems);
|
|
@@ -706,11 +776,11 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
706
776
|
}
|
|
707
777
|
}, [numToleratedItemsState]);
|
|
708
778
|
useUpdateEffect(function () {
|
|
709
|
-
if (!
|
|
779
|
+
if (!prevProps.items || prevProps.items.length !== (props.items || []).length) {
|
|
710
780
|
init();
|
|
711
781
|
}
|
|
712
782
|
var loading = loadingState;
|
|
713
|
-
if (props.lazy &&
|
|
783
|
+
if (props.lazy && prevProps.loading !== props.loading && props.loading !== loadingState) {
|
|
714
784
|
setLoadingState(props.loading);
|
|
715
785
|
loading = props.loading;
|
|
716
786
|
}
|
|
@@ -772,6 +842,7 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
772
842
|
if (props.showSpacer) {
|
|
773
843
|
return /*#__PURE__*/React.createElement("div", {
|
|
774
844
|
ref: _spacerRef,
|
|
845
|
+
style: spacerStyle.current,
|
|
775
846
|
className: "p-virtualscroller-spacer"
|
|
776
847
|
});
|
|
777
848
|
}
|
|
@@ -795,11 +866,14 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
795
866
|
});
|
|
796
867
|
var content = /*#__PURE__*/React.createElement("div", {
|
|
797
868
|
ref: _contentRef,
|
|
869
|
+
style: contentStyle.current,
|
|
798
870
|
className: className
|
|
799
871
|
}, items);
|
|
800
872
|
if (props.contentTemplate) {
|
|
801
873
|
var defaultOptions = {
|
|
874
|
+
style: contentStyle.current,
|
|
802
875
|
className: className,
|
|
876
|
+
spacerStyle: spacerStyle.current,
|
|
803
877
|
contentRef: function contentRef(el) {
|
|
804
878
|
return _contentRef.current = ObjectUtils.getRefElement(el);
|
|
805
879
|
},
|
|
@@ -842,10 +916,9 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
842
916
|
} else {
|
|
843
917
|
var otherProps = VirtualScrollerBase.getOtherProps(props);
|
|
844
918
|
var className = classNames('p-virtualscroller', {
|
|
845
|
-
'p-
|
|
846
|
-
'p-virtualscroller-both': both,
|
|
847
|
-
'p-virtualscroller-horizontal': horizontal
|
|
848
|
-
'p-horizontal-scroll': horizontal
|
|
919
|
+
'p-virtualscroller-inline': props.inline,
|
|
920
|
+
'p-virtualscroller-both p-both-scroll': both,
|
|
921
|
+
'p-virtualscroller-horizontal p-horizontal-scroll': horizontal
|
|
849
922
|
}, props.className);
|
|
850
923
|
var loader = createLoader();
|
|
851
924
|
var _content = createContent();
|
|
@@ -853,7 +926,7 @@ var VirtualScroller = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
|
|
|
853
926
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
854
927
|
ref: elementRef,
|
|
855
928
|
className: className,
|
|
856
|
-
tabIndex:
|
|
929
|
+
tabIndex: props.tabIndex,
|
|
857
930
|
style: props.style
|
|
858
931
|
}, otherProps, {
|
|
859
932
|
onScroll: onScroll
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{usePrevious as t,useResizeListener as r,useEventListener as n,useMountEffect as o,useUpdateEffect as l}from"primereact/hooks";import{ObjectUtils as i,DomHandler as s,classNames as c}from"primereact/utils";function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a.apply(this,arguments)}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function f(e,t){if("object"!==u(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function m(e){var t=f(e,"string");return"symbol"===u(t)?t:String(t)}function d(e,t,r){return(t=m(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e){if(Array.isArray(e))return e}function g(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,l,i,s=[],c=!0,a=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){a=!0,o=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(a)throw o}}return s}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}function y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function w(e,t){return p(e)||g(e,t)||v(e,t)||y()}var S={defaultProps:{__TYPE:"VirtualScroller",id:null,style:null,className:null,items:null,itemSize:0,scrollHeight:null,scrollWidth:null,orientation:"vertical",numToleratedItems:null,delay:0,resizeDelay:10,lazy:!1,disabled:!1,loaderDisabled:!1,columns:null,loading:void 0,autoSize:!1,showSpacer:!0,showLoader:!1,loadingTemplate:null,loaderIconTemplate:null,itemTemplate:null,contentTemplate:null,onScroll:null,onScrollIndexChange:null,onLazyLoad:null,children:void 0},getProps:function(e){return i.getMergedProps(e,S.defaultProps)},getOtherProps:function(e){return i.getDiffProps(e,S.defaultProps)}};function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){d(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var T=e.memo(e.forwardRef((function(u,f){var m=S.getProps(u),d="vertical"===m.orientation,p="horizontal"===m.orientation,g="both"===m.orientation,h=w(e.useState(g?{rows:0,cols:0}:0),2),v=h[0],y=h[1],b=w(e.useState(g?{rows:0,cols:0}:0),2),T=b[0],I=b[1],O=w(e.useState(g?{rows:0,cols:0}:0),2),x=O[0],P=O[1],E=w(e.useState(m.numToleratedItems),2),R=E[0],j=E[1],L=w(e.useState(m.loading||!1),2),H=L[0],M=L[1],D=w(e.useState([]),2),N=D[0],W=D[1],A=e.useRef(null),C=e.useRef(null),k=e.useRef(null),J=e.useRef(null),V=e.useRef(g?{top:0,left:0}:0),X=e.useRef(null),F=e.useRef(null),_=e.useRef(null),B=e.useRef(null),U=t(m.items),Y=t(m.loading),$=w(r({listener:function(e){return ue()}}),1)[0],q=w(n({target:"window",type:"orientationchange",listener:function(e){return ue()}}),1)[0],G=function(){return A},K=function(e){V.current=g?{top:0,left:0}:0,A.current&&A.current.scrollTo(e)},Q=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=te(),n=r.numToleratedItems,o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return e<=t?0:e},l=function(e,t){return e*t},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return K({left:e,top:r,behavior:t})};if(g){var s={rows:o(e[0],n[0]),cols:o(e[1],n[1])};s.rows===v.rows&&s.cols===v.cols||i(l(s.cols,m.itemSize[1]),l(s.rows,m.itemSize[0]))}else{var c=o(e,n);c!==v&&(p?i(l(c,m.itemSize),0):i(0,l(c,m.itemSize)))}},Z=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=ee(),o=n.first,l=n.viewport,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return K({left:e,top:t,behavior:r})},s="to-start"===t,c="to-end"===t;if(s){if(g)l.first.rows-o.rows>e[0]?i(l.first.cols*m.itemSize[1],(l.first.rows-1)*m.itemSize[0]):l.first.cols-o.cols>e[1]&&i((l.first.cols-1)*m.itemSize[1],l.first.rows*m.itemSize[0]);else if(l.first-o>e){var a=(l.first-1)*m.itemSize;p?i(a,0):i(0,a)}}else if(c)if(g)l.last.rows-o.rows<=e[0]+1?i(l.first.cols*m.itemSize[1],(l.first.rows+1)*m.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&i((l.first.cols+1)*m.itemSize[1],l.first.rows*m.itemSize[0]);else if(l.last-o<=e+1){var u=(l.first+1)*m.itemSize;p?i(u,0):i(0,u)}}else Q(e,r)},ee=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=v,r=0;if(A.current){var n=A.current,o=n.scrollTop,l=n.scrollLeft;if(g)r={rows:(t={rows:e(o,m.itemSize[0]),cols:e(l,m.itemSize[1])}).rows+x.rows,cols:t.cols+x.cols};else r=(t=e(p?l:o,m.itemSize))+x}return{first:v,last:T,viewport:{first:t,last:r}}},te=function(){var e=oe(),t=A.current?A.current.offsetWidth-e.left:0,r=A.current?A.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=g?{rows:n(r,m.itemSize[0]),cols:n(t,m.itemSize[1])}:n(p?t:r,m.itemSize);return{numItemsInViewport:l,numToleratedItems:R||(g?[o(l.rows),o(l.cols)]:o(l))}},re=function(e){m.autoSize&&!e&&Promise.resolve().then((function(){if(C.current){C.current.style.minHeight=C.current.style.minWidth="auto";var e=C.current,t=e.offsetWidth,r=e.offsetHeight;(g||p)&&(A.current.style.width=(t<_.current?t:_.current)+"px"),(g||d)&&(A.current.style.height=(r<B.current?r:B.current)+"px"),C.current.style.minHeight=C.current.style.minWidth=""}}))},ne=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return m.items?Math.min(t?(m.columns||m.items[0]).length:m.items.length,e):0},oe=function(){if(C.current){var e=getComputedStyle(C.current),t=parseInt(e.paddingLeft,10)+Math.max(parseInt(e.left,10),0),r=parseInt(e.paddingRight,10)+Math.max(parseInt(e.right,10),0),n=parseInt(e.paddingTop,10)+Math.max(parseInt(e.top,10),0),o=parseInt(e.paddingBottom,10)+Math.max(parseInt(e.bottom,10),0);return{left:t,right:r,top:n,bottom:o,x:t+r,y:n+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},le=function(){if(A.current){var e=A.current.parentElement,t=m.scrollWidth||"".concat(A.current.offsetWidth||e.offsetWidth,"px"),r=m.scrollHeight||"".concat(A.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return A.current.style[e]=t};g||p?(n("height",r),n("width",t)):n("height",r)}},ie=function(){var e=m.items;if(k.current&&e){var t=oe(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return k.current.style[e]=(t||[]).length*r+n+"px"};g?(r("height",e,m.itemSize[0],t.y),r("width",m.columns||e[1],m.itemSize[1],t.x)):p?r("width",m.columns||e,m.itemSize,t.x):r("height",e,m.itemSize,t.y)}},se=function(e){if(C.current){var t=e?e.first:v,r=function(e,t){return e*t},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;J.current&&(J.current.style.top="-".concat(t,"px")),C.current.style.transform="translate3d(".concat(e,"px, ").concat(t,"px, 0)")};if(g)n(r(t.cols,m.itemSize[1]),r(t.rows,m.itemSize[0]));else{var o=r(t,m.itemSize);p?n(o,0):n(0,o)}}},ce=function(e){var t=e.target,r=oe(),n=function(e,t){return e?e>t?e-t:e:0},o=function(e,t){return Math.floor(e/(t||e))},l=function(e,t,r,n,o,l){return e<=o?o:l?r-n-o:t+o-1},i=function(e,t,r,n,o,l,i){return e<=l?0:Math.max(0,i?e<t?r:e-l:e>t?r:e-2*l)},s=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),ne(i,l)},c=n(t.scrollTop,r.top),a=n(t.scrollLeft,r.left),u=g?{rows:0,cols:0}:0,f=T,d=!1,h=V.current;if(g){var y=V.current.top<=c,w=V.current.left<=a,S={rows:o(c,m.itemSize[0]),cols:o(a,m.itemSize[1])},b={rows:l(S.rows,v.rows,T.rows,x.rows,R[0],y),cols:l(S.cols,v.cols,T.cols,x.cols,R[1],w)};u={rows:i(S.rows,b.rows,v.rows,0,0,R[0],y),cols:i(S.cols,b.cols,v.cols,0,0,R[1],w)},f={rows:s(S.rows,u.rows,0,x.rows,R[0]),cols:s(S.cols,u.cols,0,x.cols,R[1],!0)},d=u.rows!==v.rows||f.rows!==T.rows||u.cols!==v.cols||f.cols!==T.cols,h={top:c,left:a}}else{var z=p?a:c,I=V.current<=z,O=o(z,m.itemSize);f=s(O,u=i(O,l(O,v,T,x,R,I),v,0,0,R,I),0,x,R),d=u!==v||f!==T,h=z}return{first:u,last:f,isRangeChanged:d,scrollPos:h}},ae=function(e){var t=ce(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};se(l),y(r),I(n),V.current=o,m.onScrollIndexChange&&m.onScrollIndexChange(l),m.lazy&&m.onLazyLoad&&m.onLazyLoad(l)}},ue=function(){F.current&&clearTimeout(F.current),F.current=setTimeout((function(){if(A.current){var e=[s.getWidth(A.current),s.getHeight(A.current)],t=e[0],r=e[1],n=t!==_.current,o=r!==B.current;(g?n||o:p?n:!!d&&o)&&(j(m.numToleratedItems),_.current=t,B.current=r)}}),m.resizeDelay)},fe=function(e){var t=(m.items||[]).length,r=g?v.rows+e:v+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:m}},me=function(e,t){var r=N.length;return z({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:m},t)},de=function(){var e=m.items;return e&&!H?g?e.slice(v.rows,T.rows).map((function(e){return m.columns?e:e.slice(v.cols,T.cols)})):p&&m.columns?e:e.slice(v,T):[]},pe=function(){var e,t,r,n,o;m.disabled||(le(),e=te(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r,n){return ne(e+t+(e<r?2:3)*r,n)},o=g?{rows:n(v.rows,t.rows,r[0]),cols:n(v.cols,t.cols,r[1],!0)}:n(v,t,r),P(t),j(r),I(o),m.showLoader&&W(g?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),m.lazy&&m.onLazyLoad&&m.onLazyLoad({first:v,last:o}),ie())};o((function(){m.disabled||(pe(),$(),q(),_.current=s.getWidth(A.current),B.current=s.getHeight(A.current))})),l((function(){pe()}),[m.itemSize,m.scrollHeight]),l((function(){m.numToleratedItems!==R&&j(m.numToleratedItems)}),[m.numToleratedItems]),l((function(){m.numToleratedItems===R&&pe()}),[R]),l((function(){U&&U.length===(m.items||[]).length||pe();var e=H;m.lazy&&Y!==m.loading&&m.loading!==H&&(M(m.loading),e=m.loading),re(e)})),l((function(){V.current=g?{top:0,left:0}:0}),[m.orientation]),e.useImperativeHandle(f,(function(){return{props:m,getElementRef:G,scrollTo:K,scrollToIndex:Q,scrollInView:Z,getRenderedRange:ee}}));var ge=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=me(t,r),o=i.getJSXElement(m.loadingTemplate,n);return e.createElement(e.Fragment,{key:t},o)},he=function(t,r){var n=fe(r),o=i.getJSXElement(m.itemTemplate,t,n);return e.createElement(e.Fragment,{key:n.index},o)};if(m.disabled){var ve=i.getJSXElement(m.contentTemplate,{items:m.items,rows:m.items,columns:m.columns});return e.createElement(e.Fragment,null,m.children,ve)}var ye=S.getOtherProps(m),we=c("p-virtualscroller",{"p-both-scroll":g,"p-virtualscroller-both":g,"p-virtualscroller-horizontal":p,"p-horizontal-scroll":p},m.className),Se=function(){if(!m.loaderDisabled&&m.showLoader&&H){var t=c("p-virtualscroller-loader",{"p-component-overlay":!m.loadingTemplate}),r=e.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return m.loadingTemplate?r=N.map((function(e,t){return ge(t,g&&{numCols:x.cols})})):m.loaderIconTemplate&&(r=i.getJSXElement(m.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:r,props:m})),e.createElement("div",{className:t},r)}return null}(),be=function(){var t=de().map(he),r=c("p-virtualscroller-content",{"p-virtualscroller-loading":H}),n=e.createElement("div",{ref:C,className:r},t);if(m.contentTemplate){var o={className:r,contentRef:function(e){return C.current=i.getRefElement(e)},spacerRef:function(e){return k.current=i.getRefElement(e)},stickyRef:function(e){return J.current=i.getRefElement(e)},items:de(),getItemOptions:function(e){return fe(e)},children:t,element:n,props:m,loading:H,getLoaderOptions:function(e,t){return me(e,t)},loadingTemplate:m.loadingTemplate,itemSize:m.itemSize,rows:H?m.loaderDisabled?N:[]:de(),columns:m.columns&&g||p?H&&m.loaderDisabled?g?N[0]:N:m.columns.slice(g?v.cols:v,g?T.cols:T):m.columns,vertical:d,horizontal:p,both:g};return i.getJSXElement(m.contentTemplate,o)}return n}(),ze=m.showSpacer?e.createElement("div",{ref:k,className:"p-virtualscroller-spacer"}):null;return e.createElement("div",a({ref:A,className:we,tabIndex:0,style:m.style},ye,{onScroll:function(e){m.onScroll&&m.onScroll(e),m.delay?(X.current&&clearTimeout(X.current),!H&&m.showLoader&&ce(e).isRangeChanged&&M(!0),X.current=setTimeout((function(){ae(e),!H||!m.showLoader||m.lazy&&void 0!==m.loading||M(!1)}),m.delay)):ae(e)}}),be,ze,Se)})));T.displayName="VirtualScroller";export{T as VirtualScroller};
|
|
1
|
+
import*as e from"react";import{usePrevious as t,useResizeListener as r,useEventListener as n,useMountEffect as o,useUpdateEffect as l}from"primereact/hooks";import{ObjectUtils as i,DomHandler as s,classNames as c}from"primereact/utils";function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(this,arguments)}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function f(e,t){if("object"!==a(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function m(e){var t=f(e,"string");return"symbol"===a(t)?t:String(t)}function p(e,t,r){return(t=m(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e){if(Array.isArray(e))return e}function g(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,l,i,s=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return s}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}function y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function w(e,t){return d(e)||g(e,t)||v(e,t)||y()}var S={defaultProps:{__TYPE:"VirtualScroller",id:null,style:null,className:null,tabIndex:0,items:null,itemSize:0,scrollHeight:null,scrollWidth:null,orientation:"vertical",step:0,numToleratedItems:null,delay:0,resizeDelay:10,appendOnly:!1,inline:!1,lazy:!1,disabled:!1,loaderDisabled:!1,columns:null,loading:void 0,autoSize:!1,showSpacer:!0,showLoader:!1,loadingTemplate:null,loaderIconTemplate:null,itemTemplate:null,contentTemplate:null,onScroll:null,onScrollIndexChange:null,onLazyLoad:null,children:void 0},getProps:function(e){return i.getMergedProps(e,S.defaultProps)},getOtherProps:function(e){return i.getDiffProps(e,S.defaultProps)}};function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=e.memo(e.forwardRef((function(a,f){var m=S.getProps(a),d=t(a)||{},g="vertical"===m.orientation,h="horizontal"===m.orientation,v="both"===m.orientation,y=w(e.useState(v?{rows:0,cols:0}:0),2),b=y[0],O=y[1],T=w(e.useState(v?{rows:0,cols:0}:0),2),I=T[0],x=T[1],R=w(e.useState(0),2),P=R[0],E=R[1],j=w(e.useState(v?{rows:0,cols:0}:0),2),L=j[0],M=j[1],H=w(e.useState(m.numToleratedItems),2),W=H[0],D=H[1],F=w(e.useState(m.loading||!1),2),N=F[0],A=F[1],C=w(e.useState([]),2),V=C[0],k=C[1],J=e.useRef(null),X=e.useRef(null),_=e.useRef(null),B=e.useRef(null),U=e.useRef(v?{top:0,left:0}:0),Y=e.useRef(null),$=e.useRef(null),q=e.useRef({}),G=e.useRef({}),K=e.useRef(null),Q=e.useRef(null),Z=e.useRef(null),ee=e.useRef(null),te=e.useRef(!1),re=e.useRef(null),ne=w(r({listener:function(e){return be()},when:!m.disabled}),1)[0],oe=w(n({target:"window",type:"orientationchange",listener:function(e){return be()},when:!m.disabled}),1)[0],le=function(){return J},ie=function(e){return Math.floor((e+4*W)/(m.step||1))},se=function(e){return!m.step||P!==ie(e)},ce=function(e){U.current=v?{top:0,left:0}:0,J.current&&J.current.scrollTo(e)},ue=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=me(),n=r.numToleratedItems,o=ge(),l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return e<=t?0:e},i=function(e,t,r){return e*t+r},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return ce({left:e,top:r,behavior:t})},c=v?{rows:0,cols:0}:0,u=!1;v?(s(i((c={rows:l(e[0],n[0]),cols:l(e[1],n[1])}).cols,m.itemSize[1],o.left),i(c.rows,m.itemSize[0],o.top)),u=b.rows!==c.rows||b.cols!==c.cols):(c=l(e,n),h?s(i(c,m.itemSize,o.left),0):s(0,i(c,m.itemSize,o.top)),u=b!==c),te.current=u,O(c)},ae=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=fe(),o=n.first,l=n.viewport,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return ce({left:e,top:t,behavior:r})},s="to-start"===t,c="to-end"===t;if(s){if(v)l.first.rows-o.rows>e[0]?i(l.first.cols*m.itemSize[1],(l.first.rows-1)*m.itemSize[0]):l.first.cols-o.cols>e[1]&&i((l.first.cols-1)*m.itemSize[1],l.first.rows*m.itemSize[0]);else if(l.first-o>e){var u=(l.first-1)*m.itemSize;h?i(u,0):i(0,u)}}else if(c)if(v)l.last.rows-o.rows<=e[0]+1?i(l.first.cols*m.itemSize[1],(l.first.rows+1)*m.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&i((l.first.cols+1)*m.itemSize[1],l.first.rows*m.itemSize[0]);else if(l.last-o<=e+1){var a=(l.first+1)*m.itemSize;h?i(a,0):i(0,a)}}else ue(e,r)},fe=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=b,r=0;if(J.current){var n=J.current,o=n.scrollTop,l=n.scrollLeft;if(v)r={rows:(t={rows:e(o,m.itemSize[0]),cols:e(l,m.itemSize[1])}).rows+L.rows,cols:t.cols+L.cols};else r=(t=e(h?l:o,m.itemSize))+L}return{first:b,last:I,viewport:{first:t,last:r}}},me=function(){var e=ge(),t=J.current?J.current.offsetWidth-e.left:0,r=J.current?J.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=v?{rows:n(r,m.itemSize[0]),cols:n(t,m.itemSize[1])}:n(h?t:r,m.itemSize);return{numItemsInViewport:l,numToleratedItems:W||(v?[o(l.rows),o(l.cols)]:o(l))}},pe=function(e){m.autoSize&&!e&&Promise.resolve().then((function(){if(X.current){X.current.style.minHeight=X.current.style.minWidth="auto",X.current.style.position="relative",J.current.style.contain="none";var e=[s.getWidth(J.current),s.getHeight(J.current)],t=e[0],r=e[1];(v||h)&&(J.current.style.width=(t<K.current?t:m.scrollWidth||K.current)+"px"),(v||g)&&(J.current.style.height=(r<Q.current?r:m.scrollHeight||Q.current)+"px"),X.current.style.minHeight=X.current.style.minWidth="",X.current.style.position="",J.current.style.contain=""}}))},de=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return m.items?Math.min(t?(m.columns||m.items[0]).length:m.items.length,e):0},ge=function(){if(X.current){var e=getComputedStyle(X.current),t=parseFloat(e.paddingLeft)+Math.max(parseFloat(e.left)||0,0),r=parseFloat(e.paddingRight)+Math.max(parseFloat(e.right)||0,0),n=parseFloat(e.paddingTop)+Math.max(parseFloat(e.top)||0,0),o=parseFloat(e.paddingBottom)+Math.max(parseFloat(e.bottom)||0,0);return{left:t,right:r,top:n,bottom:o,x:t+r,y:n+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},he=function(){if(J.current){var e=J.current.parentElement,t=m.scrollWidth||"".concat(J.current.offsetWidth||e.offsetWidth,"px"),r=m.scrollHeight||"".concat(J.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return J.current.style[e]=t};v||h?(n("height",r),n("width",t)):n("height",r)}},ve=function(){var e=m.items;if(e){var t=ge(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return G.current=z(z({},G.current),p({},"".concat(e),(t||[]).length*r+n+"px"))};v?(r("height",e,m.itemSize[0],t.y),r("width",m.columns||e[1],m.itemSize[1],t.x)):h?r("width",m.columns||e,m.itemSize,t.x):r("height",e,m.itemSize,t.y)}},ye=function(e){if(X.current&&!m.appendOnly){var t=e?e.first:b,r=function(e,t){return e*t},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;B.current&&(B.current.style.top="-".concat(t,"px")),q.current=z(z({},q.current),{transform:"translate3d(".concat(e,"px, ").concat(t,"px, 0)")})};if(v)n(r(t.cols,m.itemSize[1]),r(t.rows,m.itemSize[0]));else{var o=r(t,m.itemSize);h?n(o,0):n(0,o)}}},we=function(e){var t=e.target,r=ge(),n=function(e,t){return e?e>t?e-t:e:0},o=function(e,t){return Math.floor(e/(t||e))},l=function(e,t,r,n,o,l){return e<=o?o:l?r-n-o:t+o-1},i=function(e,t,r,n,o,l,i){return e<=l?0:Math.max(0,i?e<t?r:e-l:e>t?r:e-2*l)},s=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),de(i,l)},c=n(t.scrollTop,r.top),u=n(t.scrollLeft,r.left),a=v?{rows:0,cols:0}:0,f=I,p=!1,d=U.current;if(v){var g=U.current.top<=c,y=U.current.left<=u;if(!m.appendOnly||m.appendOnly&&(g||y)){var w={rows:o(c,m.itemSize[0]),cols:o(u,m.itemSize[1])},S={rows:l(w.rows,b.rows,I.rows,L.rows,W[0],g),cols:l(w.cols,b.cols,I.cols,L.cols,W[1],y)};a={rows:i(w.rows,S.rows,b.rows,0,0,W[0],g),cols:i(w.cols,S.cols,b.cols,0,0,W[1],y)},f={rows:s(w.rows,a.rows,0,L.rows,W[0]),cols:s(w.cols,a.cols,0,L.cols,W[1],!0)},p=a.rows!==b.rows||f.rows!==I.rows||a.cols!==b.cols||f.cols!==I.cols||te.current,d={top:c,left:u}}}else{var z=h?u:c,O=U.current<=z;if(!m.appendOnly||m.appendOnly&&O){var T=o(z,m.itemSize);f=s(T,a=i(T,l(T,b,I,L,W,O),b,0,0,W,O),0,L,W),p=a!==b||f!==I||te.current,d=z}}return{first:a,last:f,isRangeChanged:p,scrollPos:d}},Se=function(e){var t=we(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};if(ye(l),O(r),x(n),U.current=o,m.onScrollIndexChange&&m.onScrollIndexChange(l),m.lazy&&se(r)){var i={first:m.step?Math.min(ie(r)*m.step,m.items.length-m.step):r,last:Math.min(m.step?(ie(r)+1)*m.step:n,m.items.length)};(!re.current||re.current.first!==i.first||re.current.last!==i.last)&&m.onLazyLoad&&m.onLazyLoad(i),re.current=i}}},be=function(){$.current&&clearTimeout($.current),$.current=setTimeout((function(){if(J.current){var e=[s.getWidth(J.current),s.getHeight(J.current)],t=e[0],r=e[1],n=t!==K.current,o=r!==Q.current;(v?n||o:h?n:!!g&&o)&&(D(m.numToleratedItems),K.current=t,Q.current=r,Z.current=s.getWidth(X.current),ee.current=s.getHeight(X.current))}}),m.resizeDelay)},ze=function(e){var t=(m.items||[]).length,r=v?b.rows+e:b+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:m}},Oe=function(e,t){var r=V.length;return z({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:m},t)},Te=function(){var e=m.items;return e&&!N?v?e.slice(m.appendOnly?0:b.rows,I.rows).map((function(e){return m.columns?e:e.slice(m.appendOnly?0:b.cols,I.cols)})):h&&m.columns?e:e.slice(m.appendOnly?0:b,I):[]},Ie=function(){var e,t,r,n,o;m.disabled||(he(),e=me(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return de(e+t+(e<r?2:3)*r,n)},o=v?{rows:n(b.rows,t.rows,r[0]),cols:n(b.cols,t.cols,r[1],!0)}:n(b,t,r),M(t),D(r),x(o),m.showLoader&&k(v?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),m.lazy&&Promise.resolve().then((function(){re.current={first:m.step?v?{rows:0,cols:b.cols}:0:b,last:Math.min(m.step?m.step:o,m.items.length)},m.onLazyLoad&&m.onLazyLoad(re.current)})),ve())};o((function(){J.current&&s.isVisible(J.current)&&(X.current=X.current||X.current||s.findSingle(J.current,".p-virtualscroller-content"),Ie(),ne(),oe(),K.current=s.getWidth(J.current),Q.current=s.getHeight(J.current),Z.current=s.getWidth(X.current),ee.current=s.getHeight(X.current))})),l((function(){Ie()}),[m.itemSize,m.scrollHeight,m.scrollWidth]),l((function(){m.numToleratedItems!==W&&D(m.numToleratedItems)}),[m.numToleratedItems]),l((function(){m.numToleratedItems===W&&Ie()}),[W]),l((function(){d.items&&d.items.length===(m.items||[]).length||Ie();var e=N;m.lazy&&d.loading!==m.loading&&m.loading!==N&&(A(m.loading),e=m.loading),pe(e)})),l((function(){U.current=v?{top:0,left:0}:0}),[m.orientation]),e.useImperativeHandle(f,(function(){return{props:m,getElementRef:le,scrollTo:ce,scrollToIndex:ue,scrollInView:ae,getRenderedRange:fe}}));var xe=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Oe(t,r),o=i.getJSXElement(m.loadingTemplate,n);return e.createElement(e.Fragment,{key:t},o)},Re=function(t,r){var n=ze(r),o=i.getJSXElement(m.itemTemplate,t,n);return e.createElement(e.Fragment,{key:n.index},o)};if(m.disabled){var Pe=i.getJSXElement(m.contentTemplate,{items:m.items,rows:m.items,columns:m.columns});return e.createElement(e.Fragment,null,m.children,Pe)}var Ee=S.getOtherProps(m),je=c("p-virtualscroller",{"p-virtualscroller-inline":m.inline,"p-virtualscroller-both p-both-scroll":v,"p-virtualscroller-horizontal p-horizontal-scroll":h},m.className),Le=function(){if(!m.loaderDisabled&&m.showLoader&&N){var t=c("p-virtualscroller-loader",{"p-component-overlay":!m.loadingTemplate}),r=e.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return m.loadingTemplate?r=V.map((function(e,t){return xe(t,v&&{numCols:L.cols})})):m.loaderIconTemplate&&(r=i.getJSXElement(m.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:r,props:m})),e.createElement("div",{className:t},r)}return null}(),Me=function(){var t=Te().map(Re),r=c("p-virtualscroller-content",{"p-virtualscroller-loading":N}),n=e.createElement("div",{ref:X,style:q.current,className:r},t);if(m.contentTemplate){var o={style:q.current,className:r,spacerStyle:G.current,contentRef:function(e){return X.current=i.getRefElement(e)},spacerRef:function(e){return _.current=i.getRefElement(e)},stickyRef:function(e){return B.current=i.getRefElement(e)},items:Te(),getItemOptions:function(e){return ze(e)},children:t,element:n,props:m,loading:N,getLoaderOptions:function(e,t){return Oe(e,t)},loadingTemplate:m.loadingTemplate,itemSize:m.itemSize,rows:N?m.loaderDisabled?V:[]:Te(),columns:m.columns&&v||h?N&&m.loaderDisabled?v?V[0]:V:m.columns.slice(v?b.cols:b,v?I.cols:I):m.columns,vertical:g,horizontal:h,both:v};return i.getJSXElement(m.contentTemplate,o)}return n}(),He=m.showSpacer?e.createElement("div",{ref:_,style:G.current,className:"p-virtualscroller-spacer"}):null;return e.createElement("div",u({ref:J,className:je,tabIndex:m.tabIndex,style:m.style},Ee,{onScroll:function(e){m.onScroll&&m.onScroll(e),m.delay?(Y.current&&clearTimeout(Y.current),se(b)&&(!N&&m.showLoader&&(we(e).isRangeChanged||m.step&&se(b))&&A(!0),Y.current=setTimeout((function(){Se(e),!N||!m.showLoader||m.lazy&&void 0!==m.loading||(A(!1),E(ie(b)))}),m.delay))):Se(e)}}),Me,He,Le)})));O.displayName="VirtualScroller";export{O as VirtualScroller};
|