@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.
Files changed (128) hide show
  1. package/dist/{canvas-constants-13b58448.js → canvas-constants-acb99f64.js} +2 -2
  2. package/dist/{canvas-constants-13b58448.js.map → canvas-constants-acb99f64.js.map} +1 -1
  3. package/dist/{canvas-controller-cb1d7420.js → canvas-controller-6726b9ac.js} +2 -2
  4. package/dist/{canvas-controller-a53943e4.js.map → canvas-controller-6726b9ac.js.map} +1 -1
  5. package/dist/{canvas-controller-a53943e4.js → canvas-controller-6c6bc68f.js} +2 -2
  6. package/dist/{canvas-controller-cb1d7420.js.map → canvas-controller-6c6bc68f.js.map} +1 -1
  7. package/dist/common-canvas-9374ef35.js +2 -0
  8. package/dist/common-canvas-9374ef35.js.map +1 -0
  9. package/dist/common-canvas-a6435bdb.js +2 -0
  10. package/dist/common-canvas-a6435bdb.js.map +1 -0
  11. package/dist/common-canvas.es.js +1 -1
  12. package/dist/common-canvas.es.js.map +1 -1
  13. package/dist/common-canvas.js +1 -1
  14. package/dist/common-canvas.js.map +1 -1
  15. package/dist/common-properties-08707efe.js +2 -0
  16. package/dist/common-properties-08707efe.js.map +1 -0
  17. package/dist/common-properties-acd55e94.js +2 -0
  18. package/dist/common-properties-acd55e94.js.map +1 -0
  19. package/dist/context-menu-wrapper-271eb2df.js +2 -0
  20. package/dist/context-menu-wrapper-271eb2df.js.map +1 -0
  21. package/dist/context-menu-wrapper-e4a7ab4d.js +2 -0
  22. package/dist/context-menu-wrapper-e4a7ab4d.js.map +1 -0
  23. package/dist/{datarecord-metadata-v3-schema-98ec66e9.js → datarecord-metadata-v3-schema-03427296.js} +2 -2
  24. package/dist/{datarecord-metadata-v3-schema-98ec66e9.js.map → datarecord-metadata-v3-schema-03427296.js.map} +1 -1
  25. package/dist/{flexible-table-7c7de0f9.js → flexible-table-107ca2fd.js} +1 -1
  26. package/dist/{flexible-table-7c7de0f9.js.map → flexible-table-107ca2fd.js.map} +1 -1
  27. package/dist/{flexible-table-35e9922a.js → flexible-table-5cc1ad6b.js} +1 -1
  28. package/dist/{flexible-table-35e9922a.js.map → flexible-table-5cc1ad6b.js.map} +1 -1
  29. package/dist/{icon-9edff40c.js → icon-2caf035c.js} +2 -2
  30. package/dist/{icon-9edff40c.js.map → icon-2caf035c.js.map} +1 -1
  31. package/dist/{index-94fec521.js → index-5dac3da8.js} +2 -2
  32. package/dist/{index-94fec521.js.map → index-5dac3da8.js.map} +1 -1
  33. package/dist/{index-e2f8a935.js → index-fee06179.js} +2 -2
  34. package/dist/{index-e2f8a935.js.map → index-fee06179.js.map} +1 -1
  35. package/dist/lib/canvas-controller.es.js +1 -1
  36. package/dist/lib/canvas-controller.js +1 -1
  37. package/dist/lib/canvas.es.js +1 -1
  38. package/dist/lib/canvas.js +1 -1
  39. package/dist/lib/context-menu.es.js +1 -1
  40. package/dist/lib/context-menu.js +1 -1
  41. package/dist/lib/properties/clem.es.js +2 -0
  42. package/dist/lib/properties/clem.es.js.map +1 -0
  43. package/dist/lib/properties/clem.js +2 -0
  44. package/dist/lib/properties/clem.js.map +1 -0
  45. package/dist/lib/properties/field-picker.es.js +1 -1
  46. package/dist/lib/properties/field-picker.js +1 -1
  47. package/dist/lib/properties/flexible-table.es.js +1 -1
  48. package/dist/lib/properties/flexible-table.js +1 -1
  49. package/dist/lib/properties/getPythonHints.es.js +2 -0
  50. package/dist/lib/properties/getPythonHints.es.js.map +1 -0
  51. package/dist/lib/properties/getPythonHints.js +2 -0
  52. package/dist/lib/properties/getPythonHints.js.map +1 -0
  53. package/dist/lib/properties.es.js +1 -1
  54. package/dist/lib/properties.js +1 -1
  55. package/dist/lib/tooltip.es.js +1 -1
  56. package/dist/lib/tooltip.es.js.map +1 -1
  57. package/dist/lib/tooltip.js +1 -1
  58. package/dist/lib/tooltip.js.map +1 -1
  59. package/dist/styles/common-canvas.min.css +1 -1
  60. package/dist/styles/common-canvas.min.css.map +1 -1
  61. package/dist/toolbar-ccc1d600.js +2 -0
  62. package/dist/toolbar-ccc1d600.js.map +1 -0
  63. package/dist/toolbar-e4445bf8.js +2 -0
  64. package/dist/toolbar-e4445bf8.js.map +1 -0
  65. package/package.json +3 -3
  66. package/rollup.config.js +2 -0
  67. package/src/color-picker/color-picker.jsx +5 -1
  68. package/src/common-canvas/canvas-controller.js +38 -0
  69. package/src/common-canvas/cc-central-items.jsx +0 -4
  70. package/src/common-canvas/cc-toolbar.jsx +26 -9
  71. package/src/common-canvas/common-canvas.scss +3 -3
  72. package/src/common-canvas/svg-canvas-d3.scss +3 -2
  73. package/src/common-canvas/svg-canvas-renderer.js +44 -21
  74. package/src/common-properties/components/field-picker/field-picker.jsx +4 -0
  75. package/src/common-properties/controls/checkbox/checkbox.scss +0 -1
  76. package/src/common-properties/controls/expression/expression.jsx +3 -5
  77. package/src/common-properties/controls/expression/languages/python-hint.js +18 -30
  78. package/src/common-properties/controls/expression/languages/r-hint.js +16 -8
  79. package/src/common-properties/index.js +4 -2
  80. package/src/index.js +2 -2
  81. package/src/notification-panel/notification-panel.jsx +82 -56
  82. package/src/notification-panel/notification-panel.scss +42 -40
  83. package/src/object-model/object-model.js +19 -5
  84. package/src/object-model/redux/reducers/canvasinfo.js +7 -11
  85. package/src/object-model/redux/reducers/canvastoolbar.js +5 -6
  86. package/src/palette/palette-dialog-topbar.jsx +27 -38
  87. package/src/palette/palette-flyout-content-category.jsx +25 -6
  88. package/src/palette/palette.scss +8 -40
  89. package/src/toolbar/index.js +18 -0
  90. package/src/toolbar/toolbar-action-item.jsx +40 -10
  91. package/src/toolbar/toolbar-button-item.jsx +46 -19
  92. package/src/toolbar/toolbar-divider-item.jsx +1 -1
  93. package/src/toolbar/toolbar-overflow-item.jsx +4 -2
  94. package/src/toolbar/toolbar-sub-menu-item.jsx +6 -5
  95. package/src/toolbar/toolbar-sub-menu.jsx +4 -6
  96. package/src/toolbar/toolbar-sub-panel.jsx +31 -18
  97. package/src/toolbar/toolbar-sub-utils.js +21 -12
  98. package/src/toolbar/toolbar.jsx +79 -25
  99. package/src/toolbar/toolbar.scss +47 -47
  100. package/src/tooltip/tooltip.jsx +56 -10
  101. package/stats.html +1 -1
  102. package/assets/images/palette/close_32.svg +0 -1
  103. package/assets/images/palette/palette_close.svg +0 -4
  104. package/assets/images/palette/palette_grid_deselected.svg +0 -2
  105. package/assets/images/palette/palette_grid_hover.svg +0 -2
  106. package/assets/images/palette/palette_grid_selected.svg +0 -2
  107. package/assets/images/palette/palette_list_deselected.svg +0 -1
  108. package/assets/images/palette/palette_list_hover.svg +0 -1
  109. package/assets/images/palette/palette_list_selected.svg +0 -1
  110. package/assets/images/palette/palette_open.svg +0 -4
  111. package/assets/images/zoom_to_fit.svg +0 -8
  112. package/dist/common-canvas-42027a3f.js +0 -2
  113. package/dist/common-canvas-42027a3f.js.map +0 -1
  114. package/dist/common-canvas-f758ff42.js +0 -2
  115. package/dist/common-canvas-f758ff42.js.map +0 -1
  116. package/dist/common-properties-2e1b7ec7.js +0 -2
  117. package/dist/common-properties-2e1b7ec7.js.map +0 -1
  118. package/dist/common-properties-5e8870e3.js +0 -2
  119. package/dist/common-properties-5e8870e3.js.map +0 -1
  120. package/dist/context-menu-wrapper-49f9a1af.js +0 -2
  121. package/dist/context-menu-wrapper-49f9a1af.js.map +0 -1
  122. package/dist/context-menu-wrapper-5d6a399f.js +0 -2
  123. package/dist/context-menu-wrapper-5d6a399f.js.map +0 -1
  124. package/dist/toolbar-6acda0a2.js +0 -2
  125. package/dist/toolbar-6acda0a2.js.map +0 -1
  126. package/dist/toolbar-d5647da2.js +0 -2
  127. package/dist/toolbar-d5647da2.js.map +0 -1
  128. package/src/palette/palette-dialog-topbar-three-way-icon.jsx +0 -82
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2017-2023 Elyra Authors
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-01;
42
- box-shadow: inset 0 0 0 1px $interactive-01, inset 0 0 0 2px $ui-background;
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
- position: absolute;
219
- top: 14px;
220
- font-size: 9px;
221
- line-height: 9px;
222
- color: $icon-01;
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
- line-height: 16px;
230
+ .toolbar-icon-label {
231
+ line-height: 16px;
227
232
 
228
- &.before {
229
- padding-right: 8px;
230
- }
233
+ &.before {
234
+ padding-right: 8px;
235
+ }
231
236
 
232
- &.after {
233
- padding-left: 8px;
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
- &.overflow {
248
+ .toolbar-up-down-chevron {
237
249
  padding-left: 8px;
238
- word-break: break-word;
239
- hyphens: auto;
250
+ height: 16px;
251
+ pointer-events: none;
240
252
  }
241
- }
242
253
 
243
- .toolbar-up-down-chevron {
244
- padding-left: 8px;
245
- height: 16px;
246
- pointer-events: none;
247
- }
248
-
249
- // Triangular tick mark in bottom right corner of an expandable icon
250
- .toolbar-tick-svg {
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
- fill: $interactive-02;
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
 
@@ -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 = (<Link
415
- className="tooltip-link"
416
- id={this.props.link.id}
417
- href={linkInformation.url}
418
- target="_blank"
419
- rel="noopener"
420
- visited={false}
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
- {linkInformation.label}
423
- </Link>);
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" />