@elyra/canvas 12.30.0 → 12.31.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/{extends-7d4f15b6.js → _baseForOwn-ad2a8649.js} +3 -3
- package/dist/_baseForOwn-ad2a8649.js.map +1 -0
- package/dist/_baseForOwn-bfa77b3e.js +8 -0
- package/dist/_baseForOwn-bfa77b3e.js.map +1 -0
- package/dist/canvas-constants-187a30d5.js +2 -0
- package/dist/canvas-constants-187a30d5.js.map +1 -0
- package/dist/canvas-constants-5fb4e9b8.js +2 -0
- package/dist/canvas-constants-5fb4e9b8.js.map +1 -0
- package/dist/canvas-controller-53bd69c8.js +2 -0
- package/dist/canvas-controller-53bd69c8.js.map +1 -0
- package/dist/canvas-controller-9551a089.js +2 -0
- package/dist/canvas-controller-9551a089.js.map +1 -0
- package/dist/common-canvas-1c40c3df.js +2 -0
- package/dist/common-canvas-1c40c3df.js.map +1 -0
- package/dist/common-canvas-93c3f6a4.js +2 -0
- package/dist/common-canvas-93c3f6a4.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.es.js.map +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-canvas.js.map +1 -1
- package/dist/common-properties-18cce049.js +2 -0
- package/dist/common-properties-18cce049.js.map +1 -0
- package/dist/common-properties-b45b54ac.js +2 -0
- package/dist/common-properties-b45b54ac.js.map +1 -0
- package/dist/context-menu-wrapper-6c8f7928.js +2 -0
- package/dist/context-menu-wrapper-6c8f7928.js.map +1 -0
- package/dist/context-menu-wrapper-fc78153c.js +2 -0
- package/dist/context-menu-wrapper-fc78153c.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-15146f5e.js +2 -0
- package/dist/{datarecord-metadata-v3-schema-6a3754ce.js.map → datarecord-metadata-v3-schema-15146f5e.js.map} +1 -1
- package/dist/datarecord-metadata-v3-schema-9994b9ee.js +2 -0
- package/dist/{datarecord-metadata-v3-schema-ba1f2849.js.map → datarecord-metadata-v3-schema-9994b9ee.js.map} +1 -1
- package/dist/extends-093996c9.js +2 -0
- package/dist/extends-093996c9.js.map +1 -0
- package/dist/extends-1b35a664.js +2 -0
- package/dist/extends-1b35a664.js.map +1 -0
- package/dist/flexible-table-1f259bf6.js +2 -0
- package/dist/flexible-table-1f259bf6.js.map +1 -0
- package/dist/flexible-table-aa7a3125.js +2 -0
- package/dist/flexible-table-aa7a3125.js.map +1 -0
- package/dist/icon-c65ffd4c.js +2 -0
- package/dist/{icon-221bb2e5.js.map → icon-c65ffd4c.js.map} +1 -1
- package/dist/icon-e1c49d95.js +2 -0
- package/dist/{icon-ea917a08.js.map → icon-e1c49d95.js.map} +1 -1
- package/dist/index-27d84a2b.js +2 -0
- package/dist/{index-aee893ad.js.map → index-27d84a2b.js.map} +1 -1
- package/dist/index-6776fe83.js +2 -0
- package/dist/{index-92422c18.js.map → index-6776fe83.js.map} +1 -1
- package/dist/{isArrayLikeObject-f3b27f64.js → isArrayLikeObject-0cd02b77.js} +2 -2
- package/dist/{isArrayLikeObject-f3b27f64.js.map → isArrayLikeObject-0cd02b77.js.map} +1 -1
- package/dist/{isArrayLikeObject-a9c7973b.js → isArrayLikeObject-6a001191.js} +2 -2
- package/dist/{isArrayLikeObject-a9c7973b.js.map → isArrayLikeObject-6a001191.js.map} +1 -1
- package/dist/lib/canvas-controller.es.js +1 -1
- package/dist/lib/canvas-controller.js +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.es.js.map +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/context-menu.js.map +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-83b4d3d3.js +2 -0
- package/dist/toolbar-83b4d3d3.js.map +1 -0
- package/dist/toolbar-d7febd83.js +2 -0
- package/dist/toolbar-d7febd83.js.map +1 -0
- package/locales/common-canvas/locales/en.json +1 -0
- package/locales/common-canvas/locales/eo.json +1 -0
- package/package.json +3 -3
- package/src/color-picker/color-picker.scss +2 -2
- package/src/common-canvas/canvas-controller-menu-utils.js +328 -0
- package/src/common-canvas/canvas-controller.js +114 -283
- package/src/common-canvas/cc-contents.jsx +9 -1
- package/src/common-canvas/cc-context-menu.jsx +9 -6
- package/src/common-canvas/cc-context-toolbar.jsx +205 -0
- package/src/common-canvas/cc-text-toolbar.jsx +4 -3
- package/src/common-canvas/cc-toolbar.jsx +4 -4
- package/src/common-canvas/common-canvas-utils.js +0 -5
- package/src/common-canvas/common-canvas.scss +34 -4
- package/src/common-canvas/constants/canvas-constants.js +9 -1
- package/src/common-canvas/svg-canvas-d3.js +4 -0
- package/src/common-canvas/svg-canvas-renderer.js +174 -86
- package/src/common-canvas/svg-canvas-utils-textarea.js +1 -1
- package/src/common-properties/common-properties.jsx +3 -1
- package/src/common-properties/components/editor-form/editor-form.jsx +11 -7
- package/src/common-properties/components/editor-form/editor-form.scss +27 -4
- package/src/common-properties/components/flexible-table/flexible-table.jsx +6 -4
- package/src/common-properties/components/title-editor/title-editor.jsx +3 -1
- package/src/common-properties/components/title-editor/title-editor.scss +4 -0
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +8 -2
- package/src/common-properties/constants/constants.js +5 -0
- package/src/common-properties/panels/subtabs/subtabs.jsx +1 -0
- package/src/common-properties/panels/tearsheet/tearsheet.scss +1 -0
- package/src/common-properties/properties-controller.js +2 -1
- package/src/common-properties/properties-main/properties-main.jsx +4 -1
- package/src/context-menu/common-context-menu.jsx +20 -23
- package/src/context-menu/context-menu-wrapper.jsx +13 -11
- package/src/object-model/config-utils.js +5 -1
- package/src/object-model/layout-dimensions.js +10 -2
- package/src/object-model/object-model.js +23 -3
- package/src/object-model/redux/canvas-store.js +8 -4
- package/src/object-model/redux/reducers/categories.js +12 -0
- package/src/object-model/redux/reducers/contextmenu.js +10 -3
- package/src/object-model/redux/reducers/palette.js +3 -0
- package/src/palette/palette-flyout-content-category.jsx +18 -15
- package/src/palette/palette-flyout-content.jsx +0 -15
- package/src/toolbar/toolbar-action-item.jsx +80 -10
- package/src/toolbar/toolbar-overflow-item.jsx +9 -9
- package/src/toolbar/toolbar.jsx +12 -1
- package/src/toolbar/toolbar.scss +41 -13
- package/stats.html +1 -1
- package/dist/_baseForOwn-7d4e8506.js +0 -2
- package/dist/_baseForOwn-7d4e8506.js.map +0 -1
- package/dist/_baseForOwn-d38b560e.js +0 -2
- package/dist/_baseForOwn-d38b560e.js.map +0 -1
- package/dist/canvas-constants-046e4126.js +0 -2
- package/dist/canvas-constants-046e4126.js.map +0 -1
- package/dist/canvas-constants-f4e65d4d.js +0 -2
- package/dist/canvas-constants-f4e65d4d.js.map +0 -1
- package/dist/canvas-controller-6fe261d9.js +0 -2
- package/dist/canvas-controller-6fe261d9.js.map +0 -1
- package/dist/canvas-controller-ea7d4a8f.js +0 -2
- package/dist/canvas-controller-ea7d4a8f.js.map +0 -1
- package/dist/common-canvas-2953ff65.js +0 -2
- package/dist/common-canvas-2953ff65.js.map +0 -1
- package/dist/common-canvas-fbd62592.js +0 -2
- package/dist/common-canvas-fbd62592.js.map +0 -1
- package/dist/common-properties-0df4ed36.js +0 -2
- package/dist/common-properties-0df4ed36.js.map +0 -1
- package/dist/common-properties-8409565f.js +0 -2
- package/dist/common-properties-8409565f.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-6a3754ce.js +0 -2
- package/dist/datarecord-metadata-v3-schema-ba1f2849.js +0 -2
- package/dist/en-7201b548.js +0 -2
- package/dist/en-7201b548.js.map +0 -1
- package/dist/en-a08356c8.js +0 -2
- package/dist/en-a08356c8.js.map +0 -1
- package/dist/extends-7d4f15b6.js.map +0 -1
- package/dist/extends-d144eab9.js +0 -7
- package/dist/extends-d144eab9.js.map +0 -1
- package/dist/flexible-table-3a78cdf3.js +0 -2
- package/dist/flexible-table-3a78cdf3.js.map +0 -1
- package/dist/flexible-table-6e801de4.js +0 -2
- package/dist/flexible-table-6e801de4.js.map +0 -1
- package/dist/icon-221bb2e5.js +0 -2
- package/dist/icon-ea917a08.js +0 -2
- package/dist/index-92422c18.js +0 -2
- package/dist/index-aee893ad.js +0 -2
- package/dist/toolbar-3fdd090b.js +0 -2
- package/dist/toolbar-3fdd090b.js.map +0 -1
- package/dist/toolbar-5437484a.js +0 -2
- package/dist/toolbar-5437484a.js.map +0 -1
|
@@ -28,14 +28,19 @@ import ZoomToFit from "./../../assets/images/zoom_to_fit.svg";
|
|
|
28
28
|
import { Button } from "carbon-components-react";
|
|
29
29
|
import SVG from "react-inlinesvg";
|
|
30
30
|
import classNames from "classnames";
|
|
31
|
-
import { StopFilledAlt16, Play16, Undo16, Redo16, Chat16, ChatOff16,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
import { StopFilledAlt16, Play16, Undo16, Redo16, Chat16, ChatOff16,
|
|
32
|
+
Cut16, Copy16, Paste16, Edit16, ColorPalette16, Maximize16, Minimize16,
|
|
33
|
+
Launch16, AddComment16, TrashCan16, ZoomIn16, ZoomOut16, ChevronRight16 } from "@carbon/icons-react";
|
|
34
|
+
import { TOOLBAR_STOP, TOOLBAR_RUN, TOOLBAR_UNDO, TOOLBAR_REDO,
|
|
35
|
+
TOOLBAR_CUT, TOOLBAR_COPY, TOOLBAR_PASTE,
|
|
36
|
+
TOOLBAR_CREATE_COMMENT, TOOLBAR_CREATE_AUTO_COMMENT, TOOLBAR_COLOR_BACKGROUND,
|
|
37
|
+
TOOLBAR_DELETE_SELECTED_OBJECTS, TOOLBAR_DELETE_LINK,
|
|
38
|
+
TOOLBAR_ZOOM_IN, TOOLBAR_ZOOM_OUT, TOOLBAR_ZOOM_FIT,
|
|
39
|
+
TOOLBAR_ARRANGE_HORIZONALLY, TOOLBAR_ARRANGE_VERTICALLY,
|
|
40
|
+
TOOLBAR_OPEN_PALETTE, TOOLBAR_CLOSE_PALETTE, TOOLBAR_TOGGLE_NOTIFICATION_PANEL,
|
|
41
|
+
TOOLBAR_SHOW_COMMENTS, TOOLBAR_HIDE_COMMENTS,
|
|
42
|
+
TOOLBAR_EXPAND_SUPERNODE_IN_PLACE, TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE,
|
|
43
|
+
TOOLBAR_EXPAND_SUPERNODE_FULL_PAGE, TOOLBAR_SET_NODE_LABEL_EDIT, TOOLBAR_SET_COMMENT_EDIT_MODE }
|
|
39
44
|
from "../common-canvas/constants/canvas-constants.js";
|
|
40
45
|
|
|
41
46
|
class ToolbarActionItem extends React.Component {
|
|
@@ -43,6 +48,20 @@ class ToolbarActionItem extends React.Component {
|
|
|
43
48
|
super(props);
|
|
44
49
|
|
|
45
50
|
this.actionClickHandler = this.actionClickHandler.bind(this);
|
|
51
|
+
this.onMouseEnter = this.onMouseEnter.bind(this);
|
|
52
|
+
this.onMouseLeave = this.onMouseLeave.bind(this);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
onMouseEnter(evt) {
|
|
56
|
+
if (this.props.actionObj.subMenu || this.props.actionObj.subPanel) {
|
|
57
|
+
this.props.subMenuActionHandler(this.props.actionObj.action);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
onMouseLeave(evt) {
|
|
62
|
+
if (this.props.actionObj.subMenu || this.props.actionObj.subPanel) {
|
|
63
|
+
this.props.subMenuActionHandler("");
|
|
64
|
+
}
|
|
46
65
|
}
|
|
47
66
|
|
|
48
67
|
// Returns a default icon, if there is one, for the action passed in.
|
|
@@ -55,6 +74,12 @@ class ToolbarActionItem extends React.Component {
|
|
|
55
74
|
return <StopFilledAlt16 disabled={disabled} />;
|
|
56
75
|
case (TOOLBAR_RUN):
|
|
57
76
|
return <Play16 disabled={disabled} />;
|
|
77
|
+
case (TOOLBAR_EXPAND_SUPERNODE_IN_PLACE):
|
|
78
|
+
return <Maximize16 disabled={disabled} />;
|
|
79
|
+
case (TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE):
|
|
80
|
+
return <Minimize16 disabled={disabled} />;
|
|
81
|
+
case (TOOLBAR_EXPAND_SUPERNODE_FULL_PAGE):
|
|
82
|
+
return <Launch16 disabled={disabled} />;
|
|
58
83
|
case (TOOLBAR_UNDO):
|
|
59
84
|
return <Undo16 disabled={disabled} />;
|
|
60
85
|
case (TOOLBAR_REDO):
|
|
@@ -65,14 +90,21 @@ class ToolbarActionItem extends React.Component {
|
|
|
65
90
|
return <Copy16 disabled={disabled} />;
|
|
66
91
|
case (TOOLBAR_PASTE):
|
|
67
92
|
return <Paste16 disabled={disabled} />;
|
|
93
|
+
case (TOOLBAR_CREATE_COMMENT):
|
|
68
94
|
case (TOOLBAR_CREATE_AUTO_COMMENT):
|
|
69
95
|
return <AddComment16 disabled={disabled} />;
|
|
70
96
|
case (TOOLBAR_SHOW_COMMENTS):
|
|
71
97
|
return <Chat16 disabled={disabled} />;
|
|
72
98
|
case (TOOLBAR_HIDE_COMMENTS):
|
|
73
99
|
return <ChatOff16 disabled={disabled} />;
|
|
100
|
+
case (TOOLBAR_COLOR_BACKGROUND):
|
|
101
|
+
return <ColorPalette16 disabled={disabled} />;
|
|
102
|
+
case (TOOLBAR_DELETE_LINK):
|
|
74
103
|
case (TOOLBAR_DELETE_SELECTED_OBJECTS):
|
|
75
104
|
return <TrashCan16 disabled={disabled} />;
|
|
105
|
+
case (TOOLBAR_SET_COMMENT_EDIT_MODE):
|
|
106
|
+
case (TOOLBAR_SET_NODE_LABEL_EDIT):
|
|
107
|
+
return <Edit16 disabled={disabled} />;
|
|
76
108
|
case (TOOLBAR_ZOOM_IN):
|
|
77
109
|
return <ZoomIn16 disabled={disabled} />;
|
|
78
110
|
case (TOOLBAR_ZOOM_OUT):
|
|
@@ -142,7 +174,9 @@ class ToolbarActionItem extends React.Component {
|
|
|
142
174
|
}
|
|
143
175
|
|
|
144
176
|
actionClickHandler(evt) {
|
|
145
|
-
this.props.
|
|
177
|
+
if (!this.props.actionObj.subMenu && !this.props.actionObj.subPanel) {
|
|
178
|
+
this.props.toolbarActionHandler(this.props.actionObj.action, evt);
|
|
179
|
+
}
|
|
146
180
|
}
|
|
147
181
|
|
|
148
182
|
generateButton(actionObj) {
|
|
@@ -170,12 +204,15 @@ class ToolbarActionItem extends React.Component {
|
|
|
170
204
|
// If no 'kind' is set, use ghost and then override colors using the "default" class in innerDivClassName.
|
|
171
205
|
const kind = actionObj.kind || "ghost";
|
|
172
206
|
|
|
207
|
+
const chevronIcon = actionObj.subMenu || this.props.actionObj.subPanel ? (<ChevronRight16 />) : null;
|
|
208
|
+
|
|
173
209
|
let buttonContent = (
|
|
174
210
|
<div className={itemContentClassName}>
|
|
175
211
|
{labelBefore}
|
|
176
212
|
{icon}
|
|
177
213
|
{labelAfter}
|
|
178
214
|
{textContent}
|
|
215
|
+
{chevronIcon}
|
|
179
216
|
</div>
|
|
180
217
|
);
|
|
181
218
|
|
|
@@ -235,6 +272,31 @@ class ToolbarActionItem extends React.Component {
|
|
|
235
272
|
return false;
|
|
236
273
|
}
|
|
237
274
|
|
|
275
|
+
// Returns a sub-area for a cascading menu item. The sub-area can be either a
|
|
276
|
+
// sub-panel which is a div contaiing whatever the caller passes in within the
|
|
277
|
+
// supPanel field OR a sub-menu which is a list of options which is created
|
|
278
|
+
// from the array of items the caller passes in the subMenu field.
|
|
279
|
+
generateSubArea() {
|
|
280
|
+
if (this.props.displaySubArea) {
|
|
281
|
+
if (this.props.actionObj.subPanel) {
|
|
282
|
+
return (
|
|
283
|
+
<div className={"toolbar-popover-list subpanel"}>
|
|
284
|
+
{this.props.actionObj.subPanel}
|
|
285
|
+
</div>
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
const subMenuItems = this.props.generateToolbarItems(this.props.actionObj.subMenu, true, false);
|
|
289
|
+
|
|
290
|
+
return (
|
|
291
|
+
<div className={"toolbar-popover-list submenu"}>
|
|
292
|
+
{subMenuItems}
|
|
293
|
+
</div>
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
|
|
238
300
|
render() {
|
|
239
301
|
const actionObj = this.props.actionObj;
|
|
240
302
|
const actionName = this.generateActionName();
|
|
@@ -258,9 +320,12 @@ class ToolbarActionItem extends React.Component {
|
|
|
258
320
|
kindAsClass,
|
|
259
321
|
actionName);
|
|
260
322
|
|
|
323
|
+
const subArea = this.generateSubArea();
|
|
324
|
+
|
|
261
325
|
return (
|
|
262
|
-
<div className={itemClassName} data-toolbar-item={isToolbarItem}>
|
|
326
|
+
<div className={itemClassName} data-toolbar-item={isToolbarItem} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>
|
|
263
327
|
{divContent}
|
|
328
|
+
{subArea}
|
|
264
329
|
</div>
|
|
265
330
|
);
|
|
266
331
|
}
|
|
@@ -287,6 +352,8 @@ ToolbarActionItem.propTypes = {
|
|
|
287
352
|
textContent: PropTypes.string,
|
|
288
353
|
isSelected: PropTypes.bool,
|
|
289
354
|
kind: PropTypes.string,
|
|
355
|
+
subMenu: PropTypes.array,
|
|
356
|
+
subPanel: PropTypes.object,
|
|
290
357
|
jsx: PropTypes.object,
|
|
291
358
|
tooltip: PropTypes.oneOfType([
|
|
292
359
|
PropTypes.string,
|
|
@@ -296,7 +363,10 @@ ToolbarActionItem.propTypes = {
|
|
|
296
363
|
}),
|
|
297
364
|
tooltipDirection: PropTypes.oneOf(["top", "bottom"]),
|
|
298
365
|
toolbarActionHandler: PropTypes.func.isRequired,
|
|
366
|
+
subMenuActionHandler: PropTypes.func.isRequired,
|
|
367
|
+
generateToolbarItems: PropTypes.func.isRequired,
|
|
299
368
|
instanceId: PropTypes.number.isRequired,
|
|
369
|
+
displaySubArea: PropTypes.bool,
|
|
300
370
|
overflow: PropTypes.bool,
|
|
301
371
|
onFocus: PropTypes.func,
|
|
302
372
|
size: PropTypes.oneOf(["md", "sm"])
|
|
@@ -31,16 +31,16 @@ class ToolbarOverflowItem extends React.Component {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
render() {
|
|
34
|
-
const menuItems = this.props.showExtendedMenu ? this.props.generateExtensionMenuItems(this.props.index) : [];
|
|
35
|
-
const subMenuClassName = this.props.showExtendedMenu ? "" : "toolbar-popover-list-hide";
|
|
36
|
-
|
|
37
34
|
let overflowMenu = null;
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
if (this.props.showExtendedMenu) {
|
|
36
|
+
const menuItems = this.props.generateExtensionMenuItems(this.props.index);
|
|
37
|
+
if (menuItems.length > 0) {
|
|
38
|
+
overflowMenu = (
|
|
39
|
+
<div className={"toolbar-popover-list"}>
|
|
40
|
+
{menuItems}
|
|
41
|
+
</div>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const className = "toolbar-spacer toolbar-index-" + this.props.index;
|
package/src/toolbar/toolbar.jsx
CHANGED
|
@@ -27,7 +27,8 @@ class Toolbar extends React.Component {
|
|
|
27
27
|
super(props);
|
|
28
28
|
|
|
29
29
|
this.state = {
|
|
30
|
-
showExtendedMenuIndex: -1
|
|
30
|
+
showExtendedMenuIndex: -1,
|
|
31
|
+
subAreaDisplayedForAction: ""
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
this.leftBar = [];
|
|
@@ -37,6 +38,8 @@ class Toolbar extends React.Component {
|
|
|
37
38
|
this.onToolbarResize = this.onToolbarResize.bind(this);
|
|
38
39
|
this.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);
|
|
39
40
|
this.generateExtensionMenuItems = this.generateExtensionMenuItems.bind(this);
|
|
41
|
+
this.generateToolbarItems = this.generateToolbarItems.bind(this);
|
|
42
|
+
this.subMenuActionHandler = this.subMenuActionHandler.bind(this);
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
// When the toolbar is initially opened the tabindex for each element may not
|
|
@@ -173,6 +176,10 @@ class Toolbar extends React.Component {
|
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
|
|
179
|
+
subMenuActionHandler(action) {
|
|
180
|
+
this.setState({ subAreaDisplayedForAction: action });
|
|
181
|
+
}
|
|
182
|
+
|
|
176
183
|
generateToolbarItems(actionDefinitions, overflow, withSpacer) {
|
|
177
184
|
const newItems = [];
|
|
178
185
|
|
|
@@ -199,12 +206,16 @@ class Toolbar extends React.Component {
|
|
|
199
206
|
/>
|
|
200
207
|
);
|
|
201
208
|
} else {
|
|
209
|
+
const displaySubArea = overflow && this.state.subAreaDisplayedForAction === actionObj.action;
|
|
202
210
|
jsx = (
|
|
203
211
|
<ToolbarActionItem
|
|
204
212
|
key={"toolbar-item-key-" + i}
|
|
205
213
|
actionObj={actionObj}
|
|
206
214
|
tooltipDirection={this.props.tooltipDirection}
|
|
207
215
|
toolbarActionHandler={this.props.toolbarActionHandler}
|
|
216
|
+
subMenuActionHandler={this.subMenuActionHandler}
|
|
217
|
+
generateToolbarItems={this.generateToolbarItems}
|
|
218
|
+
displaySubArea={displaySubArea}
|
|
208
219
|
overflow={overflow}
|
|
209
220
|
instanceId={this.props.instanceId}
|
|
210
221
|
onFocus={this.onFocus}
|
package/src/toolbar/toolbar.scss
CHANGED
|
@@ -20,13 +20,14 @@ $toolbar-icon-label-margin: 8px;
|
|
|
20
20
|
$toolbar-icon-size: 16px;
|
|
21
21
|
$toolbar-button-height: 40px;
|
|
22
22
|
$toolbar-button-width: 40px;
|
|
23
|
+
$toolbar-button-sm-height: 32px;
|
|
24
|
+
$toolbar-button-sm-width: 32px;
|
|
23
25
|
$toolbar-divider-width: 1px;
|
|
24
26
|
|
|
25
27
|
.toolbar-div {
|
|
26
28
|
height: $toolbar-button-height;
|
|
27
29
|
width: 100%;
|
|
28
30
|
background-color: $ui-01;
|
|
29
|
-
border-bottom: $toolbar-divider-width solid $ui-04;
|
|
30
31
|
box-sizing: content-box;
|
|
31
32
|
position: relative;
|
|
32
33
|
|
|
@@ -38,19 +39,20 @@ $toolbar-divider-width: 1px;
|
|
|
38
39
|
|
|
39
40
|
/* Small size toolbar used by common-properties */
|
|
40
41
|
&.toolbar-size-small {
|
|
41
|
-
height: $
|
|
42
|
+
height: $toolbar-button-sm-height;
|
|
42
43
|
.toolbar-left-bar {
|
|
43
44
|
padding: 0;
|
|
44
45
|
}
|
|
45
46
|
.toolbar-item button,
|
|
46
47
|
.toolbar-overflow-item > button {
|
|
47
48
|
padding: 0;
|
|
48
|
-
height: $
|
|
49
|
+
height: $toolbar-button-sm-height;
|
|
49
50
|
}
|
|
50
51
|
.toolbar-item-content {
|
|
51
52
|
padding: $spacing-02 $spacing-03;
|
|
52
|
-
height: $
|
|
53
|
+
height: $toolbar-button-sm-height;
|
|
53
54
|
align-items: center;
|
|
55
|
+
min-width: 32px;
|
|
54
56
|
}
|
|
55
57
|
.toolbar-popover-list button {
|
|
56
58
|
padding: 0;
|
|
@@ -149,11 +151,15 @@ $toolbar-divider-width: 1px;
|
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
|
|
152
|
-
.toolbar-overflow-menu-item
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
.toolbar-overflow-menu-item {
|
|
155
|
+
height: $toolbar-button-sm-height;
|
|
156
|
+
|
|
157
|
+
& button {
|
|
158
|
+
width: 100%;
|
|
159
|
+
padding-top: 2px;
|
|
160
|
+
padding-bottom: 2px;
|
|
161
|
+
min-height: 20px;
|
|
162
|
+
}
|
|
157
163
|
}
|
|
158
164
|
|
|
159
165
|
.toolbar-item-content {
|
|
@@ -213,8 +219,14 @@ $toolbar-divider-width: 1px;
|
|
|
213
219
|
}
|
|
214
220
|
}
|
|
215
221
|
|
|
222
|
+
.toolbar-size-small {
|
|
223
|
+
.toolbar-jsx-item {
|
|
224
|
+
height: $toolbar-button-sm-height;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
216
228
|
.toolbar-jsx-item {
|
|
217
|
-
height:
|
|
229
|
+
height: $toolbar-button-height;
|
|
218
230
|
display: inline-flex;
|
|
219
231
|
align-items: center;
|
|
220
232
|
vertical-align: top;
|
|
@@ -258,6 +270,12 @@ $toolbar-divider-width: 1px;
|
|
|
258
270
|
border-bottom: $toolbar-divider-width solid $ui-03;
|
|
259
271
|
}
|
|
260
272
|
|
|
273
|
+
.toolbar-size-small {
|
|
274
|
+
.toolbar-popover-list {
|
|
275
|
+
top: calc(#{$toolbar-button-sm-height} + #{$toolbar-divider-width});
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
261
279
|
.toolbar-popover-list {
|
|
262
280
|
width: 200px;
|
|
263
281
|
z-index: 1;
|
|
@@ -268,8 +286,18 @@ $toolbar-divider-width: 1px;
|
|
|
268
286
|
padding: 0;
|
|
269
287
|
border: $toolbar-divider-width solid $ui-03;
|
|
270
288
|
background-color: $ui-01;
|
|
271
|
-
}
|
|
272
289
|
|
|
273
|
-
.
|
|
274
|
-
|
|
290
|
+
& .submenu {
|
|
291
|
+
position: relative;
|
|
292
|
+
left: 198px; // 200px minus 2px so no gap is left between menu and submenu
|
|
293
|
+
top: -34px; // 32px minus 2px
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
& .subpanel {
|
|
297
|
+
position: relative;
|
|
298
|
+
left: 198px; // 200px minus 2px so no gap is left between menu and submenu
|
|
299
|
+
top: -34px; // 32px minus 2px
|
|
300
|
+
width: fit-content;
|
|
301
|
+
}
|
|
302
|
+
|
|
275
303
|
}
|