primereact 8.6.1 → 8.7.1
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/accordion.cjs.js +8 -7
- package/accordion/accordion.cjs.min.js +1 -1
- package/accordion/accordion.d.ts +8 -7
- package/accordion/accordion.esm.js +8 -7
- package/accordion/accordion.esm.min.js +1 -1
- package/accordion/accordion.js +8 -7
- package/accordion/accordion.min.js +1 -1
- package/api/api.cjs.js +19 -10
- package/api/api.cjs.min.js +1 -1
- package/api/api.esm.js +19 -10
- package/api/api.esm.min.js +1 -1
- package/api/api.js +19 -10
- package/api/api.min.js +1 -1
- package/autocomplete/autocomplete.cjs.js +6 -3
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.d.ts +6 -3
- package/autocomplete/autocomplete.esm.js +6 -3
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +6 -3
- package/autocomplete/autocomplete.min.js +1 -1
- package/button/button.cjs.js +1 -1
- package/button/button.cjs.min.js +1 -1
- package/button/button.d.ts +8 -10
- package/button/button.esm.js +1 -1
- package/button/button.esm.min.js +1 -1
- package/button/button.js +1 -1
- package/button/button.min.js +1 -1
- package/calendar/calendar.cjs.js +21 -3
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.d.ts +5 -3
- package/calendar/calendar.esm.js +21 -3
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +21 -3
- package/calendar/calendar.min.js +1 -1
- package/cascadeselect/cascadeselect.d.ts +1 -1
- package/chart/chart.d.ts +1 -1
- package/checkbox/checkbox.cjs.js +1 -2
- package/checkbox/checkbox.cjs.min.js +1 -1
- package/checkbox/checkbox.d.ts +1 -1
- package/checkbox/checkbox.esm.js +1 -2
- package/checkbox/checkbox.esm.min.js +1 -1
- package/checkbox/checkbox.js +1 -2
- package/checkbox/checkbox.min.js +1 -1
- package/column/column.cjs.js +60 -58
- package/column/column.cjs.min.js +1 -1
- package/column/column.d.ts +76 -61
- package/column/column.esm.js +60 -58
- package/column/column.esm.min.js +1 -1
- package/column/column.js +60 -58
- package/column/column.min.js +1 -1
- package/confirmpopup/confirmpopup.d.ts +1 -1
- package/core/core.js +105 -68
- package/core/core.min.js +10 -10
- package/datascroller/datascroller.cjs.js +5 -1
- package/datascroller/datascroller.cjs.min.js +1 -1
- package/datascroller/datascroller.d.ts +9 -9
- package/datascroller/datascroller.esm.js +5 -1
- package/datascroller/datascroller.esm.min.js +1 -1
- package/datascroller/datascroller.js +5 -1
- package/datascroller/datascroller.min.js +1 -1
- package/datatable/datatable.cjs.js +148 -130
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.d.ts +11 -7
- package/datatable/datatable.esm.js +148 -130
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +149 -132
- package/datatable/datatable.min.js +1 -1
- package/dataview/dataview.d.ts +1 -1
- package/dialog/dialog.cjs.js +38 -37
- package/dialog/dialog.cjs.min.js +1 -1
- package/dialog/dialog.d.ts +34 -34
- package/dialog/dialog.esm.js +38 -37
- package/dialog/dialog.esm.min.js +1 -1
- package/dialog/dialog.js +38 -37
- package/dialog/dialog.min.js +1 -1
- package/dropdown/dropdown.cjs.js +2 -3
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.d.ts +2 -2
- package/dropdown/dropdown.esm.js +2 -3
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +2 -3
- package/dropdown/dropdown.min.js +1 -1
- package/editor/editor.cjs.js +10 -1
- package/editor/editor.cjs.min.js +1 -1
- package/editor/editor.d.ts +0 -3
- package/editor/editor.esm.js +10 -1
- package/editor/editor.esm.min.js +1 -1
- package/editor/editor.js +10 -1
- package/editor/editor.min.js +1 -1
- package/fileupload/fileupload.d.ts +4 -4
- package/galleria/galleria.cjs.js +1 -1
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +1 -1
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +1 -1
- package/galleria/galleria.min.js +1 -1
- package/image/image.cjs.js +21 -16
- package/image/image.cjs.min.js +1 -1
- package/image/image.d.ts +10 -7
- package/image/image.esm.js +21 -16
- package/image/image.esm.min.js +1 -1
- package/image/image.js +21 -16
- package/image/image.min.js +1 -1
- package/inputnumber/inputnumber.cjs.js +11 -3
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.d.ts +1 -1
- package/inputnumber/inputnumber.esm.js +11 -3
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +11 -3
- package/inputnumber/inputnumber.min.js +1 -1
- package/inputswitch/inputswitch.cjs.js +1 -2
- package/inputswitch/inputswitch.cjs.min.js +1 -1
- package/inputswitch/inputswitch.d.ts +1 -1
- package/inputswitch/inputswitch.esm.js +1 -2
- package/inputswitch/inputswitch.esm.min.js +1 -1
- package/inputswitch/inputswitch.js +1 -2
- package/inputswitch/inputswitch.min.js +1 -1
- package/knob/knob.d.ts +1 -1
- package/listbox/listbox.d.ts +37 -24
- package/mention/mention.d.ts +17 -16
- package/menuitem/menuitem.d.ts +1 -1
- package/multiselect/multiselect.cjs.js +2 -4
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.d.ts +2 -2
- package/multiselect/multiselect.esm.js +2 -4
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +2 -4
- package/multiselect/multiselect.min.js +1 -1
- package/multistatecheckbox/multistatecheckbox.d.ts +1 -1
- package/orderlist/orderlist.d.ts +1 -1
- package/package.json +1 -2
- package/paginator/paginator.cjs.js +2 -2
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.d.ts +9 -9
- package/paginator/paginator.esm.js +2 -2
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +2 -2
- package/paginator/paginator.min.js +1 -1
- package/password/password.d.ts +2 -2
- package/picklist/picklist.d.ts +3 -3
- package/primereact.all.cjs.js +739 -621
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +739 -621
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +739 -621
- package/primereact.all.min.js +1 -1
- package/progressbar/progressbar.cjs.js +5 -5
- package/progressbar/progressbar.cjs.min.js +1 -1
- package/progressbar/progressbar.esm.js +5 -5
- package/progressbar/progressbar.esm.min.js +1 -1
- package/progressbar/progressbar.js +5 -5
- package/progressbar/progressbar.min.css +1 -1
- package/progressbar/progressbar.min.js +1 -1
- package/radiobutton/radiobutton.cjs.js +1 -2
- package/radiobutton/radiobutton.cjs.min.js +1 -1
- package/radiobutton/radiobutton.esm.js +1 -2
- package/radiobutton/radiobutton.esm.min.js +1 -1
- package/radiobutton/radiobutton.js +1 -2
- package/radiobutton/radiobutton.min.js +1 -1
- package/resources/primereact.css +510 -505
- package/resources/primereact.min.css +1 -1
- package/ripple/ripple.cjs.js +24 -5
- package/ripple/ripple.cjs.min.js +1 -1
- package/ripple/ripple.esm.js +24 -5
- package/ripple/ripple.esm.min.js +1 -1
- package/ripple/ripple.js +24 -5
- package/ripple/ripple.min.js +1 -1
- package/row/row.d.ts +1 -1
- package/scrolltop/scrolltop.d.ts +1 -1
- package/sidebar/sidebar.d.ts +1 -1
- package/slidemenu/slidemenu.cjs.js +20 -11
- package/slidemenu/slidemenu.cjs.min.js +1 -1
- package/slidemenu/slidemenu.d.ts +17 -9
- package/slidemenu/slidemenu.esm.js +20 -11
- package/slidemenu/slidemenu.esm.min.js +1 -1
- package/slidemenu/slidemenu.js +20 -11
- package/slidemenu/slidemenu.min.js +1 -1
- package/speeddial/speeddial.d.ts +2 -2
- package/splitbutton/splitbutton.d.ts +1 -1
- package/splitter/splitter.cjs.js +82 -69
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.d.ts +1 -1
- package/splitter/splitter.esm.js +82 -69
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +83 -70
- package/splitter/splitter.min.js +1 -1
- package/tabview/tabview.d.ts +5 -4
- package/timeline/timeline.d.ts +1 -1
- package/toast/toast.cjs.js +17 -12
- package/toast/toast.cjs.min.js +1 -1
- package/toast/toast.d.ts +3 -2
- package/toast/toast.esm.js +17 -12
- package/toast/toast.esm.min.js +1 -1
- package/toast/toast.js +17 -12
- package/toast/toast.min.css +1 -1
- package/toast/toast.min.js +1 -1
- package/tooltip/tooltip.cjs.js +2 -0
- package/tooltip/tooltip.cjs.min.js +1 -1
- package/tooltip/tooltip.d.ts +3 -1
- package/tooltip/tooltip.esm.js +2 -0
- package/tooltip/tooltip.esm.min.js +1 -1
- package/tooltip/tooltip.js +2 -0
- package/tooltip/tooltip.min.js +1 -1
- package/tooltip/tooltipoptions.d.ts +1 -1
- package/tree/tree.d.ts +2 -2
- package/treenode/treenode.d.ts +1 -1
- package/treeselect/treeselect.d.ts +1 -1
- package/treetable/treetable.cjs.js +81 -67
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.d.ts +62 -61
- package/treetable/treetable.esm.js +83 -69
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +82 -69
- package/treetable/treetable.min.js +1 -1
- package/virtualscroller/virtualscroller.d.ts +1 -1
- package/web-types.json +73 -2
- package/index.d.ts +0 -105
package/splitter/splitter.cjs.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var utils = require('primereact/utils');
|
|
7
6
|
var hooks = require('primereact/hooks');
|
|
7
|
+
var utils = require('primereact/utils');
|
|
8
8
|
|
|
9
9
|
function _interopNamespace(e) {
|
|
10
10
|
if (e && e.__esModule) return e;
|
|
@@ -43,6 +43,21 @@ function _extends() {
|
|
|
43
43
|
return _extends.apply(this, arguments);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
function _defineProperty(obj, key, value) {
|
|
47
|
+
if (key in obj) {
|
|
48
|
+
Object.defineProperty(obj, key, {
|
|
49
|
+
value: value,
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
obj[key] = value;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return obj;
|
|
59
|
+
}
|
|
60
|
+
|
|
46
61
|
function _arrayLikeToArray(arr, len) {
|
|
47
62
|
if (len == null || len > arr.length) len = arr.length;
|
|
48
63
|
|
|
@@ -120,6 +135,9 @@ function _slicedToArray(arr, i) {
|
|
|
120
135
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
121
136
|
}
|
|
122
137
|
|
|
138
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
139
|
+
|
|
140
|
+
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; }
|
|
123
141
|
var SplitterPanel = function SplitterPanel() {};
|
|
124
142
|
var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
|
|
125
143
|
var elementRef = React__namespace.useRef(null);
|
|
@@ -131,11 +149,22 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
131
149
|
var prevPanelElement = React__namespace.useRef(null);
|
|
132
150
|
var nextPanelElement = React__namespace.useRef(null);
|
|
133
151
|
var prevPanelSize = React__namespace.useRef(null);
|
|
152
|
+
var prevPanelSizeNew = React__namespace.useRef(null);
|
|
134
153
|
var nextPanelSize = React__namespace.useRef(null);
|
|
154
|
+
var nextPanelSizeNew = React__namespace.useRef(null);
|
|
135
155
|
var prevPanelIndex = React__namespace.useRef(null);
|
|
136
|
-
|
|
137
|
-
var
|
|
156
|
+
|
|
157
|
+
var _React$useState = React__namespace.useState([]),
|
|
158
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
159
|
+
panelSizes = _React$useState2[0],
|
|
160
|
+
setPanelSizes = _React$useState2[1];
|
|
161
|
+
|
|
138
162
|
var isStateful = props.stateKey != null;
|
|
163
|
+
var childrenLength = props.children && props.children.length;
|
|
164
|
+
|
|
165
|
+
var panelSize = function panelSize(sizes, index) {
|
|
166
|
+
return index in sizes ? sizes[index] : props.children[index].props.size || 100 / childrenLength;
|
|
167
|
+
};
|
|
139
168
|
|
|
140
169
|
var _useEventListener = hooks.useEventListener({
|
|
141
170
|
type: 'mousemove',
|
|
@@ -169,6 +198,9 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
169
198
|
};
|
|
170
199
|
|
|
171
200
|
var validateResize = function validateResize(newPrevPanelSize, newNextPanelSize) {
|
|
201
|
+
if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;
|
|
202
|
+
if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;
|
|
203
|
+
|
|
172
204
|
if (props.children[prevPanelIndex.current].props && props.children[prevPanelIndex.current].props.minSize && props.children[prevPanelIndex.current].props.minSize > newPrevPanelSize) {
|
|
173
205
|
return false;
|
|
174
206
|
}
|
|
@@ -187,11 +219,13 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
187
219
|
prevPanelElement.current = null;
|
|
188
220
|
nextPanelElement.current = null;
|
|
189
221
|
prevPanelSize.current = null;
|
|
222
|
+
prevPanelSizeNew.current = null;
|
|
190
223
|
nextPanelSize.current = null;
|
|
224
|
+
nextPanelSizeNew.current = null;
|
|
191
225
|
prevPanelIndex.current = null;
|
|
192
226
|
};
|
|
193
227
|
|
|
194
|
-
var getStorage = function
|
|
228
|
+
var getStorage = React__namespace.useCallback(function () {
|
|
195
229
|
switch (props.stateStorage) {
|
|
196
230
|
case 'local':
|
|
197
231
|
return window.localStorage;
|
|
@@ -202,31 +236,16 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
202
236
|
default:
|
|
203
237
|
throw new Error(props.stateStorage + ' is not a valid value for the state storage, supported values are "local" and "session".');
|
|
204
238
|
}
|
|
205
|
-
};
|
|
239
|
+
}, [props.stateStorage]);
|
|
206
240
|
|
|
207
|
-
var saveState = function saveState() {
|
|
208
|
-
getStorage().setItem(props.stateKey, JSON.stringify(
|
|
241
|
+
var saveState = function saveState(sizes) {
|
|
242
|
+
getStorage().setItem(props.stateKey, JSON.stringify(sizes));
|
|
209
243
|
};
|
|
210
244
|
|
|
211
|
-
var restoreState = function
|
|
212
|
-
var
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (stateString) {
|
|
216
|
-
panelSizes.current = JSON.parse(stateString);
|
|
217
|
-
|
|
218
|
-
var children = _toConsumableArray(elementRef.current.children).filter(function (child) {
|
|
219
|
-
return utils.DomHandler.hasClass(child, 'p-splitter-panel');
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
children.forEach(function (child, i) {
|
|
223
|
-
child.style.flexBasis = 'calc(' + panelSizes.current[i] + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
224
|
-
});
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return false;
|
|
229
|
-
};
|
|
245
|
+
var restoreState = React__namespace.useCallback(function () {
|
|
246
|
+
var stateString = getStorage().getItem(props.stateKey);
|
|
247
|
+
if (stateString) setPanelSizes(JSON.parse(stateString));
|
|
248
|
+
}, [getStorage, props.stateKey]);
|
|
230
249
|
|
|
231
250
|
var onResizeStart = function onResizeStart(event, index) {
|
|
232
251
|
gutterRef.current = gutterRefs.current[index];
|
|
@@ -238,7 +257,9 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
238
257
|
prevPanelElement.current = gutterRef.current.previousElementSibling;
|
|
239
258
|
nextPanelElement.current = gutterRef.current.nextElementSibling;
|
|
240
259
|
prevPanelSize.current = 100 * (props.layout === 'horizontal' ? utils.DomHandler.getOuterWidth(prevPanelElement.current, true) : utils.DomHandler.getOuterHeight(prevPanelElement.current, true)) / size.current;
|
|
260
|
+
prevPanelSizeNew.current = prevPanelSize.current;
|
|
241
261
|
nextPanelSize.current = 100 * (props.layout === 'horizontal' ? utils.DomHandler.getOuterWidth(nextPanelElement.current, true) : utils.DomHandler.getOuterHeight(nextPanelElement.current, true)) / size.current;
|
|
262
|
+
nextPanelSizeNew.current = nextPanelSize.current;
|
|
242
263
|
prevPanelIndex.current = index;
|
|
243
264
|
utils.DomHandler.addClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
244
265
|
utils.DomHandler.addClass(elementRef.current, 'p-splitter-resizing');
|
|
@@ -253,25 +274,34 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
253
274
|
var newNextPanelSize = nextPanelSize.current - newPos;
|
|
254
275
|
|
|
255
276
|
if (validateResize(newPrevPanelSize, newNextPanelSize)) {
|
|
277
|
+
prevPanelSizeNew.current = newPrevPanelSize;
|
|
278
|
+
nextPanelSizeNew.current = newNextPanelSize;
|
|
256
279
|
prevPanelElement.current.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
257
280
|
nextPanelElement.current.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
258
|
-
panelSizes.current[prevPanelIndex.current] = newPrevPanelSize;
|
|
259
|
-
panelSizes.current[prevPanelIndex.current + 1] = newNextPanelSize;
|
|
260
281
|
}
|
|
261
282
|
};
|
|
262
283
|
|
|
263
284
|
var onResizeEnd = function onResizeEnd(event) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
285
|
+
setPanelSizes(function (prev) {
|
|
286
|
+
var sizes = [];
|
|
267
287
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
sizes: panelSizes.current
|
|
272
|
-
});
|
|
273
|
-
}
|
|
288
|
+
for (var index = 0; index < props.children.length; index++) {
|
|
289
|
+
sizes[index] = panelSize(prev, index);
|
|
290
|
+
}
|
|
274
291
|
|
|
292
|
+
sizes[prevPanelIndex.current] = prevPanelSizeNew.current;
|
|
293
|
+
sizes[prevPanelIndex.current + 1] = nextPanelSizeNew.current;
|
|
294
|
+
|
|
295
|
+
if (props.onResizeEnd) {
|
|
296
|
+
props.onResizeEnd({
|
|
297
|
+
originalEvent: event,
|
|
298
|
+
sizes: sizes
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if (isStateful) saveState(sizes);
|
|
303
|
+
return sizes;
|
|
304
|
+
});
|
|
275
305
|
utils.DomHandler.removeClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
276
306
|
utils.DomHandler.removeClass(elementRef.current, 'p-splitter-resizing');
|
|
277
307
|
clear();
|
|
@@ -319,30 +349,10 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
319
349
|
utils.DomHandler.addClass(panelElement, 'p-splitter-panel-nested');
|
|
320
350
|
}
|
|
321
351
|
});
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
if (isStateful && !mounted.current) {
|
|
327
|
-
initialized = restoreState();
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
if (!initialized) {
|
|
331
|
-
var _panelSizes = [];
|
|
332
|
-
props.children.map(function (panel, i) {
|
|
333
|
-
var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;
|
|
334
|
-
var panelSize = panelInitialSize || 100 / props.children.length;
|
|
335
|
-
_panelSizes[i] = panelSize;
|
|
336
|
-
panelElements[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
337
|
-
return _panelSizes;
|
|
338
|
-
});
|
|
339
|
-
panelSizes.current = _panelSizes;
|
|
340
|
-
mounted.current && saveState();
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
mounted.current = true;
|
|
345
|
-
});
|
|
352
|
+
}, []);
|
|
353
|
+
React__namespace.useEffect(function () {
|
|
354
|
+
if (isStateful) restoreState();
|
|
355
|
+
}, [restoreState, isStateful]);
|
|
346
356
|
|
|
347
357
|
var createPanel = function createPanel(panel, index) {
|
|
348
358
|
var otherProps = utils.ObjectUtils.findDiffKeys(panel.props, SplitterPanel.defaultProps);
|
|
@@ -373,10 +383,13 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
373
383
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
374
384
|
className: "p-splitter-gutter-handle"
|
|
375
385
|
}));
|
|
386
|
+
var flexBasis = 'calc(' + panelSize(panelSizes, index) + '% - ' + (childrenLength - 1) * props.gutterSize + 'px)';
|
|
376
387
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
377
388
|
key: index,
|
|
378
389
|
className: panelClassName,
|
|
379
|
-
style: panel.props.style
|
|
390
|
+
style: _objectSpread(_objectSpread({}, panel.props.style), {}, {
|
|
391
|
+
flexBasis: flexBasis
|
|
392
|
+
})
|
|
380
393
|
}, otherProps), panel.props.children), gutter);
|
|
381
394
|
};
|
|
382
395
|
|
|
@@ -397,22 +410,22 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
397
410
|
SplitterPanel.displayName = 'SplitterPanel';
|
|
398
411
|
SplitterPanel.defaultProps = {
|
|
399
412
|
__TYPE: 'SplitterPanel',
|
|
400
|
-
|
|
413
|
+
className: null,
|
|
401
414
|
minSize: null,
|
|
402
|
-
|
|
403
|
-
|
|
415
|
+
size: null,
|
|
416
|
+
style: null
|
|
404
417
|
};
|
|
405
418
|
Splitter.displayName = 'Splitter';
|
|
406
419
|
Splitter.defaultProps = {
|
|
407
420
|
__TYPE: 'Splitter',
|
|
408
|
-
id: null,
|
|
409
421
|
className: null,
|
|
410
|
-
style: null,
|
|
411
|
-
layout: 'horizontal',
|
|
412
422
|
gutterSize: 4,
|
|
423
|
+
id: null,
|
|
424
|
+
layout: 'horizontal',
|
|
425
|
+
onResizeEnd: null,
|
|
413
426
|
stateKey: null,
|
|
414
427
|
stateStorage: 'session',
|
|
415
|
-
|
|
428
|
+
style: null
|
|
416
429
|
};
|
|
417
430
|
|
|
418
431
|
exports.Splitter = Splitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/
|
|
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 u=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 o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){if(Array.isArray(e))return i(e)}function a(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}function p(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){if(Array.isArray(e))return e}function d(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,u,l=[],o=!0,i=!1;try{for(r=r.call(e);!(o=(n=r.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,u=e}finally{try{o||null==r.return||r.return()}finally{if(i)throw u}}return l}}function m(){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 h(e,t){return f(e)||d(e,t)||s(e,t)||m()}function y(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 g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v=function(){},b=u.memo(u.forwardRef((function(e,n){var o=u.useRef(null),i=u.useRef(),f=u.useRef({}),d=u.useRef(null),m=u.useRef(null),y=u.useRef(null),O=u.useRef(null),S=u.useRef(null),w=u.useRef(null),E=u.useRef(null),z=u.useRef(null),j=u.useRef(null),P=u.useRef(null),D=h(u.useState([]),2),H=D[0],R=D[1],N=null!=e.stateKey,x=e.children&&e.children.length,C=function(t,r){return r in t?t[r]:e.children[r].props.size||100/x},A=h(t.useEventListener({type:"mousemove",listener:function(e){return B(e)}}),2),I=A[0],_=A[1],K=h(t.useEventListener({type:"mouseup",listener:function(e){W(e),L()}}),2),T=K[0],k=K[1],L=function(){_(),k()},Y=function(t,r){return!(t>100||t<0)&&(!(r>100||r<0)&&(!(e.children[P.current].props&&e.children[P.current].props.minSize&&e.children[P.current].props.minSize>t)&&!(e.children[P.current+1].props&&e.children[P.current+1].props.minSize&&e.children[P.current+1].props.minSize>r)))},M=u.useCallback((function(){switch(e.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(e.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}),[e.stateStorage]),U=function(t){M().setItem(e.stateKey,JSON.stringify(t))},X=u.useCallback((function(){var t=M().getItem(e.stateKey);t&&R(JSON.parse(t))}),[M,e.stateKey]),q=function(t,n){i.current=f.current[n];var u="touchstart"===t.type?t.touches[0].pageX:t.pageX,l="touchstart"===t.type?t.touches[0].pageY:t.pageY;d.current="horizontal"===e.layout?r.DomHandler.getWidth(o.current):r.DomHandler.getHeight(o.current),m.current=!0,y.current="horizontal"===e.layout?u:l,O.current=i.current.previousElementSibling,S.current=i.current.nextElementSibling,w.current=100*("horizontal"===e.layout?r.DomHandler.getOuterWidth(O.current,!0):r.DomHandler.getOuterHeight(O.current,!0))/d.current,E.current=w.current,z.current=100*("horizontal"===e.layout?r.DomHandler.getOuterWidth(S.current,!0):r.DomHandler.getOuterHeight(S.current,!0))/d.current,j.current=z.current,P.current=n,r.DomHandler.addClass(i.current,"p-splitter-gutter-resizing"),r.DomHandler.addClass(o.current,"p-splitter-resizing")},B=function(t){var r,n=w.current+(r="horizontal"===e.layout?100*("touchmove"===t.type?t.touches[0].pageX:t.pageX)/d.current-100*y.current/d.current:100*("touchmove"===t.type?t.touches[0].pageY:t.pageY)/d.current-100*y.current/d.current),u=z.current-r;Y(n,u)&&(E.current=n,j.current=u,O.current.style.flexBasis="calc("+n+"% - "+(e.children.length-1)*e.gutterSize+"px)",S.current.style.flexBasis="calc("+u+"% - "+(e.children.length-1)*e.gutterSize+"px)")},W=function(t){R((function(r){for(var n=[],u=0;u<e.children.length;u++)n[u]=C(r,u);return n[P.current]=E.current,n[P.current+1]=j.current,e.onResizeEnd&&e.onResizeEnd({originalEvent:t,sizes:n}),N&&U(n),n})),r.DomHandler.removeClass(i.current,"p-splitter-gutter-resizing"),r.DomHandler.removeClass(o.current,"p-splitter-resizing"),m.current=!1,d.current=null,y.current=null,O.current=null,S.current=null,w.current=null,E.current=null,z.current=null,j.current=null,P.current=null},J=function(e,t){q(e,t),I(),T()},F=function(e,t){q(e,t),window.addEventListener("touchmove",$,{passive:!1,cancelable:!1}),window.addEventListener("touchend",G)},$=function(e){B(e)},G=function e(t){W(t),window.removeEventListener("touchmove",$),window.removeEventListener("touchend",e)};u.useImperativeHandle(n,(function(){return{props:e,getElement:function(){return o.current}}})),u.useEffect((function(){var e;(e=o.current.children,c(e)||a(e)||s(e)||p()).filter((function(e){return r.DomHandler.hasClass(e,"p-splitter-panel")})).map((function(e){e.childNodes&&r.ObjectUtils.isNotEmpty(r.DomHandler.find(e,".p-splitter"))&&r.DomHandler.addClass(e,"p-splitter-panel-nested")}))}),[]),u.useEffect((function(){N&&X()}),[X,N]);var Q=function(t,n){var o=r.ObjectUtils.findDiffKeys(t.props,v.defaultProps),i=r.classNames("p-splitter-panel",t.props.className),c=n!==e.children.length-1&&u.createElement("div",{ref:function(e){return f.current[n]=e},className:"p-splitter-gutter",style:"horizontal"===e.layout?{width:e.gutterSize+"px"}:{height:e.gutterSize+"px"},onMouseDown:function(e){return J(e,n)},onTouchStart:function(e){return F(e,n)},onTouchMove:function(e){return $(e)},onTouchEnd:function(e){return G(e)}},u.createElement("div",{className:"p-splitter-gutter-handle"})),a="calc("+C(H,n)+"% - "+(x-1)*e.gutterSize+"px)";return u.createElement(u.Fragment,null,u.createElement("div",l({key:n,className:i,style:g(g({},t.props.style),{},{flexBasis:a})},o),t.props.children),c)},V=r.ObjectUtils.findDiffKeys(e,b.defaultProps),Z=r.classNames("p-splitter p-component p-splitter-".concat(e.layout),e.className),ee=u.Children.map(e.children,Q);return u.createElement("div",l({ref:o,id:e.id,className:Z,style:e.style},V),ee)})));v.displayName="SplitterPanel",v.defaultProps={__TYPE:"SplitterPanel",className:null,minSize:null,size:null,style:null},b.displayName="Splitter",b.defaultProps={__TYPE:"Splitter",className:null,gutterSize:4,id:null,layout:"horizontal",onResizeEnd:null,stateKey:null,stateStorage:"session",style:null},exports.Splitter=b,exports.SplitterPanel=v;
|
package/splitter/splitter.d.ts
CHANGED
package/splitter/splitter.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { DomHandler, ObjectUtils, classNames } from 'primereact/utils';
|
|
3
2
|
import { useEventListener } from 'primereact/hooks';
|
|
3
|
+
import { DomHandler, ObjectUtils, classNames } from 'primereact/utils';
|
|
4
4
|
|
|
5
5
|
function _extends() {
|
|
6
6
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -19,6 +19,21 @@ function _extends() {
|
|
|
19
19
|
return _extends.apply(this, arguments);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
function _defineProperty(obj, key, value) {
|
|
23
|
+
if (key in obj) {
|
|
24
|
+
Object.defineProperty(obj, key, {
|
|
25
|
+
value: value,
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
obj[key] = value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
|
|
22
37
|
function _arrayLikeToArray(arr, len) {
|
|
23
38
|
if (len == null || len > arr.length) len = arr.length;
|
|
24
39
|
|
|
@@ -96,6 +111,9 @@ function _slicedToArray(arr, i) {
|
|
|
96
111
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
97
112
|
}
|
|
98
113
|
|
|
114
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
115
|
+
|
|
116
|
+
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; }
|
|
99
117
|
var SplitterPanel = function SplitterPanel() {};
|
|
100
118
|
var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
101
119
|
var elementRef = React.useRef(null);
|
|
@@ -107,11 +125,22 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
107
125
|
var prevPanelElement = React.useRef(null);
|
|
108
126
|
var nextPanelElement = React.useRef(null);
|
|
109
127
|
var prevPanelSize = React.useRef(null);
|
|
128
|
+
var prevPanelSizeNew = React.useRef(null);
|
|
110
129
|
var nextPanelSize = React.useRef(null);
|
|
130
|
+
var nextPanelSizeNew = React.useRef(null);
|
|
111
131
|
var prevPanelIndex = React.useRef(null);
|
|
112
|
-
|
|
113
|
-
var
|
|
132
|
+
|
|
133
|
+
var _React$useState = React.useState([]),
|
|
134
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
135
|
+
panelSizes = _React$useState2[0],
|
|
136
|
+
setPanelSizes = _React$useState2[1];
|
|
137
|
+
|
|
114
138
|
var isStateful = props.stateKey != null;
|
|
139
|
+
var childrenLength = props.children && props.children.length;
|
|
140
|
+
|
|
141
|
+
var panelSize = function panelSize(sizes, index) {
|
|
142
|
+
return index in sizes ? sizes[index] : props.children[index].props.size || 100 / childrenLength;
|
|
143
|
+
};
|
|
115
144
|
|
|
116
145
|
var _useEventListener = useEventListener({
|
|
117
146
|
type: 'mousemove',
|
|
@@ -145,6 +174,9 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
145
174
|
};
|
|
146
175
|
|
|
147
176
|
var validateResize = function validateResize(newPrevPanelSize, newNextPanelSize) {
|
|
177
|
+
if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;
|
|
178
|
+
if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;
|
|
179
|
+
|
|
148
180
|
if (props.children[prevPanelIndex.current].props && props.children[prevPanelIndex.current].props.minSize && props.children[prevPanelIndex.current].props.minSize > newPrevPanelSize) {
|
|
149
181
|
return false;
|
|
150
182
|
}
|
|
@@ -163,11 +195,13 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
163
195
|
prevPanelElement.current = null;
|
|
164
196
|
nextPanelElement.current = null;
|
|
165
197
|
prevPanelSize.current = null;
|
|
198
|
+
prevPanelSizeNew.current = null;
|
|
166
199
|
nextPanelSize.current = null;
|
|
200
|
+
nextPanelSizeNew.current = null;
|
|
167
201
|
prevPanelIndex.current = null;
|
|
168
202
|
};
|
|
169
203
|
|
|
170
|
-
var getStorage = function
|
|
204
|
+
var getStorage = React.useCallback(function () {
|
|
171
205
|
switch (props.stateStorage) {
|
|
172
206
|
case 'local':
|
|
173
207
|
return window.localStorage;
|
|
@@ -178,31 +212,16 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
178
212
|
default:
|
|
179
213
|
throw new Error(props.stateStorage + ' is not a valid value for the state storage, supported values are "local" and "session".');
|
|
180
214
|
}
|
|
181
|
-
};
|
|
215
|
+
}, [props.stateStorage]);
|
|
182
216
|
|
|
183
|
-
var saveState = function saveState() {
|
|
184
|
-
getStorage().setItem(props.stateKey, JSON.stringify(
|
|
217
|
+
var saveState = function saveState(sizes) {
|
|
218
|
+
getStorage().setItem(props.stateKey, JSON.stringify(sizes));
|
|
185
219
|
};
|
|
186
220
|
|
|
187
|
-
var restoreState = function
|
|
188
|
-
var
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
if (stateString) {
|
|
192
|
-
panelSizes.current = JSON.parse(stateString);
|
|
193
|
-
|
|
194
|
-
var children = _toConsumableArray(elementRef.current.children).filter(function (child) {
|
|
195
|
-
return DomHandler.hasClass(child, 'p-splitter-panel');
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
children.forEach(function (child, i) {
|
|
199
|
-
child.style.flexBasis = 'calc(' + panelSizes.current[i] + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
200
|
-
});
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
return false;
|
|
205
|
-
};
|
|
221
|
+
var restoreState = React.useCallback(function () {
|
|
222
|
+
var stateString = getStorage().getItem(props.stateKey);
|
|
223
|
+
if (stateString) setPanelSizes(JSON.parse(stateString));
|
|
224
|
+
}, [getStorage, props.stateKey]);
|
|
206
225
|
|
|
207
226
|
var onResizeStart = function onResizeStart(event, index) {
|
|
208
227
|
gutterRef.current = gutterRefs.current[index];
|
|
@@ -214,7 +233,9 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
214
233
|
prevPanelElement.current = gutterRef.current.previousElementSibling;
|
|
215
234
|
nextPanelElement.current = gutterRef.current.nextElementSibling;
|
|
216
235
|
prevPanelSize.current = 100 * (props.layout === 'horizontal' ? DomHandler.getOuterWidth(prevPanelElement.current, true) : DomHandler.getOuterHeight(prevPanelElement.current, true)) / size.current;
|
|
236
|
+
prevPanelSizeNew.current = prevPanelSize.current;
|
|
217
237
|
nextPanelSize.current = 100 * (props.layout === 'horizontal' ? DomHandler.getOuterWidth(nextPanelElement.current, true) : DomHandler.getOuterHeight(nextPanelElement.current, true)) / size.current;
|
|
238
|
+
nextPanelSizeNew.current = nextPanelSize.current;
|
|
218
239
|
prevPanelIndex.current = index;
|
|
219
240
|
DomHandler.addClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
220
241
|
DomHandler.addClass(elementRef.current, 'p-splitter-resizing');
|
|
@@ -229,25 +250,34 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
229
250
|
var newNextPanelSize = nextPanelSize.current - newPos;
|
|
230
251
|
|
|
231
252
|
if (validateResize(newPrevPanelSize, newNextPanelSize)) {
|
|
253
|
+
prevPanelSizeNew.current = newPrevPanelSize;
|
|
254
|
+
nextPanelSizeNew.current = newNextPanelSize;
|
|
232
255
|
prevPanelElement.current.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
233
256
|
nextPanelElement.current.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
234
|
-
panelSizes.current[prevPanelIndex.current] = newPrevPanelSize;
|
|
235
|
-
panelSizes.current[prevPanelIndex.current + 1] = newNextPanelSize;
|
|
236
257
|
}
|
|
237
258
|
};
|
|
238
259
|
|
|
239
260
|
var onResizeEnd = function onResizeEnd(event) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}
|
|
261
|
+
setPanelSizes(function (prev) {
|
|
262
|
+
var sizes = [];
|
|
243
263
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
sizes: panelSizes.current
|
|
248
|
-
});
|
|
249
|
-
}
|
|
264
|
+
for (var index = 0; index < props.children.length; index++) {
|
|
265
|
+
sizes[index] = panelSize(prev, index);
|
|
266
|
+
}
|
|
250
267
|
|
|
268
|
+
sizes[prevPanelIndex.current] = prevPanelSizeNew.current;
|
|
269
|
+
sizes[prevPanelIndex.current + 1] = nextPanelSizeNew.current;
|
|
270
|
+
|
|
271
|
+
if (props.onResizeEnd) {
|
|
272
|
+
props.onResizeEnd({
|
|
273
|
+
originalEvent: event,
|
|
274
|
+
sizes: sizes
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (isStateful) saveState(sizes);
|
|
279
|
+
return sizes;
|
|
280
|
+
});
|
|
251
281
|
DomHandler.removeClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
252
282
|
DomHandler.removeClass(elementRef.current, 'p-splitter-resizing');
|
|
253
283
|
clear();
|
|
@@ -295,30 +325,10 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
295
325
|
DomHandler.addClass(panelElement, 'p-splitter-panel-nested');
|
|
296
326
|
}
|
|
297
327
|
});
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (isStateful && !mounted.current) {
|
|
303
|
-
initialized = restoreState();
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
if (!initialized) {
|
|
307
|
-
var _panelSizes = [];
|
|
308
|
-
props.children.map(function (panel, i) {
|
|
309
|
-
var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;
|
|
310
|
-
var panelSize = panelInitialSize || 100 / props.children.length;
|
|
311
|
-
_panelSizes[i] = panelSize;
|
|
312
|
-
panelElements[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
313
|
-
return _panelSizes;
|
|
314
|
-
});
|
|
315
|
-
panelSizes.current = _panelSizes;
|
|
316
|
-
mounted.current && saveState();
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
mounted.current = true;
|
|
321
|
-
});
|
|
328
|
+
}, []);
|
|
329
|
+
React.useEffect(function () {
|
|
330
|
+
if (isStateful) restoreState();
|
|
331
|
+
}, [restoreState, isStateful]);
|
|
322
332
|
|
|
323
333
|
var createPanel = function createPanel(panel, index) {
|
|
324
334
|
var otherProps = ObjectUtils.findDiffKeys(panel.props, SplitterPanel.defaultProps);
|
|
@@ -349,10 +359,13 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
349
359
|
}, /*#__PURE__*/React.createElement("div", {
|
|
350
360
|
className: "p-splitter-gutter-handle"
|
|
351
361
|
}));
|
|
362
|
+
var flexBasis = 'calc(' + panelSize(panelSizes, index) + '% - ' + (childrenLength - 1) * props.gutterSize + 'px)';
|
|
352
363
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", _extends({
|
|
353
364
|
key: index,
|
|
354
365
|
className: panelClassName,
|
|
355
|
-
style: panel.props.style
|
|
366
|
+
style: _objectSpread(_objectSpread({}, panel.props.style), {}, {
|
|
367
|
+
flexBasis: flexBasis
|
|
368
|
+
})
|
|
356
369
|
}, otherProps), panel.props.children), gutter);
|
|
357
370
|
};
|
|
358
371
|
|
|
@@ -373,22 +386,22 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
373
386
|
SplitterPanel.displayName = 'SplitterPanel';
|
|
374
387
|
SplitterPanel.defaultProps = {
|
|
375
388
|
__TYPE: 'SplitterPanel',
|
|
376
|
-
|
|
389
|
+
className: null,
|
|
377
390
|
minSize: null,
|
|
378
|
-
|
|
379
|
-
|
|
391
|
+
size: null,
|
|
392
|
+
style: null
|
|
380
393
|
};
|
|
381
394
|
Splitter.displayName = 'Splitter';
|
|
382
395
|
Splitter.defaultProps = {
|
|
383
396
|
__TYPE: 'Splitter',
|
|
384
|
-
id: null,
|
|
385
397
|
className: null,
|
|
386
|
-
style: null,
|
|
387
|
-
layout: 'horizontal',
|
|
388
398
|
gutterSize: 4,
|
|
399
|
+
id: null,
|
|
400
|
+
layout: 'horizontal',
|
|
401
|
+
onResizeEnd: null,
|
|
389
402
|
stateKey: null,
|
|
390
403
|
stateStorage: 'session',
|
|
391
|
-
|
|
404
|
+
style: null
|
|
392
405
|
};
|
|
393
406
|
|
|
394
407
|
export { Splitter, SplitterPanel };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{
|
|
1
|
+
import*as e from"react";import{useEventListener as t}from"primereact/hooks";import{DomHandler as r,ObjectUtils as n,classNames as u}from"primereact/utils";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 o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){if(Array.isArray(e))return i(e)}function a(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}function p(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){if(Array.isArray(e))return e}function d(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,u,l=[],o=!0,i=!1;try{for(r=r.call(e);!(o=(n=r.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,u=e}finally{try{o||null==r.return||r.return()}finally{if(i)throw u}}return l}}function h(){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 y(e,t){return f(e)||d(e,t)||s(e,t)||h()}function m(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 g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v=function(){},b=e.memo(e.forwardRef((function(o,i){var f=e.useRef(null),d=e.useRef(),h=e.useRef({}),m=e.useRef(null),S=e.useRef(null),w=e.useRef(null),O=e.useRef(null),z=e.useRef(null),E=e.useRef(null),j=e.useRef(null),P=e.useRef(null),R=e.useRef(null),N=e.useRef(null),x=y(e.useState([]),2),C=x[0],A=x[1],I=null!=o.stateKey,D=o.children&&o.children.length,K=function(e,t){return t in e?e[t]:o.children[t].props.size||100/D},T=y(t({type:"mousemove",listener:function(e){return U(e)}}),2),Y=T[0],k=T[1],H=y(t({type:"mouseup",listener:function(e){$(e),_()}}),2),L=H[0],X=H[1],_=function(){k(),X()},B=function(e,t){return!(e>100||e<0)&&(!(t>100||t<0)&&(!(o.children[N.current].props&&o.children[N.current].props.minSize&&o.children[N.current].props.minSize>e)&&!(o.children[N.current+1].props&&o.children[N.current+1].props.minSize&&o.children[N.current+1].props.minSize>t)))},M=e.useCallback((function(){switch(o.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(o.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}),[o.stateStorage]),W=function(e){M().setItem(o.stateKey,JSON.stringify(e))},J=e.useCallback((function(){var e=M().getItem(o.stateKey);e&&A(JSON.parse(e))}),[M,o.stateKey]),F=function(e,t){d.current=h.current[t];var n="touchstart"===e.type?e.touches[0].pageX:e.pageX,u="touchstart"===e.type?e.touches[0].pageY:e.pageY;m.current="horizontal"===o.layout?r.getWidth(f.current):r.getHeight(f.current),S.current=!0,w.current="horizontal"===o.layout?n:u,O.current=d.current.previousElementSibling,z.current=d.current.nextElementSibling,E.current=100*("horizontal"===o.layout?r.getOuterWidth(O.current,!0):r.getOuterHeight(O.current,!0))/m.current,j.current=E.current,P.current=100*("horizontal"===o.layout?r.getOuterWidth(z.current,!0):r.getOuterHeight(z.current,!0))/m.current,R.current=P.current,N.current=t,r.addClass(d.current,"p-splitter-gutter-resizing"),r.addClass(f.current,"p-splitter-resizing")},U=function(e){var t,r=E.current+(t="horizontal"===o.layout?100*("touchmove"===e.type?e.touches[0].pageX:e.pageX)/m.current-100*w.current/m.current:100*("touchmove"===e.type?e.touches[0].pageY:e.pageY)/m.current-100*w.current/m.current),n=P.current-t;B(r,n)&&(j.current=r,R.current=n,O.current.style.flexBasis="calc("+r+"% - "+(o.children.length-1)*o.gutterSize+"px)",z.current.style.flexBasis="calc("+n+"% - "+(o.children.length-1)*o.gutterSize+"px)")},$=function(e){A((function(t){for(var r=[],n=0;n<o.children.length;n++)r[n]=K(t,n);return r[N.current]=j.current,r[N.current+1]=R.current,o.onResizeEnd&&o.onResizeEnd({originalEvent:e,sizes:r}),I&&W(r),r})),r.removeClass(d.current,"p-splitter-gutter-resizing"),r.removeClass(f.current,"p-splitter-resizing"),S.current=!1,m.current=null,w.current=null,O.current=null,z.current=null,E.current=null,j.current=null,P.current=null,R.current=null,N.current=null},q=function(e,t){F(e,t),Y(),L()},G=function(e,t){F(e,t),window.addEventListener("touchmove",Q,{passive:!1,cancelable:!1}),window.addEventListener("touchend",V)},Q=function(e){U(e)},V=function e(t){$(t),window.removeEventListener("touchmove",Q),window.removeEventListener("touchend",e)};e.useImperativeHandle(i,(function(){return{props:o,getElement:function(){return f.current}}})),e.useEffect((function(){var e;(e=f.current.children,c(e)||a(e)||s(e)||p()).filter((function(e){return r.hasClass(e,"p-splitter-panel")})).map((function(e){e.childNodes&&n.isNotEmpty(r.find(e,".p-splitter"))&&r.addClass(e,"p-splitter-panel-nested")}))}),[]),e.useEffect((function(){I&&J()}),[J,I]);var Z=function(t,r){var i=n.findDiffKeys(t.props,v.defaultProps),c=u("p-splitter-panel",t.props.className),a=r!==o.children.length-1&&e.createElement("div",{ref:function(e){return h.current[r]=e},className:"p-splitter-gutter",style:"horizontal"===o.layout?{width:o.gutterSize+"px"}:{height:o.gutterSize+"px"},onMouseDown:function(e){return q(e,r)},onTouchStart:function(e){return G(e,r)},onTouchMove:function(e){return Q(e)},onTouchEnd:function(e){return V(e)}},e.createElement("div",{className:"p-splitter-gutter-handle"})),s="calc("+K(C,r)+"% - "+(D-1)*o.gutterSize+"px)";return e.createElement(e.Fragment,null,e.createElement("div",l({key:r,className:c,style:g(g({},t.props.style),{},{flexBasis:s})},i),t.props.children),a)},ee=n.findDiffKeys(o,b.defaultProps),te=u("p-splitter p-component p-splitter-".concat(o.layout),o.className),re=e.Children.map(o.children,Z);return e.createElement("div",l({ref:f,id:o.id,className:te,style:o.style},ee),re)})));v.displayName="SplitterPanel",v.defaultProps={__TYPE:"SplitterPanel",className:null,minSize:null,size:null,style:null},b.displayName="Splitter",b.defaultProps={__TYPE:"Splitter",className:null,gutterSize:4,id:null,layout:"horizontal",onResizeEnd:null,stateKey:null,stateStorage:"session",style:null};export{b as Splitter,v as SplitterPanel};
|