@atlaskit/navigation-system 11.3.0 → 11.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/ui/page-layout/calculate-layout-area-states.js +76 -37
- package/dist/cjs/ui/page-layout/chat-panel.js +6 -3
- package/dist/cjs/ui/page-layout/layout-area-sizing-context.js +2 -2
- package/dist/cjs/ui/page-layout/layout-area-sizing-provider.js +243 -247
- package/dist/cjs/ui/page-layout/layout-area-sizing-runtime.js +468 -0
- package/dist/cjs/ui/page-layout/main/main.js +1 -1
- package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +239 -99
- package/dist/cjs/ui/page-layout/panel-splitter/provider.js +3 -1
- package/dist/cjs/ui/page-layout/root.compiled.css +14 -3
- package/dist/cjs/ui/page-layout/root.js +43 -17
- package/dist/cjs/ui/page-layout/side-nav/side-nav.js +14 -3
- package/dist/cjs/ui/page-layout/use-css-layout-area-states.js +117 -0
- package/dist/cjs/ui/page-layout/use-layout-area-sizing.js +3 -1
- package/dist/es2019/ui/page-layout/calculate-layout-area-states.js +51 -17
- package/dist/es2019/ui/page-layout/chat-panel.js +29 -5
- package/dist/es2019/ui/page-layout/layout-area-sizing-context.js +2 -2
- package/dist/es2019/ui/page-layout/layout-area-sizing-provider.js +171 -241
- package/dist/es2019/ui/page-layout/layout-area-sizing-runtime.js +419 -0
- package/dist/es2019/ui/page-layout/main/main.js +2 -2
- package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +60 -10
- package/dist/es2019/ui/page-layout/panel-splitter/provider.js +3 -1
- package/dist/es2019/ui/page-layout/root.compiled.css +14 -3
- package/dist/es2019/ui/page-layout/root.js +30 -3
- package/dist/es2019/ui/page-layout/side-nav/side-nav.js +23 -3
- package/dist/es2019/ui/page-layout/use-css-layout-area-states.js +73 -0
- package/dist/es2019/ui/page-layout/use-layout-area-sizing.js +3 -1
- package/dist/esm/ui/page-layout/calculate-layout-area-states.js +75 -37
- package/dist/esm/ui/page-layout/chat-panel.js +7 -4
- package/dist/esm/ui/page-layout/layout-area-sizing-context.js +2 -2
- package/dist/esm/ui/page-layout/layout-area-sizing-provider.js +243 -248
- package/dist/esm/ui/page-layout/layout-area-sizing-runtime.js +459 -0
- package/dist/esm/ui/page-layout/main/main.js +2 -2
- package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +238 -98
- package/dist/esm/ui/page-layout/panel-splitter/provider.js +3 -1
- package/dist/esm/ui/page-layout/root.compiled.css +14 -3
- package/dist/esm/ui/page-layout/root.js +42 -16
- package/dist/esm/ui/page-layout/side-nav/side-nav.js +14 -3
- package/dist/esm/ui/page-layout/use-css-layout-area-states.js +110 -0
- package/dist/esm/ui/page-layout/use-layout-area-sizing.js +3 -1
- package/dist/types/ui/page-layout/calculate-layout-area-states.d.ts +7 -2
- package/dist/types/ui/page-layout/layout-area-sizing-context.d.ts +10 -3
- package/dist/types/ui/page-layout/layout-area-sizing-provider.d.ts +6 -0
- package/dist/types/ui/page-layout/layout-area-sizing-runtime.d.ts +8 -0
- package/dist/types/ui/page-layout/panel-splitter/panel-splitter-context.d.ts +4 -0
- package/dist/types/ui/page-layout/panel-splitter/provider.d.ts +1 -1
- package/dist/types/ui/page-layout/root.d.ts +2 -0
- package/dist/types/ui/page-layout/use-css-layout-area-states.d.ts +8 -0
- package/dist/types/ui/page-layout/use-layout-area-sizing.d.ts +2 -0
- package/package.json +12 -6
|
@@ -11,6 +11,8 @@ require("./panel-splitter.compiled.css");
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var React = _react;
|
|
13
13
|
var _runtime = require("@compiled/react/runtime");
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
16
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
17
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
18
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -41,7 +43,7 @@ var _onDoubleClickContext = require("./on-double-click-context");
|
|
|
41
43
|
var _panelSplitterContext = require("./panel-splitter-context");
|
|
42
44
|
var _panelSplitterDragSymbol = require("./panel-splitter-drag-symbol");
|
|
43
45
|
var _excluded = ["children", "className"];
|
|
44
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var
|
|
46
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t6 in e) "default" !== _t6 && {}.hasOwnProperty.call(e, _t6) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t6)) && (i.get || i.set) ? o(f, _t6, i) : f[_t6] = e[_t6]); return f; })(e, t); }
|
|
45
47
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
46
48
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
47
49
|
function signPanelSplitterDragData(data) {
|
|
@@ -145,6 +147,7 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
145
147
|
onCompleteResize = _ref3.onCompleteResize,
|
|
146
148
|
onResizeStartInternal = _ref3.onResizeStartInternal,
|
|
147
149
|
onResizeInternal = _ref3.onResizeInternal,
|
|
150
|
+
prepareResize = _ref3.prepareResize,
|
|
148
151
|
getResizeBounds = _ref3.getResizeBounds,
|
|
149
152
|
panel = _ref3.panel,
|
|
150
153
|
portal = _ref3.portal,
|
|
@@ -296,8 +299,9 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
296
299
|
});
|
|
297
300
|
var resizingWidth = "clamp(".concat(resizeBounds.min, ", ").concat(targetWidth, "px, ").concat(resizeBounds.max, ")");
|
|
298
301
|
if ((0, _fg.fg)('platform-dst-chat-panel-layout') && onResizeInternal) {
|
|
299
|
-
//
|
|
300
|
-
var
|
|
302
|
+
// The allocator needs below-minimum requests for the local-to-chat cascade.
|
|
303
|
+
var currentBounds = getResizeBounds();
|
|
304
|
+
var width = Math.max(0, Math.min(targetWidth, prepareResize ? window.innerWidth : (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(currentBounds.max)));
|
|
301
305
|
if (width !== lastManagedResizeWidth) {
|
|
302
306
|
lastManagedResizeWidth = width;
|
|
303
307
|
onResizeInternal(width);
|
|
@@ -310,39 +314,68 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
310
314
|
source.data.resizingWidth = resizingWidth;
|
|
311
315
|
},
|
|
312
316
|
onDrop: function onDrop(_ref7) {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
317
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
318
|
+
var _resizingElementRef$c2;
|
|
319
|
+
var source, width, finalWidth, _t;
|
|
320
|
+
return _regenerator.default.wrap(function (_context) {
|
|
321
|
+
while (1) switch (_context.prev = _context.next) {
|
|
322
|
+
case 0:
|
|
323
|
+
source = _ref7.source;
|
|
324
|
+
(0, _tinyInvariant.default)((0, _isPanelSplitterDragData.isPanelSplitterDragData)(source.data));
|
|
325
|
+
_preventUnhandled.preventUnhandled.stop();
|
|
326
|
+
if (!prepareResize) {
|
|
327
|
+
_context.next = 3;
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
_context.next = 1;
|
|
331
|
+
return prepareResize();
|
|
332
|
+
case 1:
|
|
333
|
+
_t = !_context.sent;
|
|
334
|
+
if (_t) {
|
|
335
|
+
_context.next = 2;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
_t = !panel.isConnected;
|
|
339
|
+
case 2:
|
|
340
|
+
if (!_t) {
|
|
341
|
+
_context.next = 3;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
return _context.abrupt("return");
|
|
345
|
+
case 3:
|
|
346
|
+
// PDD may deliver its final throttled drag update immediately before drop.
|
|
347
|
+
// Commit that update once before measuring; do not persist a previous frame.
|
|
348
|
+
if (onResizeInternal && lastManagedResizeWidth !== undefined) {
|
|
349
|
+
width = lastManagedResizeWidth;
|
|
350
|
+
(0, _reactDom.flushSync)(function () {
|
|
351
|
+
return onResizeInternal(width);
|
|
352
|
+
});
|
|
353
|
+
lastManagedResizeWidth = undefined;
|
|
354
|
+
}
|
|
355
|
+
finalWidth = (0, _getPixelWidth.getPixelWidth)(panel); // Persist the final preferred width before removing the imperative drag
|
|
356
|
+
// variable, so the rendered width is continuous across pointer release.
|
|
357
|
+
if ((0, _fg.fg)('platform-dst-chat-panel-layout')) {
|
|
358
|
+
(0, _reactDom.flushSync)(function () {
|
|
359
|
+
return onCompleteResize(finalWidth);
|
|
360
|
+
});
|
|
361
|
+
} else {
|
|
362
|
+
onCompleteResize(finalWidth);
|
|
363
|
+
}
|
|
364
|
+
onResizeEnd === null || onResizeEnd === void 0 || onResizeEnd({
|
|
365
|
+
initialWidth: source.data.initialWidth,
|
|
366
|
+
finalWidth: finalWidth
|
|
367
|
+
});
|
|
368
|
+
panel.style.removeProperty(resizingCssVar);
|
|
369
|
+
resizingElementRef === null || resizingElementRef === void 0 || (_resizingElementRef$c2 = resizingElementRef.current) === null || _resizingElementRef$c2 === void 0 || _resizingElementRef$c2.style.removeProperty(resizingCssVar);
|
|
370
|
+
case 4:
|
|
371
|
+
case "end":
|
|
372
|
+
return _context.stop();
|
|
373
|
+
}
|
|
374
|
+
}, _callee);
|
|
375
|
+
}))();
|
|
343
376
|
}
|
|
344
377
|
}));
|
|
345
|
-
}, [onCompleteResize, onResizeStartInternal, onResizeInternal, onResizeStart, onResizeEnd, panel, resizingCssVar, resizingElementRef, legacyPanelWidth, position, openLayerObserver, panelId, getResizeBounds]);
|
|
378
|
+
}, [onCompleteResize, onResizeStartInternal, onResizeInternal, prepareResize, onResizeStart, onResizeEnd, panel, resizingCssVar, resizingElementRef, legacyPanelWidth, position, openLayerObserver, panelId, getResizeBounds]);
|
|
346
379
|
var onResizeStartStableRef = (0, _useStableRef.default)(onResizeStart);
|
|
347
380
|
var onResizeEndStableRef = (0, _useStableRef.default)(onResizeEnd);
|
|
348
381
|
var _useState5 = (0, _react.useState)(function () {
|
|
@@ -367,74 +400,177 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
367
400
|
}),
|
|
368
401
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 1),
|
|
369
402
|
keyboardResizeManager = _useState6[0];
|
|
370
|
-
var
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
403
|
+
var focusSequence = (0, _react.useRef)(0);
|
|
404
|
+
var keyboardBoundsReady = (0, _react.useRef)(false);
|
|
405
|
+
var pendingKeyboardWidth = (0, _react.useRef)(null);
|
|
406
|
+
var handleSliderInputChange = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
407
|
+
var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(event, pendingKey) {
|
|
408
|
+
var isManagedResize, sequence, value, bounds, min, max, _pendingKeyboardWidth, current, isRtl, increase, step, _t2, _t3;
|
|
409
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
410
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
411
|
+
case 0:
|
|
412
|
+
isManagedResize = (0, _fg.fg)('platform-dst-chat-panel-layout') && onResizeInternal;
|
|
413
|
+
sequence = focusSequence.current;
|
|
414
|
+
value = isManagedResize ? parseFloat(event.currentTarget.value) : parseInt(event.currentTarget.value);
|
|
415
|
+
if (!prepareResize) {
|
|
416
|
+
_context2.next = 4;
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
_context2.next = 1;
|
|
420
|
+
return prepareResize();
|
|
421
|
+
case 1:
|
|
422
|
+
_t3 = !_context2.sent;
|
|
423
|
+
if (_t3) {
|
|
424
|
+
_context2.next = 2;
|
|
425
|
+
break;
|
|
426
|
+
}
|
|
427
|
+
_t3 = !panel.isConnected;
|
|
428
|
+
case 2:
|
|
429
|
+
_t2 = _t3;
|
|
430
|
+
if (_t2) {
|
|
431
|
+
_context2.next = 3;
|
|
432
|
+
break;
|
|
433
|
+
}
|
|
434
|
+
_t2 = sequence !== focusSequence.current;
|
|
435
|
+
case 3:
|
|
436
|
+
if (!_t2) {
|
|
437
|
+
_context2.next = 4;
|
|
438
|
+
break;
|
|
439
|
+
}
|
|
440
|
+
return _context2.abrupt("return");
|
|
441
|
+
case 4:
|
|
442
|
+
if (isManagedResize) {
|
|
443
|
+
// The available region may have changed since focus, including without a
|
|
444
|
+
// window resize. Use the allocator's current bounds for the public payload.
|
|
445
|
+
bounds = getResizeBounds();
|
|
446
|
+
min = (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(bounds.min);
|
|
447
|
+
max = (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(bounds.max);
|
|
448
|
+
if (pendingKey) {
|
|
449
|
+
// Native range inputs would apply these keys to the placeholder bounds.
|
|
450
|
+
// Preserve the intent until the chunk provides the real bounds instead.
|
|
451
|
+
current = (_pendingKeyboardWidth = pendingKeyboardWidth.current) !== null && _pendingKeyboardWidth !== void 0 ? _pendingKeyboardWidth : (0, _getPixelWidth.getPixelWidth)(panel);
|
|
452
|
+
isRtl = getTextDirection(panel) === 'rtl';
|
|
453
|
+
increase = pendingKey === 'ArrowUp' || pendingKey === (isRtl ? 'ArrowLeft' : 'ArrowRight') || pendingKey === 'PageUp';
|
|
454
|
+
step = pendingKey.startsWith('Page') ? Math.max(20, (max - min) / 10) : 20;
|
|
455
|
+
value = pendingKey === 'End' ? max : pendingKey === 'Home' ? min : current + (increase ? step : -step);
|
|
456
|
+
}
|
|
457
|
+
value = Math.max(min, Math.min(value, max));
|
|
458
|
+
setRangeInputBounds({
|
|
459
|
+
min: min,
|
|
460
|
+
max: max
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
pendingKeyboardWidth.current = value;
|
|
464
|
+
setRangeInputValue(value);
|
|
386
465
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
466
|
+
/**
|
|
467
|
+
* We are intentionally _not_ debouncing `onCompleteResize` as we want it to be called anytime the user changes the range input value.
|
|
468
|
+
* It is an internal-only callback - it's provided by `PanelSplitterProvider`, and used by layout slots to update their layout width state.
|
|
469
|
+
*/
|
|
470
|
+
onCompleteResize(value);
|
|
471
|
+
keyboardResizeManager.onResize({
|
|
472
|
+
initialWidth: panelWidth,
|
|
473
|
+
finalWidth: value
|
|
474
|
+
});
|
|
475
|
+
case 5:
|
|
476
|
+
case "end":
|
|
477
|
+
return _context2.stop();
|
|
478
|
+
}
|
|
479
|
+
}, _callee2);
|
|
480
|
+
}));
|
|
481
|
+
return function (_x, _x2) {
|
|
482
|
+
return _ref8.apply(this, arguments);
|
|
483
|
+
};
|
|
484
|
+
}(), [getResizeBounds, onCompleteResize, onResizeInternal, panelWidth, keyboardResizeManager, panel, prepareResize]);
|
|
485
|
+
var handleSliderKeyDown = (0, _react.useCallback)(function (event) {
|
|
486
|
+
if (prepareResize && !keyboardBoundsReady.current && ['Home', 'End', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'PageUp', 'PageDown'].includes(event.key)) {
|
|
487
|
+
event.preventDefault();
|
|
488
|
+
void handleSliderInputChange(event, event.key);
|
|
489
|
+
}
|
|
490
|
+
}, [handleSliderInputChange, prepareResize]);
|
|
397
491
|
var resizeEventListenerCleanupFn = (0, _react.useRef)(null);
|
|
398
|
-
var handleSliderFocus = (0, _react.useCallback)(function () {
|
|
492
|
+
var handleSliderFocus = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
399
493
|
var _resizeEventListenerC;
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
494
|
+
var sequence, width, resizeBounds, _t4, _t5;
|
|
495
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
496
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
497
|
+
case 0:
|
|
498
|
+
sequence = ++focusSequence.current;
|
|
499
|
+
keyboardBoundsReady.current = false;
|
|
500
|
+
pendingKeyboardWidth.current = null;
|
|
501
|
+
if (!prepareResize) {
|
|
502
|
+
_context3.next = 4;
|
|
503
|
+
break;
|
|
504
|
+
}
|
|
505
|
+
_context3.next = 1;
|
|
506
|
+
return prepareResize();
|
|
507
|
+
case 1:
|
|
508
|
+
_t5 = !_context3.sent;
|
|
509
|
+
if (_t5) {
|
|
510
|
+
_context3.next = 2;
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
_t5 = !panel.isConnected;
|
|
514
|
+
case 2:
|
|
515
|
+
_t4 = _t5;
|
|
516
|
+
if (_t4) {
|
|
517
|
+
_context3.next = 3;
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
520
|
+
_t4 = sequence !== focusSequence.current;
|
|
521
|
+
case 3:
|
|
522
|
+
if (!_t4) {
|
|
523
|
+
_context3.next = 4;
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
return _context3.abrupt("return");
|
|
527
|
+
case 4:
|
|
528
|
+
/**
|
|
529
|
+
* We are only updating the range input's properties when the element is focused, as a performance optimisation.
|
|
530
|
+
* It isn't necessary to recalculate these values until the element is going to be used.
|
|
531
|
+
*/
|
|
407
532
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
var resizeBounds = getResizeBounds();
|
|
533
|
+
// Clean up any left over listeners in case `focus` was triggered again without `blur`.
|
|
534
|
+
(_resizeEventListenerC = resizeEventListenerCleanupFn.current) === null || _resizeEventListenerC === void 0 || _resizeEventListenerC.call(resizeEventListenerCleanupFn);
|
|
411
535
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
536
|
+
// Update the range input value to match the current panel width.
|
|
537
|
+
width = prepareResize ? (0, _getPixelWidth.getPixelWidth)(panel) : panelWidth;
|
|
538
|
+
pendingKeyboardWidth.current = width;
|
|
539
|
+
setRangeInputValue(width);
|
|
540
|
+
resizeBounds = getResizeBounds(); // Update the range input bounds to ensure they are accurate (in case the viewport was previously resized)
|
|
541
|
+
setRangeInputBounds({
|
|
542
|
+
min: (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(resizeBounds.min),
|
|
543
|
+
max: (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(resizeBounds.max)
|
|
544
|
+
});
|
|
545
|
+
keyboardBoundsReady.current = true;
|
|
417
546
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
547
|
+
/**
|
|
548
|
+
* _While the slider element is focused_, add a window resize event listener to update the range input bounds
|
|
549
|
+
* when the window is resized. This is needed to ensure the min and max widths accurately reflect the viewport
|
|
550
|
+
* size - in case they are provided in vw units.
|
|
551
|
+
*
|
|
552
|
+
* This listener is cleaned up when the element is blurred.
|
|
553
|
+
*/
|
|
554
|
+
resizeEventListenerCleanupFn.current = (0, _bindEventListener.bind)(window, {
|
|
555
|
+
type: 'resize',
|
|
556
|
+
listener: function updateState() {
|
|
557
|
+
var resizeBounds = getResizeBounds();
|
|
558
|
+
setRangeInputBounds({
|
|
559
|
+
min: (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(resizeBounds.min),
|
|
560
|
+
max: (0, _convertResizeBoundToPixels.convertResizeBoundToPixels)(resizeBounds.max)
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
case 5:
|
|
565
|
+
case "end":
|
|
566
|
+
return _context3.stop();
|
|
433
567
|
}
|
|
434
|
-
});
|
|
435
|
-
}, [panelWidth, getResizeBounds]);
|
|
568
|
+
}, _callee3);
|
|
569
|
+
})), [panelWidth, getResizeBounds, panel, prepareResize]);
|
|
436
570
|
var handleSliderBlur = (0, _react.useCallback)(function () {
|
|
437
571
|
var _resizeEventListenerC2;
|
|
572
|
+
focusSequence.current++;
|
|
573
|
+
keyboardBoundsReady.current = false;
|
|
438
574
|
// Remove the resize event listener when the range input is blurred.
|
|
439
575
|
(_resizeEventListenerC2 = resizeEventListenerCleanupFn.current) === null || _resizeEventListenerC2 === void 0 || _resizeEventListenerC2.call(resizeEventListenerCleanupFn);
|
|
440
576
|
}, []);
|
|
@@ -461,6 +597,7 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
461
597
|
}, /*#__PURE__*/React.createElement("div", {
|
|
462
598
|
ref: splitterRef,
|
|
463
599
|
"data-testid": testId,
|
|
600
|
+
"data-panel-splitter": prepareResize ? '' : undefined,
|
|
464
601
|
onDoubleClick: onDoubleClick,
|
|
465
602
|
className: (0, _runtime.ax)([grabAreaStyles.root, (0, _fg.fg)('platform-dst-tokens-finesse') && grabAreaStyles.rootFinesse])
|
|
466
603
|
}, /*#__PURE__*/React.createElement(_visuallyHidden.default, null, /*#__PURE__*/React.createElement("input", {
|
|
@@ -472,6 +609,7 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
472
609
|
"aria-valuetext": ariaValueText,
|
|
473
610
|
"aria-labelledby": labelId,
|
|
474
611
|
onChange: handleSliderInputChange,
|
|
612
|
+
onKeyDown: prepareResize ? handleSliderKeyDown : undefined,
|
|
475
613
|
onFocus: handleSliderFocus,
|
|
476
614
|
onBlur: handleSliderBlur
|
|
477
615
|
}), /*#__PURE__*/React.createElement("span", {
|
|
@@ -496,12 +634,12 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref3) {
|
|
|
496
634
|
* </Aside>
|
|
497
635
|
* ```
|
|
498
636
|
*/
|
|
499
|
-
var PanelSplitter = exports.PanelSplitter = function PanelSplitter(
|
|
500
|
-
var label =
|
|
501
|
-
onResizeStart =
|
|
502
|
-
onResizeEnd =
|
|
503
|
-
testId =
|
|
504
|
-
tooltipContent =
|
|
637
|
+
var PanelSplitter = exports.PanelSplitter = function PanelSplitter(_ref0) {
|
|
638
|
+
var label = _ref0.label,
|
|
639
|
+
onResizeStart = _ref0.onResizeStart,
|
|
640
|
+
onResizeEnd = _ref0.onResizeEnd,
|
|
641
|
+
testId = _ref0.testId,
|
|
642
|
+
tooltipContent = _ref0.tooltipContent;
|
|
505
643
|
var _useState7 = (0, _react.useState)(null),
|
|
506
644
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
507
645
|
panel = _useState8[0],
|
|
@@ -521,6 +659,7 @@ var PanelSplitter = exports.PanelSplitter = function PanelSplitter(_ref8) {
|
|
|
521
659
|
onResizeStartInternal = context.onResizeStartInternal,
|
|
522
660
|
onResizeInternal = context.onResizeInternal,
|
|
523
661
|
getResizeBounds = context.getResizeBounds,
|
|
662
|
+
prepareResize = context.prepareResize,
|
|
524
663
|
resizingCssVar = context.resizingCssVar,
|
|
525
664
|
resizingElementRef = context.resizingElementRef,
|
|
526
665
|
position = context.position,
|
|
@@ -619,6 +758,7 @@ var PanelSplitter = exports.PanelSplitter = function PanelSplitter(_ref8) {
|
|
|
619
758
|
onCompleteResize: onCompleteResize,
|
|
620
759
|
onResizeStartInternal: onResizeStartInternal,
|
|
621
760
|
onResizeInternal: onResizeInternal,
|
|
761
|
+
prepareResize: prepareResize,
|
|
622
762
|
getResizeBounds: getResizeBounds,
|
|
623
763
|
resizingCssVar: resizingCssVar,
|
|
624
764
|
resizingElementRef: resizingElementRef,
|
|
@@ -19,6 +19,7 @@ var PanelSplitterProvider = exports.PanelSplitterProvider = function PanelSplitt
|
|
|
19
19
|
onCompleteResize = _ref.onCompleteResize,
|
|
20
20
|
onResizeStartInternal = _ref.onResizeStartInternal,
|
|
21
21
|
onResizeInternal = _ref.onResizeInternal,
|
|
22
|
+
prepareResize = _ref.prepareResize,
|
|
22
23
|
getResizeBounds = _ref.getResizeBounds,
|
|
23
24
|
resizingCssVar = _ref.resizingCssVar,
|
|
24
25
|
panelRef = _ref.panelRef,
|
|
@@ -38,6 +39,7 @@ var PanelSplitterProvider = exports.PanelSplitterProvider = function PanelSplitt
|
|
|
38
39
|
onCompleteResize: onCompleteResize,
|
|
39
40
|
onResizeStartInternal: onResizeStartInternal,
|
|
40
41
|
onResizeInternal: onResizeInternal,
|
|
42
|
+
prepareResize: prepareResize,
|
|
41
43
|
getResizeBounds: getResizeBounds,
|
|
42
44
|
resizingCssVar: resizingCssVar,
|
|
43
45
|
position: position,
|
|
@@ -47,7 +49,7 @@ var PanelSplitterProvider = exports.PanelSplitterProvider = function PanelSplitt
|
|
|
47
49
|
portalRef: typeof providedPortalRef !== 'undefined' ? providedPortalRef : portalRef,
|
|
48
50
|
shortcut: shortcut
|
|
49
51
|
};
|
|
50
|
-
}, [panelId, panelWidth, onCompleteResize, onResizeStartInternal, onResizeInternal, getResizeBounds, resizingCssVar, position, panelRef, resizingElementRef, isEnabled, providedPortalRef, shortcut]);
|
|
52
|
+
}, [panelId, panelWidth, onCompleteResize, onResizeStartInternal, onResizeInternal, prepareResize, getResizeBounds, resizingCssVar, position, panelRef, resizingElementRef, isEnabled, providedPortalRef, shortcut]);
|
|
51
53
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_panelSplitterContext.PanelSplitterContext.Provider, {
|
|
52
54
|
value: context
|
|
53
55
|
}, children), typeof providedPortalRef !== 'undefined' ? null : /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
._18m9zryt{overflow-y:clip}
|
|
2
|
+
._1bsb1osq{width:100%}
|
|
3
|
+
._1bsb1raa{width:max(0px,calc(var(--n_layoutW) - var(--n_mainMinW) - var(--n_fitAside, 0px) - var(--n_fitRibbon, 0px) - var(--n_fitPanel, 0px)))}
|
|
4
|
+
._1bsb4nr3{width:var(--n_layoutW)}
|
|
5
|
+
._1bsbjwgu{width:max(0px,calc(100% - var(--n_fitNav)))}
|
|
2
6
|
._1ciragmp >:not([data-layout-slot]){display:none!important}
|
|
3
7
|
._1cwmtye8{--n_mainMinW:20rem}
|
|
4
8
|
._1e0c11p5{display:grid}
|
|
9
|
+
._1f381mry{container-name:navigation-chat-space}
|
|
10
|
+
._1f38hwoh{container-name:navigation-main-space}
|
|
11
|
+
._1f38hx13{container-name:navigation-layout-width}
|
|
5
12
|
._1lmcq9em{grid-template-areas:"banner" "top-bar" "main" "aside"}
|
|
6
13
|
._1reozryt{overflow-x:clip}
|
|
7
14
|
._1tke1kxc{min-height:100vh}
|
|
8
15
|
._1tvnagmp >:not([data-layout-slot]):not(dialog):not([popover]){display:none!important}
|
|
9
16
|
._2z0516ab{grid-template-rows:auto auto 1fr auto}
|
|
17
|
+
._5to3grho{--n_fitNav:0px}
|
|
18
|
+
._7cca15wb{container-type:inline-size}
|
|
19
|
+
._82d6okmw{--n_layoutW:100cqw}
|
|
20
|
+
._vchh1ntv{box-sizing:content-box}
|
|
10
21
|
._yv0ei47z{grid-template-columns:minmax(0,1fr)}
|
|
11
|
-
@media (min-width:40rem){._12ag50j2{grid-template-areas:"banner banner" "top-bar chat-panel" "main chat-panel" "aside chat-panel"}.
|
|
12
|
-
@media (min-width:64rem){._12fk1aio{grid-template-areas:"banner banner banner banner" "ribbon top-bar top-bar top-bar" "ribbon side-nav main aside"}._12qzrxre{grid-template-rows:auto auto 3fr}._1rqteala{grid-template-columns:auto auto minmax(0,1fr) auto}._12fkqmyk{grid-template-areas:"banner banner banner banner banner" "ribbon top-bar top-bar top-bar chat-panel" "ribbon side-nav main aside chat-panel"}.
|
|
13
|
-
@media (min-width:90rem){._xkmggc7l{grid-template-areas:"banner banner banner banner banner banner" "ribbon top-bar top-bar top-bar top-bar chat-panel" "ribbon side-nav main aside panel chat-panel"}.
|
|
22
|
+
@media (min-width:40rem){._12ag50j2{grid-template-areas:"banner banner" "top-bar chat-panel" "main chat-panel" "aside chat-panel"}._71dl19sb{grid-template-columns:minmax(var(--n_mainMinW),1fr) var(--n_chatTrack,0)}}
|
|
23
|
+
@media (min-width:64rem){._12fk1aio{grid-template-areas:"banner banner banner banner" "ribbon top-bar top-bar top-bar" "ribbon side-nav main aside"}._12qzrxre{grid-template-rows:auto auto 3fr}._1rqteala{grid-template-columns:auto auto minmax(0,1fr) auto}._12fkqmyk{grid-template-areas:"banner banner banner banner banner" "ribbon top-bar top-bar top-bar chat-panel" "ribbon side-nav main aside chat-panel"}._1rqttswr{grid-template-columns:auto auto minmax(var(--n_mainMinW),1fr) auto var(--n_chatTrack,0)}}
|
|
24
|
+
@media (min-width:90rem){._xkmggc7l{grid-template-areas:"banner banner banner banner banner banner" "ribbon top-bar top-bar top-bar top-bar chat-panel" "ribbon side-nav main aside panel chat-panel"}._tyve87m4{grid-template-columns:auto auto minmax(var(--n_mainMinW),1fr) auto auto var(--n_chatTrack,0)}._xkmgks3h{grid-template-areas:"banner banner banner banner banner" "ribbon top-bar top-bar top-bar top-bar" "ribbon side-nav main aside panel"}._jbc7rxre{grid-template-rows:auto auto 3fr}._tyve1nco{grid-template-columns:auto auto minmax(0,1fr) auto auto}}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.Root = Root;
|
|
9
|
-
exports.gridRootId = void 0;
|
|
9
|
+
exports.gridRootId = exports.gridRootFitId = exports.gridRootChatFitId = void 0;
|
|
10
10
|
require("./root.compiled.css");
|
|
11
11
|
var _runtime = require("@compiled/react/runtime");
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -23,34 +23,60 @@ var _visibilityProvider = require("./side-nav/visibility-provider");
|
|
|
23
23
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
24
|
// ID of the root element that the banner and top bar slots hoist their sizes to. Only internally exported.
|
|
25
25
|
var gridRootId = exports.gridRootId = 'unsafe-design-system-page-layout-root';
|
|
26
|
+
var gridRootFitId = exports.gridRootFitId = "".concat(gridRootId, "-fit");
|
|
27
|
+
var gridRootChatFitId = exports.gridRootChatFitId = "".concat(gridRootId, "-chat-fit");
|
|
26
28
|
var styles = {
|
|
29
|
+
widthContainer: "_7cca15wb _1f38hx13 _1bsb1osq",
|
|
30
|
+
mainSpace: "_82d6okmw _1cwmtye8 _7cca15wb _1f38hwoh _vchh1ntv _1bsb1raa",
|
|
31
|
+
chatSpace: "_5to3grho _7cca15wb _1f381mry _1bsbjwgu",
|
|
27
32
|
legacyRoot: "_1e0c11p5 _1tke1kxc _1lmcq9em _yv0ei47z _2z0516ab _12fk1aio _12qzrxre _1rqteala _xkmgks3h _jbc7rxre _tyve1nco",
|
|
28
|
-
root: "_1cwmtye8 _1e0c11p5 _1tke1kxc _1lmcq9em _yv0ei47z _2z0516ab _12ag50j2
|
|
33
|
+
root: "_1cwmtye8 _1e0c11p5 _1tke1kxc _1bsb4nr3 _1lmcq9em _yv0ei47z _2z0516ab _12ag50j2 _71dl19sb _12fkqmyk _12qzrxre _1rqttswr _xkmggc7l _tyve87m4",
|
|
29
34
|
safetyRail: "_1ciragmp",
|
|
30
35
|
safetyRailWithTopLayer: "_1tvnagmp",
|
|
31
36
|
panelUplift: "_1reozryt _18m9zryt"
|
|
32
37
|
};
|
|
38
|
+
function LayoutFitContainers(_ref) {
|
|
39
|
+
var children = _ref.children;
|
|
40
|
+
// CSS cannot use custom properties in a size-query condition. Query the
|
|
41
|
+
// remaining capacity instead: these wrappers subtract configured minimums
|
|
42
|
+
// and occupied tracks, while the actual grid keeps its original host width.
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
"data-layout-width-container": "",
|
|
45
|
+
className: (0, _runtime.ax)([styles.widthContainer])
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement("style", {
|
|
47
|
+
dangerouslySetInnerHTML: {
|
|
48
|
+
__html: "@property --n_layoutW { syntax: '<length>'; inherits: true; initial-value: 0px; }"
|
|
49
|
+
}
|
|
50
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
51
|
+
id: gridRootFitId,
|
|
52
|
+
className: (0, _runtime.ax)([styles.mainSpace])
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
54
|
+
id: gridRootChatFitId,
|
|
55
|
+
className: (0, _runtime.ax)([styles.chatSpace])
|
|
56
|
+
}, children)));
|
|
57
|
+
}
|
|
33
58
|
|
|
34
59
|
/**
|
|
35
60
|
* The root component of the navigation system. It wraps the underlying components with the necessary contexts allowing to use certain data and hooks
|
|
36
61
|
* @param skipLinksLabel - The very first element of the layout is a skip links container that can be accessed by pressing Tab button and holds the links to the other sections of the layout thus improving accessibility. This parameter defines the header text for this container
|
|
37
62
|
*/
|
|
38
|
-
function Root(
|
|
39
|
-
var children =
|
|
40
|
-
xcss =
|
|
41
|
-
|
|
42
|
-
UNSAFE_dangerouslyHoistSlotSizes =
|
|
43
|
-
|
|
44
|
-
skipLinksLabel =
|
|
45
|
-
|
|
46
|
-
skipLinksTriggerLabel =
|
|
47
|
-
testId =
|
|
48
|
-
defaultSideNavCollapsed =
|
|
49
|
-
|
|
50
|
-
isSideNavShortcutEnabled =
|
|
63
|
+
function Root(_ref2) {
|
|
64
|
+
var children = _ref2.children,
|
|
65
|
+
xcss = _ref2.xcss,
|
|
66
|
+
_ref2$UNSAFE_dangerou = _ref2.UNSAFE_dangerouslyHoistSlotSizes,
|
|
67
|
+
UNSAFE_dangerouslyHoistSlotSizes = _ref2$UNSAFE_dangerou === void 0 ? false : _ref2$UNSAFE_dangerou,
|
|
68
|
+
_ref2$skipLinksLabel = _ref2.skipLinksLabel,
|
|
69
|
+
skipLinksLabel = _ref2$skipLinksLabel === void 0 ? (0, _fg.fg)('platform_dst_nav4_skip_link_a11y_1') ? 'Skip to' : 'Skip to:' : _ref2$skipLinksLabel,
|
|
70
|
+
_ref2$skipLinksTrigge = _ref2.skipLinksTriggerLabel,
|
|
71
|
+
skipLinksTriggerLabel = _ref2$skipLinksTrigge === void 0 ? 'Skip to' : _ref2$skipLinksTrigge,
|
|
72
|
+
testId = _ref2.testId,
|
|
73
|
+
defaultSideNavCollapsed = _ref2.defaultSideNavCollapsed,
|
|
74
|
+
_ref2$isSideNavShortc = _ref2.isSideNavShortcutEnabled,
|
|
75
|
+
isSideNavShortcutEnabled = _ref2$isSideNavShortc === void 0 ? false : _ref2$isSideNavShortc;
|
|
51
76
|
var ref = (0, _react.useRef)(null);
|
|
52
77
|
var isChatPanelLayoutEnabled = (0, _fg.fg)('platform-dst-chat-panel-layout');
|
|
53
78
|
var LayoutProvider = isChatPanelLayoutEnabled ? _layoutAreaSizingProvider.LayoutAreaSizingProvider : _react.default.Fragment;
|
|
79
|
+
var WidthContainer = isChatPanelLayoutEnabled ? LayoutFitContainers : _react.default.Fragment;
|
|
54
80
|
(0, _react.useEffect)(function () {
|
|
55
81
|
if (process.env.NODE_ENV !== 'production') {
|
|
56
82
|
var IGNORED_ELEMENTS = ['SCRIPT', 'STYLE'];
|
|
@@ -79,10 +105,10 @@ function Root(_ref) {
|
|
|
79
105
|
label: skipLinksLabel,
|
|
80
106
|
triggerLabel: skipLinksTriggerLabel,
|
|
81
107
|
testId: testId
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
108
|
+
}, /*#__PURE__*/_react.default.createElement(WidthContainer, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
83
109
|
ref: ref,
|
|
84
110
|
className: (0, _runtime.ax)([isChatPanelLayoutEnabled ? styles.root : styles.legacyRoot, (0, _fg.fg)('platform-dst-motion-uplift-panel') && styles.panelUplift, (0, _fg.fg)('platform-dst-top-layer') ? styles.safetyRailWithTopLayer : styles.safetyRail, xcss]),
|
|
85
111
|
id: gridRootId,
|
|
86
112
|
"data-testid": testId
|
|
87
|
-
}, children))))))))));
|
|
113
|
+
}, children)))))))))));
|
|
88
114
|
}
|