@deephaven/components 1.22.0 → 1.22.1-alpha-pivot-builder.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Re-exports third-party module namespaces so plugins share the host app's
3
+ * single bundled copy via the remote component resolve map.
4
+ *
5
+ * `@deephaven/components` owns FontAwesome, so re-exporting it here ensures
6
+ * plugins use the same instance the design system has already initialized.
7
+ */
8
+ export * as ReactFontAwesome from '@fortawesome/react-fontawesome';
9
+ //# sourceMappingURL=RemoteComponentModules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteComponentModules.d.ts","sourceRoot":"","sources":["../src/RemoteComponentModules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,gBAAgB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Re-exports third-party module namespaces so plugins share the host app's
3
+ * single bundled copy via the remote component resolve map.
4
+ *
5
+ * `@deephaven/components` owns FontAwesome, so re-exporting it here ensures
6
+ * plugins use the same instance the design system has already initialized.
7
+ */
8
+ import * as _ReactFontAwesome from '@fortawesome/react-fontawesome';
9
+ export { _ReactFontAwesome as ReactFontAwesome };
10
+ //# sourceMappingURL=RemoteComponentModules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteComponentModules.js","names":["_ReactFontAwesome","ReactFontAwesome"],"sources":["../src/RemoteComponentModules.ts"],"sourcesContent":["/**\n * Re-exports third-party module namespaces so plugins share the host app's\n * single bundled copy via the remote component resolve map.\n *\n * `@deephaven/components` owns FontAwesome, so re-exporting it here ensures\n * plugins use the same instance the design system has already initialized.\n */\nexport * as ReactFontAwesome from '@fortawesome/react-fontawesome';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,YAAAA,iBAAA,MAOkC,gCAAgC;AAAA,SAAAA,iBAAA,IAAtDC,gBAAgB","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -59,4 +59,5 @@ export * from './UIConstants';
59
59
  export { default as UISwitch } from './UISwitch';
60
60
  export * from './XComponent';
61
61
  export * from './XComponentMap';
62
+ export * from './RemoteComponentModules';
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -58,4 +58,5 @@ export * from "./UIConstants.js";
58
58
  export { default as UISwitch } from "./UISwitch.js";
59
59
  export * from "./XComponent.js";
60
60
  export * from "./XComponentMap.js";
