@elliemae/ds-shared 3.0.0-next.43 → 3.0.0-next.46
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/dist/cjs/FocusGroup/FocusGroup.js +18 -0
- package/dist/cjs/FocusGroup/FocusGroup.js.map +2 -2
- package/dist/cjs/ScrollSync/ScrollSync.js +2 -8
- package/dist/cjs/ScrollSync/ScrollSync.js.map +2 -2
- package/dist/esm/FocusGroup/FocusGroup.js +18 -0
- package/dist/esm/FocusGroup/FocusGroup.js.map +2 -2
- package/dist/esm/ScrollSync/ScrollSync.js +2 -8
- package/dist/esm/ScrollSync/ScrollSync.js.map +2 -2
- package/package.json +3 -3
|
@@ -111,6 +111,24 @@ class FocusGroup {
|
|
|
111
111
|
this.focusItem = this.focusItem.bind(this);
|
|
112
112
|
this.focusCurrent = this.focusCurrent.bind(this);
|
|
113
113
|
this.getHotKeysParams = this.getHotKeysParams.bind(this);
|
|
114
|
+
this.activate = this.activate.bind(this);
|
|
115
|
+
this.deactivate = this.deactivate.bind(this);
|
|
116
|
+
this.executeActionByEvent = this.executeActionByEvent.bind(this);
|
|
117
|
+
this.unregister = this.unregister.bind(this);
|
|
118
|
+
this.exit = this.exit.bind(this);
|
|
119
|
+
this.focusByNode = this.focusByNode.bind(this);
|
|
120
|
+
this.focusByIndex = this.focusByIndex.bind(this);
|
|
121
|
+
this.focusNextGroup = this.focusNextGroup.bind(this);
|
|
122
|
+
this.focusPreviousGroup = this.focusPreviousGroup.bind(this);
|
|
123
|
+
this.getNextItem = this.getNextItem.bind(this);
|
|
124
|
+
this.getPreviousItem = this.getPreviousItem.bind(this);
|
|
125
|
+
this.checkCanFocusNext = this.checkCanFocusNext.bind(this);
|
|
126
|
+
this.getItemByIndex = this.getItemByIndex.bind(this);
|
|
127
|
+
this.getItemIndexByNode = this.getItemIndexByNode.bind(this);
|
|
128
|
+
this.getFocusedIndex = this.getFocusedIndex.bind(this);
|
|
129
|
+
this.getFocusedItem = this.getFocusedItem.bind(this);
|
|
130
|
+
this.getFirstItem = this.getFirstItem.bind(this);
|
|
131
|
+
this.getLastItem = this.getLastItem.bind(this);
|
|
114
132
|
}
|
|
115
133
|
getHotKeysParams() {
|
|
116
134
|
const item = this.currentFocusedItem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/FocusGroup/FocusGroup.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,0BAAgC;AAChC,wBAAoB;AAEpB,MAAM,iBAAiB;AAAA,EACrB,aAAa;AACf;AAEA,MAAM,iBAAiB,CAAC,GAAG,QAAQ,SAAS;AAC1C,MAAI,oCAAW,GAAG,GAAG;AACnB,MAAE,eAAe;AACjB,QAAI,GAAG,IAAI;AAAA,EACb;AACF;AAEA,MAAM,kBAAkB,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (hotKeys = {}, params, getContainer = () => document) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];\n const parameterizedHandler = (e) => {\n const handlerParams = isFunction(params) ? params() : params;\n if (!allowDocumentHandler && handlerParams.item !== document.activeElement) return;\n e.preventDefault();\n handler(handlerParams);\n };\n hotkeys(hotkey, { element: getContainer(), ...options }, parameterizedHandler);\n });\n};\n\nconst unregisterHotKeys = (hotKeys = {}) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n hotkeys.unbind(hotkey);\n });\n};\n\nconst noop = () => null;\n\nclass FocusGroup {\n items = [];\n\n constructor(options = {}) {\n this.options = { ...defaultOptions, ...options };\n\n const { orientation } = this.options;\n\n this.keyBindings = {\n ArrowUp: orientation !== 'horizontal' && 'previous',\n ArrowRight: orientation !== 'vertical' && 'next',\n ArrowDown: orientation !== 'horizontal' && 'next',\n ArrowLeft: orientation !== 'vertical' && 'previous',\n Home: 'first',\n End: 'last',\n PageUp: 'first',\n PageDown: 'last',\n Escape: 'exit',\n ...options.keyBindings,\n };\n\n this.currentFocusedItem = null;\n this.currIndex = null;\n\n this.mapActions = {\n previous: this.focusPrevious.bind(this),\n next: this.focusNext.bind(this),\n first: this.focusFirst.bind(this),\n last: this.focusLast.bind(this),\n exit: this.exit.bind(this),\n enter: () => null,\n };\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.register = this.register.bind(this);\n this.focusFirst = this.focusFirst.bind(this);\n this.focusLast = this.focusLast.bind(this);\n this.isGroupActive = this.isGroupActive.bind(this);\n this.focusNext = this.focusNext.bind(this);\n this.focusPrevious = this.focusPrevious.bind(this);\n this.focusItem = this.focusItem.bind(this);\n this.focusCurrent = this.focusCurrent.bind(this);\n this.getHotKeysParams = this.getHotKeysParams.bind(this);\n this.activate = this.activate.bind(this);\n this.deactivate = this.deactivate.bind(this);\n this.executeActionByEvent = this.executeActionByEvent.bind(this);\n this.unregister = this.unregister.bind(this);\n this.exit = this.exit.bind(this);\n this.focusByNode = this.focusByNode.bind(this);\n this.focusByIndex = this.focusByIndex.bind(this);\n this.focusNextGroup = this.focusNextGroup.bind(this);\n this.focusPreviousGroup = this.focusPreviousGroup.bind(this);\n this.getNextItem = this.getNextItem.bind(this);\n this.getPreviousItem = this.getPreviousItem.bind(this);\n this.checkCanFocusNext = this.checkCanFocusNext.bind(this);\n this.getItemByIndex = this.getItemByIndex.bind(this);\n this.getItemIndexByNode = this.getItemIndexByNode.bind(this);\n this.getFocusedIndex = this.getFocusedIndex.bind(this);\n this.getFocusedItem = this.getFocusedItem.bind(this);\n this.getFirstItem = this.getFirstItem.bind(this);\n this.getLastItem = this.getLastItem.bind(this);\n }\n\n getHotKeysParams() {\n const item = this.currentFocusedItem;\n const { index } = get(item, ['dataset'], {});\n return {\n item,\n index,\n };\n }\n\n activate() {\n const { getContainer } = this.options;\n document.addEventListener('keydown', this.handleKeyDown, true);\n registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);\n }\n\n deactivate() {\n document.removeEventListener('keydown', this.handleKeyDown, true);\n unregisterHotKeys(this.options.hotKeys);\n }\n\n handleKeyDown(e) {\n if (!this.isGroupActive()) return;\n this.executeActionByEvent(e);\n }\n\n executeActionByEvent(e) {\n const actions = Array.isArray(this.keyBindings[e.key]) ? this.keyBindings[e.key] : [this.keyBindings[e.key]];\n return actions.map((action) =>\n typeof action === 'string' ? safeCallAction(e, this.mapActions[action]) : safeCallAction(e, action),\n );\n }\n\n register(node, props = {}) {\n const afterIndex = this.items.findIndex(\n (item) => item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING,\n );\n node.specialOnFocus = props.onFocus || noop;\n node.specialOnBlur = props.onBlur || noop;\n node.onclick = () => this.focusItem(node);\n node.onfocus = () => {\n this.focusItem(node);\n };\n if (afterIndex === -1) {\n this.items.push(node);\n } else {\n this.items.splice(afterIndex, 0, node);\n }\n }\n\n unregister(node) {\n const index = this.getItemIndexByNode(node);\n if (index > -1) this.items.splice(index, 1);\n }\n\n exit() {\n const { onExitFocusGroup } = this.options;\n onExitFocusGroup();\n }\n\n focusItem(node) {\n if (this.currentFocusedItem && this.currentFocusedItem !== node) {\n this.currentFocusedItem.specialOnBlur();\n this.currentFocusedItem.setAttribute('tabindex', -1);\n }\n if (!node) return;\n this.currentFocusedItem = node;\n node.setAttribute('tabindex', 0);\n node.focus();\n node.specialOnFocus();\n }\n\n focusNext() {\n const item = this.getNextItem();\n this.focusItem(item);\n }\n\n focusByNode(node) {\n const index = this.getItemIndexByNode(node);\n this.focusByIndex(index);\n }\n\n focusByIndex(index) {\n const item = this.getItemByIndex(index);\n this.focusItem(item);\n }\n\n focusPrevious() {\n const prevItem = this.getPreviousItem();\n this.focusItem(prevItem);\n }\n\n focusFirst() {\n const item = this.getFirstItem();\n this.focusItem(item);\n }\n\n focusLast() {\n const item = this.getLastItem();\n this.focusItem(item);\n }\n\n focusCurrent() {\n this.focusItem(this.currentFocusedItem);\n }\n\n focusNextGroup() {\n const { onFocusNextGroup } = this.options;\n this.exit();\n onFocusNextGroup();\n }\n\n focusPreviousGroup() {\n const { onFocusPreviousGroup } = this.options;\n this.exit();\n onFocusPreviousGroup();\n }\n\n getNextItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedNextIndex = currentIndex + 1;\n if (!this.checkCanFocusNext(supposedNextIndex)) {\n return loop ? this.getFirstItem() : this.focusNextGroup();\n }\n return this.getItemByIndex(supposedNextIndex);\n }\n\n getPreviousItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedPrevIndex = currentIndex - 1;\n if (!this.checkCanFocusPrev(supposedPrevIndex)) {\n return loop ? this.getLastItem() : this.focusPreviousGroup();\n }\n return this.getItemByIndex(supposedPrevIndex);\n }\n\n checkCanFocusNext(index) {\n return this.items.length > index;\n }\n\n checkCanFocusPrev(index) {\n return index >= 0;\n }\n\n getItemByIndex(index) {\n return this.items[index];\n }\n\n getItemIndexByNode(node) {\n return this.items.findIndex((item) => item === node);\n }\n\n getFocusedIndex() {\n return this.getItemIndexByNode(document.activeElement);\n }\n\n getFocusedItem() {\n const index = this.getFocusedIndex();\n return index > -1 && this.items[index];\n }\n\n isGroupActive() {\n return this.getFocusedIndex() !== -1;\n }\n\n getFirstItem() {\n return !!this.items.length && this.items[0];\n }\n\n getLastItem() {\n return !!this.items.length && this.items[this.items.length - 1];\n }\n}\n\nexport { FocusGroup };\nexport default FocusGroup;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -98,16 +98,10 @@ class ScrollSync extends import_react.Component {
|
|
|
98
98
|
registerPane: this.registerPane,
|
|
99
99
|
unregisterPane: this.unregisterPane
|
|
100
100
|
};
|
|
101
|
+
this.syncScrollPosition = this.syncScrollPosition.bind(this);
|
|
101
102
|
}
|
|
102
103
|
syncScrollPosition(scrolledPane, pane) {
|
|
103
|
-
const {
|
|
104
|
-
scrollTop,
|
|
105
|
-
scrollHeight,
|
|
106
|
-
clientHeight,
|
|
107
|
-
scrollLeft,
|
|
108
|
-
scrollWidth,
|
|
109
|
-
clientWidth
|
|
110
|
-
} = scrolledPane;
|
|
104
|
+
const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } = scrolledPane;
|
|
111
105
|
const scrollTopOffset = scrollHeight - clientHeight;
|
|
112
106
|
const scrollLeftOffset = scrollWidth - clientWidth;
|
|
113
107
|
const { proportional, vertical, horizontal } = this.props;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ScrollSync/ScrollSync.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { Component } from 'react';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nclass ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AAEjC,MAAM,oBAAoB,qBAAM,cAAc;AAE9C,MAAM,EAAE,aAAa;AAErB,MAAM,mBAAmB,uBAAU;AAAA,EAUjC,YAAY,OAAO;AACjB,UAAM,KAAK;AAVb,iBAAQ,CAAC;
|
|
4
|
+
"sourcesContent": ["import React, { Component } from 'react';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nclass ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n\n this.syncScrollPosition = this.syncScrollPosition.bind(this);\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional ? (paneHeight * scrollTop) / scrollTopOffset : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional ? (paneWidth * scrollLeft) / scrollLeftOffset : scrollLeft; // eslint-disable-line\n }\n }\n\n render() {\n const { children } = this.props;\n return <Provider value={this.syncContext}>{React.Children.only(children)}</Provider>;\n }\n}\n\nexport { ScrollSync, ScrollSyncContext };\nexport default ScrollSync;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AAEjC,MAAM,oBAAoB,qBAAM,cAAc;AAE9C,MAAM,EAAE,aAAa;AAErB,MAAM,mBAAmB,uBAAU;AAAA,EAUjC,YAAY,OAAO;AACjB,UAAM,KAAK;AAVb,iBAAQ,CAAC;AAmBT,wBAAe,CAAC,MAAM,WAAW;AAC/B,aAAO,QAAQ,CAAC,UAAU;AACxB,YAAI,CAAC,KAAK,MAAM,QAAQ;AACtB,eAAK,MAAM,SAAS,CAAC;AAAA,QACvB;AAEA,YAAI,KAAK,MAAM,OAAO,SAAS,GAAG;AAChC,eAAK,mBAAmB,KAAK,MAAM,OAAO,IAAI,IAAI;AAAA,QACpD;AACA,aAAK,MAAM,OAAO,KAAK,IAAI;AAAA,MAC7B,CAAC;AACD,WAAK,UAAU,MAAM,MAAM;AAAA,IAC7B;AAEA,0BAAiB,CAAC,MAAM,WAAW;AACjC,aAAO,QAAQ,CAAC,UAAU;AACxB,YAAI,KAAK,SAAS,MAAM,KAAK,GAAG;AAC9B,eAAK,aAAa,IAAI;AACtB,eAAK,MAAM,OAAO,OAAO,KAAK,MAAM,OAAO,QAAQ,IAAI,GAAG,CAAC;AAAA,QAC7D;AAAA,MACF,CAAC;AAAA,IACH;AAEA,qBAAY,CAAC,MAAM,WAAW;AAE5B,WAAK,WAAW,KAAK,iBAAiB,KAAK,MAAM,MAAM,MAAM;AAAA,IAC/D;AAEA,wBAAe,CAAC,SAAS;AAEvB,WAAK,WAAW;AAAA,IAClB;AAEA,oBAAW,CAAC,MAAM,UAAU;AAC1B,UAAI,CAAC,KAAK,MAAM,QAAQ;AACtB,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,MAAM,OAAO,KAAK,CAAC,SAAS,SAAS,IAAI;AAAA,IACvD;AAEA,4BAAmB,CAAC,MAAM,QAAQ,MAAM;AACtC,YAAM,EAAE,YAAY,KAAK;AACzB,UAAI,KAAK,MAAM;AAAU,aAAK,MAAM,SAAS,CAAC;AAE9C,UAAI,CAAC;AAAS;AAEd,aAAO,sBAAsB,MAAM;AACjC,aAAK,oBAAoB,MAAM,MAAM;AAAA,MACvC,CAAC;AAAA,IACH;AAEA,+BAAsB,CAAC,cAAc,WAAW;AAC9C,aAAO,QAAQ,CAAC,UAAU;AACxB,aAAK,MAAM,OAAO,QAAQ,CAAC,SAAS;AAElC,cAAI,iBAAiB,MAAM;AAEzB,iBAAK,aAAa,MAAM,KAAK;AAC7B,iBAAK,mBAAmB,cAAc,IAAI;AAE1C,mBAAO,sBAAsB,MAAM;AACjC,mBAAK,UAAU,MAAM,MAAM;AAAA,YAC7B,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AA3EE,SAAK,cAAc;AAAA,MACjB,cAAc,KAAK;AAAA,MACnB,gBAAgB,KAAK;AAAA,IACvB;AAEA,SAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI;AAAA,EAC7D;AAAA,EAuEA,mBAAmB,cAAc,MAAM;AACrC,UAAM,EAAE,WAAW,cAAc,cAAc,YAAY,aAAa,gBAAgB;AAExF,UAAM,kBAAkB,eAAe;AACvC,UAAM,mBAAmB,cAAc;AAEvC,UAAM,EAAE,cAAc,UAAU,eAAe,KAAK;AAGpD,UAAM,aAAa,KAAK,eAAe;AACvC,UAAM,YAAY,KAAK,cAAc;AAErC,QAAI,YAAY,kBAAkB,GAAG;AACnC,WAAK,YAAY,eAAgB,aAAa,YAAa,kBAAkB;AAAA,IAC/E;AACA,QAAI,cAAc,mBAAmB,GAAG;AACtC,WAAK,aAAa,eAAgB,YAAY,aAAc,mBAAmB;AAAA,IACjF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,aAAa,KAAK;AAC1B,WAAO,mDAAC;AAAA,MAAS,OAAO,KAAK;AAAA,OAAc,qBAAM,SAAS,KAAK,QAAQ,CAAE;AAAA,EAC3E;AACF;AA9GS,AAHT,WAGS,eAAe;AAAA,EACpB,cAAc;AAAA,EACd,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AACX;AA4GF,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -81,6 +81,24 @@ class FocusGroup {
|
|
|
81
81
|
this.focusItem = this.focusItem.bind(this);
|
|
82
82
|
this.focusCurrent = this.focusCurrent.bind(this);
|
|
83
83
|
this.getHotKeysParams = this.getHotKeysParams.bind(this);
|
|
84
|
+
this.activate = this.activate.bind(this);
|
|
85
|
+
this.deactivate = this.deactivate.bind(this);
|
|
86
|
+
this.executeActionByEvent = this.executeActionByEvent.bind(this);
|
|
87
|
+
this.unregister = this.unregister.bind(this);
|
|
88
|
+
this.exit = this.exit.bind(this);
|
|
89
|
+
this.focusByNode = this.focusByNode.bind(this);
|
|
90
|
+
this.focusByIndex = this.focusByIndex.bind(this);
|
|
91
|
+
this.focusNextGroup = this.focusNextGroup.bind(this);
|
|
92
|
+
this.focusPreviousGroup = this.focusPreviousGroup.bind(this);
|
|
93
|
+
this.getNextItem = this.getNextItem.bind(this);
|
|
94
|
+
this.getPreviousItem = this.getPreviousItem.bind(this);
|
|
95
|
+
this.checkCanFocusNext = this.checkCanFocusNext.bind(this);
|
|
96
|
+
this.getItemByIndex = this.getItemByIndex.bind(this);
|
|
97
|
+
this.getItemIndexByNode = this.getItemIndexByNode.bind(this);
|
|
98
|
+
this.getFocusedIndex = this.getFocusedIndex.bind(this);
|
|
99
|
+
this.getFocusedItem = this.getFocusedItem.bind(this);
|
|
100
|
+
this.getFirstItem = this.getFirstItem.bind(this);
|
|
101
|
+
this.getLastItem = this.getLastItem.bind(this);
|
|
84
102
|
}
|
|
85
103
|
getHotKeysParams() {
|
|
86
104
|
const item = this.currentFocusedItem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FocusGroup/FocusGroup.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAAA;ACGA;AACA;AAEA,MAAM,iBAAiB;AAAA,EACrB,aAAa;AACf;AAEA,MAAM,iBAAiB,CAAC,GAAG,QAAQ,SAAS;AAC1C,MAAI,WAAW,GAAG,GAAG;AACnB,MAAE,eAAe;AACjB,QAAI,GAAG,IAAI;AAAA,EACb;AACF;AAEA,MAAM,kBAAkB,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (hotKeys = {}, params, getContainer = () => document) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];\n const parameterizedHandler = (e) => {\n const handlerParams = isFunction(params) ? params() : params;\n if (!allowDocumentHandler && handlerParams.item !== document.activeElement) return;\n e.preventDefault();\n handler(handlerParams);\n };\n hotkeys(hotkey, { element: getContainer(), ...options }, parameterizedHandler);\n });\n};\n\nconst unregisterHotKeys = (hotKeys = {}) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n hotkeys.unbind(hotkey);\n });\n};\n\nconst noop = () => null;\n\nclass FocusGroup {\n items = [];\n\n constructor(options = {}) {\n this.options = { ...defaultOptions, ...options };\n\n const { orientation } = this.options;\n\n this.keyBindings = {\n ArrowUp: orientation !== 'horizontal' && 'previous',\n ArrowRight: orientation !== 'vertical' && 'next',\n ArrowDown: orientation !== 'horizontal' && 'next',\n ArrowLeft: orientation !== 'vertical' && 'previous',\n Home: 'first',\n End: 'last',\n PageUp: 'first',\n PageDown: 'last',\n Escape: 'exit',\n ...options.keyBindings,\n };\n\n this.currentFocusedItem = null;\n this.currIndex = null;\n\n this.mapActions = {\n previous: this.focusPrevious.bind(this),\n next: this.focusNext.bind(this),\n first: this.focusFirst.bind(this),\n last: this.focusLast.bind(this),\n exit: this.exit.bind(this),\n enter: () => null,\n };\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.register = this.register.bind(this);\n this.focusFirst = this.focusFirst.bind(this);\n this.focusLast = this.focusLast.bind(this);\n this.isGroupActive = this.isGroupActive.bind(this);\n this.focusNext = this.focusNext.bind(this);\n this.focusPrevious = this.focusPrevious.bind(this);\n this.focusItem = this.focusItem.bind(this);\n this.focusCurrent = this.focusCurrent.bind(this);\n this.getHotKeysParams = this.getHotKeysParams.bind(this);\n this.activate = this.activate.bind(this);\n this.deactivate = this.deactivate.bind(this);\n this.executeActionByEvent = this.executeActionByEvent.bind(this);\n this.unregister = this.unregister.bind(this);\n this.exit = this.exit.bind(this);\n this.focusByNode = this.focusByNode.bind(this);\n this.focusByIndex = this.focusByIndex.bind(this);\n this.focusNextGroup = this.focusNextGroup.bind(this);\n this.focusPreviousGroup = this.focusPreviousGroup.bind(this);\n this.getNextItem = this.getNextItem.bind(this);\n this.getPreviousItem = this.getPreviousItem.bind(this);\n this.checkCanFocusNext = this.checkCanFocusNext.bind(this);\n this.getItemByIndex = this.getItemByIndex.bind(this);\n this.getItemIndexByNode = this.getItemIndexByNode.bind(this);\n this.getFocusedIndex = this.getFocusedIndex.bind(this);\n this.getFocusedItem = this.getFocusedItem.bind(this);\n this.getFirstItem = this.getFirstItem.bind(this);\n this.getLastItem = this.getLastItem.bind(this);\n }\n\n getHotKeysParams() {\n const item = this.currentFocusedItem;\n const { index } = get(item, ['dataset'], {});\n return {\n item,\n index,\n };\n }\n\n activate() {\n const { getContainer } = this.options;\n document.addEventListener('keydown', this.handleKeyDown, true);\n registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);\n }\n\n deactivate() {\n document.removeEventListener('keydown', this.handleKeyDown, true);\n unregisterHotKeys(this.options.hotKeys);\n }\n\n handleKeyDown(e) {\n if (!this.isGroupActive()) return;\n this.executeActionByEvent(e);\n }\n\n executeActionByEvent(e) {\n const actions = Array.isArray(this.keyBindings[e.key]) ? this.keyBindings[e.key] : [this.keyBindings[e.key]];\n return actions.map((action) =>\n typeof action === 'string' ? safeCallAction(e, this.mapActions[action]) : safeCallAction(e, action),\n );\n }\n\n register(node, props = {}) {\n const afterIndex = this.items.findIndex(\n (item) => item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING,\n );\n node.specialOnFocus = props.onFocus || noop;\n node.specialOnBlur = props.onBlur || noop;\n node.onclick = () => this.focusItem(node);\n node.onfocus = () => {\n this.focusItem(node);\n };\n if (afterIndex === -1) {\n this.items.push(node);\n } else {\n this.items.splice(afterIndex, 0, node);\n }\n }\n\n unregister(node) {\n const index = this.getItemIndexByNode(node);\n if (index > -1) this.items.splice(index, 1);\n }\n\n exit() {\n const { onExitFocusGroup } = this.options;\n onExitFocusGroup();\n }\n\n focusItem(node) {\n if (this.currentFocusedItem && this.currentFocusedItem !== node) {\n this.currentFocusedItem.specialOnBlur();\n this.currentFocusedItem.setAttribute('tabindex', -1);\n }\n if (!node) return;\n this.currentFocusedItem = node;\n node.setAttribute('tabindex', 0);\n node.focus();\n node.specialOnFocus();\n }\n\n focusNext() {\n const item = this.getNextItem();\n this.focusItem(item);\n }\n\n focusByNode(node) {\n const index = this.getItemIndexByNode(node);\n this.focusByIndex(index);\n }\n\n focusByIndex(index) {\n const item = this.getItemByIndex(index);\n this.focusItem(item);\n }\n\n focusPrevious() {\n const prevItem = this.getPreviousItem();\n this.focusItem(prevItem);\n }\n\n focusFirst() {\n const item = this.getFirstItem();\n this.focusItem(item);\n }\n\n focusLast() {\n const item = this.getLastItem();\n this.focusItem(item);\n }\n\n focusCurrent() {\n this.focusItem(this.currentFocusedItem);\n }\n\n focusNextGroup() {\n const { onFocusNextGroup } = this.options;\n this.exit();\n onFocusNextGroup();\n }\n\n focusPreviousGroup() {\n const { onFocusPreviousGroup } = this.options;\n this.exit();\n onFocusPreviousGroup();\n }\n\n getNextItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedNextIndex = currentIndex + 1;\n if (!this.checkCanFocusNext(supposedNextIndex)) {\n return loop ? this.getFirstItem() : this.focusNextGroup();\n }\n return this.getItemByIndex(supposedNextIndex);\n }\n\n getPreviousItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedPrevIndex = currentIndex - 1;\n if (!this.checkCanFocusPrev(supposedPrevIndex)) {\n return loop ? this.getLastItem() : this.focusPreviousGroup();\n }\n return this.getItemByIndex(supposedPrevIndex);\n }\n\n checkCanFocusNext(index) {\n return this.items.length > index;\n }\n\n checkCanFocusPrev(index) {\n return index >= 0;\n }\n\n getItemByIndex(index) {\n return this.items[index];\n }\n\n getItemIndexByNode(node) {\n return this.items.findIndex((item) => item === node);\n }\n\n getFocusedIndex() {\n return this.getItemIndexByNode(document.activeElement);\n }\n\n getFocusedItem() {\n const index = this.getFocusedIndex();\n return index > -1 && this.items[index];\n }\n\n isGroupActive() {\n return this.getFocusedIndex() !== -1;\n }\n\n getFirstItem() {\n return !!this.items.length && this.items[0];\n }\n\n getLastItem() {\n return !!this.items.length && this.items[this.items.length - 1];\n }\n}\n\nexport { FocusGroup };\nexport default FocusGroup;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -65,16 +65,10 @@ class ScrollSync extends Component {
|
|
|
65
65
|
registerPane: this.registerPane,
|
|
66
66
|
unregisterPane: this.unregisterPane
|
|
67
67
|
};
|
|
68
|
+
this.syncScrollPosition = this.syncScrollPosition.bind(this);
|
|
68
69
|
}
|
|
69
70
|
syncScrollPosition(scrolledPane, pane) {
|
|
70
|
-
const {
|
|
71
|
-
scrollTop,
|
|
72
|
-
scrollHeight,
|
|
73
|
-
clientHeight,
|
|
74
|
-
scrollLeft,
|
|
75
|
-
scrollWidth,
|
|
76
|
-
clientWidth
|
|
77
|
-
} = scrolledPane;
|
|
71
|
+
const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } = scrolledPane;
|
|
78
72
|
const scrollTopOffset = scrollHeight - clientHeight;
|
|
79
73
|
const scrollLeftOffset = scrollWidth - clientWidth;
|
|
80
74
|
const { proportional, vertical, horizontal } = this.props;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/ScrollSync/ScrollSync.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { Component } from 'react';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nclass ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const {
|
|
5
|
-
"mappings": "AAAA;ACAA;AAEA,MAAM,oBAAoB,OAAM,cAAc;AAE9C,MAAM,EAAE,aAAa;AAErB,MAAM,mBAAmB,UAAU;AAAA,EAUjC,YAAY,OAAO;AACjB,UAAM,KAAK;AAVb,iBAAQ,CAAC;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { Component } from 'react';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nclass ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n\n this.syncScrollPosition = this.syncScrollPosition.bind(this);\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional ? (paneHeight * scrollTop) / scrollTopOffset : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional ? (paneWidth * scrollLeft) / scrollLeftOffset : scrollLeft; // eslint-disable-line\n }\n }\n\n render() {\n const { children } = this.props;\n return <Provider value={this.syncContext}>{React.Children.only(children)}</Provider>;\n }\n}\n\nexport { ScrollSync, ScrollSyncContext };\nexport default ScrollSync;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-shared",
|
|
3
|
-
"version": "3.0.0-next.
|
|
3
|
+
"version": "3.0.0-next.46",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Shared components and utilities",
|
|
6
6
|
"files": [
|
|
@@ -215,8 +215,8 @@
|
|
|
215
215
|
"typeSafety": false
|
|
216
216
|
},
|
|
217
217
|
"dependencies": {
|
|
218
|
-
"@elliemae/ds-popover": "3.0.0-next.
|
|
219
|
-
"@elliemae/ds-utilities": "3.0.0-next.
|
|
218
|
+
"@elliemae/ds-popover": "3.0.0-next.46",
|
|
219
|
+
"@elliemae/ds-utilities": "3.0.0-next.46",
|
|
220
220
|
"hoist-non-react-statics": "~3.3.2",
|
|
221
221
|
"hotkeys-js": "~3.8.7",
|
|
222
222
|
"prop-types": "~15.8.1",
|