@deephaven/dashboard-core-plugins 0.109.1-beta.7 → 1.0.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.
Files changed (62) hide show
  1. package/dist/events/TabEventMap.d.ts +1 -1
  2. package/dist/events/TabEventMap.d.ts.map +1 -1
  3. package/dist/events/TabEventMap.js.map +1 -1
  4. package/dist/events/index.d.ts +7 -1
  5. package/dist/events/index.d.ts.map +1 -1
  6. package/dist/events/index.js +5 -1
  7. package/dist/events/index.js.map +1 -1
  8. package/dist/panels/ChartPanel.d.ts +2 -2
  9. package/dist/panels/CommandHistoryPanel.js +1 -1
  10. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  11. package/dist/panels/ConsolePanel.js +1 -1
  12. package/dist/panels/ConsolePanel.js.map +1 -1
  13. package/dist/panels/CorePanel.d.ts +13 -0
  14. package/dist/panels/CorePanel.d.ts.map +1 -0
  15. package/dist/panels/CorePanel.js +76 -0
  16. package/dist/panels/CorePanel.js.map +1 -0
  17. package/dist/panels/DropdownFilterPanel.d.ts +1 -1
  18. package/dist/panels/FileExplorerPanel.js +1 -1
  19. package/dist/panels/FileExplorerPanel.js.map +1 -1
  20. package/dist/panels/FilterSetManagerPanel.d.ts +2 -2
  21. package/dist/panels/FilterSetManagerPanel.js +1 -1
  22. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  23. package/dist/panels/InputFilterPanel.d.ts +1 -1
  24. package/dist/panels/InputFilterPanel.js +1 -1
  25. package/dist/panels/InputFilterPanel.js.map +1 -1
  26. package/dist/panels/IrisGridPanel.d.ts +2 -2
  27. package/dist/panels/LogPanel.d.ts +1 -1
  28. package/dist/panels/LogPanel.js +1 -1
  29. package/dist/panels/LogPanel.js.map +1 -1
  30. package/dist/panels/MarkdownPanel.d.ts +1 -1
  31. package/dist/panels/MarkdownPanel.js +1 -1
  32. package/dist/panels/MarkdownPanel.js.map +1 -1
  33. package/dist/panels/NotebookPanel.d.ts +1 -1
  34. package/dist/panels/NotebookPanel.js +1 -1
  35. package/dist/panels/NotebookPanel.js.map +1 -1
  36. package/dist/panels/WidgetPanel.d.ts +1 -1
  37. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  38. package/dist/panels/WidgetPanel.js +1 -1
  39. package/dist/panels/WidgetPanel.js.map +1 -1
  40. package/dist/panels/index.d.ts +5 -1
  41. package/dist/panels/index.d.ts.map +1 -1
  42. package/dist/panels/index.js +7 -1
  43. package/dist/panels/index.js.map +1 -1
  44. package/package.json +24 -24
  45. package/dist/events/TabEvent.d.ts +0 -6
  46. package/dist/events/TabEvent.d.ts.map +0 -1
  47. package/dist/events/TabEvent.js +0 -6
  48. package/dist/events/TabEvent.js.map +0 -1
  49. package/dist/panels/Panel.css +0 -5
  50. package/dist/panels/Panel.css.map +0 -1
  51. package/dist/panels/Panel.d.ts +0 -44
  52. package/dist/panels/Panel.d.ts.map +0 -1
  53. package/dist/panels/Panel.js +0 -333
  54. package/dist/panels/Panel.js.map +0 -1
  55. package/dist/panels/PanelContextMenu.d.ts +0 -30
  56. package/dist/panels/PanelContextMenu.d.ts.map +0 -1
  57. package/dist/panels/PanelContextMenu.js +0 -159
  58. package/dist/panels/PanelContextMenu.js.map +0 -1
  59. package/dist/panels/RenameDialog.d.ts +0 -34
  60. package/dist/panels/RenameDialog.d.ts.map +0 -1
  61. package/dist/panels/RenameDialog.js +0 -167
  62. package/dist/panels/RenameDialog.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.109.1-beta.7+9de971f4",
