@atlaskit/page-layout 4.3.0 → 4.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 +13 -0
- package/dist/cjs/common/constants.js +19 -0
- package/dist/cjs/common/get-grid-state-from-storage.js +13 -0
- package/dist/cjs/common/get-left-panel-width.js +13 -0
- package/dist/cjs/common/get-left-sidebar-percentage.js +17 -0
- package/dist/cjs/common/get-page-layout-slot-css-selector.js +10 -0
- package/dist/cjs/common/get-page-layout-slot-selector.js +12 -0
- package/dist/cjs/common/merge-grid-state-into-storage.js +22 -0
- package/dist/cjs/common/remove-from-grid-state-in-storage.js +18 -0
- package/dist/cjs/common/resolve-dimension.js +16 -0
- package/dist/cjs/components/resize-control/index.js +7 -6
- package/dist/cjs/components/skip-links/skip-link-components.js +11 -174
- package/dist/cjs/components/skip-links/skip-link-wrapper.js +130 -0
- package/dist/cjs/components/skip-links/skip-link.js +63 -0
- package/dist/cjs/components/skip-links/use-custom-skip-link.js +5 -0
- package/dist/cjs/components/slots/banner-slot.js +6 -3
- package/dist/cjs/components/slots/content.js +2 -0
- package/dist/cjs/components/slots/internal/left-sidebar-outer.js +2 -2
- package/dist/cjs/components/slots/left-panel.js +6 -3
- package/dist/cjs/components/slots/left-sidebar-without-resize.js +4 -2
- package/dist/cjs/components/slots/left-sidebar.js +10 -6
- package/dist/cjs/components/slots/main.js +4 -2
- package/dist/cjs/components/slots/page-layout.js +6 -0
- package/dist/cjs/components/slots/right-panel.js +6 -3
- package/dist/cjs/components/slots/right-sidebar.js +6 -3
- package/dist/cjs/components/slots/top-navigation.js +6 -3
- package/dist/cjs/controllers/index.js +6 -3
- package/dist/cjs/controllers/sidebar-resize-context.js +2 -50
- package/dist/cjs/controllers/sidebar-resize-controller.js +2 -2
- package/dist/cjs/controllers/skip-link-context.js +3 -13
- package/dist/cjs/controllers/skip-link-controller.js +2 -2
- package/dist/cjs/controllers/skip-links-context.js +15 -0
- package/dist/cjs/controllers/use-left-sidebar-flyout-lock.js +49 -0
- package/dist/cjs/controllers/use-page-layout-grid.js +4 -3
- package/dist/cjs/controllers/use-page-layout-resize.js +20 -0
- package/dist/cjs/controllers/use-skip-links.js +11 -0
- package/dist/cjs/entry-points/sidebar-resize-context.js +4 -3
- package/dist/es2019/common/constants.js +19 -0
- package/dist/es2019/common/get-grid-state-from-storage.js +6 -0
- package/dist/es2019/common/get-left-panel-width.js +7 -0
- package/dist/es2019/common/get-left-sidebar-percentage.js +11 -0
- package/dist/es2019/common/get-page-layout-slot-css-selector.js +2 -0
- package/dist/es2019/common/get-page-layout-slot-selector.js +4 -0
- package/dist/es2019/common/merge-grid-state-into-storage.js +14 -0
- package/dist/es2019/common/remove-from-grid-state-in-storage.js +11 -0
- package/dist/es2019/common/resolve-dimension.js +8 -0
- package/dist/es2019/components/resize-control/index.js +2 -1
- package/dist/es2019/components/skip-links/skip-link-components.js +2 -165
- package/dist/es2019/components/skip-links/skip-link-wrapper.js +114 -0
- package/dist/es2019/components/skip-links/skip-link.js +54 -0
- package/dist/es2019/components/skip-links/use-custom-skip-link.js +6 -0
- package/dist/es2019/components/slots/banner-slot.js +4 -1
- package/dist/es2019/components/slots/content.js +2 -0
- package/dist/es2019/components/slots/internal/left-sidebar-outer.js +1 -1
- package/dist/es2019/components/slots/left-panel.js +4 -1
- package/dist/es2019/components/slots/left-sidebar-without-resize.js +3 -1
- package/dist/es2019/components/slots/left-sidebar.js +5 -1
- package/dist/es2019/components/slots/main.js +3 -1
- package/dist/es2019/components/slots/page-layout.js +6 -0
- package/dist/es2019/components/slots/right-panel.js +4 -1
- package/dist/es2019/components/slots/right-sidebar.js +4 -1
- package/dist/es2019/components/slots/top-navigation.js +4 -1
- package/dist/es2019/controllers/index.js +5 -2
- package/dist/es2019/controllers/sidebar-resize-context.js +2 -45
- package/dist/es2019/controllers/sidebar-resize-controller.js +1 -1
- package/dist/es2019/controllers/skip-link-context.js +2 -9
- package/dist/es2019/controllers/skip-link-controller.js +1 -1
- package/dist/es2019/controllers/skip-links-context.js +8 -0
- package/dist/es2019/controllers/use-left-sidebar-flyout-lock.js +39 -0
- package/dist/es2019/controllers/use-page-layout-grid.js +2 -1
- package/dist/es2019/controllers/use-page-layout-resize.js +12 -0
- package/dist/es2019/controllers/use-skip-links.js +3 -0
- package/dist/es2019/entry-points/sidebar-resize-context.js +2 -1
- package/dist/esm/common/constants.js +19 -0
- package/dist/esm/common/get-grid-state-from-storage.js +6 -0
- package/dist/esm/common/get-left-panel-width.js +7 -0
- package/dist/esm/common/get-left-sidebar-percentage.js +11 -0
- package/dist/esm/common/get-page-layout-slot-css-selector.js +4 -0
- package/dist/esm/common/get-page-layout-slot-selector.js +5 -0
- package/dist/esm/common/merge-grid-state-into-storage.js +15 -0
- package/dist/esm/common/remove-from-grid-state-in-storage.js +11 -0
- package/dist/esm/common/resolve-dimension.js +10 -0
- package/dist/esm/components/resize-control/index.js +2 -1
- package/dist/esm/components/skip-links/skip-link-components.js +2 -179
- package/dist/esm/components/skip-links/skip-link-wrapper.js +127 -0
- package/dist/esm/components/skip-links/skip-link.js +55 -0
- package/dist/esm/components/skip-links/use-custom-skip-link.js +6 -0
- package/dist/esm/components/slots/banner-slot.js +4 -1
- package/dist/esm/components/slots/content.js +2 -0
- package/dist/esm/components/slots/internal/left-sidebar-outer.js +1 -1
- package/dist/esm/components/slots/left-panel.js +4 -1
- package/dist/esm/components/slots/left-sidebar-without-resize.js +3 -1
- package/dist/esm/components/slots/left-sidebar.js +5 -1
- package/dist/esm/components/slots/main.js +3 -1
- package/dist/esm/components/slots/page-layout.js +6 -0
- package/dist/esm/components/slots/right-panel.js +4 -1
- package/dist/esm/components/slots/right-sidebar.js +4 -1
- package/dist/esm/components/slots/top-navigation.js +4 -1
- package/dist/esm/controllers/index.js +5 -2
- package/dist/esm/controllers/sidebar-resize-context.js +2 -50
- package/dist/esm/controllers/sidebar-resize-controller.js +1 -1
- package/dist/esm/controllers/skip-link-context.js +2 -11
- package/dist/esm/controllers/skip-link-controller.js +1 -1
- package/dist/esm/controllers/skip-links-context.js +8 -0
- package/dist/esm/controllers/use-left-sidebar-flyout-lock.js +43 -0
- package/dist/esm/controllers/use-page-layout-grid.js +2 -1
- package/dist/esm/controllers/use-page-layout-resize.js +13 -0
- package/dist/esm/controllers/use-skip-links.js +5 -0
- package/dist/esm/entry-points/sidebar-resize-context.js +2 -1
- package/dist/types/common/constants.d.ts +18 -0
- package/dist/types/common/get-grid-state-from-storage.d.ts +1 -0
- package/dist/types/common/get-left-panel-width.d.ts +1 -0
- package/dist/types/common/get-left-sidebar-percentage.d.ts +1 -0
- package/dist/types/common/get-page-layout-slot-css-selector.d.ts +1 -0
- package/dist/types/common/get-page-layout-slot-selector.d.ts +3 -0
- package/dist/types/common/merge-grid-state-into-storage.d.ts +1 -0
- package/dist/types/common/remove-from-grid-state-in-storage.d.ts +1 -0
- package/dist/types/common/resolve-dimension.d.ts +2 -0
- package/dist/types/common/types.d.ts +14 -2
- package/dist/types/components/resize-control/types.d.ts +1 -1
- package/dist/types/components/skip-links/skip-link-components.d.ts +2 -20
- package/dist/types/components/skip-links/skip-link-wrapper.d.ts +14 -0
- package/dist/types/components/skip-links/skip-link.d.ts +10 -0
- package/dist/types/components/skip-links/use-custom-skip-link.d.ts +5 -0
- package/dist/types/components/slots/banner-slot.d.ts +2 -0
- package/dist/types/components/slots/content.d.ts +2 -0
- package/dist/types/components/slots/left-panel.d.ts +2 -0
- package/dist/types/components/slots/left-sidebar-without-resize.d.ts +2 -0
- package/dist/types/components/slots/left-sidebar.d.ts +2 -0
- package/dist/types/components/slots/main.d.ts +2 -0
- package/dist/types/components/slots/page-layout.d.ts +2 -0
- package/dist/types/components/slots/right-panel.d.ts +2 -0
- package/dist/types/components/slots/right-sidebar.d.ts +2 -0
- package/dist/types/components/slots/top-navigation.d.ts +2 -0
- package/dist/types/controllers/index.d.ts +5 -2
- package/dist/types/controllers/sidebar-resize-context.d.ts +1 -39
- package/dist/types/controllers/skip-link-context.d.ts +1 -4
- package/dist/types/controllers/skip-links-context.d.ts +3 -0
- package/dist/types/controllers/types.d.ts +13 -0
- package/dist/types/controllers/use-left-sidebar-flyout-lock.d.ts +20 -0
- package/dist/types/controllers/use-page-layout-resize.d.ts +16 -0
- package/dist/types/controllers/use-skip-links.d.ts +2 -0
- package/dist/types/entry-points/sidebar-resize-context.d.ts +3 -2
- package/dist/types/index.d.ts +2 -1
- package/dist/types-ts4.5/common/constants.d.ts +18 -0
- package/dist/types-ts4.5/common/get-grid-state-from-storage.d.ts +1 -0
- package/dist/types-ts4.5/common/get-left-panel-width.d.ts +1 -0
- package/dist/types-ts4.5/common/get-left-sidebar-percentage.d.ts +1 -0
- package/dist/types-ts4.5/common/get-page-layout-slot-css-selector.d.ts +1 -0
- package/dist/types-ts4.5/common/get-page-layout-slot-selector.d.ts +3 -0
- package/dist/types-ts4.5/common/merge-grid-state-into-storage.d.ts +1 -0
- package/dist/types-ts4.5/common/remove-from-grid-state-in-storage.d.ts +1 -0
- package/dist/types-ts4.5/common/resolve-dimension.d.ts +2 -0
- package/dist/types-ts4.5/common/types.d.ts +14 -2
- package/dist/types-ts4.5/components/resize-control/types.d.ts +1 -1
- package/dist/types-ts4.5/components/skip-links/skip-link-components.d.ts +2 -20
- package/dist/types-ts4.5/components/skip-links/skip-link-wrapper.d.ts +14 -0
- package/dist/types-ts4.5/components/skip-links/skip-link.d.ts +10 -0
- package/dist/types-ts4.5/components/skip-links/use-custom-skip-link.d.ts +5 -0
- package/dist/types-ts4.5/components/slots/banner-slot.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/content.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/left-panel.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/left-sidebar-without-resize.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/left-sidebar.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/main.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/page-layout.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/right-panel.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/right-sidebar.d.ts +2 -0
- package/dist/types-ts4.5/components/slots/top-navigation.d.ts +2 -0
- package/dist/types-ts4.5/controllers/index.d.ts +5 -2
- package/dist/types-ts4.5/controllers/sidebar-resize-context.d.ts +1 -39
- package/dist/types-ts4.5/controllers/skip-link-context.d.ts +1 -4
- package/dist/types-ts4.5/controllers/skip-links-context.d.ts +3 -0
- package/dist/types-ts4.5/controllers/types.d.ts +13 -0
- package/dist/types-ts4.5/controllers/use-left-sidebar-flyout-lock.d.ts +20 -0
- package/dist/types-ts4.5/controllers/use-page-layout-resize.d.ts +16 -0
- package/dist/types-ts4.5/controllers/use-skip-links.d.ts +2 -0
- package/dist/types-ts4.5/entry-points/sidebar-resize-context.d.ts +3 -2
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/package.json +11 -11
- package/dist/cjs/common/utils.js +0 -66
- package/dist/es2019/common/utils.js +0 -55
- package/dist/esm/common/utils.js +0 -60
- package/dist/types/common/utils.d.ts +0 -12
- package/dist/types-ts4.5/common/utils.d.ts +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/page-layout
|
|
2
2
|
|
|
3
|
+
## 4.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`40a0c6a050287`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/40a0c6a050287) -
|
|
8
|
+
Add deprecation notices to code exports
|
|
9
|
+
|
|
10
|
+
## 4.3.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 4.3.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -48,10 +48,29 @@ var RESIZE_CONTROL_SELECTOR = exports.RESIZE_CONTROL_SELECTOR = 'data-resize-con
|
|
|
48
48
|
var PAGE_LAYOUT_SLOT_SELECTOR = exports.PAGE_LAYOUT_SLOT_SELECTOR = 'data-ds--page-layout--slot';
|
|
49
49
|
var DEFAULT_I18N_PROPS_SKIP_LINKS = exports.DEFAULT_I18N_PROPS_SKIP_LINKS = 'Skip to:';
|
|
50
50
|
var PAGE_LAYOUT_CONTAINER_SELECTOR = exports.PAGE_LAYOUT_CONTAINER_SELECTOR = 'data-layout-container';
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
54
|
+
*/
|
|
51
55
|
var LEFT_PANEL_WIDTH = exports.LEFT_PANEL_WIDTH = "var(--".concat(VAR_LEFT_PANEL_WIDTH, ", 0px)");
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
58
|
+
*/
|
|
52
59
|
var RIGHT_PANEL_WIDTH = exports.RIGHT_PANEL_WIDTH = "var(--".concat(VAR_RIGHT_PANEL_WIDTH, ", 0px)");
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
62
|
+
*/
|
|
53
63
|
var LEFT_SIDEBAR_WIDTH = exports.LEFT_SIDEBAR_WIDTH = "var(--".concat(VAR_LEFT_SIDEBAR_WIDTH, ", 0px)");
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
66
|
+
*/
|
|
54
67
|
var RIGHT_SIDEBAR_WIDTH = exports.RIGHT_SIDEBAR_WIDTH = "var(--".concat(VAR_RIGHT_SIDEBAR_WIDTH, ", 0px)");
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
70
|
+
*/
|
|
55
71
|
var TOP_NAVIGATION_HEIGHT = exports.TOP_NAVIGATION_HEIGHT = "var(--".concat(VAR_TOP_NAVIGATION_HEIGHT, ", 0px)");
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
74
|
+
*/
|
|
56
75
|
var BANNER_HEIGHT = exports.BANNER_HEIGHT = "var(--".concat(VAR_BANNER_HEIGHT, ", 0px)");
|
|
57
76
|
var LEFT_SIDEBAR_FLYOUT_WIDTH = exports.LEFT_SIDEBAR_FLYOUT_WIDTH = "var(--".concat(VAR_LEFT_SIDEBAR_FLYOUT, ", ").concat(DEFAULT_LEFT_SIDEBAR_FLYOUT_WIDTH, "px)");
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getGridStateFromStorage = void 0;
|
|
8
|
+
var _constants = require("./constants");
|
|
9
|
+
var _safeLocalStorage = _interopRequireDefault(require("./safe-local-storage"));
|
|
10
|
+
var getGridStateFromStorage = exports.getGridStateFromStorage = function getGridStateFromStorage(key) {
|
|
11
|
+
var storageValue = JSON.parse((0, _safeLocalStorage.default)().getItem(_constants.PAGE_LAYOUT_LS_KEY) || '{}');
|
|
12
|
+
return storageValue[key];
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getLeftPanelWidth = void 0;
|
|
7
|
+
var _constants = require("./constants");
|
|
8
|
+
var getLeftPanelWidth = exports.getLeftPanelWidth = function getLeftPanelWidth() {
|
|
9
|
+
if (typeof window === 'undefined') {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
return parseInt(window.getComputedStyle(document.documentElement).getPropertyValue("--".concat(_constants.LEFT_PANEL_WIDTH)), 10) || 0;
|
|
13
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getLeftSidebarPercentage = void 0;
|
|
7
|
+
var _constants = require("./constants");
|
|
8
|
+
var getLeftSidebarPercentage = exports.getLeftSidebarPercentage = function getLeftSidebarPercentage(currentWidth, maxWidth) {
|
|
9
|
+
var total = (currentWidth - _constants.DEFAULT_LEFT_SIDEBAR_WIDTH) / (maxWidth - _constants.DEFAULT_LEFT_SIDEBAR_WIDTH);
|
|
10
|
+
if (total < 0) {
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
if (total > 1) {
|
|
14
|
+
return 100;
|
|
15
|
+
}
|
|
16
|
+
return Math.floor(total * 100);
|
|
17
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPageLayoutSlotCSSSelector = void 0;
|
|
7
|
+
var _constants = require("./constants");
|
|
8
|
+
var getPageLayoutSlotCSSSelector = exports.getPageLayoutSlotCSSSelector = function getPageLayoutSlotCSSSelector(slotName) {
|
|
9
|
+
return "[".concat(_constants.PAGE_LAYOUT_SLOT_SELECTOR, "='").concat(slotName, "']");
|
|
10
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getPageLayoutSlotSelector = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _constants = require("./constants");
|
|
10
|
+
var getPageLayoutSlotSelector = exports.getPageLayoutSlotSelector = function getPageLayoutSlotSelector(slotName) {
|
|
11
|
+
return (0, _defineProperty2.default)({}, _constants.PAGE_LAYOUT_SLOT_SELECTOR, slotName);
|
|
12
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.mergeGridStateIntoStorage = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _constants = require("./constants");
|
|
11
|
+
var _safeLocalStorage = _interopRequireDefault(require("./safe-local-storage"));
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
var mergeGridStateIntoStorage = exports.mergeGridStateIntoStorage = function mergeGridStateIntoStorage(key, value) {
|
|
15
|
+
var storageValue = JSON.parse((0, _safeLocalStorage.default)().getItem(_constants.PAGE_LAYOUT_LS_KEY) || '{}');
|
|
16
|
+
if (value !== null && (0, _typeof2.default)(value) === 'object') {
|
|
17
|
+
storageValue[key] = _objectSpread(_objectSpread({}, storageValue[key]), value);
|
|
18
|
+
} else {
|
|
19
|
+
storageValue[key] = value;
|
|
20
|
+
}
|
|
21
|
+
(0, _safeLocalStorage.default)().setItem(_constants.PAGE_LAYOUT_LS_KEY, JSON.stringify(storageValue));
|
|
22
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.removeFromGridStateInStorage = void 0;
|
|
8
|
+
var _constants = require("./constants");
|
|
9
|
+
var _safeLocalStorage = _interopRequireDefault(require("./safe-local-storage"));
|
|
10
|
+
var removeFromGridStateInStorage = exports.removeFromGridStateInStorage = function removeFromGridStateInStorage(key, secondKey) {
|
|
11
|
+
var storageValue = JSON.parse((0, _safeLocalStorage.default)().getItem(_constants.PAGE_LAYOUT_LS_KEY) || '{}');
|
|
12
|
+
if (secondKey && storageValue[key]) {
|
|
13
|
+
delete storageValue[key][secondKey];
|
|
14
|
+
} else {
|
|
15
|
+
delete storageValue[key];
|
|
16
|
+
}
|
|
17
|
+
(0, _safeLocalStorage.default)().setItem(_constants.PAGE_LAYOUT_LS_KEY, JSON.stringify(storageValue));
|
|
18
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveDimension = void 0;
|
|
7
|
+
var _getGridStateFromStorage = require("./get-grid-state-from-storage");
|
|
8
|
+
var resolveDimension = exports.resolveDimension = function resolveDimension(key) {
|
|
9
|
+
var dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
10
|
+
var shouldPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
11
|
+
if (shouldPersist) {
|
|
12
|
+
var cachedGridState = (0, _getGridStateFromStorage.getGridStateFromStorage)('gridState');
|
|
13
|
+
return cachedGridState && Object.keys(cachedGridState).length > 0 && cachedGridState[key] ? cachedGridState[key] : dimension;
|
|
14
|
+
}
|
|
15
|
+
return dimension;
|
|
16
|
+
};
|
|
@@ -14,7 +14,8 @@ var _bindEventListener = require("bind-event-listener");
|
|
|
14
14
|
var _rafSchd = _interopRequireDefault(require("raf-schd"));
|
|
15
15
|
var _responsive = require("@atlaskit/primitives/responsive");
|
|
16
16
|
var _constants = require("../../common/constants");
|
|
17
|
-
var
|
|
17
|
+
var _getLeftPanelWidth = require("../../common/get-left-panel-width");
|
|
18
|
+
var _getLeftSidebarPercentage = require("../../common/get-left-sidebar-percentage");
|
|
18
19
|
var _sidebarResizeContext = require("../../controllers/sidebar-resize-context");
|
|
19
20
|
var _grabArea = _interopRequireDefault(require("./grab-area"));
|
|
20
21
|
var _resizeButton = _interopRequireDefault(require("./resize-button"));
|
|
@@ -121,7 +122,7 @@ var ResizeControl = function ResizeControl(_ref) {
|
|
|
121
122
|
// the resize will be cancelled by our global event listeners
|
|
122
123
|
return;
|
|
123
124
|
}
|
|
124
|
-
offset.current = event.clientX - leftSidebarState[_constants.VAR_LEFT_SIDEBAR_WIDTH] - (0,
|
|
125
|
+
offset.current = event.clientX - leftSidebarState[_constants.VAR_LEFT_SIDEBAR_WIDTH] - (0, _getLeftPanelWidth.getLeftPanelWidth)();
|
|
125
126
|
unbindEvents.current = (0, _bindEventListener.bindAll)(window, [{
|
|
126
127
|
type: 'mousemove',
|
|
127
128
|
listener: function listener(event) {
|
|
@@ -207,7 +208,7 @@ var ResizeControl = function ResizeControl(_ref) {
|
|
|
207
208
|
var clientX = _ref2.clientX;
|
|
208
209
|
// Allow the sidebar to be 50% of the available page width
|
|
209
210
|
var maxWidth = Math.round(window.innerWidth / 2);
|
|
210
|
-
var leftPanelWidth = (0,
|
|
211
|
+
var leftPanelWidth = (0, _getLeftPanelWidth.getLeftPanelWidth)();
|
|
211
212
|
var leftSidebarWidth = stableSidebarState.current.leftSidebarWidth;
|
|
212
213
|
var hasResizedOffLeftOfScreen = clientX < 0;
|
|
213
214
|
if (hasResizedOffLeftOfScreen) {
|
|
@@ -293,7 +294,7 @@ var ResizeControl = function ResizeControl(_ref) {
|
|
|
293
294
|
var step = 10;
|
|
294
295
|
var stepValue = isLeftOrTopArrow ? -step : step;
|
|
295
296
|
var leftSidebarWidth = leftSidebarState.leftSidebarWidth;
|
|
296
|
-
var maxWidth = Math.round(window.innerWidth / 2) - (0,
|
|
297
|
+
var maxWidth = Math.round(window.innerWidth / 2) - (0, _getLeftPanelWidth.getLeftPanelWidth)();
|
|
297
298
|
var hasModifierKey = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;
|
|
298
299
|
var width = leftSidebarWidth + stepValue;
|
|
299
300
|
if (width <= _constants.DEFAULT_LEFT_SIDEBAR_WIDTH) {
|
|
@@ -341,9 +342,9 @@ var ResizeControl = function ResizeControl(_ref) {
|
|
|
341
342
|
// however this comes with a substantial performance gain and so is considered acceptable.
|
|
342
343
|
var maxAriaWidth = (0, _react.useMemo)(function () {
|
|
343
344
|
var innerWidth = typeof window === 'undefined' ? 0 : window.innerWidth;
|
|
344
|
-
return Math.round(innerWidth / 2) - (0,
|
|
345
|
+
return Math.round(innerWidth / 2) - (0, _getLeftPanelWidth.getLeftPanelWidth)();
|
|
345
346
|
}, []);
|
|
346
|
-
var leftSidebarPercentageExpanded = (0,
|
|
347
|
+
var leftSidebarPercentageExpanded = (0, _getLeftSidebarPercentage.getLeftSidebarPercentage)(leftSidebarState.leftSidebarWidth, maxAriaWidth);
|
|
347
348
|
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", (0, _extends2.default)({}, cssSelector, {
|
|
348
349
|
css: [resizeControlStyles, (isGrabAreaFocused || isLeftSidebarCollapsed) && showResizeButtonStyles]
|
|
349
350
|
}), (0, _react2.jsx)(_shadow.default, {
|
|
@@ -1,182 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _link = _interopRequireDefault(require("@atlaskit/link"));
|
|
12
|
-
var _motion = require("@atlaskit/motion");
|
|
13
|
-
var _constants = require("../../common/constants");
|
|
14
|
-
var _controllers = require("../../controllers");
|
|
15
|
-
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; }
|
|
16
|
-
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; } /* eslint-disable @repo/internal/dom-events/no-unsafe-event-listeners */ /**
|
|
17
|
-
* @jsxRuntime classic
|
|
18
|
-
* @jsx jsx
|
|
19
|
-
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
20
|
-
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
21
|
-
var prefersReducedMotionStyles = (0, _react.css)((0, _motion.prefersReducedMotion)());
|
|
22
|
-
var skipLinkStyles = (0, _react.css)({
|
|
23
|
-
margin: "var(--ds-space-250, 20px)",
|
|
24
|
-
padding: '0.8rem 1rem',
|
|
25
|
-
position: 'fixed',
|
|
26
|
-
zIndex: -1,
|
|
27
|
-
background: "var(--ds-surface-overlay, #FFFFFF)",
|
|
28
|
-
border: 'none',
|
|
29
|
-
borderRadius: "var(--ds-radius-small, 3px)",
|
|
30
|
-
boxShadow: "var(--ds-shadow-overlay, 0px 8px 12px #1E1F2126, 0px 0px 1px #1E1F214f)",
|
|
31
|
-
insetInlineStart: -999999,
|
|
32
|
-
opacity: 0,
|
|
33
|
-
transform: 'translateY(-50%)',
|
|
34
|
-
transition: "transform 0.3s ".concat(_motion.easeOut),
|
|
35
|
-
'&:focus-within': {
|
|
36
|
-
zIndex: 2147483640,
|
|
37
|
-
insetInlineStart: 0,
|
|
38
|
-
opacity: 1,
|
|
39
|
-
transform: 'translateY(0%)'
|
|
6
|
+
Object.defineProperty(exports, "SkipLink", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _skipLink.SkipLink;
|
|
40
10
|
}
|
|
41
11
|
});
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
listStylePosition: 'outside',
|
|
47
|
-
listStyleType: 'none',
|
|
48
|
-
marginBlockStart: "var(--ds-space-050, 4px)",
|
|
49
|
-
paddingInlineStart: 0
|
|
50
|
-
});
|
|
51
|
-
var skipLinkListItemStyles = (0, _react.css)({
|
|
52
|
-
marginBlockStart: 0
|
|
53
|
-
});
|
|
54
|
-
var _assignIndex = function assignIndex(num, arr) {
|
|
55
|
-
if (!arr.includes(num)) {
|
|
56
|
-
return num;
|
|
57
|
-
}
|
|
58
|
-
return _assignIndex(num + 1, arr);
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* The default label will be used when the `skipLinksLabel` attribute is not
|
|
63
|
-
* provided or the attribute is an empty string. If a string comprised only of
|
|
64
|
-
* spaces is provided, the skip link heading element will be removed, but the
|
|
65
|
-
* default label will still be used in `title` attribute of the skip links
|
|
66
|
-
* themselves.
|
|
67
|
-
*/
|
|
68
|
-
var SkipLinkWrapper = exports.SkipLinkWrapper = function SkipLinkWrapper(_ref) {
|
|
69
|
-
var skipLinksLabel = _ref.skipLinksLabel;
|
|
70
|
-
var _useSkipLinks = (0, _controllers.useSkipLinks)(),
|
|
71
|
-
skipLinksData = _useSkipLinks.skipLinksData;
|
|
72
|
-
if (skipLinksData.length === 0) {
|
|
73
|
-
return null;
|
|
12
|
+
Object.defineProperty(exports, "SkipLinkWrapper", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _skipLinkWrapper.SkipLinkWrapper;
|
|
74
16
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
if (customLinks.length === 0) {
|
|
80
|
-
return arr;
|
|
81
|
-
}
|
|
82
|
-
var usedIndexes = customLinks.map(function (a) {
|
|
83
|
-
return a.listIndex;
|
|
84
|
-
});
|
|
85
|
-
var regularLinksWithIdx = arr.filter(function (link) {
|
|
86
|
-
return link.listIndex === undefined;
|
|
87
|
-
}).map(function (link, idx) {
|
|
88
|
-
var listIndex = _assignIndex(idx, usedIndexes);
|
|
89
|
-
usedIndexes.push(listIndex);
|
|
90
|
-
return _objectSpread(_objectSpread({}, link), {}, {
|
|
91
|
-
listIndex: listIndex
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
return [].concat((0, _toConsumableArray2.default)(customLinks), (0, _toConsumableArray2.default)(regularLinksWithIdx)).sort(function (a, b) {
|
|
95
|
-
return a.listIndex - b.listIndex;
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
var escapeHandler = function escapeHandler(event) {
|
|
99
|
-
if (event.keyCode === 27) {
|
|
100
|
-
var container = document.querySelector("[".concat(_constants.PAGE_LAYOUT_CONTAINER_SELECTOR, "=\"true\"]") // eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
101
|
-
);
|
|
102
|
-
if (container !== null) {
|
|
103
|
-
container.focus();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
var attachEscHandler = function attachEscHandler() {
|
|
108
|
-
return window.addEventListener('keydown', escapeHandler, false);
|
|
109
|
-
};
|
|
110
|
-
var removeEscHandler = function removeEscHandler() {
|
|
111
|
-
return window.removeEventListener('keydown', escapeHandler, false);
|
|
112
|
-
};
|
|
113
|
-
var emptyLabelOverride = !!(skipLinksLabel !== null && skipLinksLabel !== void 0 && skipLinksLabel.match(/^\s+$/));
|
|
114
|
-
var label = skipLinksLabel || _constants.DEFAULT_I18N_PROPS_SKIP_LINKS;
|
|
115
|
-
return (0, _react.jsx)("div", {
|
|
116
|
-
onFocus: attachEscHandler,
|
|
117
|
-
onBlur: removeEscHandler,
|
|
118
|
-
css: [skipLinkStyles, prefersReducedMotionStyles],
|
|
119
|
-
"data-skip-link-wrapper": true
|
|
120
|
-
}, emptyLabelOverride ? null : (0, _react.jsx)("p", {
|
|
121
|
-
css: skipLinkHeadingStyles
|
|
122
|
-
}, label), (0, _react.jsx)("ol", {
|
|
123
|
-
css: skipLinkListStyles
|
|
124
|
-
}, sortSkipLinks(skipLinksData).map(function (_ref2) {
|
|
125
|
-
var id = _ref2.id,
|
|
126
|
-
skipLinkTitle = _ref2.skipLinkTitle;
|
|
127
|
-
return (0, _react.jsx)(SkipLink, {
|
|
128
|
-
key: id,
|
|
129
|
-
href: "#".concat(id),
|
|
130
|
-
isFocusable: true
|
|
131
|
-
}, skipLinkTitle);
|
|
132
|
-
})));
|
|
133
|
-
};
|
|
134
|
-
var _handleBlur = function handleBlur(event) {
|
|
135
|
-
// @ts-ignore
|
|
136
|
-
event.target.removeAttribute('tabindex');
|
|
137
|
-
// @ts-ignore
|
|
138
|
-
event.target.removeEventListener('blur', _handleBlur);
|
|
139
|
-
};
|
|
140
|
-
var focusTargetRef = function focusTargetRef(href) {
|
|
141
|
-
return function (event) {
|
|
142
|
-
event.preventDefault();
|
|
143
|
-
var targetRef = document.querySelector(href);
|
|
144
|
-
|
|
145
|
-
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
146
|
-
// @ts-ignore
|
|
147
|
-
var key = event.which || event.keycode;
|
|
148
|
-
// if it is a keypress and the key is not
|
|
149
|
-
// space or enter, just ignore it.
|
|
150
|
-
if (key && key !== 13 && key !== 32) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
if (targetRef) {
|
|
154
|
-
targetRef.setAttribute('tabindex', '-1');
|
|
155
|
-
// @ts-ignore
|
|
156
|
-
targetRef.addEventListener('blur', _handleBlur);
|
|
157
|
-
// @ts-ignore
|
|
158
|
-
targetRef.focus();
|
|
159
|
-
document.activeElement && document.activeElement.scrollIntoView({
|
|
160
|
-
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
161
|
-
behavior: 'smooth'
|
|
162
|
-
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
163
|
-
});
|
|
164
|
-
window.scrollTo(0, 0);
|
|
165
|
-
}
|
|
166
|
-
return false;
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
171
|
-
var SkipLink = exports.SkipLink = function SkipLink(_ref3) {
|
|
172
|
-
var href = _ref3.href,
|
|
173
|
-
children = _ref3.children,
|
|
174
|
-
isFocusable = _ref3.isFocusable;
|
|
175
|
-
return (0, _react.jsx)("li", {
|
|
176
|
-
css: skipLinkListItemStyles
|
|
177
|
-
}, (0, _react.jsx)(_link.default, {
|
|
178
|
-
tabIndex: isFocusable ? 0 : -1,
|
|
179
|
-
href: href,
|
|
180
|
-
onClick: focusTargetRef(href)
|
|
181
|
-
}, children));
|
|
182
|
-
};
|
|
17
|
+
});
|
|
18
|
+
var _skipLinkWrapper = require("./skip-link-wrapper");
|
|
19
|
+
var _skipLink = require("./skip-link");
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SkipLinkWrapper = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _react = require("@emotion/react");
|
|
11
|
+
var _motion = require("@atlaskit/motion");
|
|
12
|
+
var _constants = require("../../common/constants");
|
|
13
|
+
var _controllers = require("../../controllers");
|
|
14
|
+
var _skipLink = require("./skip-link");
|
|
15
|
+
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; }
|
|
16
|
+
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; } /* eslint-disable @repo/internal/dom-events/no-unsafe-event-listeners */ /**
|
|
17
|
+
* @jsxRuntime classic
|
|
18
|
+
* @jsx jsx
|
|
19
|
+
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
20
|
+
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
21
|
+
var prefersReducedMotionStyles = (0, _react.css)((0, _motion.prefersReducedMotion)());
|
|
22
|
+
var skipLinkStyles = (0, _react.css)({
|
|
23
|
+
margin: "var(--ds-space-250, 20px)",
|
|
24
|
+
padding: '0.8rem 1rem',
|
|
25
|
+
position: 'fixed',
|
|
26
|
+
zIndex: -1,
|
|
27
|
+
backgroundColor: "var(--ds-surface-overlay, #FFFFFF)",
|
|
28
|
+
border: 'none',
|
|
29
|
+
borderRadius: "var(--ds-radius-small, 3px)",
|
|
30
|
+
boxShadow: "var(--ds-shadow-overlay, 0px 8px 12px #1E1F2126, 0px 0px 1px #1E1F214f)",
|
|
31
|
+
insetInlineStart: -999999,
|
|
32
|
+
opacity: 0,
|
|
33
|
+
transform: 'translateY(-50%)',
|
|
34
|
+
transition: "transform 0.3s ".concat(_motion.easeOut),
|
|
35
|
+
'&:focus-within': {
|
|
36
|
+
zIndex: 2147483640,
|
|
37
|
+
insetInlineStart: 0,
|
|
38
|
+
opacity: 1,
|
|
39
|
+
transform: 'translateY(0%)'
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var skipLinkHeadingStyles = (0, _react.css)({
|
|
43
|
+
fontWeight: "var(--ds-font-weight-semibold, 600)"
|
|
44
|
+
});
|
|
45
|
+
var skipLinkListStyles = (0, _react.css)({
|
|
46
|
+
listStylePosition: 'outside',
|
|
47
|
+
listStyleType: 'none',
|
|
48
|
+
marginBlockStart: "var(--ds-space-050, 4px)",
|
|
49
|
+
paddingInlineStart: 0
|
|
50
|
+
});
|
|
51
|
+
var _assignIndex = function assignIndex(num, arr) {
|
|
52
|
+
if (!arr.includes(num)) {
|
|
53
|
+
return num;
|
|
54
|
+
}
|
|
55
|
+
return _assignIndex(num + 1, arr);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The default label will be used when the `skipLinksLabel` attribute is not
|
|
60
|
+
* provided or the attribute is an empty string. If a string comprised only of
|
|
61
|
+
* spaces is provided, the skip link heading element will be removed, but the
|
|
62
|
+
* default label will still be used in `title` attribute of the skip links
|
|
63
|
+
* themselves.
|
|
64
|
+
*/
|
|
65
|
+
var SkipLinkWrapper = exports.SkipLinkWrapper = function SkipLinkWrapper(_ref) {
|
|
66
|
+
var skipLinksLabel = _ref.skipLinksLabel;
|
|
67
|
+
var _useSkipLinks = (0, _controllers.useSkipLinks)(),
|
|
68
|
+
skipLinksData = _useSkipLinks.skipLinksData;
|
|
69
|
+
if (skipLinksData.length === 0) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
var sortSkipLinks = function sortSkipLinks(arr) {
|
|
73
|
+
var customLinks = arr.filter(function (link) {
|
|
74
|
+
return Number.isInteger(link.listIndex);
|
|
75
|
+
});
|
|
76
|
+
if (customLinks.length === 0) {
|
|
77
|
+
return arr;
|
|
78
|
+
}
|
|
79
|
+
var usedIndexes = customLinks.map(function (a) {
|
|
80
|
+
return a.listIndex;
|
|
81
|
+
});
|
|
82
|
+
var regularLinksWithIdx = arr.filter(function (link) {
|
|
83
|
+
return link.listIndex === undefined;
|
|
84
|
+
}).map(function (link, idx) {
|
|
85
|
+
var listIndex = _assignIndex(idx, usedIndexes);
|
|
86
|
+
usedIndexes.push(listIndex);
|
|
87
|
+
return _objectSpread(_objectSpread({}, link), {}, {
|
|
88
|
+
listIndex: listIndex
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
return [].concat((0, _toConsumableArray2.default)(customLinks), (0, _toConsumableArray2.default)(regularLinksWithIdx)).sort(function (a, b) {
|
|
92
|
+
return a.listIndex - b.listIndex;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
var escapeHandler = function escapeHandler(event) {
|
|
96
|
+
if (event.keyCode === 27) {
|
|
97
|
+
var container = document.querySelector("[".concat(_constants.PAGE_LAYOUT_CONTAINER_SELECTOR, "=\"true\"]") // eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
98
|
+
);
|
|
99
|
+
if (container !== null) {
|
|
100
|
+
container.focus();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var attachEscHandler = function attachEscHandler() {
|
|
105
|
+
return window.addEventListener('keydown', escapeHandler, false);
|
|
106
|
+
};
|
|
107
|
+
var removeEscHandler = function removeEscHandler() {
|
|
108
|
+
return window.removeEventListener('keydown', escapeHandler, false);
|
|
109
|
+
};
|
|
110
|
+
var emptyLabelOverride = !!(skipLinksLabel !== null && skipLinksLabel !== void 0 && skipLinksLabel.match(/^\s+$/));
|
|
111
|
+
var label = skipLinksLabel || _constants.DEFAULT_I18N_PROPS_SKIP_LINKS;
|
|
112
|
+
return (0, _react.jsx)("div", {
|
|
113
|
+
onFocus: attachEscHandler,
|
|
114
|
+
onBlur: removeEscHandler,
|
|
115
|
+
css: [skipLinkStyles, prefersReducedMotionStyles],
|
|
116
|
+
"data-skip-link-wrapper": true
|
|
117
|
+
}, emptyLabelOverride ? null : (0, _react.jsx)("p", {
|
|
118
|
+
css: skipLinkHeadingStyles
|
|
119
|
+
}, label), (0, _react.jsx)("ol", {
|
|
120
|
+
css: skipLinkListStyles
|
|
121
|
+
}, sortSkipLinks(skipLinksData).map(function (_ref2) {
|
|
122
|
+
var id = _ref2.id,
|
|
123
|
+
skipLinkTitle = _ref2.skipLinkTitle;
|
|
124
|
+
return (0, _react.jsx)(_skipLink.SkipLink, {
|
|
125
|
+
key: id,
|
|
126
|
+
href: "#".concat(id),
|
|
127
|
+
isFocusable: true
|
|
128
|
+
}, skipLinkTitle);
|
|
129
|
+
})));
|
|
130
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SkipLink = void 0;
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
var _link = _interopRequireDefault(require("@atlaskit/link"));
|
|
10
|
+
/* eslint-disable @repo/internal/dom-events/no-unsafe-event-listeners */
|
|
11
|
+
/**
|
|
12
|
+
* @jsxRuntime classic
|
|
13
|
+
* @jsx jsx
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
17
|
+
|
|
18
|
+
var skipLinkListItemStyles = (0, _react.css)({
|
|
19
|
+
marginBlockStart: 0
|
|
20
|
+
});
|
|
21
|
+
var focusTargetRef = function focusTargetRef(href) {
|
|
22
|
+
return function (event) {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
var targetRef = document.querySelector(href);
|
|
25
|
+
|
|
26
|
+
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
var key = event.which || event.keycode;
|
|
29
|
+
// if it is a keypress and the key is not
|
|
30
|
+
// space or enter, just ignore it.
|
|
31
|
+
if (key && key !== 13 && key !== 32) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (targetRef) {
|
|
35
|
+
targetRef.setAttribute('tabindex', '-1');
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
targetRef.addEventListener('blur', handleBlur);
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
targetRef.focus();
|
|
40
|
+
document.activeElement && document.activeElement.scrollIntoView({
|
|
41
|
+
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
42
|
+
behavior: 'smooth'
|
|
43
|
+
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
44
|
+
});
|
|
45
|
+
window.scrollTo(0, 0);
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
52
|
+
var SkipLink = exports.SkipLink = function SkipLink(_ref) {
|
|
53
|
+
var href = _ref.href,
|
|
54
|
+
children = _ref.children,
|
|
55
|
+
isFocusable = _ref.isFocusable;
|
|
56
|
+
return (0, _react.jsx)("li", {
|
|
57
|
+
css: skipLinkListItemStyles
|
|
58
|
+
}, (0, _react.jsx)(_link.default, {
|
|
59
|
+
tabIndex: isFocusable ? 0 : -1,
|
|
60
|
+
href: href,
|
|
61
|
+
onClick: focusTargetRef(href)
|
|
62
|
+
}, children));
|
|
63
|
+
};
|
|
@@ -11,6 +11,11 @@ var _controllers = require("../../controllers");
|
|
|
11
11
|
* @jsx jsx
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* __useCustomSkipLink__
|
|
16
|
+
*
|
|
17
|
+
* @deprecated `@atlaskit/page-layout` is deprecated. Use `@atlaskit/navigation-system` instead.
|
|
18
|
+
*/
|
|
14
19
|
var useCustomSkipLink = exports.useCustomSkipLink = function useCustomSkipLink(id, skipLinkTitle) {
|
|
15
20
|
var listIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
16
21
|
var _useSkipLinks = (0, _controllers.useSkipLinks)(),
|