61
+ export * from "./RemoteComponentModules.js";
61
62
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","CardFlip","Collapse","Checkbox","CopyButton","CustomTimeSelect","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","ErrorView","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RandomAreaPlotAnimation","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport * from './actions';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport * from './Button';\nexport * from './BulkActionBar';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport * from './ComponentUtils';\nexport { default as CopyButton, type CopyButtonProps } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport * from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport * from './dialogs';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport * from './ErrorBoundary';\nexport { default as ErrorView } from './ErrorView';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './MaskedInputUtils';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RandomAreaPlotAnimation } from './RandomAreaPlotAnimation';\nexport * from './SearchableCombobox';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport * from './spectrum';\nexport * from './SplitButtonGroup';\nexport * from './TableViewEmptyState';\nexport * from './TextWithTooltip';\nexport * from './theme';\nexport * from './transitions';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport * from './UIConstants';\nexport { default as UISwitch } from './UISwitch';\nexport * from './XComponent';\nexport * from './XComponentMap';\n"],"mappings":";SAESA,OAAO,IAAIC,iBAAiB;AAAA,SAC5BD,OAAO,IAAIE,kBAAkB;AAAA,SAC7BF,OAAO,IAAIG,UAAU;AAAA;AAAA;AAAA,SAGrBH,OAAO,IAAII,QAAQ;AAAA;AAAA,SAEnBJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,QAAQ;AAAA;AAAA,SAEnBN,OAAO,IAAIO,UAAU;AAAA,SACrBP,OAAO,IAAIQ,gBAAgB;AAAA;AAAA,SAE3BR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,oBAAoB;AAAA;AAAA,SAE/BV,OAAO,IAAIW,iBAAiB;AAAA;AAAA,SAE5BX,OAAO,IAAIY,SAAS;AAAA,SACpBZ,OAAO,IAAIa,gBAAgB;AAAA;AAAA,SAE3Bb,OAAO,IAAIc,SAAS;AAAA,SACpBd,OAAO,IAAIe,wBAAwB;AAAA;AAAA;AAAA,SAGnCf,OAAO,IAAIgB,YAAY;AAAA,SACvBhB,OAAO,IAAIiB,cAAc;AAAA,SACzBjB,OAAO,IAAIkB,cAAc;AAAA,SACzBlB,OAAO,IAAImB,YAAY;AAAA;AAAA,SAEvBnB,OAAO,IAAIoB,WAAW;AAAA;AAAA;AAAA;AAAA,SAItBpB,OAAO,IAAIqB,MAAM;AAAA;AAAA;AAAA,SAGjBrB,OAAO,IAAIsB,uBAAuB;AAAA;AAAA,SAElCtB,OAAO,IAAIuB,MAAM;AAAA,SACjBvB,OAAO,IAAIwB,WAAW;AAAA,SACtBxB,OAAO,IAAIyB,eAAe;AAAA;AAAA;AAAA,SAG1BzB,OAAO,IAAI0B,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOzB1B,OAAO,IAAI2B,WAAW;AAAA,SACtB3B,OAAO,IAAI4B,SAAS;AAAA,SACpB5B,OAAO,IAAI6B,UAAU;AAAA,SACrB7B,OAAO,IAAI8B,iBAAiB;AAAA;AAAA,SAE5B9B,OAAO,IAAI+B,QAAQ;AAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","CardFlip","Collapse","Checkbox","CopyButton","CustomTimeSelect","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","ErrorView","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RandomAreaPlotAnimation","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport * from './actions';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport * from './Button';\nexport * from './BulkActionBar';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport * from './ComponentUtils';\nexport { default as CopyButton, type CopyButtonProps } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport * from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport * from './dialogs';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport * from './ErrorBoundary';\nexport { default as ErrorView } from './ErrorView';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './MaskedInputUtils';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RandomAreaPlotAnimation } from './RandomAreaPlotAnimation';\nexport * from './SearchableCombobox';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport * from './spectrum';\nexport * from './SplitButtonGroup';\nexport * from './TableViewEmptyState';\nexport * from './TextWithTooltip';\nexport * from './theme';\nexport * from './transitions';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport * from './UIConstants';\nexport { default as UISwitch } from './UISwitch';\nexport * from './XComponent';\nexport * from './XComponentMap';\nexport * from './RemoteComponentModules';\n"],"mappings":";SAESA,OAAO,IAAIC,iBAAiB;AAAA,SAC5BD,OAAO,IAAIE,kBAAkB;AAAA,SAC7BF,OAAO,IAAIG,UAAU;AAAA;AAAA;AAAA,SAGrBH,OAAO,IAAII,QAAQ;AAAA;AAAA,SAEnBJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,QAAQ;AAAA;AAAA,SAEnBN,OAAO,IAAIO,UAAU;AAAA,SACrBP,OAAO,IAAIQ,gBAAgB;AAAA;AAAA,SAE3BR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,oBAAoB;AAAA;AAAA,SAE/BV,OAAO,IAAIW,iBAAiB;AAAA;AAAA,SAE5BX,OAAO,IAAIY,SAAS;AAAA,SACpBZ,OAAO,IAAIa,gBAAgB;AAAA;AAAA,SAE3Bb,OAAO,IAAIc,SAAS;AAAA,SACpBd,OAAO,IAAIe,wBAAwB;AAAA;AAAA;AAAA,SAGnCf,OAAO,IAAIgB,YAAY;AAAA,SACvBhB,OAAO,IAAIiB,cAAc;AAAA,SACzBjB,OAAO,IAAIkB,cAAc;AAAA,SACzBlB,OAAO,IAAImB,YAAY;AAAA;AAAA,SAEvBnB,OAAO,IAAIoB,WAAW;AAAA;AAAA;AAAA;AAAA,SAItBpB,OAAO,IAAIqB,MAAM;AAAA;AAAA;AAAA,SAGjBrB,OAAO,IAAIsB,uBAAuB;AAAA;AAAA,SAElCtB,OAAO,IAAIuB,MAAM;AAAA,SACjBvB,OAAO,IAAIwB,WAAW;AAAA,SACtBxB,OAAO,IAAIyB,eAAe;AAAA;AAAA;AAAA,SAG1BzB,OAAO,IAAI0B,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOzB1B,OAAO,IAAI2B,WAAW;AAAA,SACtB3B,OAAO,IAAI4B,SAAS;AAAA,SACpB5B,OAAO,IAAI6B,UAAU;AAAA,SACrB7B,OAAO,IAAI8B,iBAAiB;AAAA;AAAA,SAE5B9B,OAAO,IAAI+B,QAAQ;AAAA;AAAA;AAAA","ignoreList":[]}
@@ -1,7 +1,12 @@
1
1
  import React from 'react';
2
2
  import './Stack.scss';
3
3
  export type StackProps = {
4
- children: React.ReactNode | React.ReactNode[];
4
+ /**
5
+ * Stack views to animate between. Each child must be a React element with a
6
+ * stable `key`; views are tracked by that key across re-renders (primitive
7
+ * nodes such as strings/numbers are not supported).
8
+ */
9
+ children: React.ReactElement | React.ReactElement[];
5
10
  'data-testid'?: string;
6
11
  };
