@deephaven/dashboard-core-plugins 0.43.0 → 0.44.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.
- package/dist/ChartBuilderPlugin.js +54 -0
- package/dist/ChartBuilderPlugin.js.map +1 -0
- package/dist/ChartPlugin.js +66 -0
- package/dist/ChartPlugin.js.map +1 -0
- package/dist/ConsolePlugin.js +396 -0
- package/dist/ConsolePlugin.js.map +1 -0
- package/dist/FilterPlugin.js +205 -0
- package/dist/FilterPlugin.js.map +1 -0
- package/dist/GridPlugin.js +74 -0
- package/dist/GridPlugin.js.map +1 -0
- package/dist/LinkerPlugin.js +18 -0
- package/dist/LinkerPlugin.js.map +1 -0
- package/dist/MarkdownPlugin.js +87 -0
- package/dist/MarkdownPlugin.js.map +1 -0
- package/dist/PandasPlugin.js +66 -0
- package/dist/PandasPlugin.js.map +1 -0
- package/dist/controls/ControlType.js +10 -0
- package/dist/controls/ControlType.js.map +1 -0
- package/dist/controls/dropdown-filter/DropdownFilter.css +86 -0
- package/dist/controls/dropdown-filter/DropdownFilter.css.map +1 -0
- package/dist/controls/dropdown-filter/DropdownFilter.js +417 -0
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -0
- package/dist/controls/input-filter/InputFilter.css +75 -0
- package/dist/controls/input-filter/InputFilter.css.map +1 -0
- package/dist/controls/input-filter/InputFilter.js +291 -0
- package/dist/controls/input-filter/InputFilter.js.map +1 -0
- package/dist/controls/markdown/MarkdownContainer.js +30 -0
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -0
- package/dist/controls/markdown/MarkdownEditor.js +52 -0
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -0
- package/dist/controls/markdown/MarkdownStartPage.js +109 -0
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -0
- package/dist/controls/markdown/MarkdownUtils.js +23 -0
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -0
- package/dist/events/ChartEvent.js +9 -0
- package/dist/events/ChartEvent.js.map +1 -0
- package/dist/events/ConsoleEvent.js +11 -0
- package/dist/events/ConsoleEvent.js.map +1 -0
- package/dist/events/InputFilterEvent.js +14 -0
- package/dist/events/InputFilterEvent.js.map +1 -0
- package/dist/events/IrisGridEvent.js +12 -0
- package/dist/events/IrisGridEvent.js.map +1 -0
- package/dist/events/MarkdownEvent.js +4 -0
- package/dist/events/MarkdownEvent.js.map +1 -0
- package/dist/events/NotebookEvent.js +15 -0
- package/dist/events/NotebookEvent.js.map +1 -0
- package/dist/events/PQEvent.js +9 -0
- package/dist/events/PQEvent.js.map +1 -0
- package/dist/events/PandasEvent.js +8 -0
- package/dist/events/PandasEvent.js.map +1 -0
- package/dist/events/TabEvent.js +12 -0
- package/dist/events/TabEvent.js.map +1 -0
- package/dist/events/index.js +9 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/linker/ColumnSelectionValidator.js +2 -0
- package/dist/linker/ColumnSelectionValidator.js.map +1 -0
- package/dist/linker/Linker.js +736 -0
- package/dist/linker/Linker.js.map +1 -0
- package/dist/linker/LinkerLink.css +142 -0
- package/dist/linker/LinkerLink.css.map +1 -0
- package/dist/linker/LinkerLink.js +314 -0
- package/dist/linker/LinkerLink.js.map +1 -0
- package/dist/linker/LinkerOverlayContent.css +63 -0
- package/dist/linker/LinkerOverlayContent.css.map +1 -0
- package/dist/linker/LinkerOverlayContent.js +343 -0
- package/dist/linker/LinkerOverlayContent.js.map +1 -0
- package/dist/linker/LinkerUtils.js +139 -0
- package/dist/linker/LinkerUtils.js.map +1 -0
- package/dist/linker/ToolType.js +5 -0
- package/dist/linker/ToolType.js.map +1 -0
- package/dist/linker/index.js +2 -0
- package/dist/linker/index.js.map +1 -0
- package/dist/panels/ChartColumnSelectorOverlay.css +11 -0
- package/dist/panels/ChartColumnSelectorOverlay.css.map +1 -0
- package/dist/panels/ChartColumnSelectorOverlay.js +38 -0
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -0
- package/dist/panels/ChartFilterOverlay.css +22 -0
- package/dist/panels/ChartFilterOverlay.css.map +1 -0
- package/dist/panels/ChartFilterOverlay.js +90 -0
- package/dist/panels/ChartFilterOverlay.js.map +1 -0
- package/dist/panels/ChartPanel.css +38 -0
- package/dist/panels/ChartPanel.css.map +1 -0
- package/dist/panels/ChartPanel.js +971 -0
- package/dist/panels/ChartPanel.js.map +1 -0
- package/dist/panels/ChartPanelUtils.js +5 -0
- package/dist/panels/ChartPanelUtils.js.map +1 -0
- package/dist/panels/CommandHistoryPanel.css +19 -0
- package/dist/panels/CommandHistoryPanel.css.map +1 -0
- package/dist/panels/CommandHistoryPanel.js +195 -0
- package/dist/panels/CommandHistoryPanel.js.map +1 -0
- package/dist/panels/ConsolePanel.css +19 -0
- package/dist/panels/ConsolePanel.css.map +1 -0
- package/dist/panels/ConsolePanel.js +365 -0
- package/dist/panels/ConsolePanel.js.map +1 -0
- package/dist/panels/DropdownFilterPanel.css +6 -0
- package/dist/panels/DropdownFilterPanel.css.map +1 -0
- package/dist/panels/DropdownFilterPanel.js +685 -0
- package/dist/panels/DropdownFilterPanel.js.map +1 -0
- package/dist/panels/FileExplorerPanel.css +6 -0
- package/dist/panels/FileExplorerPanel.css.map +1 -0
- package/dist/panels/FileExplorerPanel.js +252 -0
- package/dist/panels/FileExplorerPanel.js.map +1 -0
- package/dist/panels/FilterSetManager.css +112 -0
- package/dist/panels/FilterSetManager.css.map +1 -0
- package/dist/panels/FilterSetManager.js +689 -0
- package/dist/panels/FilterSetManager.js.map +1 -0
- package/dist/panels/FilterSetManagerPanel.css +34 -0
- package/dist/panels/FilterSetManagerPanel.css.map +1 -0
- package/dist/panels/FilterSetManagerPanel.js +345 -0
- package/dist/panels/FilterSetManagerPanel.js.map +1 -0
- package/dist/panels/InputFilterPanel.js +232 -0
- package/dist/panels/InputFilterPanel.js.map +1 -0
- package/dist/panels/IrisGridPanel.css +24 -0
- package/dist/panels/IrisGridPanel.css.map +1 -0
- package/dist/panels/IrisGridPanel.js +1018 -0
- package/dist/panels/IrisGridPanel.js.map +1 -0
- package/dist/panels/IrisGridPanelTooltip.js +39 -0
- package/dist/panels/IrisGridPanelTooltip.js.map +1 -0
- package/dist/panels/LogPanel.css +15 -0
- package/dist/panels/LogPanel.css.map +1 -0
- package/dist/panels/LogPanel.js +110 -0
- package/dist/panels/LogPanel.js.map +1 -0
- package/dist/panels/MarkdownNotebook.css +107 -0
- package/dist/panels/MarkdownNotebook.css.map +1 -0
- package/dist/panels/MarkdownNotebook.js +232 -0
- package/dist/panels/MarkdownNotebook.js.map +1 -0
- package/dist/panels/MarkdownPanel.css +90 -0
- package/dist/panels/MarkdownPanel.css.map +1 -0
- package/dist/panels/MarkdownPanel.js +202 -0
- package/dist/panels/MarkdownPanel.js.map +1 -0
- package/dist/panels/MockFileStorage.js +70 -0
- package/dist/panels/MockFileStorage.js.map +1 -0
- package/dist/panels/MockFileStorageTable.js +80 -0
- package/dist/panels/MockFileStorageTable.js.map +1 -0
- package/dist/panels/NotebookPanel.css +44 -0
- package/dist/panels/NotebookPanel.css.map +1 -0
- package/dist/panels/NotebookPanel.js +1224 -0
- package/dist/panels/NotebookPanel.js.map +1 -0
- package/dist/panels/PandasPanel.css +15 -0
- package/dist/panels/PandasPanel.css.map +1 -0
- package/dist/panels/PandasPanel.js +86 -0
- package/dist/panels/PandasPanel.js.map +1 -0
- package/dist/panels/Panel.js +314 -0
- package/dist/panels/Panel.js.map +1 -0
- package/dist/panels/PanelContextMenu.js +126 -0
- package/dist/panels/PanelContextMenu.js.map +1 -0
- package/dist/panels/RenameDialog.js +156 -0
- package/dist/panels/RenameDialog.js.map +1 -0
- package/dist/panels/WidgetPanel.css +17 -0
- package/dist/panels/WidgetPanel.css.map +1 -0
- package/dist/panels/WidgetPanel.js +189 -0
- package/dist/panels/WidgetPanel.js.map +1 -0
- package/dist/panels/WidgetPanelTooltip.css +40 -0
- package/dist/panels/WidgetPanelTooltip.css.map +1 -0
- package/dist/panels/WidgetPanelTooltip.js +49 -0
- package/dist/panels/WidgetPanelTooltip.js.map +1 -0
- package/dist/panels/index.js +22 -0
- package/dist/panels/index.js.map +1 -0
- package/dist/prop-types/CommonPropTypes.js +9 -0
- package/dist/prop-types/CommonPropTypes.js.map +1 -0
- package/dist/prop-types/UIPropTypes.js +42 -0
- package/dist/prop-types/UIPropTypes.js.map +1 -0
- package/dist/prop-types/index.js +3 -0
- package/dist/prop-types/index.js.map +1 -0
- package/dist/redux/actionTypes.js +3 -0
- package/dist/redux/actionTypes.js.map +1 -0
- package/dist/redux/actions.js +88 -0
- package/dist/redux/actions.js.map +1 -0
- package/dist/redux/index.js +10 -0
- package/dist/redux/index.js.map +1 -0
- package/dist/redux/reducers/connection.js +7 -0
- package/dist/redux/reducers/connection.js.map +1 -0
- package/dist/redux/reducers/index.js +5 -0
- package/dist/redux/reducers/index.js.map +1 -0
- package/dist/redux/reducers/sessionWrapper.js +7 -0
- package/dist/redux/reducers/sessionWrapper.js.map +1 -0
- package/dist/redux/selectors.js +92 -0
- package/dist/redux/selectors.js.map +1 -0
- package/package.json +22 -22
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
+
// Wrapper for the Console for use in a golden layout container
|
|
7
|
+
// Will probably need to handle window popping out from golden layout here.
|
|
8
|
+
import React, { PureComponent } from 'react';
|
|
9
|
+
import shortid from 'shortid';
|
|
10
|
+
import debounce from 'lodash.debounce';
|
|
11
|
+
import { connect } from 'react-redux';
|
|
12
|
+
import { Console, ConsoleConstants, HeapUsage } from '@deephaven/console';
|
|
13
|
+
import { PanelEvent } from '@deephaven/dashboard';
|
|
14
|
+
import Log from '@deephaven/log';
|
|
15
|
+
import { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';
|
|
16
|
+
import { assertNotNull } from '@deephaven/utils';
|
|
17
|
+
import { ConsoleEvent } from "../events/index.js";
|
|
18
|
+
import Panel from "./Panel.js";
|
|
19
|
+
import { getDashboardSessionWrapper } from "../redux/index.js";
|
|
20
|
+
import "./ConsolePanel.css";
|
|
21
|
+
var log = Log.module('ConsolePanel');
|
|
22
|
+
var DEBOUNCE_PANEL_STATE_UPDATE = 500;
|
|
23
|
+
var DEFAULT_PANEL_STATE = Object.freeze({
|
|
24
|
+
consoleSettings: {},
|
|
25
|
+
itemIds: []
|
|
26
|
+
});
|
|
27
|
+
export class ConsolePanel extends PureComponent {
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super(props);
|
|
30
|
+
_defineProperty(this, "consoleRef", void 0);
|
|
31
|
+
_defineProperty(this, "objectSubscriptionCleanup", void 0);
|
|
32
|
+
_defineProperty(this, "savePanelState", debounce(() => {
|
|
33
|
+
var {
|
|
34
|
+
consoleSettings,
|
|
35
|
+
itemIds
|
|
36
|
+
} = this.state;
|
|
37
|
+
var panelState = {
|
|
38
|
+
consoleSettings,
|
|
39
|
+
itemIds: [...itemIds]
|
|
40
|
+
};
|
|
41
|
+
log.debug('Saving panel state', panelState);
|
|
42
|
+
// eslint-disable-next-line react/no-unused-state
|
|
43
|
+
this.setState({
|
|
44
|
+
panelState
|
|
45
|
+
});
|
|
46
|
+
}, DEBOUNCE_PANEL_STATE_UPDATE));
|
|
47
|
+
this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);
|
|
48
|
+
this.handleOpenObject = this.handleOpenObject.bind(this);
|
|
49
|
+
this.handleCloseObject = this.handleCloseObject.bind(this);
|
|
50
|
+
this.handleResize = this.handleResize.bind(this);
|
|
51
|
+
this.handleSettingsChange = this.handleSettingsChange.bind(this);
|
|
52
|
+
this.handleShow = this.handleShow.bind(this);
|
|
53
|
+
this.handlePanelMount = this.handlePanelMount.bind(this);
|
|
54
|
+
this.consoleRef = /*#__PURE__*/React.createRef();
|
|
55
|
+
var {
|
|
56
|
+
panelState: initialPanelState
|
|
57
|
+
} = props;
|
|
58
|
+
var _panelState = _objectSpread(_objectSpread({}, DEFAULT_PANEL_STATE), initialPanelState || {});
|
|
59
|
+
var {
|
|
60
|
+
consoleSettings: _consoleSettings,
|
|
61
|
+
itemIds: _itemIds
|
|
62
|
+
} = _panelState;
|
|
63
|
+
this.state = {
|
|
64
|
+
consoleSettings: _consoleSettings,
|
|
65
|
+
itemIds: new Map(_itemIds),
|
|
66
|
+
objectMap: new Map(),
|
|
67
|
+
error: undefined,
|
|
68
|
+
// eslint-disable-next-line react/no-unused-state
|
|
69
|
+
panelState: _panelState // Dehydrated panel state that can load this panel
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
componentDidMount() {
|
|
74
|
+
var {
|
|
75
|
+
glEventHub
|
|
76
|
+
} = this.props;
|
|
77
|
+
// Need to close the disconnected panels when we're first loaded,
|
|
78
|
+
// as they may have been saved with the dashboard
|
|
79
|
+
this.closeDisconnectedPanels();
|
|
80
|
+
glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);
|
|
81
|
+
this.subscribeToFieldUpdates();
|
|
82
|
+
}
|
|
83
|
+
componentDidUpdate(prevProps, prevState) {
|
|
84
|
+
var {
|
|
85
|
+
consoleSettings,
|
|
86
|
+
itemIds
|
|
87
|
+
} = this.state;
|
|
88
|
+
if (prevState.consoleSettings !== consoleSettings || prevState.itemIds !== itemIds) {
|
|
89
|
+
this.savePanelState();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
componentWillUnmount() {
|
|
93
|
+
var _this$objectSubscript;
|
|
94
|
+
var {
|
|
95
|
+
glEventHub
|
|
96
|
+
} = this.props;
|
|
97
|
+
this.savePanelState.flush();
|
|
98
|
+
glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);
|
|
99
|
+
(_this$objectSubscript = this.objectSubscriptionCleanup) === null || _this$objectSubscript === void 0 ? void 0 : _this$objectSubscript.call(this);
|
|
100
|
+
}
|
|
101
|
+
subscribeToFieldUpdates() {
|
|
102
|
+
var {
|
|
103
|
+
sessionWrapper
|
|
104
|
+
} = this.props;
|
|
105
|
+
var {
|
|
106
|
+
session
|
|
107
|
+
} = sessionWrapper;
|
|
108
|
+
this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(updates => {
|
|
109
|
+
log.debug('Got updates', updates);
|
|
110
|
+
this.setState(_ref => {
|
|
111
|
+
var {
|
|
112
|
+
objectMap
|
|
113
|
+
} = _ref;
|
|
114
|
+
var {
|
|
115
|
+
updated,
|
|
116
|
+
created,
|
|
117
|
+
removed
|
|
118
|
+
} = updates;
|
|
119
|
+
|
|
120
|
+
// Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.
|
|
121
|
+
var objectsToRemove = [...updated, ...removed];
|
|
122
|
+
var newObjectMap = new Map(objectMap);
|
|
123
|
+
objectsToRemove.forEach(toRemove => {
|
|
124
|
+
var {
|
|
125
|
+
title
|
|
126
|
+
} = toRemove;
|
|
127
|
+
if (title !== undefined) {
|
|
128
|
+
newObjectMap.delete(title);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// Now add all the modified and updated widgets back in
|
|
133
|
+
var objectsToAdd = [...updated, ...created];
|
|
134
|
+
objectsToAdd.forEach(toAdd => {
|
|
135
|
+
if (toAdd.title !== undefined) {
|
|
136
|
+
newObjectMap.set(toAdd.title, toAdd);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
objectMap: newObjectMap
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
setItemId(name, id) {
|
|
146
|
+
this.setState(_ref2 => {
|
|
147
|
+
var {
|
|
148
|
+
itemIds
|
|
149
|
+
} = _ref2;
|
|
150
|
+
var newItemIds = new Map(itemIds);
|
|
151
|
+
newItemIds.set(name, id);
|
|
152
|
+
return {
|
|
153
|
+
itemIds: newItemIds
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
getItemId(name) {
|
|
158
|
+
var createIfNecessary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
159
|
+
var {
|
|
160
|
+
itemIds
|
|
161
|
+
} = this.state;
|
|
162
|
+
var id = itemIds.get(name);
|
|
163
|
+
if (id == null && createIfNecessary) {
|
|
164
|
+
id = shortid.generate();
|
|
165
|
+
this.setItemId(name, id);
|
|
166
|
+
}
|
|
167
|
+
return id;
|
|
168
|
+
}
|
|
169
|
+
handleTabFocus() {
|
|
170
|
+
var _this$consoleRef$curr;
|
|
171
|
+
(_this$consoleRef$curr = this.consoleRef.current) === null || _this$consoleRef$curr === void 0 ? void 0 : _this$consoleRef$curr.focus();
|
|
172
|
+
}
|
|
173
|
+
handlePanelMount(panel) {
|
|
174
|
+
var _panel$props, _panel$props2, _panel$props2$metadat;
|
|
175
|
+
var {
|
|
176
|
+
itemIds
|
|
177
|
+
} = this.state;
|
|
178
|
+
var panelId = panel === null || panel === void 0 ? void 0 : (_panel$props = panel.props) === null || _panel$props === void 0 ? void 0 : _panel$props.id;
|
|
179
|
+
var sourceId = panel === null || panel === void 0 ? void 0 : (_panel$props2 = panel.props) === null || _panel$props2 === void 0 ? void 0 : (_panel$props2$metadat = _panel$props2.metadata) === null || _panel$props2$metadat === void 0 ? void 0 : _panel$props2$metadat.sourcePanelId;
|
|
180
|
+
if (panelId && sourceId) {
|
|
181
|
+
// Check if the panel was created from a panel in this console
|
|
182
|
+
var pandelIds = new Set(itemIds.values());
|
|
183
|
+
if (pandelIds.has(sourceId)) {
|
|
184
|
+
// The Chart Panel does not have name so map panelId to panelId
|
|
185
|
+
this.setItemId(panelId, panelId);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
handleFocusCommandHistory() {
|
|
190
|
+
var {
|
|
191
|
+
glEventHub
|
|
192
|
+
} = this.props;
|
|
193
|
+
glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);
|
|
194
|
+
}
|
|
195
|
+
handleResize() {
|
|
196
|
+
this.updateDimensions();
|
|
197
|
+
}
|
|
198
|
+
handleShow() {
|
|
199
|
+
this.updateDimensions();
|
|
200
|
+
}
|
|
201
|
+
handleOpenObject(object) {
|
|
202
|
+
var {
|
|
203
|
+
sessionWrapper
|
|
204
|
+
} = this.props;
|
|
205
|
+
var {
|
|
206
|
+
session
|
|
207
|
+
} = sessionWrapper;
|
|
208
|
+
this.openWidget(object, session);
|
|
209
|
+
}
|
|
210
|
+
handleCloseObject(object) {
|
|
211
|
+
var {
|
|
212
|
+
title
|
|
213
|
+
} = object;
|
|
214
|
+
if (title !== undefined) {
|
|
215
|
+
var id = this.getItemId(title, false);
|
|
216
|
+
var {
|
|
217
|
+
glEventHub
|
|
218
|
+
} = this.props;
|
|
219
|
+
glEventHub.emit(PanelEvent.CLOSE, id);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
handleSettingsChange(consoleSettings) {
|
|
223
|
+
var {
|
|
224
|
+
glEventHub
|
|
225
|
+
} = this.props;
|
|
226
|
+
log.debug('handleSettingsChange', consoleSettings);
|
|
227
|
+
this.setState({
|
|
228
|
+
consoleSettings
|
|
229
|
+
});
|
|
230
|
+
glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* @param widget The widget to open
|
|
235
|
+
* @param session The session object
|
|
236
|
+
*/
|
|
237
|
+
openWidget(widget, session) {
|
|
238
|
+
var {
|
|
239
|
+
glEventHub
|
|
240
|
+
} = this.props;
|
|
241
|
+
var {
|
|
242
|
+
title
|
|
243
|
+
} = widget;
|
|
244
|
+
assertNotNull(title);
|
|
245
|
+
var panelId = this.getItemId(title);
|
|
246
|
+
var openOptions = {
|
|
247
|
+
fetch: () => session.getObject(widget),
|
|
248
|
+
panelId,
|
|
249
|
+
widget
|
|
250
|
+
};
|
|
251
|
+
log.debug('openWidget', openOptions);
|
|
252
|
+
glEventHub.emit(PanelEvent.OPEN, openOptions);
|
|
253
|
+
}
|
|
254
|
+
addCommand(command) {
|
|
255
|
+
var _this$consoleRef$curr2;
|
|
256
|
+
var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
257
|
+
var execute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
258
|
+
(_this$consoleRef$curr2 = this.consoleRef.current) === null || _this$consoleRef$curr2 === void 0 ? void 0 : _this$consoleRef$curr2.addCommand(command, focus, execute);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Close the disconnected panels from this session
|
|
263
|
+
* @param force True to force the panels closed regardless of the current setting
|
|
264
|
+
*/
|
|
265
|
+
closeDisconnectedPanels() {
|
|
266
|
+
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
267
|
+
var {
|
|
268
|
+
consoleSettings,
|
|
269
|
+
itemIds
|
|
270
|
+
} = this.state;
|
|
271
|
+
var {
|
|
272
|
+
isClosePanelsOnDisconnectEnabled = true
|
|
273
|
+
} = consoleSettings;
|
|
274
|
+
if (!isClosePanelsOnDisconnectEnabled && !force) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
var panelIdsToClose = [...itemIds.values()];
|
|
278
|
+
var {
|
|
279
|
+
glEventHub
|
|
280
|
+
} = this.props;
|
|
281
|
+
panelIdsToClose.forEach(panelId => {
|
|
282
|
+
glEventHub.emit(PanelEvent.CLOSE, panelId);
|
|
283
|
+
});
|
|
284
|
+
this.setState({
|
|
285
|
+
itemIds: new Map()
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
updateDimensions() {
|
|
289
|
+
var _this$consoleRef$curr3;
|
|
290
|
+
(_this$consoleRef$curr3 = this.consoleRef.current) === null || _this$consoleRef$curr3 === void 0 ? void 0 : _this$consoleRef$curr3.updateDimensions();
|
|
291
|
+
}
|
|
292
|
+
render() {
|
|
293
|
+
var {
|
|
294
|
+
commandHistoryStorage,
|
|
295
|
+
glContainer,
|
|
296
|
+
glEventHub,
|
|
297
|
+
sessionWrapper,
|
|
298
|
+
timeZone,
|
|
299
|
+
unzip
|
|
300
|
+
} = this.props;
|
|
301
|
+
var {
|
|
302
|
+
consoleSettings,
|
|
303
|
+
error,
|
|
304
|
+
objectMap
|
|
305
|
+
} = this.state;
|
|
306
|
+
var {
|
|
307
|
+
config,
|
|
308
|
+
session,
|
|
309
|
+
connection,
|
|
310
|
+
details = {},
|
|
311
|
+
dh
|
|
312
|
+
} = sessionWrapper;
|
|
313
|
+
var {
|
|
314
|
+
workerName,
|
|
315
|
+
processInfoId
|
|
316
|
+
} = details;
|
|
317
|
+
var {
|
|
318
|
+
id: sessionId,
|
|
319
|
+
type: language
|
|
320
|
+
} = config;
|
|
321
|
+
return /*#__PURE__*/React.createElement(Panel, {
|
|
322
|
+
className: "iris-panel-console",
|
|
323
|
+
componentPanel: this,
|
|
324
|
+
glContainer: glContainer,
|
|
325
|
+
glEventHub: glEventHub,
|
|
326
|
+
onResize: this.handleResize,
|
|
327
|
+
onShow: this.handleShow,
|
|
328
|
+
onTabFocus: this.handleTabFocus,
|
|
329
|
+
errorMessage: error != null ? "".concat(error) : undefined
|
|
330
|
+
}, session != null && /*#__PURE__*/React.createElement(Console, {
|
|
331
|
+
dh: dh,
|
|
332
|
+
ref: this.consoleRef,
|
|
333
|
+
settings: consoleSettings,
|
|
334
|
+
session: session,
|
|
335
|
+
focusCommandHistory: this.handleFocusCommandHistory,
|
|
336
|
+
openObject: this.handleOpenObject,
|
|
337
|
+
closeObject: this.handleCloseObject,
|
|
338
|
+
commandHistoryStorage: commandHistoryStorage,
|
|
339
|
+
onSettingsChange: this.handleSettingsChange,
|
|
340
|
+
language: language,
|
|
341
|
+
statusBarChildren: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, "\xA0"), /*#__PURE__*/React.createElement("div", null, ConsoleConstants.LANGUAGE_MAP.get(language)), workerName != null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, "\xA0\u2022\xA0"), workerName), processInfoId != null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, "\xA0\u2022\xA0"), processInfoId, /*#__PURE__*/React.createElement("div", null, "\xA0\u2022")), /*#__PURE__*/React.createElement("div", null, "\xA0"), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(HeapUsage, {
|
|
342
|
+
connection: connection,
|
|
343
|
+
defaultUpdateInterval: 10 * 1000,
|
|
344
|
+
hoverUpdateInterval: 3 * 1000,
|
|
345
|
+
monitorDuration: 10 * 60 * 1000
|
|
346
|
+
})), /*#__PURE__*/React.createElement("div", null, "\xA0")),
|
|
347
|
+
scope: sessionId,
|
|
348
|
+
timeZone: timeZone,
|
|
349
|
+
objectMap: objectMap,
|
|
350
|
+
unzip: unzip
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
_defineProperty(ConsolePanel, "COMPONENT", 'ConsolePanel');
|
|
355
|
+
_defineProperty(ConsolePanel, "TITLE", 'Console');
|
|
356
|
+
var mapStateToProps = (state, ownProps) => ({
|
|
357
|
+
commandHistoryStorage: getCommandHistoryStorage(state),
|
|
358
|
+
sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),
|
|
359
|
+
timeZone: getTimeZone(state)
|
|
360
|
+
});
|
|
361
|
+
var ConnectedConsolePanel = connect(mapStateToProps, null, null, {
|
|
362
|
+
forwardRef: true
|
|
363
|
+
})(ConsolePanel);
|
|
364
|
+
export default ConnectedConsolePanel;
|
|
365
|
+
//# sourceMappingURL=ConsolePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","shortid","debounce","connect","Console","ConsoleConstants","HeapUsage","PanelEvent","Log","getCommandHistoryStorage","getTimeZone","assertNotNull","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","consoleRef","createRef","initialPanelState","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","flush","off","objectSubscriptionCleanup","sessionWrapper","session","updates","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","newItemIds","getItemId","createIfNecessary","get","generate","handleTabFocus","current","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","config","connection","details","dh","workerName","processInfoId","sessionId","type","language","LANGUAGE_MAP","mapStateToProps","ownProps","localDashboardId","ConnectedConsolePanel","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent, ReactElement, RefObject } from 'react';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport {\n CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n} from '@deephaven/console';\nimport { PanelEvent } from '@deephaven/dashboard';\nimport type { IdeSession, VariableDefinition } from '@deephaven/jsapi-types';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getTimeZone,\n RootState,\n} from '@deephaven/redux';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\nimport './ConsolePanel.scss';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n glContainer: Container;\n glEventHub: EventEmitter;\n\n panelState?: PanelState;\n\n sessionWrapper: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props: ConsolePanelProps) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.consoleRef = React.createRef();\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name: string, createIfNecessary = true): string | undefined {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(object: VariableDefinition): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object: VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param widget The widget to open\n * @param session The session object\n */\n openWidget(widget: VariableDefinition, session: IdeSession): void {\n const { glEventHub } = this.props;\n const { title } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState = debounce((): void => {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n render(): ReactElement {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session, connection, details = {}, dh } = sessionWrapper;\n const { workerName, processInfoId } = details;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n className=\"iris-panel-console\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\n <Console\n dh={dh}\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div> </div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n {workerName != null && (\n <>\n <div> • </div>\n {workerName}\n </>\n )}\n {processInfoId != null && (\n <>\n <div> • </div>\n {processInfoId}\n <div> •</div>\n </>\n )}\n <div> </div>\n <div>\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </div>\n <div> </div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst ConnectedConsolePanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConsolePanel);\n\nexport default ConnectedConsolePanel;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../../node_modules/@deephaven/components/scss/custom.scss","../../src/panels/DropdownFilterPanel.scss","../../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;ACEA;EACE,aCCS","file":"DropdownFilterPanel.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n\n.iris-dropdown-filter-panel {\n padding-top: $spacer-3;\n}\n","//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size: $ant-size $ant-thickness, $ant-size $ant-thickness,\n $ant-thickness $ant-size, $ant-thickness $ant-size;\n background-position: 0 top, 0 bottom, left 0, right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 0.12;\n$hover-bg-transparency: 0.14;\n$active-bg-transparency: 0.28;\n$exception-transparency: 0.13;\n"]}
|