primereact 8.6.0 → 8.7.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/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 +11 -2
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.d.ts +5 -3
- package/calendar/calendar.esm.js +11 -2
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +11 -2
- package/calendar/calendar.min.js +1 -1
- package/carousel/carousel.cjs.js +11 -9
- package/carousel/carousel.cjs.min.js +1 -1
- package/carousel/carousel.esm.js +11 -9
- package/carousel/carousel.esm.min.js +1 -1
- package/carousel/carousel.js +12 -10
- package/carousel/carousel.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 +108 -79
- 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 +146 -130
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.d.ts +11 -7
- package/datatable/datatable.esm.js +146 -130
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +147 -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 +20 -17
- package/image/image.cjs.min.js +1 -1
- package/image/image.d.ts +9 -6
- package/image/image.esm.js +20 -17
- package/image/image.esm.min.js +1 -1
- package/image/image.js +20 -17
- 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 -1
- package/paginator/paginator.cjs.js +21 -17
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.d.ts +9 -9
- package/paginator/paginator.esm.js +21 -17
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +22 -18
- 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 +737 -638
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +737 -638
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +737 -638
- 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 +773 -773
- package/resources/primereact.min.css +1 -1
- package/ripple/ripple.cjs.js +7 -0
- package/ripple/ripple.cjs.min.js +1 -1
- package/ripple/ripple.esm.js +7 -0
- package/ripple/ripple.esm.min.js +1 -1
- package/ripple/ripple.js +7 -0
- 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 +86 -69
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.d.ts +1 -1
- package/splitter/splitter.esm.js +86 -69
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +87 -70
- package/splitter/splitter.min.js +1 -1
- package/tabview/tabview.d.ts +5 -4
- 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.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/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
|
|
|
@@ -78,6 +93,10 @@ function _toConsumableArray(arr) {
|
|
|
78
93
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
79
94
|
}
|
|
80
95
|
|
|
96
|
+
function _readOnlyError(name) {
|
|
97
|
+
throw new TypeError("\"" + name + "\" is read-only");
|
|
98
|
+
}
|
|
99
|
+
|
|
81
100
|
function _arrayWithHoles(arr) {
|
|
82
101
|
if (Array.isArray(arr)) return arr;
|
|
83
102
|
}
|
|
@@ -120,6 +139,9 @@ function _slicedToArray(arr, i) {
|
|
|
120
139
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
121
140
|
}
|
|
122
141
|
|
|
142
|
+
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; }
|
|
143
|
+
|
|
144
|
+
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
145
|
var SplitterPanel = function SplitterPanel() {};
|
|
124
146
|
var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
|
|
125
147
|
var elementRef = React__namespace.useRef(null);
|
|
@@ -131,11 +153,22 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
131
153
|
var prevPanelElement = React__namespace.useRef(null);
|
|
132
154
|
var nextPanelElement = React__namespace.useRef(null);
|
|
133
155
|
var prevPanelSize = React__namespace.useRef(null);
|
|
156
|
+
var prevPanelSizeNew = React__namespace.useRef(null);
|
|
134
157
|
var nextPanelSize = React__namespace.useRef(null);
|
|
158
|
+
var nextPanelSizeNew = React__namespace.useRef(null);
|
|
135
159
|
var prevPanelIndex = React__namespace.useRef(null);
|
|
136
|
-
|
|
137
|
-
var
|
|
160
|
+
|
|
161
|
+
var _React$useState = React__namespace.useState([]),
|
|
162
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
163
|
+
panelSizes = _React$useState2[0],
|
|
164
|
+
setPanelSizes = _React$useState2[1];
|
|
165
|
+
|
|
138
166
|
var isStateful = props.stateKey != null;
|
|
167
|
+
var childrenLength = props.children && props.children.length;
|
|
168
|
+
|
|
169
|
+
var panelSize = function panelSize(sizes, index) {
|
|
170
|
+
return index in sizes ? sizes[index] : (props.children[index].props.size || 100) / childrenLength;
|
|
171
|
+
};
|
|
139
172
|
|
|
140
173
|
var _useEventListener = hooks.useEventListener({
|
|
141
174
|
type: 'mousemove',
|
|
@@ -169,6 +202,9 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
169
202
|
};
|
|
170
203
|
|
|
171
204
|
var validateResize = function validateResize(newPrevPanelSize, newNextPanelSize) {
|
|
205
|
+
if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;
|
|
206
|
+
if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;
|
|
207
|
+
|
|
172
208
|
if (props.children[prevPanelIndex.current].props && props.children[prevPanelIndex.current].props.minSize && props.children[prevPanelIndex.current].props.minSize > newPrevPanelSize) {
|
|
173
209
|
return false;
|
|
174
210
|
}
|
|
@@ -187,11 +223,13 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
187
223
|
prevPanelElement.current = null;
|
|
188
224
|
nextPanelElement.current = null;
|
|
189
225
|
prevPanelSize.current = null;
|
|
226
|
+
prevPanelSizeNew.current = null;
|
|
190
227
|
nextPanelSize.current = null;
|
|
228
|
+
nextPanelSizeNew.current = null;
|
|
191
229
|
prevPanelIndex.current = null;
|
|
192
230
|
};
|
|
193
231
|
|
|
194
|
-
var getStorage = function
|
|
232
|
+
var getStorage = React__namespace.useCallback(function () {
|
|
195
233
|
switch (props.stateStorage) {
|
|
196
234
|
case 'local':
|
|
197
235
|
return window.localStorage;
|
|
@@ -202,31 +240,16 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
202
240
|
default:
|
|
203
241
|
throw new Error(props.stateStorage + ' is not a valid value for the state storage, supported values are "local" and "session".');
|
|
204
242
|
}
|
|
205
|
-
};
|
|
243
|
+
}, [props.stateStorage]);
|
|
206
244
|
|
|
207
|
-
var saveState = function saveState() {
|
|
208
|
-
getStorage().setItem(props.stateKey, JSON.stringify(
|
|
245
|
+
var saveState = function saveState(sizes) {
|
|
246
|
+
getStorage().setItem(props.stateKey, JSON.stringify(sizes));
|
|
209
247
|
};
|
|
210
248
|
|
|
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
|
-
};
|
|
249
|
+
var restoreState = React__namespace.useCallback(function () {
|
|
250
|
+
var stateString = getStorage().getItem(props.stateKey);
|
|
251
|
+
if (stateString) setPanelSizes(JSON.parse(stateString));
|
|
252
|
+
}, [getStorage, props.stateKey]);
|
|
230
253
|
|
|
231
254
|
var onResizeStart = function onResizeStart(event, index) {
|
|
232
255
|
gutterRef.current = gutterRefs.current[index];
|
|
@@ -238,7 +261,9 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
238
261
|
prevPanelElement.current = gutterRef.current.previousElementSibling;
|
|
239
262
|
nextPanelElement.current = gutterRef.current.nextElementSibling;
|
|
240
263
|
prevPanelSize.current = 100 * (props.layout === 'horizontal' ? utils.DomHandler.getOuterWidth(prevPanelElement.current, true) : utils.DomHandler.getOuterHeight(prevPanelElement.current, true)) / size.current;
|
|
264
|
+
prevPanelSizeNew.current = prevPanelSize.current;
|
|
241
265
|
nextPanelSize.current = 100 * (props.layout === 'horizontal' ? utils.DomHandler.getOuterWidth(nextPanelElement.current, true) : utils.DomHandler.getOuterHeight(nextPanelElement.current, true)) / size.current;
|
|
266
|
+
nextPanelSizeNew.current = nextPanelSize.current;
|
|
242
267
|
prevPanelIndex.current = index;
|
|
243
268
|
utils.DomHandler.addClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
244
269
|
utils.DomHandler.addClass(elementRef.current, 'p-splitter-resizing');
|
|
@@ -253,25 +278,34 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
253
278
|
var newNextPanelSize = nextPanelSize.current - newPos;
|
|
254
279
|
|
|
255
280
|
if (validateResize(newPrevPanelSize, newNextPanelSize)) {
|
|
281
|
+
prevPanelSizeNew.current = newPrevPanelSize;
|
|
282
|
+
nextPanelSizeNew.current = newNextPanelSize;
|
|
256
283
|
prevPanelElement.current.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
257
284
|
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
285
|
}
|
|
261
286
|
};
|
|
262
287
|
|
|
263
288
|
var onResizeEnd = function onResizeEnd(event) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
289
|
+
setPanelSizes(function (prev) {
|
|
290
|
+
var sizes = [];
|
|
267
291
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
292
|
+
for (var index = 0; index < props.children.length; _readOnlyError("index")) {
|
|
293
|
+
sizes[index] = panelSize(prev, index);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
sizes[prevPanelIndex.current] = prevPanelSizeNew.current;
|
|
297
|
+
sizes[prevPanelIndex.current + 1] = nextPanelSizeNew.current;
|
|
298
|
+
|
|
299
|
+
if (props.onResizeEnd) {
|
|
300
|
+
props.onResizeEnd({
|
|
301
|
+
originalEvent: event,
|
|
302
|
+
sizes: sizes
|
|
303
|
+
});
|
|
304
|
+
}
|
|
274
305
|
|
|
306
|
+
if (isStateful) saveState(sizes);
|
|
307
|
+
return sizes;
|
|
308
|
+
});
|
|
275
309
|
utils.DomHandler.removeClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
276
310
|
utils.DomHandler.removeClass(elementRef.current, 'p-splitter-resizing');
|
|
277
311
|
clear();
|
|
@@ -319,30 +353,10 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
319
353
|
utils.DomHandler.addClass(panelElement, 'p-splitter-panel-nested');
|
|
320
354
|
}
|
|
321
355
|
});
|
|
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
|
-
});
|
|
356
|
+
}, []);
|
|
357
|
+
React__namespace.useEffect(function () {
|
|
358
|
+
if (isStateful) restoreState();
|
|
359
|
+
}, [restoreState, isStateful]);
|
|
346
360
|
|
|
347
361
|
var createPanel = function createPanel(panel, index) {
|
|
348
362
|
var otherProps = utils.ObjectUtils.findDiffKeys(panel.props, SplitterPanel.defaultProps);
|
|
@@ -373,10 +387,13 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
373
387
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
374
388
|
className: "p-splitter-gutter-handle"
|
|
375
389
|
}));
|
|
390
|
+
var flexBasis = 'calc(' + panelSize(panelSizes, index) + '% - ' + (childrenLength - 1) * props.gutterSize + 'px)';
|
|
376
391
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
377
392
|
key: index,
|
|
378
393
|
className: panelClassName,
|
|
379
|
-
style: panel.props.style
|
|
394
|
+
style: _objectSpread(_objectSpread({}, panel.props.style), {}, {
|
|
395
|
+
flexBasis: flexBasis
|
|
396
|
+
})
|
|
380
397
|
}, otherProps), panel.props.children), gutter);
|
|
381
398
|
};
|
|
382
399
|
|
|
@@ -397,22 +414,22 @@ var Splitter = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
397
414
|
SplitterPanel.displayName = 'SplitterPanel';
|
|
398
415
|
SplitterPanel.defaultProps = {
|
|
399
416
|
__TYPE: 'SplitterPanel',
|
|
400
|
-
|
|
417
|
+
className: null,
|
|
401
418
|
minSize: null,
|
|
402
|
-
|
|
403
|
-
|
|
419
|
+
size: null,
|
|
420
|
+
style: null
|
|
404
421
|
};
|
|
405
422
|
Splitter.displayName = 'Splitter';
|
|
406
423
|
Splitter.defaultProps = {
|
|
407
424
|
__TYPE: 'Splitter',
|
|
408
|
-
id: null,
|
|
409
425
|
className: null,
|
|
410
|
-
style: null,
|
|
411
|
-
layout: 'horizontal',
|
|
412
426
|
gutterSize: 4,
|
|
427
|
+
id: null,
|
|
428
|
+
layout: 'horizontal',
|
|
429
|
+
onResizeEnd: null,
|
|
413
430
|
stateKey: null,
|
|
414
431
|
stateStorage: 'session',
|
|
415
|
-
|
|
432
|
+
style: null
|
|
416
433
|
};
|
|
417
434
|
|
|
418
435
|
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){throw new TypeError('"'+e+'" is read-only')}function d(e){if(Array.isArray(e))return e}function m(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 y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){return d(e)||m(e,t)||s(e,t)||y()}function g(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 v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var b=function(){},O=u.memo(u.forwardRef((function(e,n){var o=u.useRef(null),i=u.useRef(),d=u.useRef({}),m=u.useRef(null),y=u.useRef(null),g=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=u.useRef(null),H=h(u.useState([]),2),R=H[0],N=H[1],x=null!=e.stateKey,C=e.children&&e.children.length,A=function(t,r){return r in t?t[r]:(e.children[r].props.size||100)/C},I=h(t.useEventListener({type:"mousemove",listener:function(e){return W(e)}}),2),T=I[0],_=I[1],K=h(t.useEventListener({type:"mouseup",listener:function(e){J(e),Y()}}),2),k=K[0],L=K[1],Y=function(){_(),L()},M=function(t,r){return!(t>100||t<0)&&(!(r>100||r<0)&&(!(e.children[D.current].props&&e.children[D.current].props.minSize&&e.children[D.current].props.minSize>t)&&!(e.children[D.current+1].props&&e.children[D.current+1].props.minSize&&e.children[D.current+1].props.minSize>r)))},U=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]),X=function(t){U().setItem(e.stateKey,JSON.stringify(t))},q=u.useCallback((function(){var t=U().getItem(e.stateKey);t&&N(JSON.parse(t))}),[U,e.stateKey]),B=function(t,n){i.current=d.current[n];var u="touchstart"===t.type?t.touches[0].pageX:t.pageX,l="touchstart"===t.type?t.touches[0].pageY:t.pageY;m.current="horizontal"===e.layout?r.DomHandler.getWidth(o.current):r.DomHandler.getHeight(o.current),y.current=!0,g.current="horizontal"===e.layout?u:l,S.current=i.current.previousElementSibling,w.current=i.current.nextElementSibling,E.current=100*("horizontal"===e.layout?r.DomHandler.getOuterWidth(S.current,!0):r.DomHandler.getOuterHeight(S.current,!0))/m.current,z.current=E.current,j.current=100*("horizontal"===e.layout?r.DomHandler.getOuterWidth(w.current,!0):r.DomHandler.getOuterHeight(w.current,!0))/m.current,P.current=j.current,D.current=n,r.DomHandler.addClass(i.current,"p-splitter-gutter-resizing"),r.DomHandler.addClass(o.current,"p-splitter-resizing")},W=function(t){var r,n=E.current+(r="horizontal"===e.layout?100*("touchmove"===t.type?t.touches[0].pageX:t.pageX)/m.current-100*g.current/m.current:100*("touchmove"===t.type?t.touches[0].pageY:t.pageY)/m.current-100*g.current/m.current),u=j.current-r;M(n,u)&&(z.current=n,P.current=u,S.current.style.flexBasis="calc("+n+"% - "+(e.children.length-1)*e.gutterSize+"px)",w.current.style.flexBasis="calc("+u+"% - "+(e.children.length-1)*e.gutterSize+"px)")},J=function(t){N((function(r){for(var n=[];0<e.children.length;f("index"))n[0]=A(r,0);return n[D.current]=z.current,n[D.current+1]=P.current,e.onResizeEnd&&e.onResizeEnd({originalEvent:t,sizes:n}),x&&X(n),n})),r.DomHandler.removeClass(i.current,"p-splitter-gutter-resizing"),r.DomHandler.removeClass(o.current,"p-splitter-resizing"),y.current=!1,m.current=null,g.current=null,S.current=null,w.current=null,E.current=null,z.current=null,j.current=null,P.current=null,D.current=null},F=function(e,t){B(e,t),T(),k()},$=function(e,t){B(e,t),window.addEventListener("touchmove",G,{passive:!1,cancelable:!1}),window.addEventListener("touchend",Q)},G=function(e){W(e)},Q=function e(t){J(t),window.removeEventListener("touchmove",G),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(){x&&q()}),[q,x]);var V=function(t,n){var o=r.ObjectUtils.findDiffKeys(t.props,b.defaultProps),i=r.classNames("p-splitter-panel",t.props.className),c=n!==e.children.length-1&&u.createElement("div",{ref:function(e){return d.current[n]=e},className:"p-splitter-gutter",style:"horizontal"===e.layout?{width:e.gutterSize+"px"}:{height:e.gutterSize+"px"},onMouseDown:function(e){return F(e,n)},onTouchStart:function(e){return $(e,n)},onTouchMove:function(e){return G(e)},onTouchEnd:function(e){return Q(e)}},u.createElement("div",{className:"p-splitter-gutter-handle"})),a="calc("+A(R,n)+"% - "+(C-1)*e.gutterSize+"px)";return u.createElement(u.Fragment,null,u.createElement("div",l({key:n,className:i,style:v(v({},t.props.style),{},{flexBasis:a})},o),t.props.children),c)},Z=r.ObjectUtils.findDiffKeys(e,O.defaultProps),ee=r.classNames("p-splitter p-component p-splitter-".concat(e.layout),e.className),te=u.Children.map(e.children,V);return u.createElement("div",l({ref:o,id:e.id,className:ee,style:e.style},Z),te)})));b.displayName="SplitterPanel",b.defaultProps={__TYPE:"SplitterPanel",className:null,minSize:null,size:null,style:null},O.displayName="Splitter",O.defaultProps={__TYPE:"Splitter",className:null,gutterSize:4,id:null,layout:"horizontal",onResizeEnd:null,stateKey:null,stateStorage:"session",style:null},exports.Splitter=O,exports.SplitterPanel=b;
|
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
|
|
|
@@ -54,6 +69,10 @@ function _toConsumableArray(arr) {
|
|
|
54
69
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
55
70
|
}
|
|
56
71
|
|
|
72
|
+
function _readOnlyError(name) {
|
|
73
|
+
throw new TypeError("\"" + name + "\" is read-only");
|
|
74
|
+
}
|
|
75
|
+
|
|
57
76
|
function _arrayWithHoles(arr) {
|
|
58
77
|
if (Array.isArray(arr)) return arr;
|
|
59
78
|
}
|
|
@@ -96,6 +115,9 @@ function _slicedToArray(arr, i) {
|
|
|
96
115
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
97
116
|
}
|
|
98
117
|
|
|
118
|
+
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; }
|
|
119
|
+
|
|
120
|
+
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
121
|
var SplitterPanel = function SplitterPanel() {};
|
|
100
122
|
var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
101
123
|
var elementRef = React.useRef(null);
|
|
@@ -107,11 +129,22 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
107
129
|
var prevPanelElement = React.useRef(null);
|
|
108
130
|
var nextPanelElement = React.useRef(null);
|
|
109
131
|
var prevPanelSize = React.useRef(null);
|
|
132
|
+
var prevPanelSizeNew = React.useRef(null);
|
|
110
133
|
var nextPanelSize = React.useRef(null);
|
|
134
|
+
var nextPanelSizeNew = React.useRef(null);
|
|
111
135
|
var prevPanelIndex = React.useRef(null);
|
|
112
|
-
|
|
113
|
-
var
|
|
136
|
+
|
|
137
|
+
var _React$useState = React.useState([]),
|
|
138
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
139
|
+
panelSizes = _React$useState2[0],
|
|
140
|
+
setPanelSizes = _React$useState2[1];
|
|
141
|
+
|
|
114
142
|
var isStateful = props.stateKey != null;
|
|
143
|
+
var childrenLength = props.children && props.children.length;
|
|
144
|
+
|
|
145
|
+
var panelSize = function panelSize(sizes, index) {
|
|
146
|
+
return index in sizes ? sizes[index] : (props.children[index].props.size || 100) / childrenLength;
|
|
147
|
+
};
|
|
115
148
|
|
|
116
149
|
var _useEventListener = useEventListener({
|
|
117
150
|
type: 'mousemove',
|
|
@@ -145,6 +178,9 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
145
178
|
};
|
|
146
179
|
|
|
147
180
|
var validateResize = function validateResize(newPrevPanelSize, newNextPanelSize) {
|
|
181
|
+
if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;
|
|
182
|
+
if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;
|
|
183
|
+
|
|
148
184
|
if (props.children[prevPanelIndex.current].props && props.children[prevPanelIndex.current].props.minSize && props.children[prevPanelIndex.current].props.minSize > newPrevPanelSize) {
|
|
149
185
|
return false;
|
|
150
186
|
}
|
|
@@ -163,11 +199,13 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
163
199
|
prevPanelElement.current = null;
|
|
164
200
|
nextPanelElement.current = null;
|
|
165
201
|
prevPanelSize.current = null;
|
|
202
|
+
prevPanelSizeNew.current = null;
|
|
166
203
|
nextPanelSize.current = null;
|
|
204
|
+
nextPanelSizeNew.current = null;
|
|
167
205
|
prevPanelIndex.current = null;
|
|
168
206
|
};
|
|
169
207
|
|
|
170
|
-
var getStorage = function
|
|
208
|
+
var getStorage = React.useCallback(function () {
|
|
171
209
|
switch (props.stateStorage) {
|
|
172
210
|
case 'local':
|
|
173
211
|
return window.localStorage;
|
|
@@ -178,31 +216,16 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
178
216
|
default:
|
|
179
217
|
throw new Error(props.stateStorage + ' is not a valid value for the state storage, supported values are "local" and "session".');
|
|
180
218
|
}
|
|
181
|
-
};
|
|
219
|
+
}, [props.stateStorage]);
|
|
182
220
|
|
|
183
|
-
var saveState = function saveState() {
|
|
184
|
-
getStorage().setItem(props.stateKey, JSON.stringify(
|
|
221
|
+
var saveState = function saveState(sizes) {
|
|
222
|
+
getStorage().setItem(props.stateKey, JSON.stringify(sizes));
|
|
185
223
|
};
|
|
186
224
|
|
|
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
|
-
};
|
|
225
|
+
var restoreState = React.useCallback(function () {
|
|
226
|
+
var stateString = getStorage().getItem(props.stateKey);
|
|
227
|
+
if (stateString) setPanelSizes(JSON.parse(stateString));
|
|
228
|
+
}, [getStorage, props.stateKey]);
|
|
206
229
|
|
|
207
230
|
var onResizeStart = function onResizeStart(event, index) {
|
|
208
231
|
gutterRef.current = gutterRefs.current[index];
|
|
@@ -214,7 +237,9 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
214
237
|
prevPanelElement.current = gutterRef.current.previousElementSibling;
|
|
215
238
|
nextPanelElement.current = gutterRef.current.nextElementSibling;
|
|
216
239
|
prevPanelSize.current = 100 * (props.layout === 'horizontal' ? DomHandler.getOuterWidth(prevPanelElement.current, true) : DomHandler.getOuterHeight(prevPanelElement.current, true)) / size.current;
|
|
240
|
+
prevPanelSizeNew.current = prevPanelSize.current;
|
|
217
241
|
nextPanelSize.current = 100 * (props.layout === 'horizontal' ? DomHandler.getOuterWidth(nextPanelElement.current, true) : DomHandler.getOuterHeight(nextPanelElement.current, true)) / size.current;
|
|
242
|
+
nextPanelSizeNew.current = nextPanelSize.current;
|
|
218
243
|
prevPanelIndex.current = index;
|
|
219
244
|
DomHandler.addClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
220
245
|
DomHandler.addClass(elementRef.current, 'p-splitter-resizing');
|
|
@@ -229,25 +254,34 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
229
254
|
var newNextPanelSize = nextPanelSize.current - newPos;
|
|
230
255
|
|
|
231
256
|
if (validateResize(newPrevPanelSize, newNextPanelSize)) {
|
|
257
|
+
prevPanelSizeNew.current = newPrevPanelSize;
|
|
258
|
+
nextPanelSizeNew.current = newNextPanelSize;
|
|
232
259
|
prevPanelElement.current.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (props.children.length - 1) * props.gutterSize + 'px)';
|
|
233
260
|
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
261
|
}
|
|
237
262
|
};
|
|
238
263
|
|
|
239
264
|
var onResizeEnd = function onResizeEnd(event) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}
|
|
265
|
+
setPanelSizes(function (prev) {
|
|
266
|
+
var sizes = [];
|
|
243
267
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
268
|
+
for (var index = 0; index < props.children.length; _readOnlyError("index")) {
|
|
269
|
+
sizes[index] = panelSize(prev, index);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
sizes[prevPanelIndex.current] = prevPanelSizeNew.current;
|
|
273
|
+
sizes[prevPanelIndex.current + 1] = nextPanelSizeNew.current;
|
|
274
|
+
|
|
275
|
+
if (props.onResizeEnd) {
|
|
276
|
+
props.onResizeEnd({
|
|
277
|
+
originalEvent: event,
|
|
278
|
+
sizes: sizes
|
|
279
|
+
});
|
|
280
|
+
}
|
|
250
281
|
|
|
282
|
+
if (isStateful) saveState(sizes);
|
|
283
|
+
return sizes;
|
|
284
|
+
});
|
|
251
285
|
DomHandler.removeClass(gutterRef.current, 'p-splitter-gutter-resizing');
|
|
252
286
|
DomHandler.removeClass(elementRef.current, 'p-splitter-resizing');
|
|
253
287
|
clear();
|
|
@@ -295,30 +329,10 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
295
329
|
DomHandler.addClass(panelElement, 'p-splitter-panel-nested');
|
|
296
330
|
}
|
|
297
331
|
});
|
|
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
|
-
});
|
|
332
|
+
}, []);
|
|
333
|
+
React.useEffect(function () {
|
|
334
|
+
if (isStateful) restoreState();
|
|
335
|
+
}, [restoreState, isStateful]);
|
|
322
336
|
|
|
323
337
|
var createPanel = function createPanel(panel, index) {
|
|
324
338
|
var otherProps = ObjectUtils.findDiffKeys(panel.props, SplitterPanel.defaultProps);
|
|
@@ -349,10 +363,13 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
349
363
|
}, /*#__PURE__*/React.createElement("div", {
|
|
350
364
|
className: "p-splitter-gutter-handle"
|
|
351
365
|
}));
|
|
366
|
+
var flexBasis = 'calc(' + panelSize(panelSizes, index) + '% - ' + (childrenLength - 1) * props.gutterSize + 'px)';
|
|
352
367
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", _extends({
|
|
353
368
|
key: index,
|
|
354
369
|
className: panelClassName,
|
|
355
|
-
style: panel.props.style
|
|
370
|
+
style: _objectSpread(_objectSpread({}, panel.props.style), {}, {
|
|
371
|
+
flexBasis: flexBasis
|
|
372
|
+
})
|
|
356
373
|
}, otherProps), panel.props.children), gutter);
|
|
357
374
|
};
|
|
358
375
|
|
|
@@ -373,22 +390,22 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
373
390
|
SplitterPanel.displayName = 'SplitterPanel';
|
|
374
391
|
SplitterPanel.defaultProps = {
|
|
375
392
|
__TYPE: 'SplitterPanel',
|
|
376
|
-
|
|
393
|
+
className: null,
|
|
377
394
|
minSize: null,
|
|
378
|
-
|
|
379
|
-
|
|
395
|
+
size: null,
|
|
396
|
+
style: null
|
|
380
397
|
};
|
|
381
398
|
Splitter.displayName = 'Splitter';
|
|
382
399
|
Splitter.defaultProps = {
|
|
383
400
|
__TYPE: 'Splitter',
|
|
384
|
-
id: null,
|
|
385
401
|
className: null,
|
|
386
|
-
style: null,
|
|
387
|
-
layout: 'horizontal',
|
|
388
402
|
gutterSize: 4,
|
|
403
|
+
id: null,
|
|
404
|
+
layout: 'horizontal',
|
|
405
|
+
onResizeEnd: null,
|
|
389
406
|
stateKey: null,
|
|
390
407
|
stateStorage: 'session',
|
|
391
|
-
|
|
408
|
+
style: null
|
|
392
409
|
};
|
|
393
410
|
|
|
394
411
|
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){throw new TypeError('"'+e+'" is read-only')}function d(e){if(Array.isArray(e))return e}function h(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 y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(e,t){return d(e)||h(e,t)||s(e,t)||y()}function g(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 v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var b=function(){},S=e.memo(e.forwardRef((function(o,i){var d=e.useRef(null),h=e.useRef(),y=e.useRef({}),g=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=e.useRef(null),C=m(e.useState([]),2),A=C[0],I=C[1],T=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},Y=m(t({type:"mousemove",listener:function(e){return $(e)}}),2),k=Y[0],H=Y[1],L=m(t({type:"mouseup",listener:function(e){q(e),B()}}),2),X=L[0],_=L[1],B=function(){H(),_()},M=function(e,t){return!(e>100||e<0)&&(!(t>100||t<0)&&(!(o.children[x.current].props&&o.children[x.current].props.minSize&&o.children[x.current].props.minSize>e)&&!(o.children[x.current+1].props&&o.children[x.current+1].props.minSize&&o.children[x.current+1].props.minSize>t)))},W=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]),J=function(e){W().setItem(o.stateKey,JSON.stringify(e))},F=e.useCallback((function(){var e=W().getItem(o.stateKey);e&&I(JSON.parse(e))}),[W,o.stateKey]),U=function(e,t){h.current=y.current[t];var n="touchstart"===e.type?e.touches[0].pageX:e.pageX,u="touchstart"===e.type?e.touches[0].pageY:e.pageY;g.current="horizontal"===o.layout?r.getWidth(d.current):r.getHeight(d.current),w.current=!0,O.current="horizontal"===o.layout?n:u,z.current=h.current.previousElementSibling,E.current=h.current.nextElementSibling,j.current=100*("horizontal"===o.layout?r.getOuterWidth(z.current,!0):r.getOuterHeight(z.current,!0))/g.current,P.current=j.current,R.current=100*("horizontal"===o.layout?r.getOuterWidth(E.current,!0):r.getOuterHeight(E.current,!0))/g.current,N.current=R.current,x.current=t,r.addClass(h.current,"p-splitter-gutter-resizing"),r.addClass(d.current,"p-splitter-resizing")},$=function(e){var t,r=j.current+(t="horizontal"===o.layout?100*("touchmove"===e.type?e.touches[0].pageX:e.pageX)/g.current-100*O.current/g.current:100*("touchmove"===e.type?e.touches[0].pageY:e.pageY)/g.current-100*O.current/g.current),n=R.current-t;M(r,n)&&(P.current=r,N.current=n,z.current.style.flexBasis="calc("+r+"% - "+(o.children.length-1)*o.gutterSize+"px)",E.current.style.flexBasis="calc("+n+"% - "+(o.children.length-1)*o.gutterSize+"px)")},q=function(e){I((function(t){for(var r=[];0<o.children.length;f("index"))r[0]=K(t,0);return r[x.current]=P.current,r[x.current+1]=N.current,o.onResizeEnd&&o.onResizeEnd({originalEvent:e,sizes:r}),T&&J(r),r})),r.removeClass(h.current,"p-splitter-gutter-resizing"),r.removeClass(d.current,"p-splitter-resizing"),w.current=!1,g.current=null,O.current=null,z.current=null,E.current=null,j.current=null,P.current=null,R.current=null,N.current=null,x.current=null},G=function(e,t){U(e,t),k(),X()},Q=function(e,t){U(e,t),window.addEventListener("touchmove",V,{passive:!1,cancelable:!1}),window.addEventListener("touchend",Z)},V=function(e){$(e)},Z=function e(t){q(t),window.removeEventListener("touchmove",V),window.removeEventListener("touchend",e)};e.useImperativeHandle(i,(function(){return{props:o,getElement:function(){return d.current}}})),e.useEffect((function(){var e;(e=d.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(){T&&F()}),[F,T]);var ee=function(t,r){var i=n.findDiffKeys(t.props,b.defaultProps),c=u("p-splitter-panel",t.props.className),a=r!==o.children.length-1&&e.createElement("div",{ref:function(e){return y.current[r]=e},className:"p-splitter-gutter",style:"horizontal"===o.layout?{width:o.gutterSize+"px"}:{height:o.gutterSize+"px"},onMouseDown:function(e){return G(e,r)},onTouchStart:function(e){return Q(e,r)},onTouchMove:function(e){return V(e)},onTouchEnd:function(e){return Z(e)}},e.createElement("div",{className:"p-splitter-gutter-handle"})),s="calc("+K(A,r)+"% - "+(D-1)*o.gutterSize+"px)";return e.createElement(e.Fragment,null,e.createElement("div",l({key:r,className:c,style:v(v({},t.props.style),{},{flexBasis:s})},i),t.props.children),a)},te=n.findDiffKeys(o,S.defaultProps),re=u("p-splitter p-component p-splitter-".concat(o.layout),o.className),ne=e.Children.map(o.children,ee);return e.createElement("div",l({ref:d,id:o.id,className:re,style:o.style},te),ne)})));b.displayName="SplitterPanel",b.defaultProps={__TYPE:"SplitterPanel",className:null,minSize:null,size:null,style:null},S.displayName="Splitter",S.defaultProps={__TYPE:"Splitter",className:null,gutterSize:4,id:null,layout:"horizontal",onResizeEnd:null,stateKey:null,stateStorage:"session",style:null};export{S as Splitter,b as SplitterPanel};
|