7
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../src/navigation/Stack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,cAAc,CAAC;AAGtB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,aAAa,EAAE,UAAU,GAC1B,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CA+F1B;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../src/navigation/Stack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,cAAc,CAAC;AAGtB,MAAM,MAAM,UAAU,GAAG;IACvB;;;;OAIG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAuCF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,aAAa,EAAE,UAAU,GAC1B,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAsH1B;AAED,eAAe,KAAK,CAAC"}
@@ -3,6 +3,41 @@ import { usePrevious } from '@deephaven/react-hooks';
3
3
  import "./Stack.css";
4
4
  import { SlideTransition } from "../transitions/index.js";
5
5
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
6
+ /**
7
+ * Returns the React `key` for an element, or `null` for non-elements.
8
+ *
9
+ * The parent that renders the stack may re-render frequently (e.g. an
10
+ * `IrisGrid` re-renders on every table tick) and hand us brand-new element
11
+ * objects that represent the same logical view. Tracking the animating views
12
+ * by `key` (rather than by element reference) means those re-renders neither
13
+ * retrigger the slide animation nor churn state every frame.
14
+ *
15
+ * Children are always run through `React.Children.toArray`, which assigns a
16
+ * stable key to every element, so element views always have a key.
17
+ */
18
+ function getViewKey(node) {
19
+ return /*#__PURE__*/React.isValidElement(node) ? node.key : null;
20
+ }
21
+
22
+ /**
23
+ * Finds the child that currently represents the view identified by `key`.
24
+ *
25
+ * Returning the *current* element (instead of a stored copy) keeps the rendered
26
+ * view's content live: when a parent re-renders with a new element instance for
27
+ * the same logical view, the view's latest props are forwarded to the mounted
28
+ * component. This matters for prop-driven panels such as the "Organize Columns"
29
+ * (`VisibilityOrderingBuilder`) sidebar, whose list contents and Undo/Redo state
30
+ * arrive entirely via props from the grid - freezing those props would stop the
31
+ * panel from reflecting moves, hides, groupings, and undo/redo.
32
+ */
33
+ function findViewByKey(views, key) {
34
+ var _views$find;
35
+ if (key == null) {
36
+ return null;
37
+ }
38
+ return (_views$find = views.find(view => getViewKey(view) === key)) !== null && _views$find !== void 0 ? _views$find : null;
39
+ }
40
+
6
41
  /**
7
42
  * Pass a full navigation stack of children, and then automatically does a sliding animation when the stack changes.
8
43
  * Adding items to the stack will do a "push" animation, and removing items from the stack will do a "pop" animation.
@@ -14,8 +49,18 @@ export function Stack(_ref) {
14
49
  } = _ref;
15
50
  var childrenArray = useMemo(() => React.Children.toArray(children), [children]);
16
51
  var prevChildrenArray = usePrevious(childrenArray);
17
- var [mainView, setMainView] = useState(childrenArray[childrenArray.length - 1]);
18
- var [pushingView, setPushingView] = useState(null);
52
+
53
+ // The animating views are tracked by `key`, not element identity, so that
54
+ // frequent parent re-renders (which produce new-but-equivalent elements)
55
+ // neither retrigger animations nor freeze content. The element actually
56
+ // rendered is always looked up from the latest `childrenArray` via
57
+ // `findViewByKey`, keeping each view's props live.
58
+ var [mainViewKey, setMainViewKey] = useState(() => getViewKey(childrenArray[childrenArray.length - 1]));
59
+ var [pushingViewKey, setPushingViewKey] = useState(null);
60
+
61
+ // The popping view has already been removed from `children`, so we keep the
62
+ // element instance itself - it is only animating out and its content does not
63
+ // need to stay live.
19
64
  var [poppingView, setPoppingView] = useState(null);
20
65
 
21
66
  /**
@@ -26,37 +71,50 @@ export function Stack(_ref) {
26
71
  *
27
72
  * When the `pushingView` or `poppingView` is set, that will kick off their animation.
28
73
  * Completion of the animation is handled in `pushComplete` or `popComplete`, and then the stack is in an idle state again.
74
+ *
75
+ * Views are compared by `key` (see `getViewKey`) so that a parent that
76
+ * re-renders with new element instances for the same logical view does not
77
+ * retrigger animations or churn state on every render.
29
78
  */
