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
|
@@ -143,14 +143,18 @@ var VirtualScrollerBase = {
|
|
|
143
143
|
id: null,
|
|
144
144
|
style: null,
|
|
145
145
|
className: null,
|
|
146
|
+
tabIndex: 0,
|
|
146
147
|
items: null,
|
|
147
148
|
itemSize: 0,
|
|
148
149
|
scrollHeight: null,
|
|
149
150
|
scrollWidth: null,
|
|
150
151
|
orientation: 'vertical',
|
|
152
|
+
step: 0,
|
|
151
153
|
numToleratedItems: null,
|
|
152
154
|
delay: 0,
|
|
153
155
|
resizeDelay: 10,
|
|
156
|
+
appendOnly: false,
|
|
157
|
+
inline: false,
|
|
154
158
|
lazy: false,
|
|
155
159
|
disabled: false,
|
|
156
160
|
loaderDisabled: false,
|
|
@@ -180,6 +184,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
180
184
|
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; }
|
|
181
185
|
var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
|
|
182
186
|
var props = VirtualScrollerBase.getProps(inProps);
|
|
187
|
+
var prevProps = hooks.usePrevious(inProps) || {};
|
|
183
188
|
var vertical = props.orientation === 'vertical';
|
|
184
189
|
var horizontal = props.orientation === 'horizontal';
|
|
185
190
|
var both = props.orientation === 'both';
|
|
@@ -197,25 +202,29 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
197
202
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
198
203
|
lastState = _React$useState4[0],
|
|
199
204
|
setLastState = _React$useState4[1];
|
|
200
|
-
var _React$useState5 = React__namespace.useState(
|
|
205
|
+
var _React$useState5 = React__namespace.useState(0),
|
|
206
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
207
|
+
pageState = _React$useState6[0],
|
|
208
|
+
setPageState = _React$useState6[1];
|
|
209
|
+
var _React$useState7 = React__namespace.useState(both ? {
|
|
201
210
|
rows: 0,
|
|
202
211
|
cols: 0
|
|
203
212
|
} : 0),
|
|
204
|
-
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
205
|
-
numItemsInViewportState = _React$useState6[0],
|
|
206
|
-
setNumItemsInViewportState = _React$useState6[1];
|
|
207
|
-
var _React$useState7 = React__namespace.useState(props.numToleratedItems),
|
|
208
213
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
var _React$useState9 = React__namespace.useState(props.
|
|
214
|
+
numItemsInViewportState = _React$useState8[0],
|
|
215
|
+
setNumItemsInViewportState = _React$useState8[1];
|
|
216
|
+
var _React$useState9 = React__namespace.useState(props.numToleratedItems),
|
|
212
217
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
var _React$useState11 = React__namespace.useState(
|
|
218
|
+
numToleratedItemsState = _React$useState10[0],
|
|
219
|
+
setNumToleratedItemsState = _React$useState10[1];
|
|
220
|
+
var _React$useState11 = React__namespace.useState(props.loading || false),
|
|
216
221
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
217
|
-
|
|
218
|
-
|
|
222
|
+
loadingState = _React$useState12[0],
|
|
223
|
+
setLoadingState = _React$useState12[1];
|
|
224
|
+
var _React$useState13 = React__namespace.useState([]),
|
|
225
|
+
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
226
|
+
loaderArrState = _React$useState14[0],
|
|
227
|
+
setLoaderArrState = _React$useState14[1];
|
|
219
228
|
var elementRef = React__namespace.useRef(null);
|
|
220
229
|
var _contentRef = React__namespace.useRef(null);
|
|
221
230
|
var _spacerRef = React__namespace.useRef(null);
|
|
@@ -226,14 +235,19 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
226
235
|
} : 0);
|
|
227
236
|
var scrollTimeout = React__namespace.useRef(null);
|
|
228
237
|
var resizeTimeout = React__namespace.useRef(null);
|
|
238
|
+
var contentStyle = React__namespace.useRef({});
|
|
239
|
+
var spacerStyle = React__namespace.useRef({});
|
|
229
240
|
var defaultWidth = React__namespace.useRef(null);
|
|
230
241
|
var defaultHeight = React__namespace.useRef(null);
|
|
231
|
-
var
|
|
232
|
-
var
|
|
242
|
+
var defaultContentWidth = React__namespace.useRef(null);
|
|
243
|
+
var defaultContentHeight = React__namespace.useRef(null);
|
|
244
|
+
var isItemRangeChanged = React__namespace.useRef(false);
|
|
245
|
+
var lazyLoadState = React__namespace.useRef(null);
|
|
233
246
|
var _useResizeListener = hooks.useResizeListener({
|
|
234
247
|
listener: function listener(event) {
|
|
235
248
|
return onResize();
|
|
236
|
-
}
|
|
249
|
+
},
|
|
250
|
+
when: !props.disabled
|
|
237
251
|
}),
|
|
238
252
|
_useResizeListener2 = _slicedToArray(_useResizeListener, 1),
|
|
239
253
|
bindWindowResizeListener = _useResizeListener2[0];
|
|
@@ -242,13 +256,23 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
242
256
|
type: 'orientationchange',
|
|
243
257
|
listener: function listener(event) {
|
|
244
258
|
return onResize();
|
|
245
|
-
}
|
|
259
|
+
},
|
|
260
|
+
when: !props.disabled
|
|
246
261
|
}),
|
|
247
262
|
_useEventListener2 = _slicedToArray(_useEventListener, 1),
|
|
248
263
|
bindOrientationChangeListener = _useEventListener2[0];
|
|
249
264
|
var getElementRef = function getElementRef() {
|
|
250
265
|
return elementRef;
|
|
251
266
|
};
|
|
267
|
+
var getPageByFirst = function getPageByFirst(first) {
|
|
268
|
+
return Math.floor((first + numToleratedItemsState * 4) / (props.step || 1));
|
|
269
|
+
};
|
|
270
|
+
var setContentElement = function setContentElement(element) {
|
|
271
|
+
_contentRef.current = element || _contentRef.current || utils.DomHandler.findSingle(elementRef.current, '.p-virtualscroller-content');
|
|
272
|
+
};
|
|
273
|
+
var isPageChanged = function isPageChanged(first) {
|
|
274
|
+
return props.step ? pageState !== getPageByFirst(first) : true;
|
|
275
|
+
};
|
|
252
276
|
var scrollTo = function scrollTo(options) {
|
|
253
277
|
lastScrollPos.current = both ? {
|
|
254
278
|
top: 0,
|
|
@@ -260,13 +284,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
260
284
|
var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
|
261
285
|
var _calculateNumItems = calculateNumItems(),
|
|
262
286
|
numToleratedItems = _calculateNumItems.numToleratedItems;
|
|
287
|
+
var contentPos = getContentPosition();
|
|
263
288
|
var calculateFirst = function calculateFirst() {
|
|
264
289
|
var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
265
290
|
var _numT = arguments.length > 1 ? arguments[1] : undefined;
|
|
266
291
|
return _index <= _numT ? 0 : _index;
|
|
267
292
|
};
|
|
268
|
-
var calculateCoord = function calculateCoord(_first, _size) {
|
|
269
|
-
return _first * _size;
|
|
293
|
+
var calculateCoord = function calculateCoord(_first, _size, _cpos) {
|
|
294
|
+
return _first * _size + _cpos;
|
|
270
295
|
};
|
|
271
296
|
var scrollToItem = function scrollToItem() {
|
|
272
297
|
var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
@@ -277,20 +302,25 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
277
302
|
behavior: behavior
|
|
278
303
|
});
|
|
279
304
|
};
|
|
305
|
+
var newFirst = both ? {
|
|
306
|
+
rows: 0,
|
|
307
|
+
cols: 0
|
|
308
|
+
} : 0;
|
|
309
|
+
var isRangeChanged = false;
|
|
280
310
|
if (both) {
|
|
281
|
-
|
|
311
|
+
newFirst = {
|
|
282
312
|
rows: calculateFirst(index[0], numToleratedItems[0]),
|
|
283
313
|
cols: calculateFirst(index[1], numToleratedItems[1])
|
|
284
314
|
};
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
315
|
+
scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, props.itemSize[0], contentPos.top));
|
|
316
|
+
isRangeChanged = firstState.rows !== newFirst.rows || firstState.cols !== newFirst.cols;
|
|
288
317
|
} else {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
318
|
+
newFirst = calculateFirst(index, numToleratedItems);
|
|
319
|
+
horizontal ? scrollToItem(calculateCoord(newFirst, props.itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(newFirst, props.itemSize, contentPos.top));
|
|
320
|
+
isRangeChanged = firstState !== newFirst;
|
|
293
321
|
}
|
|
322
|
+
isItemRangeChanged.current = isRangeChanged;
|
|
323
|
+
setFirstState(newFirst);
|
|
294
324
|
};
|
|
295
325
|
var scrollInView = function scrollInView(index, to) {
|
|
296
326
|
var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';
|
|
@@ -407,7 +437,8 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
407
437
|
var _calculateNumItems2 = calculateNumItems(),
|
|
408
438
|
numItemsInViewport = _calculateNumItems2.numItemsInViewport,
|
|
409
439
|
numToleratedItems = _calculateNumItems2.numToleratedItems;
|
|
410
|
-
var calculateLast = function calculateLast(_first, _num, _numT
|
|
440
|
+
var calculateLast = function calculateLast(_first, _num, _numT) {
|
|
441
|
+
var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
411
442
|
return getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
|
|
412
443
|
};
|
|
413
444
|
var last = both ? {
|
|
@@ -429,9 +460,15 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
429
460
|
}));
|
|
430
461
|
}
|
|
431
462
|
if (props.lazy) {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
463
|
+
Promise.resolve().then(function () {
|
|
464
|
+
lazyLoadState.current = {
|
|
465
|
+
first: props.step ? both ? {
|
|
466
|
+
rows: 0,
|
|
467
|
+
cols: firstState.cols
|
|
468
|
+
} : 0 : firstState,
|
|
469
|
+
last: Math.min(props.step ? props.step : last, props.items.length)
|
|
470
|
+
};
|
|
471
|
+
props.onLazyLoad && props.onLazyLoad(lazyLoadState.current);
|
|
435
472
|
});
|
|
436
473
|
}
|
|
437
474
|
};
|
|
@@ -440,12 +477,21 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
440
477
|
Promise.resolve().then(function () {
|
|
441
478
|
if (_contentRef.current) {
|
|
442
479
|
_contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
480
|
+
_contentRef.current.style.position = 'relative';
|
|
481
|
+
elementRef.current.style.contain = 'none';
|
|
482
|
+
|
|
483
|
+
/*const [contentWidth, contentHeight] = [DomHandler.getWidth(contentRef.current), DomHandler.getHeight(contentRef.current)];
|
|
484
|
+
contentWidth !== defaultContentWidth.current && (elementRef.current.style.width = '');
|
|
485
|
+
contentHeight !== defaultContentHeight.current && (elementRef.current.style.height = '');*/
|
|
486
|
+
|
|
487
|
+
var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
|
|
488
|
+
width = _ref[0],
|
|
489
|
+
height = _ref[1];
|
|
490
|
+
(both || horizontal) && (elementRef.current.style.width = (width < defaultWidth.current ? width : props.scrollWidth || defaultWidth.current) + 'px');
|
|
491
|
+
(both || vertical) && (elementRef.current.style.height = (height < defaultHeight.current ? height : props.scrollHeight || defaultHeight.current) + 'px');
|
|
448
492
|
_contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';
|
|
493
|
+
_contentRef.current.style.position = '';
|
|
494
|
+
elementRef.current.style.contain = '';
|
|
449
495
|
}
|
|
450
496
|
});
|
|
451
497
|
}
|
|
@@ -458,10 +504,10 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
458
504
|
var getContentPosition = function getContentPosition() {
|
|
459
505
|
if (_contentRef.current) {
|
|
460
506
|
var style = getComputedStyle(_contentRef.current);
|
|
461
|
-
var left =
|
|
462
|
-
var right =
|
|
463
|
-
var top =
|
|
464
|
-
var bottom =
|
|
507
|
+
var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
|
|
508
|
+
var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
|
|
509
|
+
var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
|
|
510
|
+
var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
|
|
465
511
|
return {
|
|
466
512
|
left: left,
|
|
467
513
|
right: right,
|
|
@@ -498,11 +544,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
498
544
|
};
|
|
499
545
|
var setSpacerSize = function setSpacerSize() {
|
|
500
546
|
var items = props.items;
|
|
501
|
-
if (
|
|
547
|
+
if (items) {
|
|
502
548
|
var contentPos = getContentPosition();
|
|
503
549
|
var setProp = function setProp(_name, _value, _size) {
|
|
504
550
|
var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
505
|
-
return
|
|
551
|
+
return spacerStyle.current = _objectSpread(_objectSpread({}, spacerStyle.current), _defineProperty({}, "".concat(_name), (_value || []).length * _size + _cpos + 'px'));
|
|
506
552
|
};
|
|
507
553
|
if (both) {
|
|
508
554
|
setProp('height', items, props.itemSize[0], contentPos.y);
|
|
@@ -513,7 +559,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
513
559
|
}
|
|
514
560
|
};
|
|
515
561
|
var setContentPosition = function setContentPosition(pos) {
|
|
516
|
-
if (_contentRef.current) {
|
|
562
|
+
if (_contentRef.current && !props.appendOnly) {
|
|
517
563
|
var first = pos ? pos.first : firstState;
|
|
518
564
|
var calculateTranslateVal = function calculateTranslateVal(_first, _size) {
|
|
519
565
|
return _first * _size;
|
|
@@ -522,7 +568,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
522
568
|
var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
523
569
|
var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
524
570
|
_stickyRef.current && (_stickyRef.current.style.top = "-".concat(_y, "px"));
|
|
525
|
-
|
|
571
|
+
contentStyle.current = _objectSpread(_objectSpread({}, contentStyle.current), {
|
|
572
|
+
transform: "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)")
|
|
573
|
+
});
|
|
526
574
|
};
|
|
527
575
|
if (both) {
|
|
528
576
|
setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));
|
|
@@ -566,36 +614,40 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
566
614
|
if (both) {
|
|
567
615
|
var isScrollDown = lastScrollPos.current.top <= scrollTop;
|
|
568
616
|
var isScrollRight = lastScrollPos.current.left <= scrollLeft;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
617
|
+
if (!props.appendOnly || props.appendOnly && (isScrollDown || isScrollRight)) {
|
|
618
|
+
var currentIndex = {
|
|
619
|
+
rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
|
|
620
|
+
cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
|
|
621
|
+
};
|
|
622
|
+
var triggerIndex = {
|
|
623
|
+
rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
|
|
624
|
+
cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
|
|
625
|
+
};
|
|
626
|
+
newFirst = {
|
|
627
|
+
rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
|
|
628
|
+
cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
|
|
629
|
+
};
|
|
630
|
+
newLast = {
|
|
631
|
+
rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
|
|
632
|
+
cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
|
|
633
|
+
};
|
|
634
|
+
isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols || isItemRangeChanged.current;
|
|
635
|
+
newScrollPos = {
|
|
636
|
+
top: scrollTop,
|
|
637
|
+
left: scrollLeft
|
|
638
|
+
};
|
|
639
|
+
}
|
|
590
640
|
} else {
|
|
591
641
|
var scrollPos = horizontal ? scrollLeft : scrollTop;
|
|
592
642
|
var isScrollDownOrRight = lastScrollPos.current <= scrollPos;
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
643
|
+
if (!props.appendOnly || props.appendOnly && isScrollDownOrRight) {
|
|
644
|
+
var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
|
|
645
|
+
var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
|
|
646
|
+
newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
|
|
647
|
+
newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
|
|
648
|
+
isRangeChanged = newFirst !== firstState || newLast !== lastState || isItemRangeChanged.current;
|
|
649
|
+
newScrollPos = scrollPos;
|
|
650
|
+
}
|
|
599
651
|
}
|
|
600
652
|
return {
|
|
601
653
|
first: newFirst,
|
|
@@ -620,8 +672,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
620
672
|
setLastState(last);
|
|
621
673
|
lastScrollPos.current = scrollPos;
|
|
622
674
|
props.onScrollIndexChange && props.onScrollIndexChange(newState);
|
|
623
|
-
if (props.lazy) {
|
|
624
|
-
|
|
675
|
+
if (props.lazy && isPageChanged(first)) {
|
|
676
|
+
var newLazyLoadState = {
|
|
677
|
+
first: props.step ? Math.min(getPageByFirst(first) * props.step, props.items.length - props.step) : first,
|
|
678
|
+
last: Math.min(props.step ? (getPageByFirst(first) + 1) * props.step : last, props.items.length)
|
|
679
|
+
};
|
|
680
|
+
var isLazyStateChanged = !lazyLoadState.current || lazyLoadState.current.first !== newLazyLoadState.first || lazyLoadState.current.last !== newLazyLoadState.last;
|
|
681
|
+
isLazyStateChanged && props.onLazyLoad && props.onLazyLoad(newLazyLoadState);
|
|
682
|
+
lazyLoadState.current = newLazyLoadState;
|
|
625
683
|
}
|
|
626
684
|
}
|
|
627
685
|
};
|
|
@@ -631,17 +689,21 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
631
689
|
if (scrollTimeout.current) {
|
|
632
690
|
clearTimeout(scrollTimeout.current);
|
|
633
691
|
}
|
|
634
|
-
if (
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
onScrollChange(event);
|
|
641
|
-
if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
|
|
642
|
-
setLoadingState(false);
|
|
692
|
+
if (isPageChanged(firstState)) {
|
|
693
|
+
if (!loadingState && props.showLoader) {
|
|
694
|
+
var _onScrollPositionChan2 = onScrollPositionChange(event),
|
|
695
|
+
isRangeChanged = _onScrollPositionChan2.isRangeChanged;
|
|
696
|
+
var changed = isRangeChanged || (props.step ? isPageChanged(firstState) : false);
|
|
697
|
+
changed && setLoadingState(true);
|
|
643
698
|
}
|
|
644
|
-
|
|
699
|
+
scrollTimeout.current = setTimeout(function () {
|
|
700
|
+
onScrollChange(event);
|
|
701
|
+
if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
|
|
702
|
+
setLoadingState(false);
|
|
703
|
+
setPageState(getPageByFirst(firstState));
|
|
704
|
+
}
|
|
705
|
+
}, props.delay);
|
|
706
|
+
}
|
|
645
707
|
} else {
|
|
646
708
|
onScrollChange(event);
|
|
647
709
|
}
|
|
@@ -652,9 +714,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
652
714
|
}
|
|
653
715
|
resizeTimeout.current = setTimeout(function () {
|
|
654
716
|
if (elementRef.current) {
|
|
655
|
-
var
|
|
656
|
-
width =
|
|
657
|
-
height =
|
|
717
|
+
var _ref2 = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
|
|
718
|
+
width = _ref2[0],
|
|
719
|
+
height = _ref2[1];
|
|
658
720
|
var isDiffWidth = width !== defaultWidth.current,
|
|
659
721
|
isDiffHeight = height !== defaultHeight.current;
|
|
660
722
|
var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;
|
|
@@ -662,6 +724,8 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
662
724
|
setNumToleratedItemsState(props.numToleratedItems);
|
|
663
725
|
defaultWidth.current = width;
|
|
664
726
|
defaultHeight.current = height;
|
|
727
|
+
defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
|
|
728
|
+
defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
|
|
665
729
|
}
|
|
666
730
|
}
|
|
667
731
|
}, props.resizeDelay);
|
|
@@ -694,12 +758,24 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
694
758
|
var loadedItems = function loadedItems() {
|
|
695
759
|
var items = props.items;
|
|
696
760
|
if (items && !loadingState) {
|
|
697
|
-
if (both) return items.slice(firstState.rows, lastState.rows).map(function (item) {
|
|
698
|
-
return props.columns ? item : item.slice(firstState.cols, lastState.cols);
|
|
699
|
-
});else if (horizontal && props.columns) return items;else return items.slice(firstState, lastState);
|
|
761
|
+
if (both) return items.slice(props.appendOnly ? 0 : firstState.rows, lastState.rows).map(function (item) {
|
|
762
|
+
return props.columns ? item : item.slice(props.appendOnly ? 0 : firstState.cols, lastState.cols);
|
|
763
|
+
});else if (horizontal && props.columns) return items;else return items.slice(props.appendOnly ? 0 : firstState, lastState);
|
|
700
764
|
}
|
|
701
765
|
return [];
|
|
702
766
|
};
|
|
767
|
+
var viewInit = function viewInit() {
|
|
768
|
+
if (elementRef.current && utils.DomHandler.isVisible(elementRef.current)) {
|
|
769
|
+
setContentElement(_contentRef.current);
|
|
770
|
+
init();
|
|
771
|
+
bindWindowResizeListener();
|
|
772
|
+
bindOrientationChangeListener();
|
|
773
|
+
defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
|
|
774
|
+
defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
|
|
775
|
+
defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
|
|
776
|
+
defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
|
|
777
|
+
}
|
|
778
|
+
};
|
|
703
779
|
var init = function init() {
|
|
704
780
|
if (!props.disabled) {
|
|
705
781
|
setSize();
|
|
@@ -708,17 +784,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
708
784
|
}
|
|
709
785
|
};
|
|
710
786
|
hooks.useMountEffect(function () {
|
|
711
|
-
|
|
712
|
-
init();
|
|
713
|
-
bindWindowResizeListener();
|
|
714
|
-
bindOrientationChangeListener();
|
|
715
|
-
defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
|
|
716
|
-
defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
|
|
717
|
-
}
|
|
787
|
+
viewInit();
|
|
718
788
|
});
|
|
719
789
|
hooks.useUpdateEffect(function () {
|
|
720
790
|
init();
|
|
721
|
-
}, [props.itemSize, props.scrollHeight]);
|
|
791
|
+
}, [props.itemSize, props.scrollHeight, props.scrollWidth]);
|
|
722
792
|
hooks.useUpdateEffect(function () {
|
|
723
793
|
if (props.numToleratedItems !== numToleratedItemsState) {
|
|
724
794
|
setNumToleratedItemsState(props.numToleratedItems);
|
|
@@ -730,11 +800,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
730
800
|
}
|
|
731
801
|
}, [numToleratedItemsState]);
|
|
732
802
|
hooks.useUpdateEffect(function () {
|
|
733
|
-
if (!
|
|
803
|
+
if (!prevProps.items || prevProps.items.length !== (props.items || []).length) {
|
|
734
804
|
init();
|
|
735
805
|
}
|
|
736
806
|
var loading = loadingState;
|
|
737
|
-
if (props.lazy &&
|
|
807
|
+
if (props.lazy && prevProps.loading !== props.loading && props.loading !== loadingState) {
|
|
738
808
|
setLoadingState(props.loading);
|
|
739
809
|
loading = props.loading;
|
|
740
810
|
}
|
|
@@ -796,6 +866,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
796
866
|
if (props.showSpacer) {
|
|
797
867
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
798
868
|
ref: _spacerRef,
|
|
869
|
+
style: spacerStyle.current,
|
|
799
870
|
className: "p-virtualscroller-spacer"
|
|
800
871
|
});
|
|
801
872
|
}
|
|
@@ -819,11 +890,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
819
890
|
});
|
|
820
891
|
var content = /*#__PURE__*/React__namespace.createElement("div", {
|
|
821
892
|
ref: _contentRef,
|
|
893
|
+
style: contentStyle.current,
|
|
822
894
|
className: className
|
|
823
895
|
}, items);
|
|
824
896
|
if (props.contentTemplate) {
|
|
825
897
|
var defaultOptions = {
|
|
898
|
+
style: contentStyle.current,
|
|
826
899
|
className: className,
|
|
900
|
+
spacerStyle: spacerStyle.current,
|
|
827
901
|
contentRef: function contentRef(el) {
|
|
828
902
|
return _contentRef.current = utils.ObjectUtils.getRefElement(el);
|
|
829
903
|
},
|
|
@@ -866,10 +940,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
866
940
|
} else {
|
|
867
941
|
var otherProps = VirtualScrollerBase.getOtherProps(props);
|
|
868
942
|
var className = utils.classNames('p-virtualscroller', {
|
|
869
|
-
'p-
|
|
870
|
-
'p-virtualscroller-both': both,
|
|
871
|
-
'p-virtualscroller-horizontal': horizontal
|
|
872
|
-
'p-horizontal-scroll': horizontal
|
|
943
|
+
'p-virtualscroller-inline': props.inline,
|
|
944
|
+
'p-virtualscroller-both p-both-scroll': both,
|
|
945
|
+
'p-virtualscroller-horizontal p-horizontal-scroll': horizontal
|
|
873
946
|
}, props.className);
|
|
874
947
|
var loader = createLoader();
|
|
875
948
|
var _content = createContent();
|
|
@@ -877,7 +950,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
|
|
|
877
950
|
return /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
878
951
|
ref: elementRef,
|
|
879
952
|
className: className,
|
|
880
|
-
tabIndex:
|
|
953
|
+
tabIndex: props.tabIndex,
|
|
881
954
|
style: props.style
|
|
882
955
|
}, otherProps, {
|
|
883
956
|
onScroll: onScroll
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),r=require("primereact/utils");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e);function l(){return l=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},l.apply(this,arguments)}function i(e){return i="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},i(e)}function s(e,t){if("object"!==i(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=s(e,"string");return"symbol"===i(t)?t:String(t)}function a(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){if(Array.isArray(e))return e}function f(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 m(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 d(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}function p(){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 g(e,t){return u(e)||f(e,t)||d(e,t)||p()}var h={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 r.ObjectUtils.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,h.defaultProps)}};function v(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 y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w=o.memo(o.forwardRef((function(e,n){var i=h.getProps(e),s="vertical"===i.orientation,c="horizontal"===i.orientation,a="both"===i.orientation,u=g(o.useState(a?{rows:0,cols:0}:0),2),f=u[0],m=u[1],d=g(o.useState(a?{rows:0,cols:0}:0),2),p=d[0],v=d[1],w=g(o.useState(a?{rows:0,cols:0}:0),2),b=w[0],S=w[1],z=g(o.useState(i.numToleratedItems),2),O=z[0],j=z[1],T=g(o.useState(i.loading||!1),2),I=T[0],E=T[1],P=g(o.useState([]),2),x=P[0],R=P[1],L=o.useRef(null),D=o.useRef(null),H=o.useRef(null),U=o.useRef(null),M=o.useRef(a?{top:0,left:0}:0),N=o.useRef(null),W=o.useRef(null),A=o.useRef(null),C=o.useRef(null),k=t.usePrevious(i.items),V=t.usePrevious(i.loading),_=g(t.useResizeListener({listener:function(e){return oe()}}),1)[0],J=g(t.useEventListener({target:"window",type:"orientationchange",listener:function(e){return oe()}}),1)[0],X=function(){return L},q=function(e){M.current=a?{top:0,left:0}:0,L.current&&L.current.scrollTo(e)},F=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=$(),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},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 q({left:e,top:r,behavior:t})};if(a){var u={rows:o(e[0],n[0]),cols:o(e[1],n[1])};u.rows===f.rows&&u.cols===f.cols||s(l(u.cols,i.itemSize[1]),l(u.rows,i.itemSize[0]))}else{var m=o(e,n);m!==f&&(c?s(l(m,i.itemSize),0):s(0,l(m,i.itemSize)))}},B=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=Y(),o=n.first,l=n.viewport,s=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 q({left:e,top:t,behavior:r})},u="to-start"===t,f="to-end"===t;if(u){if(a)l.first.rows-o.rows>e[0]?s(l.first.cols*i.itemSize[1],(l.first.rows-1)*i.itemSize[0]):l.first.cols-o.cols>e[1]&&s((l.first.cols-1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.first-o>e){var m=(l.first-1)*i.itemSize;c?s(m,0):s(0,m)}}else if(f)if(a)l.last.rows-o.rows<=e[0]+1?s(l.first.cols*i.itemSize[1],(l.first.rows+1)*i.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&s((l.first.cols+1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.last-o<=e+1){var d=(l.first+1)*i.itemSize;c?s(d,0):s(0,d)}}else F(e,r)},Y=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=f,r=0;if(L.current){var n=L.current,o=n.scrollTop,l=n.scrollLeft;if(a)r={rows:(t={rows:e(o,i.itemSize[0]),cols:e(l,i.itemSize[1])}).rows+b.rows,cols:t.cols+b.cols};else r=(t=e(c?l:o,i.itemSize))+b}return{first:f,last:p,viewport:{first:t,last:r}}},$=function(){var e=Q(),t=L.current?L.current.offsetWidth-e.left:0,r=L.current?L.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=a?{rows:n(r,i.itemSize[0]),cols:n(t,i.itemSize[1])}:n(c?t:r,i.itemSize);return{numItemsInViewport:l,numToleratedItems:O||(a?[o(l.rows),o(l.cols)]:o(l))}},G=function(e){i.autoSize&&!e&&Promise.resolve().then((function(){if(D.current){D.current.style.minHeight=D.current.style.minWidth="auto";var e=D.current,t=e.offsetWidth,r=e.offsetHeight;(a||c)&&(L.current.style.width=(t<A.current?t:A.current)+"px"),(a||s)&&(L.current.style.height=(r<C.current?r:C.current)+"px"),D.current.style.minHeight=D.current.style.minWidth=""}}))},K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return i.items?Math.min(t?(i.columns||i.items[0]).length:i.items.length,e):0},Q=function(){if(D.current){var e=getComputedStyle(D.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}},Z=function(){if(L.current){var e=L.current.parentElement,t=i.scrollWidth||"".concat(L.current.offsetWidth||e.offsetWidth,"px"),r=i.scrollHeight||"".concat(L.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return L.current.style[e]=t};a||c?(n("height",r),n("width",t)):n("height",r)}},ee=function(){var e=i.items;if(H.current&&e){var t=Q(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return H.current.style[e]=(t||[]).length*r+n+"px"};a?(r("height",e,i.itemSize[0],t.y),r("width",i.columns||e[1],i.itemSize[1],t.x)):c?r("width",i.columns||e,i.itemSize,t.x):r("height",e,i.itemSize,t.y)}},te=function(e){if(D.current){var t=e?e.first:f,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;U.current&&(U.current.style.top="-".concat(t,"px")),D.current.style.transform="translate3d(".concat(e,"px, ").concat(t,"px, 0)")};if(a)n(r(t.cols,i.itemSize[1]),r(t.rows,i.itemSize[0]));else{var o=r(t,i.itemSize);c?n(o,0):n(0,o)}}},re=function(e){var t=e.target,r=Q(),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},s=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)},u=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),K(i,l)},m=n(t.scrollTop,r.top),d=n(t.scrollLeft,r.left),g=a?{rows:0,cols:0}:0,h=p,v=!1,y=M.current;if(a){var w=M.current.top<=m,S=M.current.left<=d,z={rows:o(m,i.itemSize[0]),cols:o(d,i.itemSize[1])},j={rows:l(z.rows,f.rows,p.rows,b.rows,O[0],w),cols:l(z.cols,f.cols,p.cols,b.cols,O[1],S)};g={rows:s(z.rows,j.rows,f.rows,0,0,O[0],w),cols:s(z.cols,j.cols,f.cols,0,0,O[1],S)},h={rows:u(z.rows,g.rows,0,b.rows,O[0]),cols:u(z.cols,g.cols,0,b.cols,O[1],!0)},v=g.rows!==f.rows||h.rows!==p.rows||g.cols!==f.cols||h.cols!==p.cols,y={top:m,left:d}}else{var T=c?d:m,I=M.current<=T,E=o(T,i.itemSize);h=u(E,g=s(E,l(E,f,p,b,O,I),f,0,0,O,I),0,b,O),v=g!==f||h!==p,y=T}return{first:g,last:h,isRangeChanged:v,scrollPos:y}},ne=function(e){var t=re(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};te(l),m(r),v(n),M.current=o,i.onScrollIndexChange&&i.onScrollIndexChange(l),i.lazy&&i.onLazyLoad&&i.onLazyLoad(l)}},oe=function(){W.current&&clearTimeout(W.current),W.current=setTimeout((function(){if(L.current){var e=[r.DomHandler.getWidth(L.current),r.DomHandler.getHeight(L.current)],t=e[0],n=e[1],o=t!==A.current,l=n!==C.current;(a?o||l:c?o:!!s&&l)&&(j(i.numToleratedItems),A.current=t,C.current=n)}}),i.resizeDelay)},le=function(e){var t=(i.items||[]).length,r=a?f.rows+e:f+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:i}},ie=function(e,t){var r=x.length;return y({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:i},t)},se=function(){var e=i.items;return e&&!I?a?e.slice(f.rows,p.rows).map((function(e){return i.columns?e:e.slice(f.cols,p.cols)})):c&&i.columns?e:e.slice(f,p):[]},ce=function(){var e,t,r,n,o;i.disabled||(Z(),e=$(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r,n){return K(e+t+(e<r?2:3)*r,n)},o=a?{rows:n(f.rows,t.rows,r[0]),cols:n(f.cols,t.cols,r[1],!0)}:n(f,t,r),S(t),j(r),v(o),i.showLoader&&R(a?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),i.lazy&&i.onLazyLoad&&i.onLazyLoad({first:f,last:o}),ee())};t.useMountEffect((function(){i.disabled||(ce(),_(),J(),A.current=r.DomHandler.getWidth(L.current),C.current=r.DomHandler.getHeight(L.current))})),t.useUpdateEffect((function(){ce()}),[i.itemSize,i.scrollHeight]),t.useUpdateEffect((function(){i.numToleratedItems!==O&&j(i.numToleratedItems)}),[i.numToleratedItems]),t.useUpdateEffect((function(){i.numToleratedItems===O&&ce()}),[O]),t.useUpdateEffect((function(){k&&k.length===(i.items||[]).length||ce();var e=I;i.lazy&&V!==i.loading&&i.loading!==I&&(E(i.loading),e=i.loading),G(e)})),t.useUpdateEffect((function(){M.current=a?{top:0,left:0}:0}),[i.orientation]),o.useImperativeHandle(n,(function(){return{props:i,getElementRef:X,scrollTo:q,scrollToIndex:F,scrollInView:B,getRenderedRange:Y}}));var ae=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ie(e,t),l=r.ObjectUtils.getJSXElement(i.loadingTemplate,n);return o.createElement(o.Fragment,{key:e},l)},ue=function(e,t){var n=le(t),l=r.ObjectUtils.getJSXElement(i.itemTemplate,e,n);return o.createElement(o.Fragment,{key:n.index},l)};if(i.disabled){var fe=r.ObjectUtils.getJSXElement(i.contentTemplate,{items:i.items,rows:i.items,columns:i.columns});return o.createElement(o.Fragment,null,i.children,fe)}var me=h.getOtherProps(i),de=r.classNames("p-virtualscroller",{"p-both-scroll":a,"p-virtualscroller-both":a,"p-virtualscroller-horizontal":c,"p-horizontal-scroll":c},i.className),pe=function(){if(!i.loaderDisabled&&i.showLoader&&I){var e=r.classNames("p-virtualscroller-loader",{"p-component-overlay":!i.loadingTemplate}),t=o.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return i.loadingTemplate?t=x.map((function(e,t){return ae(t,a&&{numCols:b.cols})})):i.loaderIconTemplate&&(t=r.ObjectUtils.getJSXElement(i.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:t,props:i})),o.createElement("div",{className:e},t)}return null}(),ge=function(){var e=se().map(ue),t=r.classNames("p-virtualscroller-content",{"p-virtualscroller-loading":I}),n=o.createElement("div",{ref:D,className:t},e);if(i.contentTemplate){var l={className:t,contentRef:function(e){return D.current=r.ObjectUtils.getRefElement(e)},spacerRef:function(e){return H.current=r.ObjectUtils.getRefElement(e)},stickyRef:function(e){return U.current=r.ObjectUtils.getRefElement(e)},items:se(),getItemOptions:function(e){return le(e)},children:e,element:n,props:i,loading:I,getLoaderOptions:function(e,t){return ie(e,t)},loadingTemplate:i.loadingTemplate,itemSize:i.itemSize,rows:I?i.loaderDisabled?x:[]:se(),columns:i.columns&&a||c?I&&i.loaderDisabled?a?x[0]:x:i.columns.slice(a?f.cols:f,a?p.cols:p):i.columns,vertical:s,horizontal:c,both:a};return r.ObjectUtils.getJSXElement(i.contentTemplate,l)}return n}(),he=i.showSpacer?o.createElement("div",{ref:H,className:"p-virtualscroller-spacer"}):null;return o.createElement("div",l({ref:L,className:de,tabIndex:0,style:i.style},me,{onScroll:function(e){i.onScroll&&i.onScroll(e),i.delay?(N.current&&clearTimeout(N.current),!I&&i.showLoader&&re(e).isRangeChanged&&E(!0),N.current=setTimeout((function(){ne(e),!I||!i.showLoader||i.lazy&&void 0!==i.loading||E(!1)}),i.delay)):ne(e)}}),ge,he,pe)})));w.displayName="VirtualScroller",exports.VirtualScroller=w;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),r=require("primereact/utils");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e);function l(){return l=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},l.apply(this,arguments)}function i(e){return i="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},i(e)}function s(e,t){if("object"!==i(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=s(e,"string");return"symbol"===i(t)?t:String(t)}function u(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Array.isArray(e))return e}function f(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 m(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 p(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}function d(){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 g(e,t){return a(e)||f(e,t)||p(e,t)||d()}var h={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 r.ObjectUtils.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,h.defaultProps)}};function v(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 y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){u(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w=o.memo(o.forwardRef((function(e,n){var i=h.getProps(e),s=t.usePrevious(e)||{},c="vertical"===i.orientation,a="horizontal"===i.orientation,f="both"===i.orientation,m=g(o.useState(f?{rows:0,cols:0}:0),2),p=m[0],d=m[1],v=g(o.useState(f?{rows:0,cols:0}:0),2),w=v[0],b=v[1],S=g(o.useState(0),2),O=S[0],z=S[1],j=g(o.useState(f?{rows:0,cols:0}:0),2),T=j[0],E=j[1],x=g(o.useState(i.numToleratedItems),2),I=x[0],P=x[1],R=g(o.useState(i.loading||!1),2),H=R[0],D=R[1],L=g(o.useState([]),2),M=L[0],U=L[1],N=o.useRef(null),W=o.useRef(null),F=o.useRef(null),A=o.useRef(null),C=o.useRef(f?{top:0,left:0}:0),V=o.useRef(null),k=o.useRef(null),_=o.useRef({}),J=o.useRef({}),X=o.useRef(null),q=o.useRef(null),B=o.useRef(null),Y=o.useRef(null),$=o.useRef(!1),G=o.useRef(null),K=g(t.useResizeListener({listener:function(e){return ge()},when:!i.disabled}),1)[0],Q=g(t.useEventListener({target:"window",type:"orientationchange",listener:function(e){return ge()},when:!i.disabled}),1)[0],Z=function(){return N},ee=function(e){return Math.floor((e+4*I)/(i.step||1))},te=function(e){return!i.step||O!==ee(e)},re=function(e){C.current=f?{top:0,left:0}:0,N.current&&N.current.scrollTo(e)},ne=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=ie(),n=r.numToleratedItems,o=ue(),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},s=function(e,t,r){return e*t+r},c=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 re({left:e,top:r,behavior:t})},u=f?{rows:0,cols:0}:0,m=!1;f?(c(s((u={rows:l(e[0],n[0]),cols:l(e[1],n[1])}).cols,i.itemSize[1],o.left),s(u.rows,i.itemSize[0],o.top)),m=p.rows!==u.rows||p.cols!==u.cols):(u=l(e,n),a?c(s(u,i.itemSize,o.left),0):c(0,s(u,i.itemSize,o.top)),m=p!==u),$.current=m,d(u)},oe=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=le(),o=n.first,l=n.viewport,s=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 re({left:e,top:t,behavior:r})},c="to-start"===t,u="to-end"===t;if(c){if(f)l.first.rows-o.rows>e[0]?s(l.first.cols*i.itemSize[1],(l.first.rows-1)*i.itemSize[0]):l.first.cols-o.cols>e[1]&&s((l.first.cols-1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.first-o>e){var m=(l.first-1)*i.itemSize;a?s(m,0):s(0,m)}}else if(u)if(f)l.last.rows-o.rows<=e[0]+1?s(l.first.cols*i.itemSize[1],(l.first.rows+1)*i.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&s((l.first.cols+1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.last-o<=e+1){var p=(l.first+1)*i.itemSize;a?s(p,0):s(0,p)}}else ne(e,r)},le=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=p,r=0;if(N.current){var n=N.current,o=n.scrollTop,l=n.scrollLeft;if(f)r={rows:(t={rows:e(o,i.itemSize[0]),cols:e(l,i.itemSize[1])}).rows+T.rows,cols:t.cols+T.cols};else r=(t=e(a?l:o,i.itemSize))+T}return{first:p,last:w,viewport:{first:t,last:r}}},ie=function(){var e=ue(),t=N.current?N.current.offsetWidth-e.left:0,r=N.current?N.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=f?{rows:n(r,i.itemSize[0]),cols:n(t,i.itemSize[1])}:n(a?t:r,i.itemSize);return{numItemsInViewport:l,numToleratedItems:I||(f?[o(l.rows),o(l.cols)]:o(l))}},se=function(e){i.autoSize&&!e&&Promise.resolve().then((function(){if(W.current){W.current.style.minHeight=W.current.style.minWidth="auto",W.current.style.position="relative",N.current.style.contain="none";var e=[r.DomHandler.getWidth(N.current),r.DomHandler.getHeight(N.current)],t=e[0],n=e[1];(f||a)&&(N.current.style.width=(t<X.current?t:i.scrollWidth||X.current)+"px"),(f||c)&&(N.current.style.height=(n<q.current?n:i.scrollHeight||q.current)+"px"),W.current.style.minHeight=W.current.style.minWidth="",W.current.style.position="",N.current.style.contain=""}}))},ce=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return i.items?Math.min(t?(i.columns||i.items[0]).length:i.items.length,e):0},ue=function(){if(W.current){var e=getComputedStyle(W.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}},ae=function(){if(N.current){var e=N.current.parentElement,t=i.scrollWidth||"".concat(N.current.offsetWidth||e.offsetWidth,"px"),r=i.scrollHeight||"".concat(N.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return N.current.style[e]=t};f||a?(n("height",r),n("width",t)):n("height",r)}},fe=function(){var e=i.items;if(e){var t=ue(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return J.current=y(y({},J.current),u({},"".concat(e),(t||[]).length*r+n+"px"))};f?(r("height",e,i.itemSize[0],t.y),r("width",i.columns||e[1],i.itemSize[1],t.x)):a?r("width",i.columns||e,i.itemSize,t.x):r("height",e,i.itemSize,t.y)}},me=function(e){if(W.current&&!i.appendOnly){var t=e?e.first:p,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;A.current&&(A.current.style.top="-".concat(t,"px")),_.current=y(y({},_.current),{transform:"translate3d(".concat(e,"px, ").concat(t,"px, 0)")})};if(f)n(r(t.cols,i.itemSize[1]),r(t.rows,i.itemSize[0]));else{var o=r(t,i.itemSize);a?n(o,0):n(0,o)}}},pe=function(e){var t=e.target,r=ue(),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},s=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)},c=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),ce(i,l)},u=n(t.scrollTop,r.top),m=n(t.scrollLeft,r.left),d=f?{rows:0,cols:0}:0,g=w,h=!1,v=C.current;if(f){var y=C.current.top<=u,b=C.current.left<=m;if(!i.appendOnly||i.appendOnly&&(y||b)){var S={rows:o(u,i.itemSize[0]),cols:o(m,i.itemSize[1])},O={rows:l(S.rows,p.rows,w.rows,T.rows,I[0],y),cols:l(S.cols,p.cols,w.cols,T.cols,I[1],b)};d={rows:s(S.rows,O.rows,p.rows,0,0,I[0],y),cols:s(S.cols,O.cols,p.cols,0,0,I[1],b)},g={rows:c(S.rows,d.rows,0,T.rows,I[0]),cols:c(S.cols,d.cols,0,T.cols,I[1],!0)},h=d.rows!==p.rows||g.rows!==w.rows||d.cols!==p.cols||g.cols!==w.cols||$.current,v={top:u,left:m}}}else{var z=a?m:u,j=C.current<=z;if(!i.appendOnly||i.appendOnly&&j){var E=o(z,i.itemSize);g=c(E,d=s(E,l(E,p,w,T,I,j),p,0,0,I,j),0,T,I),h=d!==p||g!==w||$.current,v=z}}return{first:d,last:g,isRangeChanged:h,scrollPos:v}},de=function(e){var t=pe(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};if(me(l),d(r),b(n),C.current=o,i.onScrollIndexChange&&i.onScrollIndexChange(l),i.lazy&&te(r)){var s={first:i.step?Math.min(ee(r)*i.step,i.items.length-i.step):r,last:Math.min(i.step?(ee(r)+1)*i.step:n,i.items.length)};(!G.current||G.current.first!==s.first||G.current.last!==s.last)&&i.onLazyLoad&&i.onLazyLoad(s),G.current=s}}},ge=function(){k.current&&clearTimeout(k.current),k.current=setTimeout((function(){if(N.current){var e=[r.DomHandler.getWidth(N.current),r.DomHandler.getHeight(N.current)],t=e[0],n=e[1],o=t!==X.current,l=n!==q.current;(f?o||l:a?o:!!c&&l)&&(P(i.numToleratedItems),X.current=t,q.current=n,B.current=r.DomHandler.getWidth(W.current),Y.current=r.DomHandler.getHeight(W.current))}}),i.resizeDelay)},he=function(e){var t=(i.items||[]).length,r=f?p.rows+e:p+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:i}},ve=function(e,t){var r=M.length;return y({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:i},t)},ye=function(){var e=i.items;return e&&!H?f?e.slice(i.appendOnly?0:p.rows,w.rows).map((function(e){return i.columns?e:e.slice(i.appendOnly?0:p.cols,w.cols)})):a&&i.columns?e:e.slice(i.appendOnly?0:p,w):[]},we=function(){var e,t,r,n,o;i.disabled||(ae(),e=ie(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return ce(e+t+(e<r?2:3)*r,n)},o=f?{rows:n(p.rows,t.rows,r[0]),cols:n(p.cols,t.cols,r[1],!0)}:n(p,t,r),E(t),P(r),b(o),i.showLoader&&U(f?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),i.lazy&&Promise.resolve().then((function(){G.current={first:i.step?f?{rows:0,cols:p.cols}:0:p,last:Math.min(i.step?i.step:o,i.items.length)},i.onLazyLoad&&i.onLazyLoad(G.current)})),fe())};t.useMountEffect((function(){N.current&&r.DomHandler.isVisible(N.current)&&(W.current=W.current||W.current||r.DomHandler.findSingle(N.current,".p-virtualscroller-content"),we(),K(),Q(),X.current=r.DomHandler.getWidth(N.current),q.current=r.DomHandler.getHeight(N.current),B.current=r.DomHandler.getWidth(W.current),Y.current=r.DomHandler.getHeight(W.current))})),t.useUpdateEffect((function(){we()}),[i.itemSize,i.scrollHeight,i.scrollWidth]),t.useUpdateEffect((function(){i.numToleratedItems!==I&&P(i.numToleratedItems)}),[i.numToleratedItems]),t.useUpdateEffect((function(){i.numToleratedItems===I&&we()}),[I]),t.useUpdateEffect((function(){s.items&&s.items.length===(i.items||[]).length||we();var e=H;i.lazy&&s.loading!==i.loading&&i.loading!==H&&(D(i.loading),e=i.loading),se(e)})),t.useUpdateEffect((function(){C.current=f?{top:0,left:0}:0}),[i.orientation]),o.useImperativeHandle(n,(function(){return{props:i,getElementRef:Z,scrollTo:re,scrollToIndex:ne,scrollInView:oe,getRenderedRange:le}}));var be=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ve(e,t),l=r.ObjectUtils.getJSXElement(i.loadingTemplate,n);return o.createElement(o.Fragment,{key:e},l)},Se=function(e,t){var n=he(t),l=r.ObjectUtils.getJSXElement(i.itemTemplate,e,n);return o.createElement(o.Fragment,{key:n.index},l)};if(i.disabled){var Oe=r.ObjectUtils.getJSXElement(i.contentTemplate,{items:i.items,rows:i.items,columns:i.columns});return o.createElement(o.Fragment,null,i.children,Oe)}var ze=h.getOtherProps(i),je=r.classNames("p-virtualscroller",{"p-virtualscroller-inline":i.inline,"p-virtualscroller-both p-both-scroll":f,"p-virtualscroller-horizontal p-horizontal-scroll":a},i.className),Te=function(){if(!i.loaderDisabled&&i.showLoader&&H){var e=r.classNames("p-virtualscroller-loader",{"p-component-overlay":!i.loadingTemplate}),t=o.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return i.loadingTemplate?t=M.map((function(e,t){return be(t,f&&{numCols:T.cols})})):i.loaderIconTemplate&&(t=r.ObjectUtils.getJSXElement(i.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:t,props:i})),o.createElement("div",{className:e},t)}return null}(),Ee=function(){var e=ye().map(Se),t=r.classNames("p-virtualscroller-content",{"p-virtualscroller-loading":H}),n=o.createElement("div",{ref:W,style:_.current,className:t},e);if(i.contentTemplate){var l={style:_.current,className:t,spacerStyle:J.current,contentRef:function(e){return W.current=r.ObjectUtils.getRefElement(e)},spacerRef:function(e){return F.current=r.ObjectUtils.getRefElement(e)},stickyRef:function(e){return A.current=r.ObjectUtils.getRefElement(e)},items:ye(),getItemOptions:function(e){return he(e)},children:e,element:n,props:i,loading:H,getLoaderOptions:function(e,t){return ve(e,t)},loadingTemplate:i.loadingTemplate,itemSize:i.itemSize,rows:H?i.loaderDisabled?M:[]:ye(),columns:i.columns&&f||a?H&&i.loaderDisabled?f?M[0]:M:i.columns.slice(f?p.cols:p,f?w.cols:w):i.columns,vertical:c,horizontal:a,both:f};return r.ObjectUtils.getJSXElement(i.contentTemplate,l)}return n}(),xe=i.showSpacer?o.createElement("div",{ref:F,style:J.current,className:"p-virtualscroller-spacer"}):null;return o.createElement("div",l({ref:N,className:je,tabIndex:i.tabIndex,style:i.style},ze,{onScroll:function(e){i.onScroll&&i.onScroll(e),i.delay?(V.current&&clearTimeout(V.current),te(p)&&(!H&&i.showLoader&&(pe(e).isRangeChanged||i.step&&te(p))&&D(!0),V.current=setTimeout((function(){de(e),!H||!i.showLoader||i.lazy&&void 0!==i.loading||(D(!1),z(ee(p)))}),i.delay))):de(e)}}),Ee,xe,Te)})));w.displayName="VirtualScroller",exports.VirtualScroller=w;
|
|
@@ -263,6 +263,11 @@ export interface VirtualScrollerProps {
|
|
|
263
263
|
* Style class of the component.
|
|
264
264
|
*/
|
|
265
265
|
className?: string | undefined;
|
|
266
|
+
/**
|
|
267
|
+
* Index of the element in tabbing order.
|
|
268
|
+
* @defaultValue 0
|
|
269
|
+
*/
|
|
270
|
+
tabIndex?: number | undefined;
|
|
266
271
|
/**
|
|
267
272
|
* An array of objects to display.
|
|
268
273
|
*/
|
|
@@ -284,6 +289,11 @@ export interface VirtualScrollerProps {
|
|
|
284
289
|
* @defaultValue 'vertical'
|
|
285
290
|
*/
|
|
286
291
|
orientation?: 'vertical' | 'horizontal' | 'both' | undefined;
|
|
292
|
+
/**
|
|
293
|
+
* Used to specify how many items to load in each load method in lazy mode.
|
|
294
|
+
* @defaultValue 0
|
|
295
|
+
*/
|
|
296
|
+
step?: number | undefined;
|
|
287
297
|
/**
|
|
288
298
|
* Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.
|
|
289
299
|
*/
|
|
@@ -298,6 +308,16 @@ export interface VirtualScrollerProps {
|
|
|
298
308
|
* @defaultValue 10
|
|
299
309
|
*/
|
|
300
310
|
resizeDelay?: number | undefined;
|
|
311
|
+
/**
|
|
312
|
+
* Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.
|
|
313
|
+
* @defaultValue false
|
|
314
|
+
*/
|
|
315
|
+
appendOnly?: boolean | undefined;
|
|
316
|
+
/**
|
|
317
|
+
* When enabled, positions the content as inline.
|
|
318
|
+
* @defaultValue false
|
|
319
|
+
*/
|
|
320
|
+
inline?: boolean | undefined;
|
|
301
321
|
/**
|
|
302
322
|
* Defines if data is loaded and interacted with in lazy manner.
|
|
303
323
|
* @defaultValue false
|