@elyra/canvas 12.42.0 → 12.43.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/{canvas-constants-13b58448.js → canvas-constants-acb99f64.js} +2 -2
- package/dist/{canvas-constants-13b58448.js.map → canvas-constants-acb99f64.js.map} +1 -1
- package/dist/{canvas-controller-cb1d7420.js → canvas-controller-6726b9ac.js} +2 -2
- package/dist/{canvas-controller-a53943e4.js.map → canvas-controller-6726b9ac.js.map} +1 -1
- package/dist/{canvas-controller-a53943e4.js → canvas-controller-6c6bc68f.js} +2 -2
- package/dist/{canvas-controller-cb1d7420.js.map → canvas-controller-6c6bc68f.js.map} +1 -1
- package/dist/common-canvas-9374ef35.js +2 -0
- package/dist/common-canvas-9374ef35.js.map +1 -0
- package/dist/common-canvas-a6435bdb.js +2 -0
- package/dist/common-canvas-a6435bdb.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-08707efe.js +2 -0
- package/dist/common-properties-08707efe.js.map +1 -0
- package/dist/common-properties-acd55e94.js +2 -0
- package/dist/common-properties-acd55e94.js.map +1 -0
- package/dist/context-menu-wrapper-271eb2df.js +2 -0
- package/dist/context-menu-wrapper-271eb2df.js.map +1 -0
- package/dist/context-menu-wrapper-e4a7ab4d.js +2 -0
- package/dist/context-menu-wrapper-e4a7ab4d.js.map +1 -0
- package/dist/{datarecord-metadata-v3-schema-98ec66e9.js → datarecord-metadata-v3-schema-03427296.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-98ec66e9.js.map → datarecord-metadata-v3-schema-03427296.js.map} +1 -1
- package/dist/{flexible-table-7c7de0f9.js → flexible-table-107ca2fd.js} +1 -1
- package/dist/{flexible-table-7c7de0f9.js.map → flexible-table-107ca2fd.js.map} +1 -1
- package/dist/{flexible-table-35e9922a.js → flexible-table-5cc1ad6b.js} +1 -1
- package/dist/{flexible-table-35e9922a.js.map → flexible-table-5cc1ad6b.js.map} +1 -1
- package/dist/{icon-9edff40c.js → icon-2caf035c.js} +2 -2
- package/dist/{icon-9edff40c.js.map → icon-2caf035c.js.map} +1 -1
- package/dist/{index-94fec521.js → index-5dac3da8.js} +2 -2
- package/dist/{index-94fec521.js.map → index-5dac3da8.js.map} +1 -1
- package/dist/{index-e2f8a935.js → index-fee06179.js} +2 -2
- package/dist/{index-e2f8a935.js.map → index-fee06179.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.js +1 -1
- package/dist/lib/properties/clem.es.js +2 -0
- package/dist/lib/properties/clem.es.js.map +1 -0
- package/dist/lib/properties/clem.js +2 -0
- package/dist/lib/properties/clem.js.map +1 -0
- 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/getPythonHints.es.js +2 -0
- package/dist/lib/properties/getPythonHints.es.js.map +1 -0
- package/dist/lib/properties/getPythonHints.js +2 -0
- package/dist/lib/properties/getPythonHints.js.map +1 -0
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/lib/tooltip.es.js +1 -1
- package/dist/lib/tooltip.es.js.map +1 -1
- package/dist/lib/tooltip.js +1 -1
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-ccc1d600.js +2 -0
- package/dist/toolbar-ccc1d600.js.map +1 -0
- package/dist/toolbar-e4445bf8.js +2 -0
- package/dist/toolbar-e4445bf8.js.map +1 -0
- package/package.json +3 -3
- package/rollup.config.js +2 -0
- package/src/color-picker/color-picker.jsx +5 -1
- package/src/common-canvas/canvas-controller.js +38 -0
- package/src/common-canvas/cc-central-items.jsx +0 -4
- package/src/common-canvas/cc-toolbar.jsx +26 -9
- package/src/common-canvas/common-canvas.scss +3 -3
- package/src/common-canvas/svg-canvas-d3.scss +3 -2
- package/src/common-canvas/svg-canvas-renderer.js +44 -21
- package/src/common-properties/components/field-picker/field-picker.jsx +4 -0
- package/src/common-properties/controls/checkbox/checkbox.scss +0 -1
- package/src/common-properties/controls/expression/expression.jsx +3 -5
- package/src/common-properties/controls/expression/languages/python-hint.js +18 -30
- package/src/common-properties/controls/expression/languages/r-hint.js +16 -8
- package/src/common-properties/index.js +4 -2
- package/src/index.js +2 -2
- package/src/notification-panel/notification-panel.jsx +82 -56
- package/src/notification-panel/notification-panel.scss +42 -40
- package/src/object-model/object-model.js +19 -5
- package/src/object-model/redux/reducers/canvasinfo.js +7 -11
- package/src/object-model/redux/reducers/canvastoolbar.js +5 -6
- package/src/palette/palette-dialog-topbar.jsx +27 -38
- package/src/palette/palette-flyout-content-category.jsx +25 -6
- package/src/palette/palette.scss +8 -40
- package/src/toolbar/index.js +18 -0
- package/src/toolbar/toolbar-action-item.jsx +40 -10
- package/src/toolbar/toolbar-button-item.jsx +46 -19
- package/src/toolbar/toolbar-divider-item.jsx +1 -1
- package/src/toolbar/toolbar-overflow-item.jsx +4 -2
- package/src/toolbar/toolbar-sub-menu-item.jsx +6 -5
- package/src/toolbar/toolbar-sub-menu.jsx +4 -6
- package/src/toolbar/toolbar-sub-panel.jsx +31 -18
- package/src/toolbar/toolbar-sub-utils.js +21 -12
- package/src/toolbar/toolbar.jsx +79 -25
- package/src/toolbar/toolbar.scss +47 -47
- package/src/tooltip/tooltip.jsx +56 -10
- package/stats.html +1 -1
- package/assets/images/palette/close_32.svg +0 -1
- package/assets/images/palette/palette_close.svg +0 -4
- package/assets/images/palette/palette_grid_deselected.svg +0 -2
- package/assets/images/palette/palette_grid_hover.svg +0 -2
- package/assets/images/palette/palette_grid_selected.svg +0 -2
- package/assets/images/palette/palette_list_deselected.svg +0 -1
- package/assets/images/palette/palette_list_hover.svg +0 -1
- package/assets/images/palette/palette_list_selected.svg +0 -1
- package/assets/images/palette/palette_open.svg +0 -4
- package/assets/images/zoom_to_fit.svg +0 -8
- package/dist/common-canvas-42027a3f.js +0 -2
- package/dist/common-canvas-42027a3f.js.map +0 -1
- package/dist/common-canvas-f758ff42.js +0 -2
- package/dist/common-canvas-f758ff42.js.map +0 -1
- package/dist/common-properties-2e1b7ec7.js +0 -2
- package/dist/common-properties-2e1b7ec7.js.map +0 -1
- package/dist/common-properties-5e8870e3.js +0 -2
- package/dist/common-properties-5e8870e3.js.map +0 -1
- package/dist/context-menu-wrapper-49f9a1af.js +0 -2
- package/dist/context-menu-wrapper-49f9a1af.js.map +0 -1
- package/dist/context-menu-wrapper-5d6a399f.js +0 -2
- package/dist/context-menu-wrapper-5d6a399f.js.map +0 -1
- package/dist/toolbar-6acda0a2.js +0 -2
- package/dist/toolbar-6acda0a2.js.map +0 -1
- package/dist/toolbar-d5647da2.js +0 -2
- package/dist/toolbar-d5647da2.js.map +0 -1
- package/src/palette/palette-dialog-topbar-three-way-icon.jsx +0 -82
package/src/toolbar/toolbar.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017-
|
|
2
|
+
* Copyright 2017-2024 Elyra Authors
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -30,16 +30,16 @@ $toolbar-divider-width: 1px;
|
|
|
30
30
|
background-color: $ui-01;
|
|
31
31
|
box-sizing: content-box;
|
|
32
32
|
position: relative;
|
|
33
|
-
|
|
34
33
|
display: flex;
|
|
35
34
|
justify-content: space-between;
|
|
35
|
+
outline: none; // Turn outline off and use carbon style for focus below.
|
|
36
36
|
|
|
37
37
|
/* Prevent elements from being dragged onto canvas */
|
|
38
38
|
-webkit-user-drag: none;
|
|
39
39
|
|
|
40
40
|
&:focus {
|
|
41
|
-
border-color: $interactive-
|
|
42
|
-
box-shadow: inset 0 0 0
|
|
41
|
+
border-color: $interactive-03;
|
|
42
|
+
box-shadow: inset 0 0 0 2px $interactive-03;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/* Small size toolbar */
|
|
@@ -106,6 +106,7 @@ $toolbar-divider-width: 1px;
|
|
|
106
106
|
& button {
|
|
107
107
|
padding: 0;
|
|
108
108
|
min-height: 30px;
|
|
109
|
+
height: $toolbar-button-height;
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
&.default,
|
|
@@ -201,10 +202,15 @@ $toolbar-divider-width: 1px;
|
|
|
201
202
|
&.disabled.default {
|
|
202
203
|
color: $disabled-02;
|
|
203
204
|
fill: $disabled-02; // For custom svg images
|
|
205
|
+
& .toolbar-tick-mark {
|
|
206
|
+
fill: $disabled-02;
|
|
207
|
+
}
|
|
208
|
+
& .toolbar-text-content {
|
|
209
|
+
stroke: $disabled-02;
|
|
210
|
+
}
|
|
204
211
|
}
|
|
205
212
|
|
|
206
213
|
.toolbar-icon {
|
|
207
|
-
height: $toolbar-icon-size;
|
|
208
214
|
& svg {
|
|
209
215
|
height: $toolbar-icon-size;
|
|
210
216
|
width: $toolbar-icon-size;
|
|
@@ -212,52 +218,52 @@ $toolbar-divider-width: 1px;
|
|
|
212
218
|
-webkit-user-drag: none;
|
|
213
219
|
}
|
|
214
220
|
}
|
|
215
|
-
}
|
|
216
221
|
|
|
217
|
-
.toolbar-text-content {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
222
|
+
.toolbar-text-content {
|
|
223
|
+
position: absolute;
|
|
224
|
+
top: 14px;
|
|
225
|
+
font-size: 9px;
|
|
226
|
+
line-height: 9px;
|
|
227
|
+
color: $icon-01;
|
|
228
|
+
}
|
|
224
229
|
|
|
225
|
-
.toolbar-icon-label {
|
|
226
|
-
|
|
230
|
+
.toolbar-icon-label {
|
|
231
|
+
line-height: 16px;
|
|
227
232
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
233
|
+
&.before {
|
|
234
|
+
padding-right: 8px;
|
|
235
|
+
}
|
|
231
236
|
|
|
232
|
-
|
|
233
|
-
|
|
237
|
+
&.after {
|
|
238
|
+
padding-left: 8px;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
&.overflow {
|
|
242
|
+
padding-left: 8px;
|
|
243
|
+
word-break: break-word;
|
|
244
|
+
hyphens: auto;
|
|
245
|
+
}
|
|
234
246
|
}
|
|
235
247
|
|
|
236
|
-
|
|
248
|
+
.toolbar-up-down-chevron {
|
|
237
249
|
padding-left: 8px;
|
|
238
|
-
|
|
239
|
-
|
|
250
|
+
height: 16px;
|
|
251
|
+
pointer-events: none;
|
|
240
252
|
}
|
|
241
|
-
}
|
|
242
253
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
position: absolute;
|
|
252
|
-
bottom: 0;
|
|
253
|
-
right: 0;
|
|
254
|
-
height: $toolbar-button-height;
|
|
255
|
-
width: $toolbar-button-height;
|
|
256
|
-
pointer-events: none;
|
|
257
|
-
}
|
|
254
|
+
// Triangular tick mark in bottom right corner of an expandable icon
|
|
255
|
+
.toolbar-tick-svg {
|
|
256
|
+
position: absolute;
|
|
257
|
+
bottom: 0;
|
|
258
|
+
right: 0;
|
|
259
|
+
height: $toolbar-button-height;
|
|
260
|
+
width: $toolbar-button-height;
|
|
261
|
+
pointer-events: none;
|
|
258
262
|
|
|
259
|
-
.toolbar-tick-mark {
|
|
260
|
-
|
|
263
|
+
& .toolbar-tick-mark {
|
|
264
|
+
fill: $icon-01;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
261
267
|
}
|
|
262
268
|
|
|
263
269
|
.toolbar-jsx-item {
|
|
@@ -285,14 +291,8 @@ $toolbar-divider-width: 1px;
|
|
|
285
291
|
&.ghost {
|
|
286
292
|
& button {
|
|
287
293
|
background-color: $ui-03;
|
|
288
|
-
border-color: transparent;
|
|
289
|
-
box-shadow: none;
|
|
290
294
|
border-bottom: 2px solid $interactive-01;
|
|
291
295
|
}
|
|
292
|
-
& button:focus {
|
|
293
|
-
border-color: $interactive-01;
|
|
294
|
-
box-shadow: inset 0 0 0 1px $interactive-01, inset 0 0 0 2px $ui-background;
|
|
295
|
-
}
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
|
package/src/tooltip/tooltip.jsx
CHANGED
|
@@ -79,6 +79,13 @@ class ToolTip extends React.Component {
|
|
|
79
79
|
if (tooltipTrigger && tooltip) {
|
|
80
80
|
this.updateTooltipLayout(tooltip, tooltipTrigger, tooltip.getAttribute("direction"));
|
|
81
81
|
}
|
|
82
|
+
|
|
83
|
+
const linkElement = this.targetRef.querySelector("a");
|
|
84
|
+
|
|
85
|
+
// Focus on link when tooltip with link is opened
|
|
86
|
+
if (linkElement) {
|
|
87
|
+
linkElement.focus();
|
|
88
|
+
}
|
|
82
89
|
}
|
|
83
90
|
}
|
|
84
91
|
}
|
|
@@ -87,6 +94,10 @@ class ToolTip extends React.Component {
|
|
|
87
94
|
if (evt.key === "Tab") {
|
|
88
95
|
this.tabKeyPressed = true;
|
|
89
96
|
}
|
|
97
|
+
if (evt.key === "Escape") {
|
|
98
|
+
this.triggerRef.focus();
|
|
99
|
+
this.setTooltipVisible(false);
|
|
100
|
+
}
|
|
90
101
|
}
|
|
91
102
|
|
|
92
103
|
getStyleValue(value) {
|
|
@@ -320,6 +331,9 @@ class ToolTip extends React.Component {
|
|
|
320
331
|
// To prevent this default behavior, stopPropagation and preventDefault is used.
|
|
321
332
|
evt.stopPropagation();
|
|
322
333
|
evt.preventDefault();
|
|
334
|
+
|
|
335
|
+
// When tooltip with link is closed and another tooltip is opened newly opened tooltip should have focus.
|
|
336
|
+
this.triggerRef.focus();
|
|
323
337
|
if (this.state.isTooltipVisible) {
|
|
324
338
|
// Tooltip is visible and user clicks on trigger element again, hide tooltip
|
|
325
339
|
this.setTooltipVisible(false);
|
|
@@ -405,22 +419,53 @@ class ToolTip extends React.Component {
|
|
|
405
419
|
if (this.props.className) {
|
|
406
420
|
tipClass += " " + this.props.className;
|
|
407
421
|
}
|
|
408
|
-
|
|
422
|
+
let linkClicked = false;
|
|
409
423
|
let link = null;
|
|
410
424
|
if (this.state.isTooltipVisible && this.props.tooltipLinkHandler && this.props.link) {
|
|
411
425
|
const linkInformation = this.props.tooltipLinkHandler(this.props.link);
|
|
412
426
|
// Verify tooltipLinkHandler returns object in correct format
|
|
413
427
|
if (typeof linkInformation === "object" && linkInformation.label && linkInformation.url) {
|
|
414
|
-
link = (<
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
428
|
+
link = (<div
|
|
429
|
+
ref={(ref) => (this.linkRef = ref)}
|
|
430
|
+
onKeyDown={(evt) => {
|
|
431
|
+
evt.stopPropagation();
|
|
432
|
+
evt.preventDefault();
|
|
433
|
+
|
|
434
|
+
// When 'Esc' is pressed shift the focus to tooltip icon so that user can navigate following elements.
|
|
435
|
+
if (evt.key === "Escape") {
|
|
436
|
+
this.triggerRef.focus();
|
|
437
|
+
this.setTooltipVisible(false);
|
|
438
|
+
} else if (evt.key === "Enter") { // Open active/highlighted link when Enter or Return is clicked.
|
|
439
|
+
const focusedElement = this.linkRef.children[0];
|
|
440
|
+
if (focusedElement) {
|
|
441
|
+
window.open(focusedElement, "_blank");
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}}
|
|
445
|
+
onBlur={() => {
|
|
446
|
+
if (linkClicked) { // Keep tooltip open when link is clicked
|
|
447
|
+
this.setTooltipVisible(true);
|
|
448
|
+
} else { // Close the tooltip and shift focus to tooltip icon
|
|
449
|
+
this.triggerRef.focus();
|
|
450
|
+
this.setTooltipVisible(false);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
onClick={() => {
|
|
455
|
+
linkClicked = true;
|
|
456
|
+
}}
|
|
421
457
|
>
|
|
422
|
-
|
|
423
|
-
|
|
458
|
+
<Link
|
|
459
|
+
className="tooltip-link"
|
|
460
|
+
id={this.props.link.id}
|
|
461
|
+
href={linkInformation.url}
|
|
462
|
+
target="_blank"
|
|
463
|
+
rel="noopener"
|
|
464
|
+
visited={false}
|
|
465
|
+
>
|
|
466
|
+
{linkInformation.label}
|
|
467
|
+
</Link>
|
|
468
|
+
</div>);
|
|
424
469
|
}
|
|
425
470
|
}
|
|
426
471
|
|
|
@@ -435,6 +480,7 @@ class ToolTip extends React.Component {
|
|
|
435
480
|
className={tipClass}
|
|
436
481
|
aria-hidden={!this.state.isTooltipVisible}
|
|
437
482
|
direction={this.props.direction}
|
|
483
|
+
ref={(ref) => (this.targetRef = ref)}
|
|
438
484
|
>
|
|
439
485
|
<svg className="tipArrow" x="0px" y="0px" viewBox="0 0 9.1 16.1">
|
|
440
486
|
<polyline points="9.1,15.7 1.4,8.1 9.1,0.5" />
|