30
79
  useEffect(function initAnimation() {
31
80
  if (prevChildrenArray === undefined || childrenArray === prevChildrenArray) {
32
81
  return;
33
82
  }
34
- var topChild = childrenArray[childrenArray.length - 1];
35
- if (childrenArray.length === prevChildrenArray.length || prevChildrenArray.length === 0 || pushingView !== null || poppingView !== null) {
36
- // 1) Stack is the same size, we've just mounted, or we're already in an animation - just update the view
37
- if (pushingView !== null && topChild !== pushingView) {
38
- // Stack was updated mid animation
39
- setPushingView(topChild);
40
- } else if (topChild !== poppingView && topChild !== mainView) {
41
- // Replace the current view
42
- setMainView(topChild);
83
+ var topChildKey = getViewKey(childrenArray[childrenArray.length - 1]);
84
+ if (pushingViewKey !== null || poppingView !== null) {
85
+ // We're mid-animation. Keep the animating view pointed at the current
86
+ // top view, but don't start a new animation.
87
+ if (pushingViewKey !== null) {
88
+ if (topChildKey !== pushingViewKey) {
89
+ // A different view was pushed mid-animation - animate to it instead
90
+ setPushingViewKey(topChildKey);
91
+ }
92
+ } else if (topChildKey !== mainViewKey) {
93
+ setMainViewKey(topChildKey);
94
+ }
95
+ } else if (childrenArray.length === prevChildrenArray.length || prevChildrenArray.length === 0) {
96
+ // Stack is the same size or we've just mounted - just update the view
97
+ if (topChildKey !== mainViewKey) {
98
+ setMainViewKey(topChildKey);
43
99
  }
44
100
  } else if (childrenArray.length > prevChildrenArray.length) {
45
- // 2) Stack has grown - start the push animation
46
- setPushingView(topChild);
47
- } else if (childrenArray.length < prevChildrenArray.length) {
48
- // 3) Stack has shrunk - start the pop animation
49
- setMainView(topChild);
101
+ // Stack has grown - start the push animation
102
+ setPushingViewKey(topChildKey);
103
+ } else {
104
+ // Stack has shrunk - start the pop animation
105
+ setMainViewKey(topChildKey);
50
106
  setPoppingView(prevChildrenArray[prevChildrenArray.length - 1]);
51
107
  }
52
- }, [childrenArray, prevChildrenArray, pushingView, poppingView, mainView]);
108
+ }, [childrenArray, prevChildrenArray, pushingViewKey, poppingView, mainViewKey]);
53
109
  var pushComplete = useCallback(() => {
54
- setMainView(pushingView);
55
- setPushingView(null);
56
- }, [pushingView]);
110
+ setMainViewKey(pushingViewKey);
111
+ setPushingViewKey(null);
112
+ }, [pushingViewKey]);
57
113
  var popComplete = useCallback(() => {
58
114
  setPoppingView(null);
59
115
  }, []);