3
+ "version": "1.0.0",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,26 +22,26 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^0.109.1-beta.7+9de971f4",
26
- "@deephaven/components": "^0.109.1-beta.7+9de971f4",
27
- "@deephaven/console": "^0.109.1-beta.7+9de971f4",
28
- "@deephaven/dashboard": "^0.109.1-beta.7+9de971f4",
29
- "@deephaven/file-explorer": "^0.109.1-beta.7+9de971f4",
30
- "@deephaven/filters": "^0.109.1-beta.7+9de971f4",
31
- "@deephaven/golden-layout": "^0.109.1-beta.7+9de971f4",
32
- "@deephaven/grid": "^0.109.1-beta.7+9de971f4",
33
- "@deephaven/icons": "^0.109.1-beta.7+9de971f4",
34
- "@deephaven/iris-grid": "^0.109.1-beta.7+9de971f4",
35
- "@deephaven/jsapi-bootstrap": "^0.109.1-beta.7+9de971f4",
36
- "@deephaven/jsapi-components": "^0.109.1-beta.7+9de971f4",
25
+ "@deephaven/chart": "^1.0.0",
26
+ "@deephaven/components": "^1.0.0",
27
+ "@deephaven/console": "^1.0.0",
28
+ "@deephaven/dashboard": "^1.0.0",
29
+ "@deephaven/file-explorer": "^1.0.0",
30
+ "@deephaven/filters": "^1.0.0",
31
+ "@deephaven/golden-layout": "^1.0.0",
32
+ "@deephaven/grid": "^1.0.0",
33
+ "@deephaven/icons": "^1.0.0",
34
+ "@deephaven/iris-grid": "^1.0.0",
35
+ "@deephaven/jsapi-bootstrap": "^1.0.0",
36
+ "@deephaven/jsapi-components": "^1.0.0",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.37.2",
38
- "@deephaven/jsapi-utils": "^0.109.1-beta.7+9de971f4",
39
- "@deephaven/log": "^0.109.1-beta.7+9de971f4",
40
- "@deephaven/plugin": "^0.109.1-beta.7+9de971f4",
41
- "@deephaven/react-hooks": "^0.109.1-beta.7+9de971f4",
42
- "@deephaven/redux": "^0.109.1-beta.7+9de971f4",
43
- "@deephaven/storage": "^0.109.1-beta.7+9de971f4",
44
- "@deephaven/utils": "^0.109.1-beta.7+9de971f4",
38
+ "@deephaven/jsapi-utils": "^1.0.0",
39
+ "@deephaven/log": "^1.0.0",
40
+ "@deephaven/plugin": "^1.0.0",
41
+ "@deephaven/react-hooks": "^1.0.0",
42
+ "@deephaven/redux": "^1.0.0",
43
+ "@deephaven/storage": "^1.0.0",
44
+ "@deephaven/utils": "^1.0.0",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
46
46
  "classnames": "^2.3.1",
47
47
  "fast-deep-equal": "^3.1.3",
@@ -65,9 +65,9 @@
65
65
  "react-redux": "^7.2.4"
66
66
  },
67
67
  "devDependencies": {
68
- "@deephaven/jsapi-shim": "^0.109.1-beta.7+9de971f4",
69
- "@deephaven/mocks": "^0.109.1-beta.7+9de971f4",
70
- "@deephaven/test-utils": "^0.109.1-beta.7+9de971f4"
68
+ "@deephaven/jsapi-shim": "^1.0.0",
69
+ "@deephaven/mocks": "^1.0.0",
70
+ "@deephaven/test-utils": "^1.0.0"
71
71
  },
72
72
  "files": [
73
73
  "dist",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "9de971f433cd3b8ee9e95719f6641d3428659520"
82
+ "gitHead": "5edf3b380e7573795df3afe764fe29cb126203f6"
83
83
  }
