@wix/bex-utils 2.19.0 → 2.21.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/@wix/bex-bundled-mini-essentials/CHANGELOG.md +4 -0
- package/@wix/bex-bundled-mini-essentials/package.json +1 -1
- package/dist/cjs/FocusableWrapper/FocusableService.js +47 -0
- package/dist/cjs/FocusableWrapper/FocusableService.js.map +1 -0
- package/dist/cjs/FocusableWrapper/FocusableWrapper.js +72 -0
- package/dist/cjs/FocusableWrapper/FocusableWrapper.js.map +1 -0
- package/dist/cjs/FocusableWrapper/scrollAndFocus.js +30 -0
- package/dist/cjs/FocusableWrapper/scrollAndFocus.js.map +1 -0
- package/dist/cjs/FocusableWrapper/withFocusable.js +32 -0
- package/dist/cjs/FocusableWrapper/withFocusable.js.map +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/FocusableWrapper/FocusableService.js +26 -0
- package/dist/esm/FocusableWrapper/FocusableService.js.map +1 -0
- package/dist/esm/FocusableWrapper/FocusableWrapper.js +50 -0
- package/dist/esm/FocusableWrapper/FocusableWrapper.js.map +1 -0
- package/dist/esm/FocusableWrapper/scrollAndFocus.js +25 -0
- package/dist/esm/FocusableWrapper/scrollAndFocus.js.map +1 -0
- package/dist/esm/FocusableWrapper/withFocusable.js +15 -0
- package/dist/esm/FocusableWrapper/withFocusable.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/FocusableWrapper/FocusableService.d.ts +20 -0
- package/dist/types/FocusableWrapper/FocusableService.d.ts.map +1 -0
- package/dist/types/FocusableWrapper/FocusableWrapper.d.ts +17 -0
- package/dist/types/FocusableWrapper/FocusableWrapper.d.ts.map +1 -0
- package/dist/types/FocusableWrapper/scrollAndFocus.d.ts +2 -0
- package/dist/types/FocusableWrapper/scrollAndFocus.d.ts.map +1 -0
- package/dist/types/FocusableWrapper/withFocusable.d.ts +5 -0
- package/dist/types/FocusableWrapper/withFocusable.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.6.0](https://github.com/wix-private/cairo/compare/@wix/bex-bundled-mini-essentials@2.4.0...@wix/bex-bundled-mini-essentials@2.6.0) (2024-08-29)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @wix/bex-bundled-mini-essentials
|
|
9
|
+
|
|
6
10
|
# [2.5.0](https://github.com/wix-private/cairo/compare/@wix/bex-bundled-mini-essentials@2.4.0...@wix/bex-bundled-mini-essentials@2.5.0) (2024-08-29)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @wix/bex-bundled-mini-essentials
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.FocusableItemsService = void 0;
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
class FocusableItemsService {
|
|
8
|
+
constructor() {
|
|
9
|
+
(0, _defineProperty2.default)(this, "focusableItems", void 0);
|
|
10
|
+
(0, _defineProperty2.default)(this, "scrollableContainers", void 0);
|
|
11
|
+
(0, _defineProperty2.default)(this, "getItemRef", itemName => this.focusableItems[itemName] && this.focusableItems[itemName].ref);
|
|
12
|
+
(0, _defineProperty2.default)(this, "getContainerRefByItem", itemName => {
|
|
13
|
+
var _this$focusableItems$;
|
|
14
|
+
const containerName = (_this$focusableItems$ = this.focusableItems[itemName]) == null ? void 0 : _this$focusableItems$.containerName;
|
|
15
|
+
const container = this.scrollableContainers[containerName];
|
|
16
|
+
return container == null ? void 0 : container.ref;
|
|
17
|
+
});
|
|
18
|
+
(0, _defineProperty2.default)(this, "getContainerRefByName", containerName => {
|
|
19
|
+
const container = this.scrollableContainers[containerName];
|
|
20
|
+
return container == null ? void 0 : container.ref;
|
|
21
|
+
});
|
|
22
|
+
this.focusableItems = {};
|
|
23
|
+
this.scrollableContainers = {};
|
|
24
|
+
}
|
|
25
|
+
addItem({
|
|
26
|
+
ref,
|
|
27
|
+
itemName,
|
|
28
|
+
containerName
|
|
29
|
+
}) {
|
|
30
|
+
this.focusableItems[itemName] = {
|
|
31
|
+
itemName,
|
|
32
|
+
ref,
|
|
33
|
+
containerName
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
addContainer({
|
|
37
|
+
containerName,
|
|
38
|
+
ref
|
|
39
|
+
}) {
|
|
40
|
+
this.scrollableContainers[containerName] = {
|
|
41
|
+
containerName,
|
|
42
|
+
ref
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.FocusableItemsService = FocusableItemsService;
|
|
47
|
+
//# sourceMappingURL=FocusableService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FocusableItemsService","constructor","_defineProperty2","default","itemName","focusableItems","ref","_this$focusableItems$","containerName","container","scrollableContainers","addItem","addContainer","exports"],"sources":["../../../src/FocusableWrapper/FocusableService.ts"],"sourcesContent":["export type FocusableItem = {\n containerName: string;\n ref: HTMLElement;\n itemName: string;\n};\n\nexport type ScrollableContainer = {\n containerName: string;\n ref: HTMLElement;\n};\n\nexport class FocusableItemsService {\n private focusableItems: {\n [itemName: string]: FocusableItem;\n };\n private scrollableContainers: {\n [containerName: string]: {\n ref: HTMLElement;\n containerName: string;\n };\n };\n\n constructor() {\n this.focusableItems = {};\n this.scrollableContainers = {};\n }\n\n addItem({ ref, itemName, containerName }: FocusableItem) {\n this.focusableItems[itemName] = { itemName, ref, containerName };\n }\n\n addContainer({ containerName, ref }: ScrollableContainer) {\n this.scrollableContainers[containerName] = {\n containerName,\n ref,\n };\n }\n\n getItemRef = (itemName: string) =>\n this.focusableItems[itemName] && this.focusableItems[itemName].ref;\n getContainerRefByItem = (itemName: string) => {\n const containerName = this.focusableItems[itemName]?.containerName;\n const container = this.scrollableContainers[containerName];\n return container?.ref;\n };\n getContainerRefByName = (containerName: string) => {\n const container = this.scrollableContainers[containerName];\n return container?.ref;\n };\n}\n"],"mappings":";;;;;;AAWO,MAAMA,qBAAqB,CAAC;EAWjCC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAgBAC,QAAgB,IAC5B,IAAI,CAACC,cAAc,CAACD,QAAQ,CAAC,IAAI,IAAI,CAACC,cAAc,CAACD,QAAQ,CAAC,CAACE,GAAG;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,iCAC3CC,QAAgB,IAAK;MAAA,IAAAG,qBAAA;MAC5C,MAAMC,aAAa,IAAAD,qBAAA,GAAG,IAAI,CAACF,cAAc,CAACD,QAAQ,CAAC,qBAA7BG,qBAAA,CAA+BC,aAAa;MAClE,MAAMC,SAAS,GAAG,IAAI,CAACC,oBAAoB,CAACF,aAAa,CAAC;MAC1D,OAAOC,SAAS,oBAATA,SAAS,CAAEH,GAAG;IACvB,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,iCACwBK,aAAqB,IAAK;MACjD,MAAMC,SAAS,GAAG,IAAI,CAACC,oBAAoB,CAACF,aAAa,CAAC;MAC1D,OAAOC,SAAS,oBAATA,SAAS,CAAEH,GAAG;IACvB,CAAC;IAzBC,IAAI,CAACD,cAAc,GAAG,CAAC,CAAC;IACxB,IAAI,CAACK,oBAAoB,GAAG,CAAC,CAAC;EAChC;EAEAC,OAAOA,CAAC;IAAEL,GAAG;IAAEF,QAAQ;IAAEI;EAA6B,CAAC,EAAE;IACvD,IAAI,CAACH,cAAc,CAACD,QAAQ,CAAC,GAAG;MAAEA,QAAQ;MAAEE,GAAG;MAAEE;IAAc,CAAC;EAClE;EAEAI,YAAYA,CAAC;IAAEJ,aAAa;IAAEF;EAAyB,CAAC,EAAE;IACxD,IAAI,CAACI,oBAAoB,CAACF,aAAa,CAAC,GAAG;MACzCA,aAAa;MACbF;IACF,CAAC;EACH;AAaF;AAACO,OAAA,CAAAb,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getAnchorParam = exports.FocusableWrapper = exports.FocusableContext = void 0;
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _FocusableService = require("./FocusableService");
|
|
7
|
+
var _scrollAndFocus = require("./scrollAndFocus");
|
|
8
|
+
var _jsxFileName = "/home/builduser/work/db7ea24852bc3350/packages/utils/dist/cjs/FocusableWrapper/FocusableWrapper.tsx";
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
const getAnchorParam = () => {
|
|
12
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
13
|
+
return searchParams.get('anchor');
|
|
14
|
+
};
|
|
15
|
+
exports.getAnchorParam = getAnchorParam;
|
|
16
|
+
const FocusableContext = exports.FocusableContext = /*#__PURE__*/_react.default.createContext(null);
|
|
17
|
+
const FocusableWrapper = ({
|
|
18
|
+
scrollableRef,
|
|
19
|
+
getScrollableTrigger,
|
|
20
|
+
getDoesItemExist,
|
|
21
|
+
children
|
|
22
|
+
}) => {
|
|
23
|
+
const focusableItemsService = (0, _react.useMemo)(() => new _FocusableService.FocusableItemsService(), []);
|
|
24
|
+
const scrollIfNeeded = (0, _react.useCallback)(() => {
|
|
25
|
+
const focusedItemName = getAnchorParam();
|
|
26
|
+
scrollByItemName(focusedItemName);
|
|
27
|
+
}, [scrollableRef]);
|
|
28
|
+
const scrollByItemName = (0, _react.useCallback)(focusedItemName => {
|
|
29
|
+
if (!focusedItemName) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const containerRefByItem = focusableItemsService.getContainerRefByItem(focusedItemName);
|
|
33
|
+
if (containerRefByItem) {
|
|
34
|
+
const focusedItem = focusableItemsService.getItemRef(focusedItemName);
|
|
35
|
+
return (0, _scrollAndFocus.scrollAndFocus)(scrollableRef, containerRefByItem, focusedItem);
|
|
36
|
+
}
|
|
37
|
+
const containerRef = focusableItemsService.getContainerRefByName(focusedItemName);
|
|
38
|
+
if (containerRef) {
|
|
39
|
+
(0, _scrollAndFocus.scrollAndFocus)(scrollableRef, containerRef, containerRef);
|
|
40
|
+
}
|
|
41
|
+
}, [focusableItemsService, scrollableRef]);
|
|
42
|
+
const doesItemExist = (0, _react.useCallback)(() => {
|
|
43
|
+
const focusedItemName = getAnchorParam();
|
|
44
|
+
if (!focusedItemName) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return Boolean(focusableItemsService.getContainerRefByItem(focusedItemName));
|
|
48
|
+
}, [focusableItemsService]);
|
|
49
|
+
(0, _react.useEffect)(() => {
|
|
50
|
+
getScrollableTrigger(scrollIfNeeded);
|
|
51
|
+
getDoesItemExist(doesItemExist);
|
|
52
|
+
}, [getScrollableTrigger, getDoesItemExist, scrollIfNeeded, doesItemExist]);
|
|
53
|
+
const contextValue = (0, _react.useMemo)(() => ({
|
|
54
|
+
focusable: {
|
|
55
|
+
registerScrollableItem: scrollableItem => {
|
|
56
|
+
focusableItemsService.addContainer(scrollableItem);
|
|
57
|
+
focusableItemsService.addItem(scrollableItem);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}), [focusableItemsService]);
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(FocusableContext.Provider, {
|
|
62
|
+
value: contextValue,
|
|
63
|
+
__self: void 0,
|
|
64
|
+
__source: {
|
|
65
|
+
fileName: _jsxFileName,
|
|
66
|
+
lineNumber: 88,
|
|
67
|
+
columnNumber: 5
|
|
68
|
+
}
|
|
69
|
+
}, children);
|
|
70
|
+
};
|
|
71
|
+
exports.FocusableWrapper = FocusableWrapper;
|
|
72
|
+
//# sourceMappingURL=FocusableWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_FocusableService","_scrollAndFocus","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getAnchorParam","searchParams","URLSearchParams","window","location","search","exports","FocusableContext","React","createContext","FocusableWrapper","scrollableRef","getScrollableTrigger","getDoesItemExist","children","focusableItemsService","useMemo","FocusableItemsService","scrollIfNeeded","useCallback","focusedItemName","scrollByItemName","containerRefByItem","getContainerRefByItem","focusedItem","getItemRef","scrollAndFocus","containerRef","getContainerRefByName","doesItemExist","Boolean","useEffect","contextValue","focusable","registerScrollableItem","scrollableItem","addContainer","addItem","createElement","Provider","value","__self","__source","fileName","lineNumber","columnNumber"],"sources":["../../../src/FocusableWrapper/FocusableWrapper.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from 'react';\nimport { FocusableItem, FocusableItemsService } from './FocusableService';\nimport { scrollAndFocus } from './scrollAndFocus';\n\nexport const getAnchorParam = (): string | null => {\n const searchParams = new URLSearchParams(window.location.search);\n return searchParams.get('anchor');\n};\n\nexport type ContextProps = {\n focusable: {\n registerScrollableItem: (scrollableItem: FocusableItem) => void;\n };\n};\n\nexport const FocusableContext = React.createContext<ContextProps | null>(null);\n\ntype FocusableWrapperProps = {\n scrollableRef?: HTMLElement | null;\n getScrollableTrigger: (callback: () => void) => void;\n getDoesItemExist: (callback: () => boolean) => void;\n};\n\nexport const FocusableWrapper: React.FC<FocusableWrapperProps> = ({\n scrollableRef,\n getScrollableTrigger,\n getDoesItemExist,\n children,\n}) => {\n const focusableItemsService = useMemo(() => new FocusableItemsService(), []);\n\n const scrollIfNeeded = useCallback(() => {\n const focusedItemName = getAnchorParam();\n scrollByItemName(focusedItemName);\n }, [scrollableRef]);\n\n const scrollByItemName = useCallback(\n (focusedItemName: string | null) => {\n if (!focusedItemName) {\n return;\n }\n const containerRefByItem =\n focusableItemsService.getContainerRefByItem(focusedItemName);\n if (containerRefByItem) {\n const focusedItem = focusableItemsService.getItemRef(focusedItemName);\n return scrollAndFocus(scrollableRef, containerRefByItem, focusedItem);\n }\n\n const containerRef =\n focusableItemsService.getContainerRefByName(focusedItemName);\n if (containerRef) {\n scrollAndFocus(scrollableRef, containerRef, containerRef);\n }\n },\n [focusableItemsService, scrollableRef],\n );\n\n const doesItemExist = useCallback(() => {\n const focusedItemName = getAnchorParam();\n if (!focusedItemName) {\n return false;\n }\n\n return Boolean(\n focusableItemsService.getContainerRefByItem(focusedItemName),\n );\n }, [focusableItemsService]);\n\n useEffect(() => {\n getScrollableTrigger(scrollIfNeeded);\n\n getDoesItemExist(doesItemExist);\n }, [getScrollableTrigger, getDoesItemExist, scrollIfNeeded, doesItemExist]);\n\n const contextValue = useMemo<ContextProps>(\n () => ({\n focusable: {\n registerScrollableItem: (scrollableItem: FocusableItem) => {\n focusableItemsService.addContainer(scrollableItem);\n focusableItemsService.addItem(scrollableItem);\n },\n },\n }),\n [focusableItemsService],\n );\n\n return (\n <FocusableContext.Provider value={contextValue}>\n {children}\n </FocusableContext.Provider>\n );\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAkD,IAAAG,YAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE3C,MAAMW,cAAc,GAAGA,CAAA,KAAqB;EACjD,MAAMC,YAAY,GAAG,IAAIC,eAAe,CAACC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC;EAChE,OAAOJ,YAAY,CAACb,GAAG,CAAC,QAAQ,CAAC;AACnC,CAAC;AAACkB,OAAA,CAAAN,cAAA,GAAAA,cAAA;AAQK,MAAMO,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,gBAAGC,cAAK,CAACC,aAAa,CAAsB,IAAI,CAAC;AAQvE,MAAMC,gBAAiD,GAAGA,CAAC;EAChEC,aAAa;EACbC,oBAAoB;EACpBC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ,MAAMC,qBAAqB,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAIC,uCAAqB,CAAC,CAAC,EAAE,EAAE,CAAC;EAE5E,MAAMC,cAAc,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACvC,MAAMC,eAAe,GAAGpB,cAAc,CAAC,CAAC;IACxCqB,gBAAgB,CAACD,eAAe,CAAC;EACnC,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,MAAMU,gBAAgB,GAAG,IAAAF,kBAAW,EACjCC,eAA8B,IAAK;IAClC,IAAI,CAACA,eAAe,EAAE;MACpB;IACF;IACA,MAAME,kBAAkB,GACtBP,qBAAqB,CAACQ,qBAAqB,CAACH,eAAe,CAAC;IAC9D,IAAIE,kBAAkB,EAAE;MACtB,MAAME,WAAW,GAAGT,qBAAqB,CAACU,UAAU,CAACL,eAAe,CAAC;MACrE,OAAO,IAAAM,8BAAc,EAACf,aAAa,EAAEW,kBAAkB,EAAEE,WAAW,CAAC;IACvE;IAEA,MAAMG,YAAY,GAChBZ,qBAAqB,CAACa,qBAAqB,CAACR,eAAe,CAAC;IAC9D,IAAIO,YAAY,EAAE;MAChB,IAAAD,8BAAc,EAACf,aAAa,EAAEgB,YAAY,EAAEA,YAAY,CAAC;IAC3D;EACF,CAAC,EACD,CAACZ,qBAAqB,EAAEJ,aAAa,CACvC,CAAC;EAED,MAAMkB,aAAa,GAAG,IAAAV,kBAAW,EAAC,MAAM;IACtC,MAAMC,eAAe,GAAGpB,cAAc,CAAC,CAAC;IACxC,IAAI,CAACoB,eAAe,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,OAAOU,OAAO,CACZf,qBAAqB,CAACQ,qBAAqB,CAACH,eAAe,CAC7D,CAAC;EACH,CAAC,EAAE,CAACL,qBAAqB,CAAC,CAAC;EAE3B,IAAAgB,gBAAS,EAAC,MAAM;IACdnB,oBAAoB,CAACM,cAAc,CAAC;IAEpCL,gBAAgB,CAACgB,aAAa,CAAC;EACjC,CAAC,EAAE,CAACjB,oBAAoB,EAAEC,gBAAgB,EAAEK,cAAc,EAAEW,aAAa,CAAC,CAAC;EAE3E,MAAMG,YAAY,GAAG,IAAAhB,cAAO,EAC1B,OAAO;IACLiB,SAAS,EAAE;MACTC,sBAAsB,EAAGC,cAA6B,IAAK;QACzDpB,qBAAqB,CAACqB,YAAY,CAACD,cAAc,CAAC;QAClDpB,qBAAqB,CAACsB,OAAO,CAACF,cAAc,CAAC;MAC/C;IACF;EACF,CAAC,CAAC,EACF,CAACpB,qBAAqB,CACxB,CAAC;EAED,oBACEzC,MAAA,CAAAY,OAAA,CAAAoD,aAAA,CAAC/B,gBAAgB,CAACgC,QAAQ;IAACC,KAAK,EAAER,YAAa;IAAAS,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAhE,YAAA;MAAAiE,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC5C/B,QACwB,CAAC;AAEhC,CAAC;AAACR,OAAA,CAAAI,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.scrollAndFocus = void 0;
|
|
5
|
+
const MINIMIZED_HEADER_HEIGHT = 67;
|
|
6
|
+
const EXTRA_SPACE = 48; // Defined by UX
|
|
7
|
+
|
|
8
|
+
const scrollAndFocus = (scrollableRef, containerRef, focusedItemRef) => {
|
|
9
|
+
if (containerRef && focusedItemRef && scrollableRef) {
|
|
10
|
+
focusedItemRef.focus({
|
|
11
|
+
preventScroll: true
|
|
12
|
+
});
|
|
13
|
+
const scrollableRefTop = getTop(scrollableRef);
|
|
14
|
+
const containerRefTop = getTop(containerRef);
|
|
15
|
+
const top = containerRefTop - scrollableRefTop - MINIMIZED_HEADER_HEIGHT - EXTRA_SPACE;
|
|
16
|
+
const isFullHeaderDisplayed = scrollableRef.scrollTop < 40;
|
|
17
|
+
const avoidScrollingToKeepFullHeader = isFullHeaderDisplayed && top < 200;
|
|
18
|
+
if (!avoidScrollingToKeepFullHeader) {
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
scrollableRef.scrollBy({
|
|
21
|
+
top,
|
|
22
|
+
behavior: 'smooth'
|
|
23
|
+
});
|
|
24
|
+
}, 500);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.scrollAndFocus = scrollAndFocus;
|
|
29
|
+
const getTop = ref => ref && ref.getBoundingClientRect ? ref.getBoundingClientRect().top : 0;
|
|
30
|
+
//# sourceMappingURL=scrollAndFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MINIMIZED_HEADER_HEIGHT","EXTRA_SPACE","scrollAndFocus","scrollableRef","containerRef","focusedItemRef","focus","preventScroll","scrollableRefTop","getTop","containerRefTop","top","isFullHeaderDisplayed","scrollTop","avoidScrollingToKeepFullHeader","setTimeout","scrollBy","behavior","exports","ref","getBoundingClientRect"],"sources":["../../../src/FocusableWrapper/scrollAndFocus.ts"],"sourcesContent":["const MINIMIZED_HEADER_HEIGHT = 67;\nconst EXTRA_SPACE = 48; // Defined by UX\n\nexport const scrollAndFocus = (\n scrollableRef: HTMLElement | undefined | null,\n containerRef: HTMLElement,\n focusedItemRef: HTMLElement,\n): void => {\n if (containerRef && focusedItemRef && scrollableRef) {\n focusedItemRef.focus({ preventScroll: true });\n const scrollableRefTop = getTop(scrollableRef);\n const containerRefTop = getTop(containerRef);\n const top =\n containerRefTop -\n scrollableRefTop -\n MINIMIZED_HEADER_HEIGHT -\n EXTRA_SPACE;\n\n const isFullHeaderDisplayed = scrollableRef.scrollTop < 40;\n const avoidScrollingToKeepFullHeader = isFullHeaderDisplayed && top < 200;\n\n if (!avoidScrollingToKeepFullHeader) {\n setTimeout(() => {\n scrollableRef.scrollBy({\n top,\n behavior: 'smooth',\n });\n }, 500);\n }\n }\n};\n\nconst getTop = (ref: HTMLElement): number =>\n ref && ref.getBoundingClientRect ? ref.getBoundingClientRect().top : 0;\n"],"mappings":";;;;AAAA,MAAMA,uBAAuB,GAAG,EAAE;AAClC,MAAMC,WAAW,GAAG,EAAE,CAAC,CAAC;;AAEjB,MAAMC,cAAc,GAAGA,CAC5BC,aAA6C,EAC7CC,YAAyB,EACzBC,cAA2B,KAClB;EACT,IAAID,YAAY,IAAIC,cAAc,IAAIF,aAAa,EAAE;IACnDE,cAAc,CAACC,KAAK,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC,CAAC;IAC7C,MAAMC,gBAAgB,GAAGC,MAAM,CAACN,aAAa,CAAC;IAC9C,MAAMO,eAAe,GAAGD,MAAM,CAACL,YAAY,CAAC;IAC5C,MAAMO,GAAG,GACPD,eAAe,GACfF,gBAAgB,GAChBR,uBAAuB,GACvBC,WAAW;IAEb,MAAMW,qBAAqB,GAAGT,aAAa,CAACU,SAAS,GAAG,EAAE;IAC1D,MAAMC,8BAA8B,GAAGF,qBAAqB,IAAID,GAAG,GAAG,GAAG;IAEzE,IAAI,CAACG,8BAA8B,EAAE;MACnCC,UAAU,CAAC,MAAM;QACfZ,aAAa,CAACa,QAAQ,CAAC;UACrBL,GAAG;UACHM,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;EACF;AACF,CAAC;AAACC,OAAA,CAAAhB,cAAA,GAAAA,cAAA;AAEF,MAAMO,MAAM,GAAIU,GAAgB,IAC9BA,GAAG,IAAIA,GAAG,CAACC,qBAAqB,GAAGD,GAAG,CAACC,qBAAqB,CAAC,CAAC,CAACT,GAAG,GAAG,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.withFocusable = withFocusable;
|
|
6
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _FocusableWrapper = require("./FocusableWrapper");
|
|
9
|
+
var _jsxFileName = "/home/builduser/work/db7ea24852bc3350/packages/utils/dist/cjs/FocusableWrapper/withFocusable.tsx";
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function withFocusable(WrappedComponent) {
|
|
13
|
+
return props => {
|
|
14
|
+
const context = (0, _react.useContext)(_FocusableWrapper.FocusableContext);
|
|
15
|
+
const registerScrollableItem = (0, _react.useCallback)(args => {
|
|
16
|
+
var _context$focusable;
|
|
17
|
+
context == null || (_context$focusable = context.focusable) == null || _context$focusable.registerScrollableItem == null || _context$focusable.registerScrollableItem(args);
|
|
18
|
+
}, [context]);
|
|
19
|
+
const addedProps = {
|
|
20
|
+
registerScrollableItem
|
|
21
|
+
};
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(WrappedComponent, (0, _extends2.default)({}, props, addedProps, {
|
|
23
|
+
__self: this,
|
|
24
|
+
__source: {
|
|
25
|
+
fileName: _jsxFileName,
|
|
26
|
+
lineNumber: 23,
|
|
27
|
+
columnNumber: 12
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=withFocusable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_FocusableWrapper","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","withFocusable","WrappedComponent","props","context","useContext","FocusableContext","registerScrollableItem","useCallback","args","_context$focusable","focusable","addedProps","createElement","_extends2","__self","__source","fileName","lineNumber","columnNumber"],"sources":["../../../src/FocusableWrapper/withFocusable.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react';\nimport { ContextProps, FocusableContext } from './FocusableWrapper';\n\nexport type FocusableProps = ContextProps['focusable'];\n\nexport function withFocusable<P extends FocusableProps>(\n WrappedComponent: React.ComponentType<P>,\n): React.FC<Omit<P, keyof FocusableProps>> {\n return (props) => {\n const context = useContext(FocusableContext);\n\n const registerScrollableItem = useCallback(\n (args) => {\n context?.focusable?.registerScrollableItem?.(args);\n },\n [context],\n );\n\n const addedProps = {\n registerScrollableItem,\n };\n\n return <WrappedComponent {...(props as P)} {...addedProps} />;\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAAoE,IAAAE,YAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAI7D,SAASW,aAAaA,CAC3BC,gBAAwC,EACC;EACzC,OAAQC,KAAK,IAAK;IAChB,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,kCAAgB,CAAC;IAE5C,MAAMC,sBAAsB,GAAG,IAAAC,kBAAW,EACvCC,IAAI,IAAK;MAAA,IAAAC,kBAAA;MACRN,OAAO,aAAAM,kBAAA,GAAPN,OAAO,CAAEO,SAAS,aAAlBD,kBAAA,CAAoBH,sBAAsB,YAA1CG,kBAAA,CAAoBH,sBAAsB,CAAGE,IAAI,CAAC;IACpD,CAAC,EACD,CAACL,OAAO,CACV,CAAC;IAED,MAAMQ,UAAU,GAAG;MACjBL;IACF,CAAC;IAED,oBAAO/B,MAAA,CAAAW,OAAA,CAAA0B,aAAA,CAACX,gBAAgB,MAAAY,SAAA,CAAA3B,OAAA,MAAMgB,KAAK,EAAYS,UAAU;MAAAG,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAArC,YAAA;QAAAsC,UAAA;QAAAC,YAAA;MAAA;IAAA,EAAG,CAAC;EAC/D,CAAC;AACH","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -19,4 +19,16 @@ Object.keys(_reactiveContext).forEach(function (key) {
|
|
|
19
19
|
if (key in exports && exports[key] === _reactiveContext[key]) return;
|
|
20
20
|
exports[key] = _reactiveContext[key];
|
|
21
21
|
});
|
|
22
|
+
var _FocusableWrapper = require("./FocusableWrapper/FocusableWrapper");
|
|
23
|
+
Object.keys(_FocusableWrapper).forEach(function (key) {
|
|
24
|
+
if (key === "default" || key === "__esModule") return;
|
|
25
|
+
if (key in exports && exports[key] === _FocusableWrapper[key]) return;
|
|
26
|
+
exports[key] = _FocusableWrapper[key];
|
|
27
|
+
});
|
|
28
|
+
var _withFocusable = require("./FocusableWrapper/withFocusable");
|
|
29
|
+
Object.keys(_withFocusable).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _withFocusable[key]) return;
|
|
32
|
+
exports[key] = _withFocusable[key];
|
|
33
|
+
});
|
|
22
34
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactive","require","Object","keys","forEach","key","exports","_PromiseState","_reactiveContext"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './reactive';\nexport * from './PromiseState';\nexport * from './reactiveContext';\n"],"mappings":";;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,SAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,aAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,aAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,aAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,aAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,gBAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,gBAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,gBAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,gBAAA,CAAAH,GAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactive","require","Object","keys","forEach","key","exports","_PromiseState","_reactiveContext","_FocusableWrapper","_withFocusable"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './reactive';\nexport * from './PromiseState';\nexport * from './reactiveContext';\nexport * from './FocusableWrapper/FocusableWrapper';\nexport * from './FocusableWrapper/withFocusable';\n"],"mappings":";;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,SAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,aAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,aAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,aAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,aAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,gBAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,gBAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,gBAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,gBAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,iBAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,iBAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,iBAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,iBAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,cAAA,CAAAL,GAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class FocusableItemsService {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.getItemRef = (itemName) => this.focusableItems[itemName] && this.focusableItems[itemName].ref;
|
|
4
|
+
this.getContainerRefByItem = (itemName) => {
|
|
5
|
+
const containerName = this.focusableItems[itemName]?.containerName;
|
|
6
|
+
const container = this.scrollableContainers[containerName];
|
|
7
|
+
return container?.ref;
|
|
8
|
+
};
|
|
9
|
+
this.getContainerRefByName = (containerName) => {
|
|
10
|
+
const container = this.scrollableContainers[containerName];
|
|
11
|
+
return container?.ref;
|
|
12
|
+
};
|
|
13
|
+
this.focusableItems = {};
|
|
14
|
+
this.scrollableContainers = {};
|
|
15
|
+
}
|
|
16
|
+
addItem({ ref, itemName, containerName }) {
|
|
17
|
+
this.focusableItems[itemName] = { itemName, ref, containerName };
|
|
18
|
+
}
|
|
19
|
+
addContainer({ containerName, ref }) {
|
|
20
|
+
this.scrollableContainers[containerName] = {
|
|
21
|
+
containerName,
|
|
22
|
+
ref,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=FocusableService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableService.js","sourceRoot":"","sources":["../../../src/FocusableWrapper/FocusableService.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,qBAAqB;IAWhC;QAgBA,eAAU,GAAG,CAAC,QAAgB,EAAE,EAAE,CAChC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;QACrE,0BAAqB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,SAAS,EAAE,GAAG,CAAC;QACxB,CAAC,CAAC;QACF,0BAAqB,GAAG,CAAC,aAAqB,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,SAAS,EAAE,GAAG,CAAC;QACxB,CAAC,CAAC;QAzBA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAiB;QACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,EAAuB;QACtD,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG;YACzC,aAAa;YACb,GAAG;SACJ,CAAC;IACJ,CAAC;CAaF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
2
|
+
import { FocusableItemsService } from './FocusableService';
|
|
3
|
+
import { scrollAndFocus } from './scrollAndFocus';
|
|
4
|
+
export const getAnchorParam = () => {
|
|
5
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
6
|
+
return searchParams.get('anchor');
|
|
7
|
+
};
|
|
8
|
+
export const FocusableContext = React.createContext(null);
|
|
9
|
+
export const FocusableWrapper = ({ scrollableRef, getScrollableTrigger, getDoesItemExist, children, }) => {
|
|
10
|
+
const focusableItemsService = useMemo(() => new FocusableItemsService(), []);
|
|
11
|
+
const scrollIfNeeded = useCallback(() => {
|
|
12
|
+
const focusedItemName = getAnchorParam();
|
|
13
|
+
scrollByItemName(focusedItemName);
|
|
14
|
+
}, [scrollableRef]);
|
|
15
|
+
const scrollByItemName = useCallback((focusedItemName) => {
|
|
16
|
+
if (!focusedItemName) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const containerRefByItem = focusableItemsService.getContainerRefByItem(focusedItemName);
|
|
20
|
+
if (containerRefByItem) {
|
|
21
|
+
const focusedItem = focusableItemsService.getItemRef(focusedItemName);
|
|
22
|
+
return scrollAndFocus(scrollableRef, containerRefByItem, focusedItem);
|
|
23
|
+
}
|
|
24
|
+
const containerRef = focusableItemsService.getContainerRefByName(focusedItemName);
|
|
25
|
+
if (containerRef) {
|
|
26
|
+
scrollAndFocus(scrollableRef, containerRef, containerRef);
|
|
27
|
+
}
|
|
28
|
+
}, [focusableItemsService, scrollableRef]);
|
|
29
|
+
const doesItemExist = useCallback(() => {
|
|
30
|
+
const focusedItemName = getAnchorParam();
|
|
31
|
+
if (!focusedItemName) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return Boolean(focusableItemsService.getContainerRefByItem(focusedItemName));
|
|
35
|
+
}, [focusableItemsService]);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
getScrollableTrigger(scrollIfNeeded);
|
|
38
|
+
getDoesItemExist(doesItemExist);
|
|
39
|
+
}, [getScrollableTrigger, getDoesItemExist, scrollIfNeeded, doesItemExist]);
|
|
40
|
+
const contextValue = useMemo(() => ({
|
|
41
|
+
focusable: {
|
|
42
|
+
registerScrollableItem: (scrollableItem) => {
|
|
43
|
+
focusableItemsService.addContainer(scrollableItem);
|
|
44
|
+
focusableItemsService.addItem(scrollableItem);
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
}), [focusableItemsService]);
|
|
48
|
+
return (React.createElement(FocusableContext.Provider, { value: contextValue }, children));
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=FocusableWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableWrapper.js","sourceRoot":"","sources":["../../../src/FocusableWrapper/FocusableWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAiB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAkB,EAAE;IAChD,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAsB,IAAI,CAAC,CAAC;AAQ/E,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;QACzC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,eAA8B,EAAE,EAAE;QACjC,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO;SACR;QACD,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,kBAAkB,EAAE;YACtB,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACtE,OAAO,cAAc,CAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;SACvE;QAED,MAAM,YAAY,GAChB,qBAAqB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,YAAY,EAAE;YAChB,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;SAC3D;IACH,CAAC,EACD,CAAC,qBAAqB,EAAE,aAAa,CAAC,CACvC,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,OAAO,CACZ,qBAAqB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAC7D,CAAC;IACJ,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAErC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE;YACT,sBAAsB,EAAE,CAAC,cAA6B,EAAE,EAAE;gBACxD,qBAAqB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBACnD,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAChD,CAAC;SACF;KACF,CAAC,EACF,CAAC,qBAAqB,CAAC,CACxB,CAAC;IAEF,OAAO,CACL,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAC3C,QAAQ,CACiB,CAC7B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const MINIMIZED_HEADER_HEIGHT = 67;
|
|
2
|
+
const EXTRA_SPACE = 48; // Defined by UX
|
|
3
|
+
export const scrollAndFocus = (scrollableRef, containerRef, focusedItemRef) => {
|
|
4
|
+
if (containerRef && focusedItemRef && scrollableRef) {
|
|
5
|
+
focusedItemRef.focus({ preventScroll: true });
|
|
6
|
+
const scrollableRefTop = getTop(scrollableRef);
|
|
7
|
+
const containerRefTop = getTop(containerRef);
|
|
8
|
+
const top = containerRefTop -
|
|
9
|
+
scrollableRefTop -
|
|
10
|
+
MINIMIZED_HEADER_HEIGHT -
|
|
11
|
+
EXTRA_SPACE;
|
|
12
|
+
const isFullHeaderDisplayed = scrollableRef.scrollTop < 40;
|
|
13
|
+
const avoidScrollingToKeepFullHeader = isFullHeaderDisplayed && top < 200;
|
|
14
|
+
if (!avoidScrollingToKeepFullHeader) {
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
scrollableRef.scrollBy({
|
|
17
|
+
top,
|
|
18
|
+
behavior: 'smooth',
|
|
19
|
+
});
|
|
20
|
+
}, 500);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const getTop = (ref) => ref && ref.getBoundingClientRect ? ref.getBoundingClientRect().top : 0;
|
|
25
|
+
//# sourceMappingURL=scrollAndFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollAndFocus.js","sourceRoot":"","sources":["../../../src/FocusableWrapper/scrollAndFocus.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,gBAAgB;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,aAA6C,EAC7C,YAAyB,EACzB,cAA2B,EACrB,EAAE;IACR,IAAI,YAAY,IAAI,cAAc,IAAI,aAAa,EAAE;QACnD,cAAc,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,GAAG,GACP,eAAe;YACf,gBAAgB;YAChB,uBAAuB;YACvB,WAAW,CAAC;QAEd,MAAM,qBAAqB,GAAG,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;QAC3D,MAAM,8BAA8B,GAAG,qBAAqB,IAAI,GAAG,GAAG,GAAG,CAAC;QAE1E,IAAI,CAAC,8BAA8B,EAAE;YACnC,UAAU,CAAC,GAAG,EAAE;gBACd,aAAa,CAAC,QAAQ,CAAC;oBACrB,GAAG;oBACH,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC,EAAE,GAAG,CAAC,CAAC;SACT;KACF;AACH,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,GAAgB,EAAU,EAAE,CAC1C,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { useCallback, useContext } from 'react';
|
|
2
|
+
import { FocusableContext } from './FocusableWrapper';
|
|
3
|
+
export function withFocusable(WrappedComponent) {
|
|
4
|
+
return (props) => {
|
|
5
|
+
const context = useContext(FocusableContext);
|
|
6
|
+
const registerScrollableItem = useCallback((args) => {
|
|
7
|
+
context?.focusable?.registerScrollableItem?.(args);
|
|
8
|
+
}, [context]);
|
|
9
|
+
const addedProps = {
|
|
10
|
+
registerScrollableItem,
|
|
11
|
+
};
|
|
12
|
+
return React.createElement(WrappedComponent, { ...props, ...addedProps });
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=withFocusable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withFocusable.js","sourceRoot":"","sources":["../../../src/FocusableWrapper/withFocusable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIpE,MAAM,UAAU,aAAa,CAC3B,gBAAwC;IAExC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAE7C,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;QAEF,MAAM,UAAU,GAAG;YACjB,sBAAsB;SACvB,CAAC;QAEF,OAAO,oBAAC,gBAAgB,OAAM,KAAW,KAAM,UAAU,GAAI,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type FocusableItem = {
|
|
2
|
+
containerName: string;
|
|
3
|
+
ref: HTMLElement;
|
|
4
|
+
itemName: string;
|
|
5
|
+
};
|
|
6
|
+
export type ScrollableContainer = {
|
|
7
|
+
containerName: string;
|
|
8
|
+
ref: HTMLElement;
|
|
9
|
+
};
|
|
10
|
+
export declare class FocusableItemsService {
|
|
11
|
+
private focusableItems;
|
|
12
|
+
private scrollableContainers;
|
|
13
|
+
constructor();
|
|
14
|
+
addItem({ ref, itemName, containerName }: FocusableItem): void;
|
|
15
|
+
addContainer({ containerName, ref }: ScrollableContainer): void;
|
|
16
|
+
getItemRef: (itemName: string) => HTMLElement;
|
|
17
|
+
getContainerRefByItem: (itemName: string) => HTMLElement;
|
|
18
|
+
getContainerRefByName: (containerName: string) => HTMLElement;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=FocusableService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableService.d.ts","sourceRoot":"","sources":["../../../src/FocusableWrapper/FocusableService.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,oBAAoB,CAK1B;;IAOF,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,aAAa;IAIvD,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,mBAAmB;IAOxD,UAAU,aAAc,MAAM,iBACuC;IACrE,qBAAqB,aAAc,MAAM,iBAIvC;IACF,qBAAqB,kBAAmB,MAAM,iBAG5C;CACH"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FocusableItem } from './FocusableService';
|
|
3
|
+
export declare const getAnchorParam: () => string | null;
|
|
4
|
+
export type ContextProps = {
|
|
5
|
+
focusable: {
|
|
6
|
+
registerScrollableItem: (scrollableItem: FocusableItem) => void;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare const FocusableContext: React.Context<ContextProps | null>;
|
|
10
|
+
type FocusableWrapperProps = {
|
|
11
|
+
scrollableRef?: HTMLElement | null;
|
|
12
|
+
getScrollableTrigger: (callback: () => void) => void;
|
|
13
|
+
getDoesItemExist: (callback: () => boolean) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare const FocusableWrapper: React.FC<FocusableWrapperProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=FocusableWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableWrapper.d.ts","sourceRoot":"","sources":["../../../src/FocusableWrapper/FocusableWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAG1E,eAAO,MAAM,cAAc,QAAO,MAAM,GAAG,IAG1C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE;QACT,sBAAsB,EAAE,CAAC,cAAc,EAAE,aAAa,KAAK,IAAI,CAAC;KACjE,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,oCAAiD,CAAC;AAE/E,KAAK,qBAAqB,GAAG;IAC3B,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoE5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollAndFocus.d.ts","sourceRoot":"","sources":["../../../src/FocusableWrapper/scrollAndFocus.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,kBACV,WAAW,GAAG,SAAS,GAAG,IAAI,gBAC/B,WAAW,kBACT,WAAW,KAC1B,IAuBF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ContextProps } from './FocusableWrapper';
|
|
3
|
+
export type FocusableProps = ContextProps['focusable'];
|
|
4
|
+
export declare function withFocusable<P extends FocusableProps>(WrappedComponent: React.ComponentType<P>): React.FC<Omit<P, keyof FocusableProps>>;
|
|
5
|
+
//# sourceMappingURL=withFocusable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withFocusable.d.ts","sourceRoot":"","sources":["../../../src/FocusableWrapper/withFocusable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAEvD,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EACpD,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GACvC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC,CAiBzC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/bex-utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.21.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kobi",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@wix/ambassador-devcenter-app-market-listing-v1-market-listing": "^1.0.70",
|
|
56
56
|
"@wix/ambassador-fedinfra-exportservice-v1-export-async-job": "^1.0.174",
|
|
57
57
|
"@wix/ambassador-os-tags-v1-tag": "^1.0.3",
|
|
58
|
-
"@wix/bex-bundled-mini-essentials": "2.
|
|
58
|
+
"@wix/bex-bundled-mini-essentials": "2.6.0",
|
|
59
59
|
"@wix/bi-logger-os-data": "^1.119.0",
|
|
60
60
|
"@wix/eslint-config-yoshi": "^6.74.0",
|
|
61
61
|
"@wix/jest-yoshi-preset-base": "^6.74.0",
|
|
@@ -149,5 +149,5 @@
|
|
|
149
149
|
"wallaby": {
|
|
150
150
|
"autoDetect": true
|
|
151
151
|
},
|
|
152
|
-
"falconPackageHash": "
|
|
152
|
+
"falconPackageHash": "40d8c0583caa143abfdd162aab06ecbcb5b706029f83480663917ef5"
|
|
153
153
|
}
|