116
+ var mainView = findViewByKey(childrenArray, mainViewKey);
117
+ var pushingView = findViewByKey(childrenArray, pushingViewKey);
60
118
  return /*#__PURE__*/_jsxs("div", {
61
119
  className: "navigation-stack",
62
120
  children: [/*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","names":["React","useState","useEffect","useMemo","useCallback","usePrevious","SlideTransition","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Stack","_ref","children","dataTestId","childrenArray","Children","toArray","prevChildrenArray","mainView","setMainView","length","pushingView","setPushingView","poppingView","setPoppingView","initAnimation","undefined","topChild","pushComplete","popComplete","className","direction","in","onEntered"],"sources":["../../src/navigation/Stack.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport './Stack.scss';\nimport { SlideTransition } from '../transitions';\n\nexport type StackProps = {\n children: React.ReactNode | React.ReactNode[];\n 'data-testid'?: string;\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 function Stack({\n children,\n 'data-testid': dataTestId,\n}: StackProps): JSX.Element {\n const childrenArray = useMemo(\n () => 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 function initAnimation() {\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 },\n [childrenArray, prevChildrenArray, pushingView, poppingView, mainView]\n );\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\" data-testid={dataTestId}>\n {mainView}\n </div>\n\n <SlideTransition\n direction=\"right\"\n in={poppingView != null}\n onEntered={popComplete}\n >\n {/* Without the fragment, the transition doesn't work. Without the conditional render, the stack is blank */}\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {poppingView != null && (\n <div className=\"popping-view\">{poppingView}</div>\n )}\n </>\n </SlideTransition>\n <SlideTransition in={pushingView != null} onEntered={pushComplete}>\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {pushingView != null && (\n <div className=\"pushing-view\">{pushingView}</div>\n )}\n </>\n </SlideTransition>\n </div>\n );\n}\n\nexport default Stack;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Stack.js","names":["React","useState","useEffect","useMemo","useCallback","usePrevious","SlideTransition","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getViewKey","node","isValidElement","key","findViewByKey","views","_views$find","find","view","Stack","_ref","children","dataTestId","childrenArray","Children","toArray","prevChildrenArray","mainViewKey","setMainViewKey","length","pushingViewKey","setPushingViewKey","poppingView","setPoppingView","initAnimation","undefined","topChildKey","pushComplete","popComplete","mainView","pushingView","className","direction","in","onEntered"],"sources":["../../src/navigation/Stack.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport './Stack.scss';\nimport { SlideTransition } from '../transitions';\n\nexport type StackProps = {\n /**\n * Stack views to animate between. Each child must be a React element with a\n * stable `key`; views are tracked by that key across re-renders (primitive\n * nodes such as strings/numbers are not supported).\n */\n children: React.ReactElement | React.ReactElement[];\n 'data-testid'?: string;\n};\n\n/**\n * Returns the React `key` for an element, or `null` for non-elements.\n *\n * The parent that renders the stack may re-render frequently (e.g. an\n * `IrisGrid` re-renders on every table tick) and hand us brand-new element\n * objects that represent the same logical view. Tracking the animating views\n * by `key` (rather than by element reference) means those re-renders neither\n * retrigger the slide animation nor churn state every frame.\n *\n * Children are always run through `React.Children.toArray`, which assigns a\n * stable key to every element, so element views always have a key.\n */\nfunction getViewKey(node: React.ReactNode): React.Key | null {\n return React.isValidElement(node) ? node.key : null;\n}\n\n/**\n * Finds the child that currently represents the view identified by `key`.\n *\n * Returning the *current* element (instead of a stored copy) keeps the rendered\n * view's content live: when a parent re-renders with a new element instance for\n * the same logical view, the view's latest props are forwarded to the mounted\n * component. This matters for prop-driven panels such as the \"Organize Columns\"\n * (`VisibilityOrderingBuilder`) sidebar, whose list contents and Undo/Redo state\n * arrive entirely via props from the grid - freezing those props would stop the\n * panel from reflecting moves, hides, groupings, and undo/redo.\n */\nfunction findViewByKey(\n views: readonly React.ReactNode[],\n key: React.Key | null\n): React.ReactNode {\n if (key == null) {\n return null;\n }\n return views.find(view => getViewKey(view) === key) ?? null;\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 function Stack({\n children,\n 'data-testid': dataTestId,\n}: StackProps): JSX.Element {\n const childrenArray = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n const prevChildrenArray = usePrevious(childrenArray);\n\n // The animating views are tracked by `key`, not element identity, so that\n // frequent parent re-renders (which produce new-but-equivalent elements)\n // neither retrigger animations nor freeze content. The element actually\n // rendered is always looked up from the latest `childrenArray` via\n // `findViewByKey`, keeping each view's props live.\n const [mainViewKey, setMainViewKey] = useState<React.Key | null>(() =>\n getViewKey(childrenArray[childrenArray.length - 1])\n );\n\n const [pushingViewKey, setPushingViewKey] = useState<React.Key | null>(null);\n\n // The popping view has already been removed from `children`, so we keep the\n // element instance itself - it is only animating out and its content does not\n // need to stay live.\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 * Views are compared by `key` (see `getViewKey`) so that a parent that\n * re-renders with new element instances for the same logical view does not\n * retrigger animations or churn state on every render.\n */\n useEffect(\n function initAnimation() {\n if (\n prevChildrenArray === undefined ||\n childrenArray === prevChildrenArray\n ) {\n return;\n }\n const topChildKey = getViewKey(childrenArray[childrenArray.length - 1]);\n\n if (pushingViewKey !== null || poppingView !== null) {\n // We're mid-animation. Keep the animating view pointed at the current\n // top view, but don't start a new animation.\n if (pushingViewKey !== null) {\n if (topChildKey !== pushingViewKey) {\n // A different view was pushed mid-animation - animate to it instead\n setPushingViewKey(topChildKey);\n }\n } else if (topChildKey !== mainViewKey) {\n setMainViewKey(topChildKey);\n }\n } else if (\n childrenArray.length === prevChildrenArray.length ||\n prevChildrenArray.length === 0\n ) {\n // Stack is the same size or we've just mounted - just update the view\n if (topChildKey !== mainViewKey) {\n setMainViewKey(topChildKey);\n }\n } else if (childrenArray.length > prevChildrenArray.length) {\n // Stack has grown - start the push animation\n setPushingViewKey(topChildKey);\n } else {\n // Stack has shrunk - start the pop animation\n setMainViewKey(topChildKey);\n setPoppingView(prevChildrenArray[prevChildrenArray.length - 1]);\n }\n },\n [childrenArray, prevChildrenArray, pushingViewKey, poppingView, mainViewKey]\n );\n\n const pushComplete = useCallback(() => {\n setMainViewKey(pushingViewKey);\n setPushingViewKey(null);\n }, [pushingViewKey]);\n\n const popComplete = useCallback(() => {\n setPoppingView(null);\n }, []);\n\n const mainView = findViewByKey(childrenArray, mainViewKey);\n const pushingView = findViewByKey(childrenArray, pushingViewKey);\n\n return (\n <div className=\"navigation-stack\">\n <div className=\"main-view\" data-testid={dataTestId}>\n {mainView}\n </div>\n\n <SlideTransition\n direction=\"right\"\n in={poppingView != null}\n onEntered={popComplete}\n >\n {/* Without the fragment, the transition doesn't work. Without the conditional render, the stack is blank */}\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {poppingView != null && (\n <div className=\"popping-view\">{poppingView}</div>\n )}\n </>\n </SlideTransition>\n <SlideTransition in={pushingView != null} onEntered={pushComplete}>\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {pushingView != null && (\n <div className=\"pushing-view\">{pushingView}</div>\n )}\n </>\n </SlideTransition>\n </div>\n );\n}\n\nexport default Stack;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SlideTransition.d.ts","sourceRoot":"","sources":["../../src/transitions/SlideTransition.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvC,KAAK,oBAAoB,GAIvB,IAAI,CACF,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,EACrD,eAAe,CAChB,GAAG;IACF,aAAa,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEJ;;;;GAIG;AACH,iBAAS,eAAe,CAAC,EACvB,SAAkB,EAClB,UAAU,EAAE,cAAc,EAC1B,QAAQ;AAER,sBAAsB;AACtB,OAAqC,EACrC,GAAG,KAAK,EACT,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAsBpC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"SlideTransition.d.ts","sourceRoot":"","sources":["../../src/transitions/SlideTransition.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvC,KAAK,oBAAoB,GAIvB,IAAI,CACF,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,EACrD,eAAe,CAChB,GAAG;IACF,aAAa,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEJ;;;;GAIG;AACH,iBAAS,eAAe,CAAC,EACvB,SAAkB,EAClB,UAAU,EAAE,cAAc,EAC1B,QAAQ;AAER,sBAAsB;AACtB,OAAqC,EACrC,GAAG,KAAK,EACT,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CA8BpC;AAED,eAAe,eAAe,CAAC"}
@@ -31,11 +31,18 @@ function SlideTransition(_ref) {
31
31
  props = _objectWithoutProperties(_ref, _excluded);
32
32
  var nodeRef = useRef(null);
33
33
 
34
- // Mimics findDOMNode for CSSTransition
35
- // The ref should be set before CSSTransition does anything with it
34
+ // Mimics findDOMNode for CSSTransition.
35
+ // Keying on `in` rather than `children` avoids re-creating the ref callback
36
+ // on every render, which would needlessly detach/re-attach the ref.
36
37
  var setRef = useCallback(node => {
37
- nodeRef.current = node === null || node === void 0 ? void 0 : node.firstElementChild;
38
- }, []);
38
+ var _ref2;
39
+ nodeRef.current = (_ref2 = node === null || node === void 0 ? void 0 : node.firstElementChild) !== null && _ref2 !== void 0 ? _ref2 : null;
40
+ },
41
+ // `inProp` is intentionally a dependency: toggling `in` must re-create the
42
+ // callback so the ref re-attaches and re-reads `firstElementChild` when the
43
+ // child appears/disappears.
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ [props.in]);
39
46
  return /*#__PURE__*/_jsx(CSSTransition, _objectSpread(_objectSpread({
40
47
  nodeRef: nodeRef,
41
48
  timeout: timeout,
@@ -1 +1 @@
1
- {"version":3,"file":"SlideTransition.js","names":["useCallback","useRef","CSSTransition","classNames","ThemeExport","jsx","_jsx","DISPLAY_CONTENTS","display","SlideTransition","_ref","direction","classNamesProp","children","timeout","transitionMidMs","props","_objectWithoutProperties","_excluded","nodeRef","setRef","node","current","firstElementChild","_objectSpread","concat","ref","style"],"sources":["../../src/transitions/SlideTransition.tsx"],"sourcesContent":["// SlideTransition class uses CSSTransition with slide-left and slide-right classNames, depending on the prop direction. The transition is 250ms long.\nimport { useCallback, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport type { CSSTransitionProps } from 'react-transition-group/CSSTransition';\nimport type { EndHandler } from 'react-transition-group/Transition';\nimport classNames from 'classnames';\nimport type { RemoveIndexSignature } from '@deephaven/utils';\nimport ThemeExport from '../ThemeExport';\n\nconst DISPLAY_CONTENTS = { display: 'contents' };\n\ntype SlideDirection = 'left' | 'right';\n\ntype SlideTransitionProps =\n // We default the timeout, so user doesn't need to provide it\n // However, CSSTransitionProps get confused if you don't provide a timeout, it requires an endHandler\n // We're just making the endHandler optional here, as the timeout has a default\n Omit<\n RemoveIndexSignature<CSSTransitionProps<HTMLElement>>,\n 'addEndHandler'\n > & {\n addEndHandler?: EndHandler<HTMLElement> | undefined;\n children?: React.ReactNode;\n /**\n * The direction of the slide transition. Defaults to left.\n */\n direction?: SlideDirection;\n\n timeout?: number;\n };\n\n/**\n * Slides one component overtop of another component.\n * Defaults to sliding left, unless `direction='right'` is provided.\n * Timeout defaults to 200ms.\n */\nfunction SlideTransition({\n direction = 'left',\n classNames: classNamesProp,\n children,\n\n /** Defaults to mid */\n timeout = ThemeExport.transitionMidMs,\n ...props\n}: SlideTransitionProps): JSX.Element {\n const nodeRef = useRef<HTMLElement | null>(null);\n\n // Mimics findDOMNode for CSSTransition\n // The ref should be set before CSSTransition does anything with it\n const setRef = useCallback((node: HTMLElement | null) => {\n nodeRef.current = node?.firstElementChild as HTMLElement;\n }, []);\n\n return (\n <CSSTransition\n nodeRef={nodeRef}\n timeout={timeout}\n classNames={classNames(`slide-${direction}`, classNamesProp)}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n <div ref={setRef} style={DISPLAY_CONTENTS}>\n {children}\n </div>\n </CSSTransition>\n );\n}\n\nexport default SlideTransition;\n"],"mappings":";;;;;;;;AAAA;AACA,SAASA,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAC3C,SAASC,aAAa,QAAQ,wBAAwB;AAGtD,OAAOC,UAAU,MAAM,YAAY;AAAC,OAE7BC,WAAW;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElB,IAAMC,gBAAgB,GAAG;EAAEC,OAAO,EAAE;AAAW,CAAC;AAsBhD;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAAC,IAAA,EAQc;EAAA,IARb;MACvBC,SAAS,GAAG,MAAM;MAClBR,UAAU,EAAES,cAAc;MAC1BC,QAAQ;MAER;MACAC,OAAO,GAAGV,WAAW,CAACW;IAEF,CAAC,GAAAL,IAAA;IADlBM,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAER,IAAMC,OAAO,GAAGlB,MAAM,CAAqB,IAAI,CAAC;;EAEhD;EACA;EACA,IAAMmB,MAAM,GAAGpB,WAAW,CAAEqB,IAAwB,IAAK;IACvDF,OAAO,CAACG,OAAO,GAAGD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,iBAAgC;EAC1D,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEjB,IAAA,CAACJ,aAAa,EAAAsB,aAAA,CAAAA,aAAA;IACZL,OAAO,EAAEA,OAAQ;IACjBL,OAAO,EAAEA,OAAQ;IACjBX,UAAU,EAAEA,UAAU,UAAAsB,MAAA,CAAUd,SAAS,GAAIC,cAAc;IAC3D;EAAA,GACII,KAAK;IAAAH,QAAA,eAETP,IAAA;MAAKoB,GAAG,EAAEN,MAAO;MAACO,KAAK,EAAEpB,gBAAiB;MAAAM,QAAA,EACvCA;IAAQ,CACN;EAAC,EACO,CAAC;AAEpB;AAEA,eAAeJ,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"SlideTransition.js","names":["useCallback","useRef","CSSTransition","classNames","ThemeExport","jsx","_jsx","DISPLAY_CONTENTS","display","SlideTransition","_ref","direction","classNamesProp","children","timeout","transitionMidMs","props","_objectWithoutProperties","_excluded","nodeRef","setRef","node","_ref2","current","firstElementChild","in","_objectSpread","concat","ref","style"],"sources":["../../src/transitions/SlideTransition.tsx"],"sourcesContent":["// SlideTransition class uses CSSTransition with slide-left and slide-right classNames, depending on the prop direction. The transition is 250ms long.\nimport { useCallback, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport type { CSSTransitionProps } from 'react-transition-group/CSSTransition';\nimport type { EndHandler } from 'react-transition-group/Transition';\nimport classNames from 'classnames';\nimport type { RemoveIndexSignature } from '@deephaven/utils';\nimport ThemeExport from '../ThemeExport';\n\nconst DISPLAY_CONTENTS = { display: 'contents' };\n\ntype SlideDirection = 'left' | 'right';\n\ntype SlideTransitionProps =\n // We default the timeout, so user doesn't need to provide it\n // However, CSSTransitionProps get confused if you don't provide a timeout, it requires an endHandler\n // We're just making the endHandler optional here, as the timeout has a default\n Omit<\n RemoveIndexSignature<CSSTransitionProps<HTMLElement>>,\n 'addEndHandler'\n > & {\n addEndHandler?: EndHandler<HTMLElement> | undefined;\n children?: React.ReactNode;\n /**\n * The direction of the slide transition. Defaults to left.\n */\n direction?: SlideDirection;\n\n timeout?: number;\n };\n\n/**\n * Slides one component overtop of another component.\n * Defaults to sliding left, unless `direction='right'` is provided.\n * Timeout defaults to 200ms.\n */\nfunction SlideTransition({\n direction = 'left',\n classNames: classNamesProp,\n children,\n\n /** Defaults to mid */\n timeout = ThemeExport.transitionMidMs,\n ...props\n}: SlideTransitionProps): JSX.Element {\n const nodeRef = useRef<HTMLElement | null>(null);\n\n // Mimics findDOMNode for CSSTransition.\n // Keying on `in` rather than `children` avoids re-creating the ref callback\n // on every render, which would needlessly detach/re-attach the ref.\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n nodeRef.current = (node?.firstElementChild as HTMLElement | null) ?? null;\n },\n // `inProp` is intentionally a dependency: toggling `in` must re-create the\n // callback so the ref re-attaches and re-reads `firstElementChild` when the\n // child appears/disappears.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.in]\n );\n\n return (\n <CSSTransition\n nodeRef={nodeRef}\n timeout={timeout}\n classNames={classNames(`slide-${direction}`, classNamesProp)}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n <div ref={setRef} style={DISPLAY_CONTENTS}>\n {children}\n </div>\n </CSSTransition>\n );\n}\n\nexport default SlideTransition;\n"],"mappings":";;;;;;;;AAAA;AACA,SAASA,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAC3C,SAASC,aAAa,QAAQ,wBAAwB;AAGtD,OAAOC,UAAU,MAAM,YAAY;AAAC,OAE7BC,WAAW;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElB,IAAMC,gBAAgB,GAAG;EAAEC,OAAO,EAAE;AAAW,CAAC;AAsBhD;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAAC,IAAA,EAQc;EAAA,IARb;MACvBC,SAAS,GAAG,MAAM;MAClBR,UAAU,EAAES,cAAc;MAC1BC,QAAQ;MAER;MACAC,OAAO,GAAGV,WAAW,CAACW;IAEF,CAAC,GAAAL,IAAA;IADlBM,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAER,IAAMC,OAAO,GAAGlB,MAAM,CAAqB,IAAI,CAAC;;EAEhD;EACA;EACA;EACA,IAAMmB,MAAM,GAAGpB,WAAW,CACvBqB,IAAwB,IAAK;IAAA,IAAAC,KAAA;IAC5BH,OAAO,CAACI,OAAO,IAAAD,KAAA,GAAID,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,iBAAiB,cAAAF,KAAA,cAAAA,KAAA,GAA2B,IAAI;EAC3E,CAAC;EACD;EACA;EACA;EACA;EACA,CAACN,KAAK,CAACS,EAAE,CACX,CAAC;EAED,oBACEnB,IAAA,CAACJ,aAAa,EAAAwB,aAAA,CAAAA,aAAA;IACZP,OAAO,EAAEA,OAAQ;IACjBL,OAAO,EAAEA,OAAQ;IACjBX,UAAU,EAAEA,UAAU,UAAAwB,MAAA,CAAUhB,SAAS,GAAIC,cAAc;IAC3D;EAAA,GACII,KAAK;IAAAH,QAAA,eAETP,IAAA;MAAKsB,GAAG,EAAER,MAAO;MAACS,KAAK,EAAEtB,gBAAiB;MAAAM,QAAA,EACvCA;IAAQ,CACN;EAAC,EACO,CAAC;AAEpB;AAEA,eAAeJ,eAAe","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/components",
3
- "version": "1.22.0",
3
+ "version": "1.22.1-alpha-pivot-builder.0+fb17c45",
4
4
  "description": "Deephaven React component library",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -25,10 +25,10 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@adobe/react-spectrum": "3.47.0",
28
- "@deephaven/icons": "^1.2.0",
29
- "@deephaven/log": "^1.8.0",
30
- "@deephaven/react-hooks": "^1.21.1",
31
- "@deephaven/utils": "^1.10.0",
28
+ "@deephaven/icons": "^1.22.1-alpha-pivot-builder.0+fb17c45",
29
+ "@deephaven/log": "^1.22.1-alpha-pivot-builder.0+fb17c45",
30
+ "@deephaven/react-hooks": "^1.22.1-alpha-pivot-builder.0+fb17c45",
31
+ "@deephaven/utils": "^1.22.1-alpha-pivot-builder.0+fb17c45",
32
32
  "@fontsource/fira-mono": "5.0.13",
33
33
  "@fontsource/fira-sans": "5.0.20",
34
34
  "@fortawesome/fontawesome-svg-core": "^6.2.1",
@@ -69,8 +69,8 @@
69
69
  "react-is": ">=16.8.0"
70
70
  },
71
71
  "devDependencies": {
72
- "@deephaven/mocks": "^1.1.0",
73
- "@deephaven/test-utils": "^1.8.0",
72
+ "@deephaven/mocks": "^1.22.1-alpha-pivot-builder.0+fb17c45",
73
+ "@deephaven/test-utils": "^1.22.1-alpha-pivot-builder.0+fb17c45",
74
74
  "react-redux": "^7.2.7"
75
75
  },
76
76
  "files": [
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "caeabb02f0abc824a07c505d0a7ca8693dd63cbb"
88
+ "gitHead": "fb17c45114ceb8f1ab670ac20dac74f8e8bd65fb"
89
89
  }