@deephaven/components 0.6.1-fixed-deps.2 → 0.6.3-alpha.5
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/AutoCompleteInput.js +1 -1
- package/dist/AutoResizeTextarea.js +1 -1
- package/dist/AutoResizeTextarea.js.map +1 -1
- package/dist/CardFlip.js +1 -1
- package/dist/CardFlip.js.map +1 -1
- package/dist/ComboBox.js +1 -1
- package/dist/CustomTimeSelect.js +1 -1
- package/dist/DeephavenSpinner.js +1 -1
- package/dist/DraggableItemList.js +1 -1
- package/dist/HierarchicalCheckboxMenu.js +2 -2
- package/dist/ItemList.js +4 -4
- package/dist/LoadingOverlay.js +1 -1
- package/dist/LoadingSpinner.js +1 -1
- package/dist/Option.js +1 -1
- package/dist/Select.js +1 -1
- package/dist/Select.js.map +1 -1
- package/dist/ThemeExport.js +1 -1
- package/dist/TimeSlider.js +3 -3
- package/dist/TimeSlider.js.map +1 -1
- package/dist/ToastNotification.js +1 -1
- package/dist/ToastNotification.js.map +1 -1
- package/dist/UISwitch.js +1 -1
- package/dist/context-actions/ContextMenu.js +1 -1
- package/dist/menu-actions/DropdownMenu.js +1 -1
- package/dist/menu-actions/Menu.js +1 -1
- package/dist/navigation/Menu.js +1 -1
- package/dist/navigation/MenuItem.js +1 -1
- package/dist/navigation/MenuItem.js.map +1 -1
- package/dist/navigation/Page.js +1 -1
- package/dist/navigation/Stack.js +1 -1
- package/dist/navigation/Stack.js.map +1 -1
- package/dist/popper/Popper.js +1 -1
- package/dist/shortcuts/Shortcut.d.ts +2 -1
- package/dist/shortcuts/Shortcut.d.ts.map +1 -1
- package/dist/shortcuts/Shortcut.js +4 -0
- package/dist/shortcuts/Shortcut.js.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.d.ts +0 -1
- package/dist/shortcuts/ShortcutRegistry.d.ts.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.js +0 -1
- package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ import "./AutoResizeTextarea.css";
|
|
|
9
9
|
* then the field will also "explode" the value by the delimiter over new lines
|
|
10
10
|
* on focus, and implode on blur. By default, it doesn't word wrap.
|
|
11
11
|
*/
|
|
12
|
-
var AutoResizeTextarea =
|
|
12
|
+
var AutoResizeTextarea = _ref => {
|
|
13
13
|
var {
|
|
14
14
|
className = '',
|
|
15
15
|
value: propsValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AutoResizeTextarea.tsx"],"names":["React","useState","useRef","useEffect","PropTypes","classNames","AutoResizeTextarea","className","value","propsValue","onChange","spellCheck","placeholder","disabled","delimiter","id","setValue","isPastedChange","setIsPastedChange","element","explode","input","trim","split","filter","string","join","implode","map","reCalculateLayout","current","style","height","resizedHeight","scrollHeight","offsetHeight","clientHeight","handleChange","event","newValue","target","handleFocus","scrollLeft","handleBlur","handlePaste","propTypes","isRequired","func","bool","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,SAAlC,QAAmD,OAAnD;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/AutoResizeTextarea.tsx"],"names":["React","useState","useRef","useEffect","PropTypes","classNames","AutoResizeTextarea","className","value","propsValue","onChange","spellCheck","placeholder","disabled","delimiter","id","setValue","isPastedChange","setIsPastedChange","element","explode","input","trim","split","filter","string","join","implode","map","reCalculateLayout","current","style","height","resizedHeight","scrollHeight","offsetHeight","clientHeight","handleChange","event","newValue","target","handleFocus","scrollLeft","handleBlur","handlePaste","propTypes","isRequired","func","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport './AutoResizeTextarea.scss';\n\ninterface AutoResizeTextareaProps {\n value: string;\n onChange: (val: string) => void;\n className?: string;\n spellCheck?: boolean;\n placeholder?: string;\n disabled?: boolean;\n delimiter?: string;\n id?: string;\n}\n\n/**\n * Makes a textarea that auto resizes based on contents, its height grows with new lines.\n * If a delimeter is set, such as \" -\" or \" \", as used by jvm args or env vars\n * then the field will also \"explode\" the value by the delimiter over new lines\n * on focus, and implode on blur. By default, it doesn't word wrap.\n */\nconst AutoResizeTextarea = ({\n className = '',\n value: propsValue,\n onChange,\n spellCheck = false,\n placeholder = '',\n disabled = false,\n delimiter = '',\n id = '',\n}: AutoResizeTextareaProps): JSX.Element => {\n const [value, setValue] = useState(propsValue);\n const [isPastedChange, setIsPastedChange] = useState(false);\n const element = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n // keep state value in sync with prop changes\n setValue(propsValue);\n }, [propsValue]);\n\n function explode(input: string) {\n // split by delimiter, commonly \" \" or \" -\"\n // strip empty strings (if delimiter is space, and there are multiple spaces in a row)\n // and join with new line and a trimmed delimeter (get rid of leading spaces)\n return input\n .trim()\n .split(delimiter)\n .filter(string => string) // remove empty strings\n .join(`\\n${delimiter.trim()}`);\n }\n\n function implode(input: string) {\n return input\n .split('\\n')\n .map(string => string.trim())\n .join(' ');\n }\n\n function reCalculateLayout() {\n if (!element.current) {\n return;\n }\n element.current.style.height = 'auto'; // needed to allow component to shrink\n const resizedHeight =\n element.current.scrollHeight +\n (element.current.offsetHeight - element.current.clientHeight);\n // accounts for border, padding is captured by scroll height\n if (resizedHeight > 0) element.current.style.height = `${resizedHeight}px`;\n }\n\n function handleChange(event: React.ChangeEvent<HTMLTextAreaElement>) {\n let newValue = event.target.value;\n if (isPastedChange) {\n if (delimiter) newValue = explode(newValue);\n setIsPastedChange(false);\n }\n setValue(newValue);\n onChange(newValue);\n }\n\n function handleFocus() {\n if (!element.current) {\n return;\n }\n if (delimiter) {\n setValue(explode(value));\n reCalculateLayout();\n }\n element.current.scrollLeft = 0;\n // scroll left as it can be disorienting if you click on a long line\n }\n\n function handleBlur() {\n if (delimiter) {\n setValue(implode(value));\n onChange(implode(value));\n }\n }\n\n function handlePaste() {\n setIsPastedChange(true);\n }\n\n useEffect(() => {\n reCalculateLayout();\n }, [value]);\n\n return (\n <textarea\n ref={element}\n id={id}\n className={classNames(className, 'auto-resize-textarea form-control')}\n placeholder={placeholder}\n value={value}\n rows={1}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onPaste={handlePaste}\n spellCheck={spellCheck}\n disabled={disabled}\n />\n );\n};\n\nAutoResizeTextarea.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n spellCheck: PropTypes.bool,\n disabled: PropTypes.bool,\n delimiter: PropTypes.string,\n id: PropTypes.string,\n};\n\nAutoResizeTextarea.defaultProps = {\n className: '',\n id: '',\n placeholder: '',\n disabled: false,\n spellCheck: false,\n delimiter: '',\n};\n\nexport default AutoResizeTextarea;\n"],"file":"AutoResizeTextarea.js"}
|
package/dist/CardFlip.js
CHANGED
package/dist/CardFlip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CardFlip.tsx"],"names":["React","useCallback","useEffect","useRef","classNames","CardFlip","className","isFlipped","children","getComponent","key","length","Error","front","transitionStart","event","target","currentTarget","document","body","classList","add","transitionEnd","remove","current","addEventListener"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,MAAxC,QAAsD,OAAtD;AACA,OAAOC,UAAP,MAAuB,YAAvB;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/CardFlip.tsx"],"names":["React","useCallback","useEffect","useRef","classNames","CardFlip","className","isFlipped","children","getComponent","key","length","Error","front","transitionStart","event","target","currentTarget","document","body","classList","add","transitionEnd","remove","current","addEventListener"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,MAAxC,QAAsD,OAAtD;AACA,OAAOC,UAAP,MAAuB,YAAvB;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,QAAQ,GAAG,QAIiB;AAAA,MAJhB;AAChBC,IAAAA,SADgB;AAEhBC,IAAAA,SAFgB;AAGhBC,IAAAA;AAHgB,GAIgB;;AAChC,MAAMC,YAAY,GAAIC,GAAD,IAAgB;AACnC,QAAIF,QAAQ,CAACG,MAAT,KAAoB,CAAxB,EAA2B;AACzB,YAAM,IAAIC,KAAJ,CAAU,0CAAV,CAAN;AACD;;AACD,WAAOJ,QAAQ,CAACE,GAAD,CAAf;AACD,GALD;;AAOA,MAAMG,KAAK,GAAGV,MAAM,CAAiB,IAAjB,CAApB;AAEA,MAAMW,eAAe,GAAGb,WAAW,CAACc,KAAK,IAAI;AAC3C,QAAIA,KAAK,CAACC,MAAN,KAAiBD,KAAK,CAACE,aAA3B,EAA0C;AACxCC,MAAAA,QAAQ,CAACC,IAAT,CAAcC,SAAd,CAAwBC,GAAxB,CAA4B,wBAA5B;AACD;AACF,GAJkC,EAIhC,EAJgC,CAAnC;AAMA,MAAMC,aAAa,GAAGrB,WAAW,CAACc,KAAK,IAAI;AACzC,QAAIA,KAAK,CAACC,MAAN,KAAiBD,KAAK,CAACE,aAA3B,EAA0C;AACxCC,MAAAA,QAAQ,CAACC,IAAT,CAAcC,SAAd,CAAwBG,MAAxB,CAA+B,wBAA/B;AACD;AACF,GAJgC,EAI9B,EAJ8B,CAAjC;AAMArB,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACW,KAAK,CAACW,OAAX,EAAoB,MAAMZ,KAAK,CAAC,eAAD,CAAX;AACpBC,IAAAA,KAAK,CAACW,OAAN,CAAcC,gBAAd,CAA+B,iBAA/B,EAAkDX,eAAlD;AACD,GAHQ,EAGN,CAACA,eAAD,CAHM,CAAT;AAKA,sBACE;AACE,IAAA,SAAS,EAAEV,UAAU,CAACE,SAAD,EAAY;AAC/B,+BAAyBC,SADM;AAE/B,8BAAwB,CAACA;AAFM,KAAZ;AADvB,kBAME;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCE,YAAY,CAAC,CAAD,CAA9C,CANF,eAOE;AACE,IAAA,GAAG,EAAEI,KADP;AAEE,IAAA,SAAS,EAAC,kBAFZ;AAGE,IAAA,eAAe,EAAES;AAHnB,KAKGb,YAAY,CAAC,CAAD,CALf,CAPF,CADF;AAiBD,CAhDD;;AAkDA,eAAeJ,QAAf","sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport './CardFlip.scss';\n\ntype CardFlipProps = {\n isFlipped: boolean;\n children: [React.ReactNode, React.ReactNode];\n className?: string;\n};\n\n/**\n * Card flip component, switches between a front and back face being visible.\n * Has logic to handle overflow on body, caused by perspective transforms\n * and moves z-index to top during transition.\n * @param isFlipped true shows second child, false shows first child\n * @param children Expects exactly two children\n * @returns\n */\nconst CardFlip = ({\n className,\n isFlipped,\n children,\n}: CardFlipProps): JSX.Element => {\n const getComponent = (key: 0 | 1) => {\n if (children.length !== 2) {\n throw new Error('CardFlip requires 2 children to function');\n }\n return children[key];\n };\n\n const front = useRef<HTMLDivElement>(null);\n\n const transitionStart = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.add('card-flip--is-flipping');\n }\n }, []);\n\n const transitionEnd = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.remove('card-flip--is-flipping');\n }\n }, []);\n\n useEffect(() => {\n if (!front.current) throw Error('ref undefined');\n front.current.addEventListener('transitionstart', transitionStart);\n }, [transitionStart]);\n\n return (\n <div\n className={classNames(className, {\n 'card-flip--show-front': isFlipped,\n 'card-flip--show-back': !isFlipped,\n })}\n >\n <div className=\"card-flip--back\">{getComponent(0)}</div>\n <div\n ref={front}\n className=\"card-flip--front\"\n onTransitionEnd={transitionEnd}\n >\n {getComponent(1)}\n </div>\n </div>\n );\n};\n\nexport default CardFlip;\n"],"file":"CardFlip.js"}
|
package/dist/ComboBox.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
package/dist/CustomTimeSelect.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
package/dist/DeephavenSpinner.js
CHANGED
|
@@ -7,7 +7,7 @@ import classNames from 'classnames';
|
|
|
7
7
|
* CSS animations that reach into the svg are blocking since SVG aren't drawn by the gpu, only animations
|
|
8
8
|
* that are performed on the whole svg remain hardware accelerated.
|
|
9
9
|
*/
|
|
10
|
-
var DeephavenSpinner =
|
|
10
|
+
var DeephavenSpinner = _ref => {
|
|
11
11
|
var {
|
|
12
12
|
className = '',
|
|
13
13
|
show = true
|
|
@@ -102,7 +102,7 @@ class DraggableItemList extends PureComponent {
|
|
|
102
102
|
max: ItemList.CACHE_SIZE
|
|
103
103
|
}));
|
|
104
104
|
|
|
105
|
-
_defineProperty(this, "getCachedRenderDraggableItem", memoize((draggablePrefix, isDragDisabled, renderItem) =>
|
|
105
|
+
_defineProperty(this, "getCachedRenderDraggableItem", memoize((draggablePrefix, isDragDisabled, renderItem) => _ref4 => {
|
|
106
106
|
var {
|
|
107
107
|
item,
|
|
108
108
|
itemIndex,
|
|
@@ -154,7 +154,7 @@ class HierarchicalCheckboxMenu extends Component {
|
|
|
154
154
|
} = this.props;
|
|
155
155
|
return /*#__PURE__*/React.createElement("div", {
|
|
156
156
|
className: "hcm-menu-container"
|
|
157
|
-
}, Array.from(valueMap.entries()).map(
|
|
157
|
+
}, Array.from(valueMap.entries()).map(_ref => {
|
|
158
158
|
var [parent, children] = _ref;
|
|
159
159
|
return /*#__PURE__*/React.createElement("div", {
|
|
160
160
|
key: parent
|
|
@@ -162,7 +162,7 @@ class HierarchicalCheckboxMenu extends Component {
|
|
|
162
162
|
className: "hcm-parent",
|
|
163
163
|
checked: HierarchicalCheckboxMenu.isParentSelected(parent, valueMap),
|
|
164
164
|
onChange: () => this.toggleValueFor(parent)
|
|
165
|
-
}, parent), children !== undefined && typeof children !== 'boolean' && Array.from(children.entries()).map(
|
|
165
|
+
}, parent), children !== undefined && typeof children !== 'boolean' && Array.from(children.entries()).map(_ref2 => {
|
|
166
166
|
var [child, value] = _ref2;
|
|
167
167
|
return /*#__PURE__*/React.createElement(Checkbox, {
|
|
168
168
|
className: "hcm-child",
|
package/dist/ItemList.js
CHANGED
|
@@ -247,7 +247,7 @@ export class ItemList extends PureComponent {
|
|
|
247
247
|
} = this.props;
|
|
248
248
|
|
|
249
249
|
if (isDoubleClickSelect) {
|
|
250
|
-
this.setState(
|
|
250
|
+
this.setState(_ref2 => {
|
|
251
251
|
var {
|
|
252
252
|
selectedRanges
|
|
253
253
|
} = _ref2;
|
|
@@ -576,7 +576,7 @@ export class ItemList extends PureComponent {
|
|
|
576
576
|
|
|
577
577
|
deselectRange(range) {
|
|
578
578
|
RangeUtils.validateRange(range);
|
|
579
|
-
this.setState(
|
|
579
|
+
this.setState(_ref6 => {
|
|
580
580
|
var {
|
|
581
581
|
selectedRanges
|
|
582
582
|
} = _ref6;
|
|
@@ -596,7 +596,7 @@ export class ItemList extends PureComponent {
|
|
|
596
596
|
|
|
597
597
|
selectRange(range) {
|
|
598
598
|
RangeUtils.validateRange(range);
|
|
599
|
-
this.setState(
|
|
599
|
+
this.setState(_ref7 => {
|
|
600
600
|
var {
|
|
601
601
|
selectedRanges
|
|
602
602
|
} = _ref7;
|
|
@@ -687,7 +687,7 @@ export class ItemList extends PureComponent {
|
|
|
687
687
|
return /*#__PURE__*/React.createElement(AutoSizer, {
|
|
688
688
|
className: "item-list-auto-sizer",
|
|
689
689
|
onResize: this.handleResize
|
|
690
|
-
},
|
|
690
|
+
}, _ref9 => {
|
|
691
691
|
var {
|
|
692
692
|
width,
|
|
693
693
|
height
|
package/dist/LoadingOverlay.js
CHANGED
package/dist/LoadingSpinner.js
CHANGED
|
@@ -4,7 +4,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
|
4
4
|
import { vsCircleLargeOutline, vsLoading } from '@deephaven/icons';
|
|
5
5
|
import "./LoadingSpinner.css";
|
|
6
6
|
|
|
7
|
-
var LoadingSpinner =
|
|
7
|
+
var LoadingSpinner = _ref => {
|
|
8
8
|
var {
|
|
9
9
|
className = ''
|
|
10
10
|
} = _ref;
|
package/dist/Option.js
CHANGED
package/dist/Select.js
CHANGED
package/dist/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Select.tsx"],"names":["React","useCallback","classNames","Select","children","onChange","className","defaultValue","value","disabled","handleChange","event","target"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,UAAP,MAAuB,YAAvB;;AAWA,IAAMC,MAAM,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/Select.tsx"],"names":["React","useCallback","classNames","Select","children","onChange","className","defaultValue","value","disabled","handleChange","event","target"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,UAAP,MAAuB,YAAvB;;AAWA,IAAMC,MAAM,GAAG,QAOiB;AAAA,MAPhB;AACdC,IAAAA,QADc;AAEdC,IAAAA,QAFc;AAGdC,IAAAA,SAHc;AAIdC,IAAAA,YAJc;AAKdC,IAAAA,KALc;AAMdC,IAAAA;AANc,GAOgB;AAC9B,MAAMC,YAAY,GAAGT,WAAW,CAC9BU,KAAK,IAAI;AACPN,IAAAA,QAAQ,CAACM,KAAK,CAACC,MAAN,CAAaJ,KAAd,CAAR;AACD,GAH6B,EAI9B,CAACH,QAAD,CAJ8B,CAAhC;AAOA,sBACE;AACE,IAAA,SAAS,EAAEH,UAAU,CAAC,eAAD,EAAkBI,SAAlB,CADvB;AAEE,IAAA,QAAQ,EAAEI,YAFZ;AAGE,IAAA,YAAY,EAAEH,YAHhB;AAIE,IAAA,KAAK,EAAEC,KAJT;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAOGL,QAPH,CADF;AAWD,CA1BD;;AA4BA,eAAeD,MAAf","sourcesContent":["import React, { useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport type SelectProps = {\n children: React.ReactNode;\n onChange: (value: string) => void;\n className?: string;\n defaultValue?: string;\n value?: string;\n disabled?: boolean;\n};\n\nconst Select = ({\n children,\n onChange,\n className,\n defaultValue,\n value,\n disabled,\n}: SelectProps): JSX.Element => {\n const handleChange = useCallback(\n event => {\n onChange(event.target.value);\n },\n [onChange]\n );\n\n return (\n <select\n className={classNames('custom-select', className)}\n onChange={handleChange}\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n >\n {children}\n </select>\n );\n};\n\nexport default Select;\n"],"file":"Select.js"}
|
package/dist/ThemeExport.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
package/dist/TimeSlider.js
CHANGED
|
@@ -15,7 +15,7 @@ var SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals
|
|
|
15
15
|
* Creates a time slider for setting a start and end time, that can also run overnight
|
|
16
16
|
* @param {startTime, endTime, onChange} props takes times in seconds 0 - 86399 and a callback
|
|
17
17
|
*/
|
|
18
|
-
var TimeSlider =
|
|
18
|
+
var TimeSlider = _ref => {
|
|
19
19
|
var {
|
|
20
20
|
startTime: propStartTime,
|
|
21
21
|
endTime: propEndTime,
|
|
@@ -238,13 +238,13 @@ var Handle = props => {
|
|
|
238
238
|
var limitMax = Math.min(SECONDS_IN_DAY, roundedTime);
|
|
239
239
|
return limitMax;
|
|
240
240
|
}, [track]);
|
|
241
|
-
var handleMouseMove = useCallback(
|
|
241
|
+
var handleMouseMove = useCallback(_ref2 => {
|
|
242
242
|
var {
|
|
243
243
|
clientX
|
|
244
244
|
} = _ref2;
|
|
245
245
|
setTime(calculatePositionAsTime(clientX));
|
|
246
246
|
}, [setTime, calculatePositionAsTime]);
|
|
247
|
-
var handleMouseUp = useCallback(
|
|
247
|
+
var handleMouseUp = useCallback(_ref3 => {
|
|
248
248
|
var {
|
|
249
249
|
clientX
|
|
250
250
|
} = _ref3;
|
package/dist/TimeSlider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/TimeSlider.tsx"],"names":["React","useCallback","useMemo","useRef","useState","useEffect","classNames","TimeInput","StyleExports","HANDLE_SIZE","parseInt","POPOVER_WIDTH","SECONDS_IN_DAY","SNAP_NEAREST_MINUTES","TimeSlider","startTime","propStartTime","endTime","propEndTime","onChange","isStartModified","isEndModified","setStartTime","setEndTime","track","updateTime","newStartTime","newEndTime","start","end","handleStartTimeChange","handleEndTimeChange","Array","fill","map","value","index","PopOvers","props","onStartTimeChange","onEndTimeChange","firstTime","setFirstTime","secondTime","setSecondTime","onFirstTimeChange","onSecondTimeChange","flexBasis","modified","TrackFills","transform","Handle","time","setTime","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","current","trackRect","getBoundingClientRect","leftEdge","Math","max","left","preciseTime","min","width","roundedTime","round","limitMax","handleMouseMove","handleMouseUp","window","removeEventListener","document","documentElement","classList","remove","startDragListening","addEventListener","add","stopDragListening","handleMouseDown"],"mappings":"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","sourcesContent":["/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n useEffect,\n} from 'react';\nimport classNames from 'classnames';\nimport TimeInput from './TimeInput';\nimport StyleExports from './TimeSlider.module.scss';\nimport './TimeSlider.scss';\n\nconst HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nconst POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nconst SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nconst SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\ntype TimeSliderProps = {\n startTime: number;\n endTime: number;\n onChange(value: { startTime: number; endTime: number }): void;\n isStartModified?: boolean;\n isEndModified?: boolean;\n};\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param {startTime, endTime, onChange} props takes times in seconds 0 - 86399 and a callback\n */\nconst TimeSlider = ({\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n}: TimeSliderProps): JSX.Element => {\n const [startTime, setStartTime] = useState(propStartTime);\n const [endTime, setEndTime] = useState(propEndTime);\n\n const track = useRef<HTMLDivElement>(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(() => {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n\n const updateTime = useCallback(\n (newStartTime: number, newEndTime: number) => {\n let start = newStartTime;\n let end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n\n setStartTime(start);\n setEndTime(end);\n onChange({ startTime: start, endTime: end });\n },\n [setStartTime, setEndTime, onChange]\n );\n\n const handleStartTimeChange = useCallback(\n (newStartTime: number) => {\n updateTime(newStartTime, endTime);\n },\n [updateTime, endTime]\n );\n\n const handleEndTimeChange = useCallback(\n (newEndTime: number) => {\n updateTime(startTime, newEndTime);\n },\n [updateTime, startTime]\n );\n\n return (\n <div className=\"time-slider\">\n <PopOvers\n startTime={startTime}\n endTime={endTime}\n onStartTimeChange={handleStartTimeChange}\n onEndTimeChange={handleEndTimeChange}\n isStartModified={isStartModified}\n isEndModified={isEndModified}\n />\n <div className=\"track\" ref={track}>\n <TrackFills startTime={startTime} endTime={endTime} />\n <div className=\"ticks\">\n {Array(24)\n .fill(null)\n .map((value, index) => (\n <div className=\"tick\" key={index} />\n ))}\n </div>\n <Handle\n track={track}\n time={startTime}\n setTime={handleStartTimeChange}\n />\n <Handle track={track} time={endTime} setTime={handleEndTimeChange} />\n </div>\n\n <div className=\"tick-labels\">\n <div className=\"tick-label\">0:00</div>\n <div className=\"tick-label-wrapper\">\n {Array(24)\n .fill(null)\n .map((value, index) => (\n <div className=\"tick-label\" key={index}>{`${index + 1}:00`}</div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\ntype PopOversProps = {\n startTime: number;\n endTime: number;\n onStartTimeChange(time: number): void;\n onEndTimeChange(time: number): void;\n isStartModified: boolean;\n isEndModified: boolean;\n};\n\nconst PopOvers = (props: PopOversProps): JSX.Element => {\n const {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n } = props;\n\n const [firstTime, setFirstTime] = useState(\n startTime > endTime ? endTime : startTime\n );\n const [secondTime, setSecondTime] = useState(\n startTime > endTime ? startTime : endTime\n );\n\n useEffect(() => {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n\n function onFirstTimeChange(value: number) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n\n function onSecondTimeChange(value: number) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n\n return (\n <div className=\"time-slider-popovers\">\n <div\n className=\"flex\"\n style={{\n flexBasis: `calc(${(firstTime / SECONDS_IN_DAY) * 100}% - ${\n POPOVER_WIDTH / 2\n }px)`,\n }}\n />\n <div className=\"handle-popper\">\n <label\n className={classNames({\n modified: startTime < endTime ? isStartModified : isEndModified,\n })}\n >\n {startTime <= endTime ? 'Start Time' : 'End Time'}\n </label>\n <TimeInput\n allowValueWrapping={false}\n value={firstTime}\n onChange={onFirstTimeChange}\n />\n </div>\n <div className=\"flex-spacer\" />\n <div className=\"handle-popper\">\n <label\n className={classNames({\n modified: startTime > endTime ? isStartModified : isEndModified,\n })}\n >\n {startTime > endTime ? 'Start Time' : 'End Time'}\n </label>\n <TimeInput\n allowValueWrapping={false}\n value={secondTime}\n onChange={onSecondTimeChange}\n />\n </div>\n <div\n className=\"flex\"\n style={{\n flexBasis: `calc(${\n ((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY) * 100\n }% - ${POPOVER_WIDTH / 2}px)`,\n }}\n />\n </div>\n );\n};\n\ntype TrackFillsProps = {\n startTime: number;\n endTime: number;\n};\n\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nconst TrackFills = (props: TrackFillsProps): JSX.Element => {\n const { startTime, endTime } = props;\n return (\n <div className=\"track-fills\">\n {startTime > endTime && (\n <>\n <div\n className=\"track-fill track-fill-start\"\n style={{ transform: `scaleX(${endTime / SECONDS_IN_DAY})` }}\n />\n <div\n className=\"track-fill track-fill-end\"\n style={{\n transform: `scaleX(${\n (SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY\n })`,\n }}\n />\n </>\n )}\n {startTime < endTime && (\n <div\n className=\"track-fill track-fill-middle\"\n style={{\n transform: `translateX(${\n (startTime / SECONDS_IN_DAY) * 100\n }%) scaleX(${(endTime - startTime) / SECONDS_IN_DAY})`,\n }}\n />\n )}\n </div>\n );\n};\n\ntype HandleProps = {\n track: React.RefObject<HTMLDivElement>;\n time: number;\n setTime(time: number): void;\n};\n\n/**\n * Creates a draggable handle the sets the time\n */\nconst Handle = (props: HandleProps): JSX.Element => {\n const { track, time, setTime } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param {number} t time in seconds\n */\n const transform = useMemo(() => {\n const ONE_HOUR = 60 * 60;\n let handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = (time / ONE_HOUR) * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset =\n HANDLE_SIZE / 2 +\n (1 / (SECONDS_IN_DAY - 23 * ONE_HOUR)) *\n (time - 23 * ONE_HOUR) *\n (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n return `translateX(calc(${\n (time / SECONDS_IN_DAY) * 100\n }% - ${handleOffset}px))`;\n }, [time]);\n\n const calculatePositionAsTime = useCallback(\n (clientX: number) => {\n if (!track.current) {\n return 0;\n }\n const trackRect = track.current.getBoundingClientRect();\n const leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n const preciseTime =\n SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n const roundedTime =\n SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n const limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n },\n [track]\n );\n\n const handleMouseMove = useCallback(\n ({ clientX }: MouseEvent) => {\n setTime(calculatePositionAsTime(clientX));\n },\n [setTime, calculatePositionAsTime]\n );\n\n const handleMouseUp = useCallback(\n ({ clientX }: MouseEvent) => {\n setTime(calculatePositionAsTime(clientX));\n\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n },\n [setTime, calculatePositionAsTime, handleMouseMove]\n );\n\n const startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n\n const stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n\n const handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n\n useEffect(\n () => () => {\n stopDragListening();\n },\n [stopDragListening]\n );\n\n return (\n <div className=\"handle-track\" style={{ transform }}>\n <button\n className=\"handle\"\n type=\"button\"\n aria-label=\"Change time\"\n onMouseDown={handleMouseDown}\n />\n </div>\n );\n};\n\nexport default TimeSlider;\n"],"file":"TimeSlider.js"}
|
|
1
|
+
{"version":3,"sources":["../src/TimeSlider.tsx"],"names":["React","useCallback","useMemo","useRef","useState","useEffect","classNames","TimeInput","StyleExports","HANDLE_SIZE","parseInt","POPOVER_WIDTH","SECONDS_IN_DAY","SNAP_NEAREST_MINUTES","TimeSlider","startTime","propStartTime","endTime","propEndTime","onChange","isStartModified","isEndModified","setStartTime","setEndTime","track","updateTime","newStartTime","newEndTime","start","end","handleStartTimeChange","handleEndTimeChange","Array","fill","map","value","index","PopOvers","props","onStartTimeChange","onEndTimeChange","firstTime","setFirstTime","secondTime","setSecondTime","onFirstTimeChange","onSecondTimeChange","flexBasis","modified","TrackFills","transform","Handle","time","setTime","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","current","trackRect","getBoundingClientRect","leftEdge","Math","max","left","preciseTime","min","width","roundedTime","round","limitMax","handleMouseMove","handleMouseUp","window","removeEventListener","document","documentElement","classList","remove","startDragListening","addEventListener","add","stopDragListening","handleMouseDown"],"mappings":"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","sourcesContent":["/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n useEffect,\n} from 'react';\nimport classNames from 'classnames';\nimport TimeInput from './TimeInput';\nimport StyleExports from './TimeSlider.module.scss';\nimport './TimeSlider.scss';\n\nconst HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nconst POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nconst SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nconst SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\ntype TimeSliderProps = {\n startTime: number;\n endTime: number;\n onChange(value: { startTime: number; endTime: number }): void;\n isStartModified?: boolean;\n isEndModified?: boolean;\n};\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param {startTime, endTime, onChange} props takes times in seconds 0 - 86399 and a callback\n */\nconst TimeSlider = ({\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n}: TimeSliderProps): JSX.Element => {\n const [startTime, setStartTime] = useState(propStartTime);\n const [endTime, setEndTime] = useState(propEndTime);\n\n const track = useRef<HTMLDivElement>(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(() => {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n\n const updateTime = useCallback(\n (newStartTime: number, newEndTime: number) => {\n let start = newStartTime;\n let end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n\n setStartTime(start);\n setEndTime(end);\n onChange({ startTime: start, endTime: end });\n },\n [setStartTime, setEndTime, onChange]\n );\n\n const handleStartTimeChange = useCallback(\n (newStartTime: number) => {\n updateTime(newStartTime, endTime);\n },\n [updateTime, endTime]\n );\n\n const handleEndTimeChange = useCallback(\n (newEndTime: number) => {\n updateTime(startTime, newEndTime);\n },\n [updateTime, startTime]\n );\n\n return (\n <div className=\"time-slider\">\n <PopOvers\n startTime={startTime}\n endTime={endTime}\n onStartTimeChange={handleStartTimeChange}\n onEndTimeChange={handleEndTimeChange}\n isStartModified={isStartModified}\n isEndModified={isEndModified}\n />\n <div className=\"track\" ref={track}>\n <TrackFills startTime={startTime} endTime={endTime} />\n <div className=\"ticks\">\n {Array(24)\n .fill(null)\n .map((value, index) => (\n <div className=\"tick\" key={index} />\n ))}\n </div>\n <Handle\n track={track}\n time={startTime}\n setTime={handleStartTimeChange}\n />\n <Handle track={track} time={endTime} setTime={handleEndTimeChange} />\n </div>\n\n <div className=\"tick-labels\">\n <div className=\"tick-label\">0:00</div>\n <div className=\"tick-label-wrapper\">\n {Array(24)\n .fill(null)\n .map((value, index) => (\n <div className=\"tick-label\" key={index}>{`${index + 1}:00`}</div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\ntype PopOversProps = {\n startTime: number;\n endTime: number;\n onStartTimeChange(time: number): void;\n onEndTimeChange(time: number): void;\n isStartModified: boolean;\n isEndModified: boolean;\n};\n\nconst PopOvers = (props: PopOversProps): JSX.Element => {\n const {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n } = props;\n\n const [firstTime, setFirstTime] = useState(\n startTime > endTime ? endTime : startTime\n );\n const [secondTime, setSecondTime] = useState(\n startTime > endTime ? startTime : endTime\n );\n\n useEffect(() => {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n\n function onFirstTimeChange(value: number) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n\n function onSecondTimeChange(value: number) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n\n return (\n <div className=\"time-slider-popovers\">\n <div\n className=\"flex\"\n style={{\n flexBasis: `calc(${(firstTime / SECONDS_IN_DAY) * 100}% - ${\n POPOVER_WIDTH / 2\n }px)`,\n }}\n />\n <div className=\"handle-popper\">\n <label\n className={classNames({\n modified: startTime < endTime ? isStartModified : isEndModified,\n })}\n >\n {startTime <= endTime ? 'Start Time' : 'End Time'}\n </label>\n <TimeInput\n allowValueWrapping={false}\n value={firstTime}\n onChange={onFirstTimeChange}\n />\n </div>\n <div className=\"flex-spacer\" />\n <div className=\"handle-popper\">\n <label\n className={classNames({\n modified: startTime > endTime ? isStartModified : isEndModified,\n })}\n >\n {startTime > endTime ? 'Start Time' : 'End Time'}\n </label>\n <TimeInput\n allowValueWrapping={false}\n value={secondTime}\n onChange={onSecondTimeChange}\n />\n </div>\n <div\n className=\"flex\"\n style={{\n flexBasis: `calc(${\n ((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY) * 100\n }% - ${POPOVER_WIDTH / 2}px)`,\n }}\n />\n </div>\n );\n};\n\ntype TrackFillsProps = {\n startTime: number;\n endTime: number;\n};\n\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nconst TrackFills = (props: TrackFillsProps): JSX.Element => {\n const { startTime, endTime } = props;\n return (\n <div className=\"track-fills\">\n {startTime > endTime && (\n <>\n <div\n className=\"track-fill track-fill-start\"\n style={{ transform: `scaleX(${endTime / SECONDS_IN_DAY})` }}\n />\n <div\n className=\"track-fill track-fill-end\"\n style={{\n transform: `scaleX(${\n (SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY\n })`,\n }}\n />\n </>\n )}\n {startTime < endTime && (\n <div\n className=\"track-fill track-fill-middle\"\n style={{\n transform: `translateX(${\n (startTime / SECONDS_IN_DAY) * 100\n }%) scaleX(${(endTime - startTime) / SECONDS_IN_DAY})`,\n }}\n />\n )}\n </div>\n );\n};\n\ntype HandleProps = {\n track: React.RefObject<HTMLDivElement>;\n time: number;\n setTime(time: number): void;\n};\n\n/**\n * Creates a draggable handle the sets the time\n */\nconst Handle = (props: HandleProps): JSX.Element => {\n const { track, time, setTime } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param {number} t time in seconds\n */\n const transform = useMemo(() => {\n const ONE_HOUR = 60 * 60;\n let handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = (time / ONE_HOUR) * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset =\n HANDLE_SIZE / 2 +\n (1 / (SECONDS_IN_DAY - 23 * ONE_HOUR)) *\n (time - 23 * ONE_HOUR) *\n (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n return `translateX(calc(${\n (time / SECONDS_IN_DAY) * 100\n }% - ${handleOffset}px))`;\n }, [time]);\n\n const calculatePositionAsTime = useCallback(\n (clientX: number) => {\n if (!track.current) {\n return 0;\n }\n const trackRect = track.current.getBoundingClientRect();\n const leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n const preciseTime =\n SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n const roundedTime =\n SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n const limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n },\n [track]\n );\n\n const handleMouseMove = useCallback(\n ({ clientX }: MouseEvent) => {\n setTime(calculatePositionAsTime(clientX));\n },\n [setTime, calculatePositionAsTime]\n );\n\n const handleMouseUp = useCallback(\n ({ clientX }: MouseEvent) => {\n setTime(calculatePositionAsTime(clientX));\n\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n },\n [setTime, calculatePositionAsTime, handleMouseMove]\n );\n\n const startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n\n const stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n\n const handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n\n useEffect(\n () => () => {\n stopDragListening();\n },\n [stopDragListening]\n );\n\n return (\n <div className=\"handle-track\" style={{ transform }}>\n <button\n className=\"handle\"\n type=\"button\"\n aria-label=\"Change time\"\n onMouseDown={handleMouseDown}\n />\n </div>\n );\n};\n\nexport default TimeSlider;\n"],"file":"TimeSlider.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ToastNotification.tsx"],"names":["React","classNames","CSSTransition","vsClose","Button","ThemeExport","ToastNotification","buttons","isShown","classNamesProp","message","type","onClick","onDismiss","hasButtons","length","transitionMs","transitionSlowMs","TYPE","Object","freeze","ERROR"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,OAAT,QAAwB,kBAAxB;OACOC,M;OACAC,W;;;AAgBP,IAAMC,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/ToastNotification.tsx"],"names":["React","classNames","CSSTransition","vsClose","Button","ThemeExport","ToastNotification","buttons","isShown","classNamesProp","message","type","onClick","onDismiss","hasButtons","length","transitionMs","transitionSlowMs","TYPE","Object","freeze","ERROR"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,OAAT,QAAwB,kBAAxB;OACOC,M;OACAC,W;;;AAgBP,IAAMC,iBAAiB,GAAG,QAQiB;AAAA,MARhB;AACzBC,IAAAA,OADyB;AAEzBC,IAAAA,OAAO,GAAG,KAFe;AAGzBP,IAAAA,UAAU,EAAEQ,cAHa;AAIzBC,IAAAA,OAJyB;AAKzBC,IAAAA,IALyB;AAMzBC,IAAAA,OANyB;AAOzBC,IAAAA;AAPyB,GAQgB;AACzC,MAAMC,UAAU,GAAGP,OAAO,IAAIA,OAAO,CAACQ,MAAR,KAAmB,CAAjD;AAEA,sBACE,oBAAC,aAAD;AACE,IAAA,EAAE,EAAEP,OADN;AAEE,IAAA,OAAO,EAAEH,WAAW,CAACW,YAFvB;AAGE,IAAA,UAAU,EAAC,6BAHb;AAIE,IAAA,YAAY,MAJd;AAKE,IAAA,aAAa;AALf,kBAOE;AACE,IAAA,SAAS,EAAEf,UAAU,CAAC,oBAAD,EAAuBQ,cAAvB,EAAuCE,IAAvC,CADvB;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,UAAU,EAAEA;AAJd,kBAME;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA2BF,OAA3B,CADF,CANF,eASE,oBAAC,aAAD;AACE,IAAA,EAAE,EAAEI,UADN;AAEE,IAAA,OAAO,EAAET,WAAW,CAACY,gBAFvB;AAGE,IAAA,UAAU,EAAC,MAHb;AAIE,IAAA,YAAY,MAJd;AAKE,IAAA,aAAa;AALf,kBAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCV,OAApC,CAPF,CATF,EAkBGM,SAAS,iBACR,oBAAC,MAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,IAAI,EAAEV,OAFR;AAGE,IAAA,OAAO,EAAC,oBAHV;AAIE,IAAA,SAAS,EAAC,MAJZ;AAKE,IAAA,OAAO,EAAEU;AALX,IAnBJ,CAPF,CADF;AAsCD,CAjDD;;AAmDAP,iBAAiB,CAACY,IAAlB,GAAyBC,MAAM,CAACC,MAAP,CAAc;AACrCC,EAAAA,KAAK,EAAE;AAD8B,CAAd,CAAzB;AAIA,eAAef,iBAAf","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { vsClose } from '@deephaven/icons';\nimport Button from './Button';\nimport ThemeExport from './ThemeExport';\nimport './ToastNotification.scss';\n\ntype ToastNotificationProps = {\n buttons?: typeof Button[];\n classNames?: string;\n isShown?: boolean;\n message?: string;\n type?: string;\n\n onClick?: React.EventHandler<\n React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>\n >;\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\nconst ToastNotification = ({\n buttons,\n isShown = false,\n classNames: classNamesProp,\n message,\n type,\n onClick,\n onDismiss,\n}: ToastNotificationProps): JSX.Element => {\n const hasButtons = buttons && buttons.length !== 0;\n\n return (\n <CSSTransition\n in={isShown}\n timeout={ThemeExport.transitionMs}\n classNames=\"toast-notification-slide-up\"\n mountOnEnter\n unmountOnExit\n >\n <div\n className={classNames('toast-notification', classNamesProp, type)}\n role=\"presentation\"\n onClick={onClick}\n onKeyPress={onClick}\n >\n <div className=\"message-container\">\n <span className=\"message\">{message}</span>\n </div>\n <CSSTransition\n in={hasButtons}\n timeout={ThemeExport.transitionSlowMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"buttons-container\">{buttons}</div>\n </CSSTransition>\n {onDismiss && (\n <Button\n kind=\"ghost\"\n icon={vsClose}\n tooltip=\"Close notification\"\n className=\"my-2\"\n onClick={onDismiss}\n />\n )}\n </div>\n </CSSTransition>\n );\n};\n\nToastNotification.TYPE = Object.freeze({\n ERROR: 'error',\n});\n\nexport default ToastNotification;\n"],"file":"ToastNotification.js"}
|
package/dist/UISwitch.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
package/dist/navigation/Menu.js
CHANGED
|
@@ -12,7 +12,7 @@ function isSwitchMenuItemType(item) {
|
|
|
12
12
|
* @param props.item The menu item to set. Set a SwitchMenuItemDef to show a switch.
|
|
13
13
|
* @param props.onSelect Called when the menu item is selected
|
|
14
14
|
*/
|
|
15
|
-
export var MenuItem =
|
|
15
|
+
export var MenuItem = _ref => {
|
|
16
16
|
var {
|
|
17
17
|
item,
|
|
18
18
|
onSelect = () => undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/navigation/MenuItem.tsx"],"names":["React","useMemo","FontAwesomeIcon","vsChevronRight","UISwitch","isSwitchMenuItemType","item","isOn","undefined","MenuItem","onSelect","icon","subtitle","title","handleSelect","onChange","event","key","stopPropagation"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AAEA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,cAAT,QAA+B,kBAA/B;;OAGOC,Q;;AAaP,SAASC,oBAAT,CAA8BC,IAA9B,EAA4E;AAC1E,SAAQA,IAAD,CAA4BC,IAA5B,KAAqCC,SAA5C;AACD;;AAOD;AACA;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/navigation/MenuItem.tsx"],"names":["React","useMemo","FontAwesomeIcon","vsChevronRight","UISwitch","isSwitchMenuItemType","item","isOn","undefined","MenuItem","onSelect","icon","subtitle","title","handleSelect","onChange","event","key","stopPropagation"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AAEA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,cAAT,QAA+B,kBAA/B;;OAGOC,Q;;AAaP,SAASC,oBAAT,CAA8BC,IAA9B,EAA4E;AAC1E,SAAQA,IAAD,CAA4BC,IAA5B,KAAqCC,SAA5C;AACD;;AAOD;AACA;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,QAGU;AAAA,MAHT;AACvBH,IAAAA,IADuB;AAEvBI,IAAAA,QAAQ,GAAG,MAAMF;AAFM,GAGS;AAChC,MAAM;AAAEG,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,MAA4BP,IAAlC;AACA,MAAMQ,YAAY,GAAGb,OAAO,CAAC,MAAM;AACjC,QAAII,oBAAoB,CAACC,IAAD,CAAxB,EAAgC;AAC9B,aAAO,MAAM;AACXA,QAAAA,IAAI,CAACS,QAAL,CAAc,CAACT,IAAI,CAACC,IAApB;AACD,OAFD;AAGD;;AACD,WAAOG,QAAP;AACD,GAP2B,EAOzB,CAACJ,IAAD,EAAOI,QAAP,CAPyB,CAA5B;AAQA,sBACE;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,OAAO,EAAEI,YAFX;AAGE,IAAA,SAAS,EAAEE,KAAK,IAAI;AAClB,UAAIA,KAAK,CAACC,GAAN,KAAc,OAAd,IAAyBD,KAAK,CAACC,GAAN,KAAc,GAA3C,EAAgD;AAC9CH,QAAAA,YAAY;AACb;AACF,KAPH;AAQE,IAAA,QAAQ,EAAE,CARZ;AASE,IAAA,IAAI,EAAC;AATP,KAWGH,IAAI,iBACH;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,eAAD;AAAiB,IAAA,IAAI,EAAEA;AAAvB,IADF,CAZJ,eAgBE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwBE,KAAxB,CAhBF,EAiBGD,QAAQ,iBAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAA2BA,QAA3B,CAjBf,eAkBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACIP,oBAAoB,CAACC,IAAD,CAApB,iBACA,oBAAC,QAAD;AACE,IAAA,EAAE,EAAEA,IAAI,CAACC,IADX;AAEE,IAAA,OAAO,EAAES,KAAK,IAAI;AAChBA,MAAAA,KAAK,CAACE,eAAN;AACAJ,MAAAA,YAAY;AACb;AALH,IADD,iBAQK,oBAAC,eAAD;AAAiB,IAAA,IAAI,EAAEX;AAAvB,IATR,CAlBF,CADF;AAgCD,CA7CM;AA+CP,eAAeM,QAAf","sourcesContent":["import React, { useMemo } from 'react';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsChevronRight } from '@deephaven/icons';\nimport './MenuItem.scss';\n\nimport UISwitch from '../UISwitch';\n\nexport type MenuItemDef = {\n title: string;\n subtitle?: string;\n icon?: IconProp;\n};\n\nexport type SwitchMenuItemDef = MenuItemDef & {\n isOn: boolean;\n onChange: (isOn: boolean) => void;\n};\n\nfunction isSwitchMenuItemType(item: MenuItemDef): item is SwitchMenuItemDef {\n return (item as SwitchMenuItemDef).isOn !== undefined;\n}\n\nexport type MenuItemProps = {\n item: MenuItemDef;\n onSelect?: () => void;\n};\n\n/**\n * @param props.item The menu item to set. Set a SwitchMenuItemDef to show a switch.\n * @param props.onSelect Called when the menu item is selected\n */\nexport const MenuItem = ({\n item,\n onSelect = () => undefined,\n}: MenuItemProps): JSX.Element => {\n const { icon, subtitle, title } = item;\n const handleSelect = useMemo(() => {\n if (isSwitchMenuItemType(item)) {\n return () => {\n item.onChange(!item.isOn);\n };\n }\n return onSelect;\n }, [item, onSelect]);\n return (\n <div\n className=\"btn btn-navigation-menu-item\"\n onClick={handleSelect}\n onKeyDown={event => {\n if (event.key === 'Enter' || event.key === ' ') {\n handleSelect();\n }\n }}\n tabIndex={0}\n role=\"menuitem\"\n >\n {icon && (\n <div className=\"icon\">\n <FontAwesomeIcon icon={icon} />\n </div>\n )}\n <div className=\"title\">{title}</div>\n {subtitle && <div className=\"shortcut\">{subtitle}</div>}\n <div className=\"accessory\">\n {(isSwitchMenuItemType(item) && (\n <UISwitch\n on={item.isOn}\n onClick={event => {\n event.stopPropagation();\n handleSelect();\n }}\n />\n )) || <FontAwesomeIcon icon={vsChevronRight} />}\n </div>\n </div>\n );\n};\n\nexport default MenuItem;\n"],"file":"MenuItem.js"}
|
package/dist/navigation/Page.js
CHANGED
|
@@ -7,7 +7,7 @@ import "./Page.css";
|
|
|
7
7
|
* A page view with a back button in the bottom left, a title at the top, and a close button in the top right.
|
|
8
8
|
* Back and close buttons will only appear if `onBack` and/or `onClose` callbacks are set.
|
|
9
9
|
*/
|
|
10
|
-
export var Page =
|
|
10
|
+
export var Page = _ref => {
|
|
11
11
|
var {
|
|
12
12
|
children,
|
|
13
13
|
onBack,
|
package/dist/navigation/Stack.js
CHANGED
|
@@ -8,7 +8,7 @@ import "./Stack.css";
|
|
|
8
8
|
* Pass a full navigation stack of children, and then automatically does a sliding animation when the stack changes.
|
|
9
9
|
* Adding items to the stack will do a "push" animation, and removing items from the stack will do a "pop" animation.
|
|
10
10
|
*/
|
|
11
|
-
export var Stack =
|
|
11
|
+
export var Stack = _ref => {
|
|
12
12
|
var {
|
|
13
13
|
children
|
|
14
14
|
} = _ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/navigation/Stack.tsx"],"names":["React","useState","useEffect","useMemo","useCallback","CSSTransition","usePrevious","ThemeExport","Stack","children","childrenArray","Children","toArray","prevChildrenArray","mainView","setMainView","length","pushingView","setPushingView","poppingView","setPoppingView","undefined","topChild","pushComplete","popComplete","transitionMidMs"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,EAAqCC,OAArC,EAA8CC,WAA9C,QAAiE,OAAjE;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,WAAT,QAA4B,wBAA5B;OACOC,W;;;AAOP;AACA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/navigation/Stack.tsx"],"names":["React","useState","useEffect","useMemo","useCallback","CSSTransition","usePrevious","ThemeExport","Stack","children","childrenArray","Children","toArray","prevChildrenArray","mainView","setMainView","length","pushingView","setPushingView","poppingView","setPoppingView","undefined","topChild","pushComplete","popComplete","transitionMidMs"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport ThemeExport from '../ThemeExport';\nimport './Stack.scss';\n\nexport type StackProps = {\n children: React.ReactNode | React.ReactNode[];\n};\n\n/**\n * Pass a full navigation stack of children, and then automatically does a sliding animation when the stack changes.\n * Adding items to the stack will do a \"push\" animation, and removing items from the stack will do a \"pop\" animation.\n */\nexport const Stack = ({ children }: StackProps): JSX.Element => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [\n children,\n ]);\n const prevChildrenArray = usePrevious(childrenArray);\n const [mainView, setMainView] = useState<React.ReactNode>(\n childrenArray[childrenArray.length - 1]\n );\n\n const [pushingView, setPushingView] = useState<React.ReactNode>(null);\n const [poppingView, setPoppingView] = useState<React.ReactNode>(null);\n\n /**\n * To do the animation effect, we just need to set the proper pushing/popping views when the stack changes.\n * `mainView` - The main view of the stack, stationary, filling the container.\n * `pushingView` - A view that's currently being pushed. Slides from off screen right to overtop of `mainView`.\n * `poppingView` - A view that's currently being popped. Slides from overtop of `mainView` to right off screen.\n *\n * When the `pushingView` or `poppingView` is set, that will kick off their animation.\n * Completion of the animation is handled in `pushComplete` or `popComplete`, and then the stack is in an idle state again.\n */\n useEffect(() => {\n if (\n prevChildrenArray === undefined ||\n childrenArray === prevChildrenArray\n ) {\n return;\n }\n const topChild = childrenArray[childrenArray.length - 1];\n if (\n childrenArray.length === prevChildrenArray.length ||\n prevChildrenArray.length === 0 ||\n pushingView !== null ||\n poppingView !== null\n ) {\n // 1) Stack is the same size, we've just mounted, or we're already in an animation - just update the view\n if (pushingView !== null && topChild !== pushingView) {\n // Stack was updated mid animation\n setPushingView(topChild);\n } else if (topChild !== poppingView && topChild !== mainView) {\n // Replace the current view\n setMainView(topChild);\n }\n } else if (childrenArray.length > prevChildrenArray.length) {\n // 2) Stack has grown - start the push animation\n setPushingView(topChild);\n } else if (childrenArray.length < prevChildrenArray.length) {\n // 3) Stack has shrunk - start the pop animation\n setMainView(topChild);\n setPoppingView(prevChildrenArray[prevChildrenArray.length - 1]);\n }\n }, [childrenArray, prevChildrenArray, pushingView, poppingView, mainView]);\n\n const pushComplete = useCallback(() => {\n setMainView(pushingView);\n setPushingView(null);\n }, [pushingView]);\n\n const popComplete = useCallback(() => {\n setPoppingView(null);\n }, []);\n\n return (\n <div className=\"navigation-stack\">\n <div className=\"main-view\">{mainView}</div>\n\n <CSSTransition\n in={poppingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-right\"\n onEntered={popComplete}\n >\n <>{poppingView && <div className=\"popping-view\">{poppingView}</div>}</>\n </CSSTransition>\n <CSSTransition\n in={pushingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-left\"\n onEntered={pushComplete}\n >\n <>{pushingView && <div className=\"pushing-view\">{pushingView}</div>}</>\n </CSSTransition>\n </div>\n );\n};\n\nexport default Stack;\n"],"file":"Stack.js"}
|
package/dist/popper/Popper.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -95,7 +95,7 @@ export interface KeyState {
|
|
|
95
95
|
metaKey: boolean;
|
|
96
96
|
shiftKey: boolean;
|
|
97
97
|
}
|
|
98
|
-
interface ValidKeyState extends KeyState {
|
|
98
|
+
export interface ValidKeyState extends KeyState {
|
|
99
99
|
keyValue: KEY | null;
|
|
100
100
|
}
|
|
101
101
|
export default class Shortcut {
|
|
@@ -179,6 +179,7 @@ export default class Shortcut {
|
|
|
179
179
|
* @returns Default key state
|
|
180
180
|
*/
|
|
181
181
|
getDefaultKeyState(): ValidKeyState;
|
|
182
|
+
isDefault(): boolean;
|
|
182
183
|
/**
|
|
183
184
|
* Sets the shortcut to have null keyValue
|
|
184
185
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shortcut.d.ts","sourceRoot":"","sources":["../../src/shortcuts/Shortcut.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,oBAAY,QAAQ;IAClB,IAAI,kBAAkB;IACtB,GAAG,iBAAiB;IACpB,GAAG,iBAAiB;IACpB,MAAM,oBAAoB;IAC1B,KAAK,mBAAmB;CACzB;AAID,oBAAY,GAAG;IACb,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,IAAI,MAAM;IACV,GAAG,MAAM;IACT,GAAG,MAAM;IACT,KAAK,MAAM;IACX,IAAI,MAAM;IACV,IAAI,MAAM;IACV,GAAG,MAAM;IACT,KAAK,MAAM;IACX,KAAK,MAAM;IACX,IAAI,MAAM;IACV,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,MAAM;IACX,aAAa,MAAM;IACnB,SAAS,OAAO;IAChB,IAAI,MAAM;IACV,KAAK,MAAM;IACX,UAAU,MAAM;IAChB,MAAM,MAAM;IACZ,IAAI,MAAM;IACV,QAAQ,MAAM;IACd,KAAK,MAAM;IACX,KAAK,MAAM;IACX,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ,aAAa,MAAM;IACnB,SAAS,MAAM;IACf,KAAK,MAAM;IACX,YAAY,MAAM;IAClB,YAAY,OAAM;IAClB,YAAY,MAAM;IAClB,aAAa,MAAM;IACnB,UAAU,MAAM;IAChB,WAAW,MAAM;IACjB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAED,aAAK,YAAY,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;AAEzC,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,
|
|
1
|
+
{"version":3,"file":"Shortcut.d.ts","sourceRoot":"","sources":["../../src/shortcuts/Shortcut.ts"],"names":[],"mappings":"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"}
|