@@ -1,6 +0,0 @@
1
- declare const TabEvent: Readonly<{
2
- focus: "TabEvent.focus";
3
- blur: "TabEvent.blur";
4
- }>;
5
- export default TabEvent;
6
- //# sourceMappingURL=TabEvent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabEvent.d.ts","sourceRoot":"","sources":["../../src/events/TabEvent.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;EAGZ,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -1,6 +0,0 @@
1
- var TabEvent = Object.freeze({
2
- focus: 'TabEvent.focus',
3
- blur: 'TabEvent.blur'
4
- });
5
- export default TabEvent;
6
- //# sourceMappingURL=TabEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabEvent.js","names":["TabEvent","Object","freeze","focus","blur"],"sources":["../../src/events/TabEvent.ts"],"sourcesContent":["const TabEvent = Object.freeze({\n focus: 'TabEvent.focus',\n blur: 'TabEvent.blur',\n});\n\nexport default TabEvent;\n"],"mappings":"AAAA,IAAMA,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;EAC7BC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE;AACR,CAAC,CAAC;AAEF,eAAeJ,QAAQ"}
@@ -1,5 +0,0 @@
1
- .dh-panel {
2
- position: relative;
3
- }
4
-
5
- /*# sourceMappingURL=Panel.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/panels/Panel.scss"],"names":[],"mappings":"AAAA;EACE","file":"Panel.css","sourcesContent":[".dh-panel {\n position: relative;\n}"]}
@@ -1,44 +0,0 @@
1
- import { type FocusEventHandler, type ReactNode } from 'react';
2
- import { type ResolvableContextAction } from '@deephaven/components';
3
- import { type PanelComponent } from '@deephaven/dashboard';
4
- import type { Container, EventEmitter, Tab } from '@deephaven/golden-layout';
5
- import type { dh } from '@deephaven/jsapi-types';
6
- import './Panel.scss';
7
- export type CorePanelProps = {
8
- /**
9
- * Reference to the component panel.
10
- * Will wait until it is set before emitting mount/unmount events.
11
- *
12
- */
13
- componentPanel?: PanelComponent;
14
- children: ReactNode;
15
- glContainer: Container;
16
- glEventHub: EventEmitter;
17
- className?: string;
18
- onFocus?: FocusEventHandler<HTMLDivElement>;
19
- onBlur?: FocusEventHandler<HTMLDivElement>;
20
- onTab?: (tab: Tab) => void;
21
- onTabClicked?: (e: MouseEvent) => void;
22
- onClearAllFilters?: (...args: unknown[]) => void;
23
- onHide?: (...args: unknown[]) => void;
24
- onResize?: (...args: unknown[]) => void;
25
- onSessionClose?: (session: dh.IdeSession) => void;
26
- onSessionOpen?: (session: dh.IdeSession, { language, sessionId }: {
27
- language: string;
28
- sessionId: string;
29
- }) => void;
30
- onBeforeShow?: (...args: unknown[]) => void;
31
- onShow?: (...args: unknown[]) => void;
32
- onTabBlur?: (...args: unknown[]) => void;
33
- onTabFocus?: (...args: unknown[]) => void;
34
- renderTabTooltip?: () => ReactNode;
35
- additionalActions?: ResolvableContextAction[];
36
- errorMessage?: string;
37
- isLoading?: boolean;
38
- isLoaded?: boolean;
39
- isClonable?: boolean;
40
- isRenamable?: boolean;
41
- };
42
- declare const XPanel: import("@deephaven/components").XComponentType<CorePanelProps>;
43
- export default XPanel;
44
- //# sourceMappingURL=Panel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/panels/Panel.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,KAAK,iBAAiB,EAGtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAKL,KAAK,uBAAuB,EAE7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAEZ,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,cAAc,CAAC;AAItB,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAC7D,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,SAAS,CAAC;IACnC,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA0TF,QAAA,MAAM,MAAM,gEAA0B,CAAC;AAEvC,eAAe,MAAM,CAAC"}
@@ -1,333 +0,0 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import React, { PureComponent } from 'react';
5
- import ReactDOM from 'react-dom';
6
- import classNames from 'classnames';
7
- import memoize from 'memoize-one';
8
- import { ContextActions, createXComponent, LoadingOverlay, Tooltip } from '@deephaven/components';
9
- import { LayoutUtils, PanelEvent } from '@deephaven/dashboard';
10
- import { assertNotNull, EMPTY_ARRAY } from '@deephaven/utils';
11
- import Log from '@deephaven/log';
12
- import { ConsoleEvent, InputFilterEvent, TabEvent } from "../events/index.js";
13
- import PanelContextMenu from "./PanelContextMenu.js";
14
- import RenameDialog from "./RenameDialog.js";
15
- import "./Panel.css";
16
- import { jsx as _jsx } from "react/jsx-runtime";
17
- import { Fragment as _Fragment } from "react/jsx-runtime";
18
- import { jsxs as _jsxs } from "react/jsx-runtime";
19
- var log = Log.module('Panel');
20
- /**
21
- * Generic panel component that emits mount/unmount/focus events.
22
- * Also wires up some triggers for common events:
23
- * Focus, Resize, Show, Session open/close, client disconnect/reconnect.
24
- */
25
- class Panel extends PureComponent {
26
- constructor(props) {
27
- super(props);
28
- _defineProperty(this, "ref", void 0);
29
- _defineProperty(this, "getAdditionalActions", memoize((actions, isClonable, isRenamable) => {
30
- var additionalActions = [];
31
- if (isClonable) {
32
- additionalActions.push(this.getCloneAction());
33
- }
34
- if (isRenamable) {
35
- additionalActions.push(this.getRenameAction());
36
- }
37
- return [...additionalActions, ...actions];
38
- }));
39
- this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
40
- this.handleCopyPanel = this.handleCopyPanel.bind(this);
41
- this.handleFocus = this.handleFocus.bind(this);
42
- this.handleBlur = this.handleBlur.bind(this);
43
- this.handleHide = this.handleHide.bind(this);
44
- this.handleResize = this.handleResize.bind(this);
45
- this.handleSessionClosed = this.handleSessionClosed.bind(this);
46
- this.handleSessionOpened = this.handleSessionOpened.bind(this);
47
- this.handleBeforeShow = this.handleBeforeShow.bind(this);
48
- this.handleShow = this.handleShow.bind(this);
49
- this.handleTabBlur = this.handleTabBlur.bind(this);
50
- this.handleTabFocus = this.handleTabFocus.bind(this);
51
- this.handleRenameCancel = this.handleRenameCancel.bind(this);
52
- this.handleRenameSubmit = this.handleRenameSubmit.bind(this);
53
- this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);
54
- this.handleTabClicked = this.handleTabClicked.bind(this);
55
- this.handleTab = this.handleTab.bind(this);
56
- this.ref = /*#__PURE__*/React.createRef();
57
- var {
58
- glContainer
59
- } = this.props;
60
- this.state = {
61
- title: LayoutUtils.getTitleFromContainer(glContainer),
62
- showRenameDialog: false,
63
- isWithinPanel: true
64
- };
65
- }
66
- componentDidMount() {
67
- var _this$ref$current, _this$ref$current$par;
68
- var {
69
- componentPanel,
70
- glContainer,
71
- glEventHub
72
- } = this.props;
73
- glContainer.on('resize', this.handleResize);
74
- glContainer.on('show', this.handleBeforeShow);
75
- glContainer.on('shown', this.handleShow);
76
- glContainer.on('hide', this.handleHide);
77
- glContainer.on('tab', this.handleTab);
78
- glContainer.on('tabClicked', this.handleTabClicked);
79
- glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);
80
- glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);
81
- glEventHub.on(TabEvent.focus, this.handleTabFocus);
82
- glEventHub.on(TabEvent.blur, this.handleTabBlur);
83
- glEventHub.on(InputFilterEvent.CLEAR_ALL_FILTERS, this.handleClearAllFilters);
84
- glEventHub.emit(PanelEvent.MOUNT, componentPanel !== null && componentPanel !== void 0 ? componentPanel : this);
85
- this.setState({
86
- isWithinPanel: ((_this$ref$current = this.ref.current) === null || _this$ref$current === void 0 ? void 0 : (_this$ref$current$par = _this$ref$current.parentElement) === null || _this$ref$current$par === void 0 ? void 0 : _this$ref$current$par.closest('.dh-panel')) != null
87
- });
88
- }
89
- componentWillUnmount() {
90
- var {
91
- componentPanel,
92
- glContainer,
93
- glEventHub
94
- } = this.props;
95
- glContainer.off('resize', this.handleResize);
96
- glContainer.off('show', this.handleBeforeShow);
97
- glContainer.off('shown', this.handleShow);
98
- glContainer.off('hide', this.handleHide);
99
- glContainer.off('tab', this.handleTab);
100
- glContainer.off('tabClicked', this.handleTabClicked);
101
- glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);
102
- glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);
103
- glEventHub.off(TabEvent.focus, this.handleTabFocus);
104
- glEventHub.off(TabEvent.blur, this.handleTabBlur);
105
- glEventHub.off(InputFilterEvent.CLEAR_ALL_FILTERS, this.handleClearAllFilters);
106
- glEventHub.emit(PanelEvent.UNMOUNT, componentPanel !== null && componentPanel !== void 0 ? componentPanel : this);
107
- }
108
- handleTab(tab) {
109
- if (tab != null) {
110
- this.setState({
111
- title: LayoutUtils.getTitleFromTab(tab)
112
- });
113
- }
114
- // render after move can happen before tab event, glTab could be null
115
- // when tab event is emitted, force a render update
116
- this.forceUpdate();
117
- var {
118
- onTab
119
- } = this.props;
120
- onTab === null || onTab === void 0 ? void 0 : onTab(tab);
121
- }
122
- handleTabClicked(e) {
123
- var {
124
- onTabClicked
125
- } = this.props;
126
- onTabClicked === null || onTabClicked === void 0 ? void 0 : onTabClicked(e);
127
- }
128
- handleClearAllFilters() {
129
- var {
130
- onClearAllFilters
131
- } = this.props;
132
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
133
- args[_key] = arguments[_key];
134
- }
135
- onClearAllFilters === null || onClearAllFilters === void 0 ? void 0 : onClearAllFilters(...args);
136
- }
137
- handleFocus(event) {
138
- var {
139
- componentPanel,
140
- glEventHub
141
- } = this.props;
142
- glEventHub.emit(PanelEvent.FOCUS, componentPanel !== null && componentPanel !== void 0 ? componentPanel : this);
143
- var {
144
- onFocus
145
- } = this.props;
146
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
147
- }
148
- handleBlur(event) {
149
- var {
150
- onBlur
151
- } = this.props;
152
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
153
- }
154
- handleHide() {
155
- var {
156
- onHide
157
- } = this.props;
158
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
159
- args[_key2] = arguments[_key2];
160
- }
161
- onHide === null || onHide === void 0 ? void 0 : onHide(...args);
162
- }
163
- handleResize() {
164
- var {
165
- onResize
166
- } = this.props;
167
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
168
- args[_key3] = arguments[_key3];
169
- }
170
- onResize === null || onResize === void 0 ? void 0 : onResize(...args);
171
- }
172
- handleSessionClosed(session) {
173
- var {
174
- onSessionClose
175
- } = this.props;
176
- onSessionClose === null || onSessionClose === void 0 ? void 0 : onSessionClose(session);
177
- }
178
- handleSessionOpened(session, params) {
179
- var {
180
- onSessionOpen
181
- } = this.props;
182
- onSessionOpen === null || onSessionOpen === void 0 ? void 0 : onSessionOpen(session, params);
183
- }
184
- handleBeforeShow() {
185
- var {
186
- onBeforeShow
187
- } = this.props;
188
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
189
- args[_key4] = arguments[_key4];
190
- }
191
- onBeforeShow === null || onBeforeShow === void 0 ? void 0 : onBeforeShow(...args);
192
- }
193
- handleShow() {
194
- var {
195
- onShow
196
- } = this.props;
197
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
198
- args[_key5] = arguments[_key5];
199
- }
200
- onShow === null || onShow === void 0 ? void 0 : onShow(...args);
201
- }
202
- handleTabBlur() {
203
- var {
204
- onTabBlur
205
- } = this.props;
206
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
207
- args[_key6] = arguments[_key6];
208
- }
209
- onTabBlur === null || onTabBlur === void 0 ? void 0 : onTabBlur(...args);
210
- }
211
- handleTabFocus() {
212
- var {
213
- onTabFocus
214
- } = this.props;
215
- for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
216
- args[_key7] = arguments[_key7];
217
- }
218
- onTabFocus === null || onTabFocus === void 0 ? void 0 : onTabFocus(...args);
219
- }
220
- handleRenameCancel() {
221
- this.setState({
222
- showRenameDialog: false
223
- });
224
- }
225
- handleShowRenameDialog() {
226
- this.setState({
227
- showRenameDialog: true
228
- });
229
- }
230
- handleRenameSubmit(newTitle) {
231
- var {
232
- glContainer
233
- } = this.props;
234
- this.setState({
235
- showRenameDialog: false,
236
- title: newTitle
237
- });
238
- var root = LayoutUtils.getRootFromContainer(glContainer);
239
- var config = LayoutUtils.getComponentConfigFromContainer(glContainer);
240
- assertNotNull(config);
241
- LayoutUtils.renameComponent(root, config, newTitle);
242
- }
243
- handleCopyPanel() {
244
- var {
245
- glContainer,
246
- glEventHub
247
- } = this.props;
248
- var root = LayoutUtils.getRootFromContainer(glContainer);
249
- var config = LayoutUtils.getComponentConfigFromContainer(glContainer);
250
- if (config == null) {
251
- log.error('Could not get component config from container', glContainer);
252
- return;
253
- }
254
- var cloneConfig = LayoutUtils.cloneComponent(root, config);
255
- if (cloneConfig !== null) {
256
- glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);
257
- }
258
- }
259
- getCloneAction() {
260
- return {
261
- title: 'Copy Panel',
262
- order: 10,
263
- group: ContextActions.groups.high,
264
- action: this.handleCopyPanel
265
- };
266
- }
267
- getRenameAction() {
268
- return {
269
- title: 'Rename',
270
- order: 10,
271
- group: ContextActions.groups.medium,
272
- action: this.handleShowRenameDialog
273
- };
274
- }
275
- render() {
276
- var {
277
- children,
278
- className,
279
- renderTabTooltip,
280
- glContainer,
281
- glEventHub,
282
- additionalActions = EMPTY_ARRAY,
283
- errorMessage,
284
- isLoaded = true,
285
- isLoading = false,
286
- isClonable = false,
287
- isRenamable = false
288
- } = this.props;
289
- var {
290
- tab: glTab
291
- } = glContainer;
292
- var {
293
- showRenameDialog,
294
- title,
295
- isWithinPanel
296
- } = this.state;
297
- return /*#__PURE__*/_jsxs("div", {
298
- className: classNames('h-100 w-100 dh-panel', className),
299
- onFocusCapture: this.handleFocus,
300
- onBlurCapture: this.handleBlur,
301
- ref: this.ref,
302
- children: [children, /*#__PURE__*/_jsx(LoadingOverlay, {
303
- errorMessage: errorMessage,
304
- isLoaded: isLoaded,
305
- isLoading: isLoading
306
- }), !isWithinPanel && glTab != null && /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/_jsxs(_Fragment, {
307
- children: [/*#__PURE__*/_jsx(PanelContextMenu, {
308
- glContainer: glContainer,
309
- glEventHub: glEventHub,
310
- additionalActions: this.getAdditionalActions(additionalActions, isClonable, isRenamable)
311
- }), isRenamable && /*#__PURE__*/_jsx(RenameDialog, {
312
- isShown: showRenameDialog,
313
- value: title,
314
- itemType: "Panel",
315
- onCancel: this.handleRenameCancel,
316
- onSubmit: this.handleRenameSubmit
317
- }), renderTabTooltip != null && /*#__PURE__*/_jsx(Tooltip, {
318
- interactive: true,
319
- options: {
320
- placement: 'bottom'
321
- },
322
- popperClassName: "panel-tab-popper",
323
- children: renderTabTooltip()
324
- })]
325
- }), glTab.element[0] // tab.element is jquery element, we want a dom element
326
- )]
327
- });
328
- }
329
- }
330
-
331
- var XPanel = createXComponent(Panel);
332
- export default XPanel;
333
- //# sourceMappingURL=Panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Panel.js","names":["React","PureComponent","ReactDOM","classNames","memoize","ContextActions","createXComponent","LoadingOverlay","Tooltip","LayoutUtils","PanelEvent","assertNotNull","EMPTY_ARRAY","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","Panel","constructor","props","_defineProperty","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","ref","createRef","glContainer","state","title","getTitleFromContainer","showRenameDialog","isWithinPanel","componentDidMount","_this$ref$current","_this$ref$current$par","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","setState","current","parentElement","closest","componentWillUnmount","off","UNMOUNT","tab","getTitleFromTab","forceUpdate","onTab","e","onTabClicked","onClearAllFilters","_len","arguments","length","args","Array","_key","event","FOCUS","onFocus","onBlur","onHide","_len2","_key2","onResize","_len3","_key3","session","onSessionClose","params","onSessionOpen","onBeforeShow","_len4","_key4","onShow","_len5","_key5","onTabBlur","_len6","_key6","onTabFocus","_len7","_key7","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","medium","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","onFocusCapture","onBlurCapture","createPortal","getAdditionalActions","isShown","value","itemType","onCancel","onSubmit","interactive","options","placement","popperClassName","element","XPanel"],"sources":["../../src/panels/Panel.tsx"],"sourcesContent":["import React, {\n type FocusEvent,\n type FocusEventHandler,\n PureComponent,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n type ContextAction,\n ContextActions,\n createXComponent,\n LoadingOverlay,\n type ResolvableContextAction,\n Tooltip,\n} from '@deephaven/components';\nimport {\n LayoutUtils,\n type PanelComponent,\n PanelEvent,\n} from '@deephaven/dashboard';\nimport type {\n Container,\n EventEmitter,\n ReactComponentConfig,\n Tab,\n} from '@deephaven/golden-layout';\nimport { assertNotNull, EMPTY_ARRAY } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\nimport './Panel.scss';\n\nconst log = Log.module('Panel');\n\nexport type CorePanelProps = {\n /**\n * Reference to the component panel.\n * Will wait until it is set before emitting mount/unmount events.\n *\n */\n componentPanel?: PanelComponent;\n children: ReactNode;\n glContainer: Container;\n glEventHub: EventEmitter;\n className?: string;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n onTab?: (tab: Tab) => void;\n onTabClicked?: (e: MouseEvent) => void;\n onClearAllFilters?: (...args: unknown[]) => void;\n onHide?: (...args: unknown[]) => void;\n onResize?: (...args: unknown[]) => void;\n onSessionClose?: (session: dh.IdeSession) => void;\n onSessionOpen?: (\n session: dh.IdeSession,\n { language, sessionId }: { language: string; sessionId: string }\n ) => void;\n onBeforeShow?: (...args: unknown[]) => void;\n onShow?: (...args: unknown[]) => void;\n onTabBlur?: (...args: unknown[]) => void;\n onTabFocus?: (...args: unknown[]) => void;\n renderTabTooltip?: () => ReactNode;\n additionalActions?: ResolvableContextAction[];\n errorMessage?: string;\n isLoading?: boolean;\n isLoaded?: boolean;\n isClonable?: boolean;\n isRenamable?: boolean;\n};\n\ninterface PanelState {\n title?: string | null;\n showRenameDialog: boolean;\n isWithinPanel: boolean;\n}\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent<CorePanelProps, PanelState> {\n constructor(props: CorePanelProps) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n this.ref = React.createRef<HTMLDivElement>();\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n isWithinPanel: true,\n };\n }\n\n componentDidMount(): void {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel ?? this);\n\n this.setState({\n isWithinPanel:\n this.ref.current?.parentElement?.closest('.dh-panel') != null,\n });\n }\n\n componentWillUnmount(): void {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel ?? this);\n }\n\n ref: React.RefObject<HTMLDivElement>;\n\n handleTab(tab: Tab): void {\n if (tab != null) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab?.(tab);\n }\n\n handleTabClicked(e: MouseEvent): void {\n const { onTabClicked } = this.props;\n onTabClicked?.(e);\n }\n\n handleClearAllFilters(...args: unknown[]): void {\n const { onClearAllFilters } = this.props;\n onClearAllFilters?.(...args);\n }\n\n handleFocus(event: FocusEvent<HTMLDivElement>): void {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel ?? this);\n\n const { onFocus } = this.props;\n onFocus?.(event);\n }\n\n handleBlur(event: FocusEvent<HTMLDivElement>): void {\n const { onBlur } = this.props;\n onBlur?.(event);\n }\n\n handleHide(...args: unknown[]): void {\n const { onHide } = this.props;\n onHide?.(...args);\n }\n\n handleResize(...args: unknown[]): void {\n const { onResize } = this.props;\n onResize?.(...args);\n }\n\n handleSessionClosed(session: dh.IdeSession): void {\n const { onSessionClose } = this.props;\n onSessionClose?.(session);\n }\n\n handleSessionOpened(\n session: dh.IdeSession,\n params: { language: string; sessionId: string }\n ): void {\n const { onSessionOpen } = this.props;\n onSessionOpen?.(session, params);\n }\n\n handleBeforeShow(...args: unknown[]): void {\n const { onBeforeShow } = this.props;\n onBeforeShow?.(...args);\n }\n\n handleShow(...args: unknown[]): void {\n const { onShow } = this.props;\n onShow?.(...args);\n }\n\n handleTabBlur(...args: unknown[]): void {\n const { onTabBlur } = this.props;\n onTabBlur?.(...args);\n }\n\n handleTabFocus(...args: unknown[]): void {\n const { onTabFocus } = this.props;\n onTabFocus?.(...args);\n }\n\n handleRenameCancel(): void {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog(): void {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle: string): void {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n assertNotNull(config);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel(): void {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const cloneConfig = LayoutUtils.cloneComponent(\n root,\n config as ReactComponentConfig\n );\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction(): ContextAction {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction(): ContextAction {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.medium,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionalActions = memoize(\n (\n actions: readonly ResolvableContextAction[],\n isClonable: boolean,\n isRenamable: boolean\n ) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n }\n );\n\n render(): ReactElement {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n glEventHub,\n additionalActions = EMPTY_ARRAY,\n errorMessage,\n isLoaded = true,\n isLoading = false,\n isClonable = false,\n isRenamable = false,\n } = this.props;\n\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title, isWithinPanel } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 dh-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n ref={this.ref}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {!isWithinPanel &&\n glTab != null &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n glEventHub={glEventHub}\n additionalActions={this.getAdditionalActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip != null && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nconst XPanel = createXComponent(Panel);\n\nexport default XPanel;\n"],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import React, { PureComponent, type ReactElement } from 'react';
2
- import { type ResolvableContextAction } from '@deephaven/components';
3
- import type { Container, EventEmitter, Tab } from '@deephaven/golden-layout';
4
- import { type CustomizableWorkspace } from '@deephaven/redux';
5
- interface PanelContextMenuProps {
6
- additionalActions: ResolvableContextAction[];
7
- glContainer: Container;
8
- glEventHub: EventEmitter;
9
- workspace: CustomizableWorkspace;
10
- }
11
- declare class PanelContextMenu extends PureComponent<PanelContextMenuProps, Record<string, never>> {
12
- static defaultProps: {
13
- additionalActions: never[];
14
- };
15
- constructor(props: PanelContextMenuProps);
16
- getAllTabs(): Tab[];
17
- handleCloseTab(): void;
18
- handleCloseTabsAll(): void;
19
- handleCloseTabsRight(): void;
20
- handleReopenLast(): void;
21
- canCloseTabsRight(): boolean;
22
- canCloseAny(): boolean;
23
- canReopenLast(): boolean;
24
- render(): ReactElement;
25
- }
26
- declare const ConnectedPanelContextMenu: import("react-redux").ConnectedComponent<typeof PanelContextMenu, import("react-redux").Omit<Pick<React.ClassAttributes<PanelContextMenu> & PanelContextMenuProps, "glContainer" | "glEventHub" | "workspace" | keyof React.ClassAttributes<PanelContextMenu>> & Partial<Pick<React.ClassAttributes<PanelContextMenu> & PanelContextMenuProps, "additionalActions">> & Partial<Pick<{
27
- additionalActions: never[];
28
- }, never>>, "workspace">>;
29
- export default ConnectedPanelContextMenu;
30
- //# sourceMappingURL=PanelContextMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PanelContextMenu.d.ts","sourceRoot":"","sources":["../../src/panels/PanelContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,kBAAkB,CAAC;AAQ1B,UAAU,qBAAqB;IAC7B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;IAC7C,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;CAClC;AAOD,cAAM,gBAAiB,SAAQ,aAAa,CAC1C,qBAAqB,EACrB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;gBAEU,KAAK,EAAE,qBAAqB;IASxC,UAAU,IAAI,GAAG,EAAE;IAMnB,cAAc,IAAI,IAAI;IAKtB,kBAAkB,IAAI,IAAI;IAU1B,oBAAoB,IAAI,IAAI;IAiB5B,gBAAgB,IAAI,IAAI;IAKxB,iBAAiB,IAAI,OAAO;IAqB5B,WAAW,IAAI,OAAO;IActB,aAAa,IAAI,OAAO;IAYxB,MAAM,IAAI,YAAY;CAwCvB;AAUD,QAAA,MAAM,yBAAyB;;yBAEX,CAAC;AAErB,eAAe,yBAAyB,CAAC"}