@itwin/appui-react 3.0.0-dev.148 → 3.0.0-dev.153

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.
Files changed (51) hide show
  1. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  2. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -1
  3. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  4. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  5. package/lib/cjs/appui-react/content/ContentLayout.js +2 -2
  6. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  7. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
  8. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  9. package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
  10. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
  11. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
  12. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  13. package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
  14. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
  15. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  16. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  17. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
  18. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
  19. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/frontstage/Frontstage.js +2 -0
  21. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  22. package/lib/cjs/appui-react.d.ts +3 -2
  23. package/lib/cjs/appui-react.d.ts.map +1 -1
  24. package/lib/cjs/appui-react.js +3 -2
  25. package/lib/cjs/appui-react.js.map +1 -1
  26. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  27. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -1
  28. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  29. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  30. package/lib/esm/appui-react/content/ContentLayout.js +1 -1
  31. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  32. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  33. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  34. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  35. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  36. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  37. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  38. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  39. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  40. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  41. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  42. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  43. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  44. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  45. package/lib/esm/appui-react/frontstage/Frontstage.js +2 -0
  46. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  47. package/lib/esm/appui-react.d.ts +3 -2
  48. package/lib/esm/appui-react.d.ts.map +1 -1
  49. package/lib/esm/appui-react.js +3 -2
  50. package/lib/esm/appui-react.js.map +1 -1
  51. package/package.json +34 -35
@@ -0,0 +1,35 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module ContentView
7
+ */
8
+ import * as React from "react";
9
+ import classnames from "classnames";
10
+ /**
11
+ * @internal
12
+ */
13
+ export function Resizer(props) {
14
+ const { className, onClick, onDoubleClick, onMouseDown, onTouchEnd, onTouchStart, split, style, } = props;
15
+ const resizerClasses = React.useMemo(() => classnames(split, className), [split, className]);
16
+ return (React.createElement("span", { role: "presentation", className: resizerClasses, style: style, onMouseDown: (event) => onMouseDown(event.nativeEvent), onTouchStart: (event) => {
17
+ onTouchStart(event.nativeEvent);
18
+ }, onTouchEnd: (event) => {
19
+ event.preventDefault();
20
+ onTouchEnd();
21
+ }, onClick: (event) => {
22
+ // istanbul ignore else
23
+ if (onClick) {
24
+ event.preventDefault();
25
+ onClick(event.nativeEvent);
26
+ }
27
+ }, onDoubleClick: (event) => {
28
+ // istanbul ignore else
29
+ if (onDoubleClick) {
30
+ event.preventDefault();
31
+ onDoubleClick(event.nativeEvent);
32
+ }
33
+ } }));
34
+ }
35
+ //# sourceMappingURL=Resizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resizer.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/Resizer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AAkBpC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7F,OAAO,CACL,8BACE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EACtD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,EACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACpB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC;QACf,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAC5B;QACH,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,uBAAuB;YACvB,IAAI,aAAa,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAClC;QACH,CAAC,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\n/** Based on react-split-pane package. See https://github.com/tomkp/react-split-pane/blob/master/LICENSE */\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface ResizerProps {\r\n split?: \"vertical\" | \"horizontal\";\r\n style?: React.CSSProperties;\r\n className: string;\r\n onMouseDown: (event: MouseEvent) => void;\r\n onTouchEnd: () => void;\r\n onTouchStart: (event: TouchEvent) => void;\r\n onClick?: (event: MouseEvent) => void;\r\n onDoubleClick?: (event: MouseEvent) => void;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function Resizer(props: ResizerProps) {\r\n const {\r\n className,\r\n onClick,\r\n onDoubleClick,\r\n onMouseDown,\r\n onTouchEnd,\r\n onTouchStart,\r\n split,\r\n style,\r\n } = props;\r\n\r\n const resizerClasses = React.useMemo(() => classnames(split, className), [split, className]);\r\n\r\n return (\r\n <span\r\n role=\"presentation\"\r\n className={resizerClasses}\r\n style={style}\r\n onMouseDown={(event) => onMouseDown(event.nativeEvent)}\r\n onTouchStart={(event) => {\r\n onTouchStart(event.nativeEvent);\r\n }}\r\n onTouchEnd={(event) => {\r\n event.preventDefault();\r\n onTouchEnd();\r\n }}\r\n onClick={(event) => {\r\n // istanbul ignore else\r\n if (onClick) {\r\n event.preventDefault();\r\n onClick(event.nativeEvent);\r\n }\r\n }}\r\n onDoubleClick={(event) => {\r\n // istanbul ignore else\r\n if (onDoubleClick) {\r\n event.preventDefault();\r\n onDoubleClick(event.nativeEvent);\r\n }\r\n }}\r\n />\r\n );\r\n}\r\n"]}
@@ -0,0 +1,70 @@
1
+ /** @packageDocumentation
2
+ * @module ContentView
3
+ */
4
+ import * as React from "react";
5
+ /**
6
+ * Props for [[SplitPane]] component
7
+ * @public
8
+ */
9
+ export interface SplitPaneProps {
10
+ /** Pass false to disable resizing */
11
+ allowResize?: boolean;
12
+ /** The array of two react nodes, one for each pane. */
13
+ children: React.ReactNode[];
14
+ /** Determines which pane maintains its size when browser window is resized.*/
15
+ primary?: "first" | "second";
16
+ minSize?: string | number;
17
+ /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value
18
+ * (measured in pixels but state just a number). If you wrap the SplitPane into a container component
19
+ * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit
20
+ * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane
21
+ * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer
22
+ * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.
23
+ * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border
24
+ * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the
25
+ * full-screen case of use. */
26
+ maxSize?: string | number;
27
+ /** Default initial size of primary pane */
28
+ defaultSize?: string | number;
29
+ /** Size of primary pane */
30
+ size?: string | number;
31
+ /** You can use the step prop to only allow resizing in fixed increments. */
32
+ step?: number;
33
+ split?: "vertical" | "horizontal";
34
+ /** This callback is invoked when a drag start. */
35
+ onDragStarted?: () => void;
36
+ /** This callback is invoked when a drag ends. */
37
+ onDragFinished?: (newSize: number) => void;
38
+ /** Callback is invoked with the current drag during a drag event.*/
39
+ onChange?: (newSize: number) => void;
40
+ /** Callback is invoked if user clicks on Resizer. */
41
+ onResizerClick?: (event: MouseEvent) => void;
42
+ /** Callback is invoked if user double clicks on Resizer. */
43
+ onResizerDoubleClick?: (event: MouseEvent) => void;
44
+ /** Styling to be applied to the main container */
45
+ style?: React.CSSProperties;
46
+ /** Styling to be applied to both panes */
47
+ paneStyle?: React.CSSProperties;
48
+ /** Styling to be applied to the first pane, with precedence over paneStyle */
49
+ pane1Style?: React.CSSProperties;
50
+ /** Styling to be applied to the second pane, with precedence over paneStyle */
51
+ pane2Style?: React.CSSProperties;
52
+ /** Styling to be applied to the resizer bar */
53
+ resizerStyle?: React.CSSProperties;
54
+ /** Class name to be added to the SplitPane div */
55
+ className?: string;
56
+ /** Class name to be added to each Pane's div */
57
+ paneClassName?: string;
58
+ /** Class name to be added to Pane1's div */
59
+ pane1ClassName?: string;
60
+ /** Class name to be added to Pane2's div */
61
+ pane2ClassName?: string;
62
+ }
63
+ /**
64
+ * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that
65
+ * package is not regularly maintained.
66
+ * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.
67
+ * @public
68
+ */
69
+ export declare function SplitPane(props: SplitPaneProps): JSX.Element;
70
+ //# sourceMappingURL=SplitPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;;;;;;;kCAQ8B;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iDAAiD;IACjD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,kDAAkD;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACjC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACjC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsCD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,eAmP9C"}
@@ -0,0 +1,239 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module ContentView
7
+ */
8
+ import * as React from "react";
9
+ import classnames from "classnames";
10
+ import { Pane } from "./Pane";
11
+ import { Resizer } from "./Resizer";
12
+ function unFocus(ownerDoc) {
13
+ var _a;
14
+ // istanbul ignore next
15
+ if (!ownerDoc)
16
+ return;
17
+ const docSelection = ownerDoc.getSelection();
18
+ // istanbul ignore else
19
+ if (docSelection) {
20
+ docSelection.empty();
21
+ }
22
+ else {
23
+ // istanbul ignore next
24
+ try {
25
+ const winSelection = (_a = ownerDoc.defaultView) === null || _a === void 0 ? void 0 : _a.getSelection();
26
+ winSelection === null || winSelection === void 0 ? void 0 : winSelection.removeAllRanges();
27
+ }
28
+ catch (_e) { }
29
+ }
30
+ }
31
+ function getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {
32
+ // istanbul ignore next
33
+ if (typeof draggedSize === "number") {
34
+ const min = typeof minSize === "number" ? minSize : 0;
35
+ const max = typeof maxSize === "number" && maxSize >= 0 ? maxSize : Infinity;
36
+ return Math.max(min, Math.min(max, draggedSize));
37
+ }
38
+ if (defaultSize !== undefined) {
39
+ return defaultSize;
40
+ }
41
+ return minSize;
42
+ }
43
+ function removeNullChildren(children) {
44
+ return React.Children.toArray(children).filter((c) => c);
45
+ }
46
+ /**
47
+ * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that
48
+ * package is not regularly maintained.
49
+ * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.
50
+ * @public
51
+ */
52
+ export function SplitPane(props) {
53
+ const { style, size, defaultSize, maxSize, children, paneStyle, pane1Style, pane2Style, className, paneClassName, pane1ClassName, pane2ClassName, onDragStarted, onDragFinished, step, onChange, onResizerClick, onResizerDoubleClick, } = props;
54
+ // honor same defaults as react-split-pane
55
+ const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);
56
+ const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);
57
+ const primary = React.useMemo(() => undefined !== props.primary ? props.primary : "first", [props.primary]);
58
+ const split = React.useMemo(() => undefined !== props.split ? props.split : "vertical", [props.split]);
59
+ const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);
60
+ const [position, setPosition] = React.useState(0);
61
+ const [draggedSize, setDraggedSize] = React.useState();
62
+ const [active, setActive] = React.useState(false);
63
+ const [pane1Size, setPane1Size] = React.useState(() => primary === "first" ? initialSize : undefined);
64
+ const [pane2Size, setPane2Size] = React.useState(() => primary === "second" ? initialSize : undefined);
65
+ const splitPane = React.useRef(null);
66
+ const pane1 = React.useRef(null);
67
+ const pane2 = React.useRef(null);
68
+ const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);
69
+ React.useEffect(() => {
70
+ primary === "first" ? setPane1Size(initialSize) : setPane2Size(initialSize);
71
+ primary === "first" ? setPane2Size(undefined) : setPane1Size(undefined);
72
+ }, [initialSize, primary]);
73
+ const splitPaneStyle = React.useMemo(() => {
74
+ const directionSpecificParts = (split === "vertical") ? {
75
+ flexDirection: "row",
76
+ left: 0,
77
+ right: 0,
78
+ } : {
79
+ bottom: 0,
80
+ flexDirection: "column",
81
+ minHeight: "100%",
82
+ top: 0,
83
+ width: "100%",
84
+ };
85
+ return {
86
+ display: "flex",
87
+ flex: 1,
88
+ height: "100%",
89
+ position: "absolute",
90
+ outline: "none",
91
+ overflow: "hidden",
92
+ MozUserSelect: "text",
93
+ WebkitUserSelect: "text",
94
+ msUserSelect: "text",
95
+ userSelect: "text",
96
+ ...style,
97
+ ...directionSpecificParts,
98
+ };
99
+ }, [split, style]);
100
+ const pane1DivStyle = { ...paneStyle, ...pane1Style };
101
+ const pane2DivStyle = { ...paneStyle, ...pane2Style };
102
+ const resizerStyle = React.useMemo(() => { var _a; return (_a = props.resizerStyle) !== null && _a !== void 0 ? _a : {}; }, [props.resizerStyle]);
103
+ const resizerClasses = React.useMemo(() => classnames("Resizer", !allowResize && "disabled"), [allowResize]);
104
+ const splitPaneClasses = React.useMemo(() => classnames("SplitPane", className, split, !allowResize && "disabled"), [className, split, allowResize]);
105
+ const pane1Classes = React.useMemo(() => classnames("Pane1", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);
106
+ const pane2Classes = React.useMemo(() => classnames("Pane2", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);
107
+ const initializeDrag = React.useCallback((x, y) => {
108
+ var _a;
109
+ // istanbul ignore next
110
+ unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
111
+ const newPosition = split === "vertical" ? x : y;
112
+ onDragStarted && onDragStarted();
113
+ setActive(true);
114
+ setPosition(newPosition);
115
+ }, [onDragStarted, split]);
116
+ const onTouchStart = React.useCallback((event) => {
117
+ // istanbul ignore else
118
+ if (allowResize) {
119
+ initializeDrag(event.touches[0].clientX, event.touches[0].clientY);
120
+ }
121
+ }, [allowResize, initializeDrag]);
122
+ const processMove = React.useCallback((x, y) => {
123
+ var _a, _b, _c, _d, _f, _g, _h;
124
+ // istanbul ignore next
125
+ unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
126
+ const isPrimaryFirst = primary === "first";
127
+ const ref = isPrimaryFirst ? pane1.current : pane2.current;
128
+ const ref2 = isPrimaryFirst ? pane2.current : pane1.current;
129
+ const splitPaneDiv = splitPane.current;
130
+ // istanbul ignore else
131
+ if (ref && ref2 && splitPaneDiv) {
132
+ const node = ref;
133
+ const node2 = ref2;
134
+ // istanbul ignore else
135
+ if (node.getBoundingClientRect) {
136
+ const width = node.getBoundingClientRect().width;
137
+ const height = node.getBoundingClientRect().height;
138
+ // istanbul ignore next
139
+ const current = split === "vertical" ? x : y;
140
+ // istanbul ignore next
141
+ const oldSize = split === "vertical" ? width : height;
142
+ let positionDelta = position - current;
143
+ if (step) {
144
+ // istanbul ignore next
145
+ if (Math.abs(positionDelta) < step) {
146
+ return;
147
+ }
148
+ // Integer division
149
+ // eslint-disable-next-line no-bitwise
150
+ positionDelta = ~~(positionDelta / step) * step;
151
+ }
152
+ let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;
153
+ // istanbul ignore next
154
+ const pane1Order = parseInt((_d = (_c = (_b = node.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.getComputedStyle(node).order) !== null && _d !== void 0 ? _d : "0", 10);
155
+ // istanbul ignore next
156
+ const pane2Order = parseInt((_h = (_g = (_f = node2.ownerDocument) === null || _f === void 0 ? void 0 : _f.defaultView) === null || _g === void 0 ? void 0 : _g.getComputedStyle(node2).order) !== null && _h !== void 0 ? _h : "0", 10);
157
+ // istanbul ignore next
158
+ if (pane1Order > pane2Order) {
159
+ sizeDelta = -sizeDelta;
160
+ }
161
+ let newMaxSize = maxSize;
162
+ // istanbul ignore next
163
+ if (typeof maxSize === "number" && maxSize !== undefined && maxSize <= 0) {
164
+ if (split === "vertical") {
165
+ newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;
166
+ }
167
+ else {
168
+ newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;
169
+ }
170
+ }
171
+ let newSize = oldSize - sizeDelta;
172
+ const newPosition = position - positionDelta;
173
+ // istanbul ignore next
174
+ if (typeof minSize === "number" && newSize < minSize) {
175
+ newSize = minSize;
176
+ }
177
+ else if (typeof newMaxSize === "number" && newMaxSize !== undefined && newSize > newMaxSize) {
178
+ newSize = newMaxSize;
179
+ }
180
+ else {
181
+ setPosition(newPosition);
182
+ }
183
+ onChange && onChange(newSize);
184
+ setDraggedSize(newSize);
185
+ isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);
186
+ }
187
+ }
188
+ }, [maxSize, minSize, onChange, position, primary, split, step]);
189
+ const onTouchMove = React.useCallback((event) => {
190
+ // istanbul ignore next
191
+ if (!allowResize || !active)
192
+ return;
193
+ processMove(event.touches[0].clientX, event.touches[0].clientY);
194
+ }, [active, allowResize, processMove]);
195
+ const onMouseMove = React.useCallback((event) => {
196
+ if (!allowResize || !active)
197
+ return;
198
+ processMove(event.clientX, event.clientY);
199
+ }, [active, allowResize, processMove]);
200
+ const onMouseDown = React.useCallback((event) => {
201
+ // istanbul ignore else
202
+ if (allowResize) {
203
+ event.preventDefault();
204
+ initializeDrag(event.clientX, event.clientY);
205
+ }
206
+ }, [allowResize, initializeDrag]);
207
+ const processResizeFinished = React.useCallback(() => {
208
+ // istanbul ignore else
209
+ if (undefined !== draggedSize && allowResize && active) {
210
+ onDragFinished && onDragFinished(draggedSize);
211
+ }
212
+ setActive(false);
213
+ }, [draggedSize, allowResize, active, onDragFinished]);
214
+ const onMouseUp = React.useCallback((event) => {
215
+ event.preventDefault();
216
+ processResizeFinished();
217
+ }, [processResizeFinished]);
218
+ React.useEffect(() => {
219
+ var _a;
220
+ // istanbul ignore next
221
+ const ownerDoc = (_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument;
222
+ // istanbul ignore next
223
+ if (!ownerDoc)
224
+ return;
225
+ ownerDoc.addEventListener("mouseup", onMouseUp);
226
+ ownerDoc.addEventListener("mousemove", onMouseMove);
227
+ ownerDoc.addEventListener("touchmove", onTouchMove);
228
+ return () => {
229
+ ownerDoc.removeEventListener("mouseup", onMouseUp);
230
+ ownerDoc.removeEventListener("mousemove", onMouseMove);
231
+ ownerDoc.removeEventListener("touchmove", onTouchMove);
232
+ };
233
+ }, [onMouseMove, onMouseUp, onTouchMove]);
234
+ return (React.createElement("div", { className: splitPaneClasses, ref: splitPane, style: splitPaneStyle },
235
+ React.createElement(Pane, { className: pane1Classes, key: "pane1", eleRef: pane1, size: pane1Size, split: split, style: pane1DivStyle }, notNullChildren[0]),
236
+ React.createElement(Resizer, { className: resizerClasses, onClick: onResizerClick, onDoubleClick: onResizerDoubleClick, onMouseDown: onMouseDown, onTouchStart: onTouchStart, onTouchEnd: processResizeFinished, key: "resizer", split: split, style: resizerStyle }),
237
+ React.createElement(Pane, { className: pane2Classes, key: "pane2", eleRef: pane2, size: pane2Size, split: split, style: pane2DivStyle }, notNullChildren[1])));
238
+ }
239
+ //# sourceMappingURL=SplitPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { Pane } from \"./Pane\";\r\nimport { Resizer } from \"./Resizer\";\r\n\r\n/**\r\n * Props for [[SplitPane]] component\r\n * @public\r\n */\r\nexport interface SplitPaneProps {\r\n /** Pass false to disable resizing */\r\n allowResize?: boolean;\r\n /** The array of two react nodes, one for each pane. */\r\n children: React.ReactNode[];\r\n /** Determines which pane maintains its size when browser window is resized.*/\r\n primary?: \"first\" | \"second\";\r\n\r\n minSize?: string | number;\r\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\r\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\r\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\r\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\r\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\r\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\r\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\r\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\r\n * full-screen case of use. */\r\n maxSize?: string | number;\r\n /** Default initial size of primary pane */\r\n defaultSize?: string | number;\r\n /** Size of primary pane */\r\n size?: string | number;\r\n /** You can use the step prop to only allow resizing in fixed increments. */\r\n step?: number;\r\n split?: \"vertical\" | \"horizontal\";\r\n /** This callback is invoked when a drag start. */\r\n onDragStarted?: () => void;\r\n /** This callback is invoked when a drag ends. */\r\n onDragFinished?: (newSize: number) => void;\r\n /** Callback is invoked with the current drag during a drag event.*/\r\n onChange?: (newSize: number) => void;\r\n /** Callback is invoked if user clicks on Resizer. */\r\n onResizerClick?: (event: MouseEvent) => void;\r\n /** Callback is invoked if user double clicks on Resizer. */\r\n onResizerDoubleClick?: (event: MouseEvent) => void;\r\n /** Styling to be applied to the main container */\r\n style?: React.CSSProperties;\r\n /** Styling to be applied to both panes */\r\n paneStyle?: React.CSSProperties;\r\n /** Styling to be applied to the first pane, with precedence over paneStyle */\r\n pane1Style?: React.CSSProperties;\r\n /** Styling to be applied to the second pane, with precedence over paneStyle */\r\n pane2Style?: React.CSSProperties;\r\n /** Styling to be applied to the resizer bar */\r\n resizerStyle?: React.CSSProperties;\r\n /** Class name to be added to the SplitPane div */\r\n className?: string;\r\n /** Class name to be added to each Pane's div */\r\n paneClassName?: string;\r\n /** Class name to be added to Pane1's div */\r\n pane1ClassName?: string;\r\n /** Class name to be added to Pane2's div */\r\n pane2ClassName?: string;\r\n}\r\n\r\nfunction unFocus(ownerDoc: Document | undefined) {\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n const docSelection = ownerDoc.getSelection();\r\n // istanbul ignore else\r\n if (docSelection) {\r\n docSelection.empty();\r\n } else {\r\n // istanbul ignore next\r\n try {\r\n const winSelection = ownerDoc.defaultView?.getSelection();\r\n winSelection?.removeAllRanges();\r\n } catch (_e) { }\r\n }\r\n}\r\n\r\nfunction getDefaultSize(defaultSize?: number | string, minSize?: string | number, maxSize?: string | number, draggedSize?: number) {\r\n // istanbul ignore next\r\n if (typeof draggedSize === \"number\") {\r\n const min = typeof minSize === \"number\" ? minSize : 0;\r\n const max =\r\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\r\n return Math.max(min, Math.min(max, draggedSize));\r\n }\r\n if (defaultSize !== undefined) {\r\n return defaultSize;\r\n }\r\n return minSize;\r\n}\r\n\r\nfunction removeNullChildren(children: React.ReactNode[]) {\r\n return React.Children.toArray(children).filter((c) => c);\r\n}\r\n\r\n/**\r\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\r\n * package is not regularly maintained.\r\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\r\n * @public\r\n */\r\nexport function SplitPane(props: SplitPaneProps) {\r\n const { style, size, defaultSize, maxSize, children,\r\n paneStyle, pane1Style, pane2Style, className,\r\n paneClassName, pane1ClassName, pane2ClassName,\r\n onDragStarted, onDragFinished, step, onChange,\r\n onResizerClick, onResizerDoubleClick,\r\n } = props;\r\n\r\n // honor same defaults as react-split-pane\r\n const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);\r\n const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);\r\n const primary = React.useMemo(() => undefined !== props.primary ? props.primary : \"first\", [props.primary]);\r\n const split = React.useMemo(() => undefined !== props.split ? props.split : \"vertical\", [props.split]);\r\n const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\r\n\r\n const [position, setPosition] = React.useState(0);\r\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\r\n const [active, setActive] = React.useState(false);\r\n const [pane1Size, setPane1Size] = React.useState(() => primary === \"first\" ? initialSize : undefined);\r\n const [pane2Size, setPane2Size] = React.useState(() => primary === \"second\" ? initialSize : undefined);\r\n const splitPane = React.useRef<HTMLDivElement>(null);\r\n const pane1 = React.useRef<HTMLDivElement>(null);\r\n const pane2 = React.useRef<HTMLDivElement>(null);\r\n const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);\r\n\r\n React.useEffect(() => {\r\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\r\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\r\n }, [initialSize, primary]);\r\n\r\n const splitPaneStyle = React.useMemo(() => {\r\n const directionSpecificParts = (split === \"vertical\") ? {\r\n flexDirection: \"row\",\r\n left: 0,\r\n right: 0,\r\n } : {\r\n bottom: 0,\r\n flexDirection: \"column\",\r\n minHeight: \"100%\",\r\n top: 0,\r\n width: \"100%\",\r\n };\r\n\r\n return {\r\n display: \"flex\",\r\n flex: 1,\r\n height: \"100%\",\r\n position: \"absolute\",\r\n outline: \"none\",\r\n overflow: \"hidden\",\r\n MozUserSelect: \"text\",\r\n WebkitUserSelect: \"text\",\r\n msUserSelect: \"text\",\r\n userSelect: \"text\",\r\n ...style,\r\n ...directionSpecificParts,\r\n } as React.CSSProperties;\r\n }, [split, style]);\r\n\r\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\r\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\r\n const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);\r\n const resizerClasses = React.useMemo(() => classnames(\"Resizer\", !allowResize && \"disabled\"), [allowResize]);\r\n const splitPaneClasses = React.useMemo(() => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"), [className, split, allowResize]);\r\n const pane1Classes = React.useMemo(() => classnames(\"Pane1\", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);\r\n const pane2Classes = React.useMemo(() => classnames(\"Pane2\", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);\r\n\r\n const initializeDrag = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const newPosition = split === \"vertical\" ? x : y;\r\n onDragStarted && onDragStarted();\r\n setActive(true);\r\n setPosition(newPosition);\r\n }, [onDragStarted, split]);\r\n\r\n const onTouchStart = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processMove = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const isPrimaryFirst = primary === \"first\";\r\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\r\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\r\n const splitPaneDiv = splitPane.current;\r\n\r\n // istanbul ignore else\r\n if (ref && ref2 && splitPaneDiv) {\r\n const node = ref;\r\n const node2 = ref2;\r\n // istanbul ignore else\r\n if (node.getBoundingClientRect) {\r\n const width = node.getBoundingClientRect().width;\r\n const height = node.getBoundingClientRect().height;\r\n // istanbul ignore next\r\n const current = split === \"vertical\" ? x : y;\r\n // istanbul ignore next\r\n const oldSize = split === \"vertical\" ? width : height;\r\n let positionDelta = position - current;\r\n if (step) {\r\n // istanbul ignore next\r\n if (Math.abs(positionDelta) < step) {\r\n return;\r\n }\r\n // Integer division\r\n // eslint-disable-next-line no-bitwise\r\n positionDelta = ~~(positionDelta / step) * step;\r\n }\r\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\r\n\r\n // istanbul ignore next\r\n const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n if (pane1Order > pane2Order) {\r\n sizeDelta = -sizeDelta;\r\n }\r\n\r\n let newMaxSize = maxSize;\r\n // istanbul ignore next\r\n if (typeof maxSize === \"number\" && maxSize !== undefined && maxSize <= 0) {\r\n if (split === \"vertical\") {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\r\n } else {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;\r\n }\r\n }\r\n\r\n let newSize = oldSize - sizeDelta;\r\n const newPosition = position - positionDelta;\r\n\r\n // istanbul ignore next\r\n if (typeof minSize === \"number\" && newSize < minSize) {\r\n newSize = minSize;\r\n } else if (typeof newMaxSize === \"number\" && newMaxSize !== undefined && newSize > newMaxSize) {\r\n newSize = newMaxSize;\r\n } else {\r\n setPosition(newPosition);\r\n }\r\n\r\n onChange && onChange(newSize);\r\n setDraggedSize(newSize);\r\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\r\n }\r\n }\r\n }, [maxSize, minSize, onChange, position, primary, split, step]);\r\n\r\n const onTouchMove = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore next\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.touches[0].clientX, event.touches[0].clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseMove = React.useCallback((event: MouseEvent) => {\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.clientX, event.clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseDown = React.useCallback((event: MouseEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n event.preventDefault();\r\n initializeDrag(event.clientX, event.clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processResizeFinished = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (undefined !== draggedSize && allowResize && active) {\r\n onDragFinished && onDragFinished(draggedSize);\r\n }\r\n setActive(false);\r\n }, [draggedSize, allowResize, active, onDragFinished]);\r\n\r\n const onMouseUp = React.useCallback((event: MouseEvent) => {\r\n event.preventDefault();\r\n processResizeFinished();\r\n }, [processResizeFinished]);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const ownerDoc = splitPane.current?.ownerDocument;\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\r\n return () => {\r\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\r\n };\r\n }, [onMouseMove, onMouseUp, onTouchMove]);\r\n\r\n return (\r\n <div\r\n className={splitPaneClasses}\r\n ref={splitPane}\r\n style={splitPaneStyle}\r\n >\r\n <Pane\r\n className={pane1Classes}\r\n key=\"pane1\"\r\n eleRef={pane1}\r\n size={pane1Size}\r\n split={split}\r\n style={pane1DivStyle}\r\n >\r\n {notNullChildren[0]}\r\n </Pane>\r\n <Resizer\r\n className={resizerClasses}\r\n onClick={onResizerClick}\r\n onDoubleClick={onResizerDoubleClick}\r\n onMouseDown={onMouseDown}\r\n onTouchStart={onTouchStart}\r\n onTouchEnd={processResizeFinished}\r\n key=\"resizer\"\r\n split={split}\r\n style={resizerStyle}\r\n />\r\n <Pane\r\n className={pane2Classes}\r\n key=\"pane2\"\r\n eleRef={pane2}\r\n size={pane2Size}\r\n split={split}\r\n style={pane2DivStyle}\r\n >\r\n {notNullChildren[1]}\r\n </Pane>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.tsx"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export class Frontstage extends React.Component {
42
42
  flexFlow: "column",
43
43
  };
44
44
  this._uiVisibilityChanged = (args) => {
45
+ // istanbul ignore else
45
46
  if (this._isMounted)
46
47
  this.setState({ isUiVisible: args.visible });
47
48
  };
@@ -371,6 +372,7 @@ class WidgetContentRenderer extends React.PureComponent {
371
372
  this.props.renderTo.appendChild(this._content);
372
373
  }
373
374
  componentDidUpdate(prevProps) {
375
+ // istanbul ignore next
374
376
  if (!this._isMounted)
375
377
  return;
376
378
  if (this.props.isHidden !== prevProps.isHidden) {