@elyra/canvas 12.23.1 → 12.24.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 (195) hide show
  1. package/dist/canvas-constants-07dbe4b7.js +2 -0
  2. package/dist/{canvas-constants-ab55d0fd.js.map → canvas-constants-07dbe4b7.js.map} +1 -1
  3. package/dist/canvas-constants-ba465147.js +2 -0
  4. package/dist/canvas-constants-ba465147.js.map +1 -0
  5. package/dist/canvas-controller-60ed1f25.js +2 -0
  6. package/dist/canvas-controller-60ed1f25.js.map +1 -0
  7. package/dist/canvas-controller-6239cacc.js +2 -0
  8. package/dist/canvas-controller-6239cacc.js.map +1 -0
  9. package/dist/{canvas-logger-fa8cef5b.js → canvas-logger-27d3180d.js} +2 -2
  10. package/dist/{canvas-logger-fa8cef5b.js.map → canvas-logger-27d3180d.js.map} +1 -1
  11. package/dist/{canvas-logger-3459dfc2.js → canvas-logger-bb537fb3.js} +2 -2
  12. package/dist/{canvas-logger-3459dfc2.js.map → canvas-logger-bb537fb3.js.map} +1 -1
  13. package/dist/common-canvas-4ae99af6.js +2 -0
  14. package/dist/common-canvas-4ae99af6.js.map +1 -0
  15. package/dist/common-canvas-86633e44.js +2 -0
  16. package/dist/common-canvas-86633e44.js.map +1 -0
  17. package/dist/common-canvas.es.js +1 -1
  18. package/dist/common-canvas.js +1 -1
  19. package/dist/common-properties-2bc0b14a.js +2 -0
  20. package/dist/common-properties-2bc0b14a.js.map +1 -0
  21. package/dist/common-properties-56bf68a6.js +2 -0
  22. package/dist/common-properties-56bf68a6.js.map +1 -0
  23. package/dist/createClass-826941b3.js +2 -0
  24. package/dist/createClass-826941b3.js.map +1 -0
  25. package/dist/createClass-be661622.js +2 -0
  26. package/dist/createClass-be661622.js.map +1 -0
  27. package/dist/{datarecord-metadata-v3-schema-03db5d5d.js → datarecord-metadata-v3-schema-3323a91e.js} +2 -2
  28. package/dist/{datarecord-metadata-v3-schema-03db5d5d.js.map → datarecord-metadata-v3-schema-3323a91e.js.map} +1 -1
  29. package/dist/{datarecord-metadata-v3-schema-07d7682c.js → datarecord-metadata-v3-schema-93ec5562.js} +2 -2
  30. package/dist/{datarecord-metadata-v3-schema-07d7682c.js.map → datarecord-metadata-v3-schema-93ec5562.js.map} +1 -1
  31. package/dist/en-7201b548.js +2 -0
  32. package/dist/{en-8647c347.js.map → en-7201b548.js.map} +1 -1
  33. package/dist/en-a08356c8.js +2 -0
  34. package/dist/{en-7a0f1db1.js.map → en-a08356c8.js.map} +1 -1
  35. package/dist/extends-11efb86b.js +7 -0
  36. package/dist/extends-11efb86b.js.map +1 -0
  37. package/dist/extends-bb395e42.js +7 -0
  38. package/dist/extends-bb395e42.js.map +1 -0
  39. package/dist/flexible-table-989859ec.js +2 -0
  40. package/dist/flexible-table-989859ec.js.map +1 -0
  41. package/dist/flexible-table-d51a7d72.js +2 -0
  42. package/dist/flexible-table-d51a7d72.js.map +1 -0
  43. package/dist/getPrototypeOf-1e698126.js +2 -0
  44. package/dist/getPrototypeOf-1e698126.js.map +1 -0
  45. package/dist/getPrototypeOf-3751add9.js +2 -0
  46. package/dist/getPrototypeOf-3751add9.js.map +1 -0
  47. package/dist/icon-037ad6d1.js +2 -0
  48. package/dist/{icon-816af0e7.js.map → icon-037ad6d1.js.map} +1 -1
  49. package/dist/icon-b619470c.js +2 -0
  50. package/dist/{icon-2c16236a.js.map → icon-b619470c.js.map} +1 -1
  51. package/dist/{index-2f6be19d.js → index-46a80c08.js} +2 -2
  52. package/dist/{index-2f6be19d.js.map → index-46a80c08.js.map} +1 -1
  53. package/dist/index-b527a82d.js +2 -0
  54. package/dist/{index-6f739fa1.js.map → index-b527a82d.js.map} +1 -1
  55. package/dist/isArrayLikeObject-a9c7973b.js +1 -1
  56. package/dist/isArrayLikeObject-a9c7973b.js.map +1 -1
  57. package/dist/isArrayLikeObject-f3b27f64.js +1 -1
  58. package/dist/isArrayLikeObject-f3b27f64.js.map +1 -1
  59. package/dist/lib/canvas-controller.es.js +1 -1
  60. package/dist/lib/canvas-controller.js +1 -1
  61. package/dist/lib/canvas.es.js +1 -1
  62. package/dist/lib/canvas.js +1 -1
  63. package/dist/lib/command-stack.es.js +1 -1
  64. package/dist/lib/command-stack.js +1 -1
  65. package/dist/lib/context-menu.es.js +1 -1
  66. package/dist/lib/context-menu.js +1 -1
  67. package/dist/lib/properties/field-picker.es.js +1 -1
  68. package/dist/lib/properties/field-picker.js +1 -1
  69. package/dist/lib/properties/flexible-table.es.js +1 -1
  70. package/dist/lib/properties/flexible-table.js +1 -1
  71. package/dist/lib/properties.es.js +1 -1
  72. package/dist/lib/properties.js +1 -1
  73. package/dist/lib/tooltip.es.js +1 -1
  74. package/dist/lib/tooltip.js +1 -1
  75. package/dist/styles/common-canvas.min.css +1 -1
  76. package/dist/styles/common-canvas.min.css.map +1 -1
  77. package/dist/toolbar-3f93ec4b.js +2 -0
  78. package/dist/toolbar-3f93ec4b.js.map +1 -0
  79. package/dist/toolbar-e4c551ae.js +2 -0
  80. package/dist/toolbar-e4c551ae.js.map +1 -0
  81. package/locales/command-actions/locales/en.json +1 -1
  82. package/locales/command-actions/locales/eo.json +41 -41
  83. package/locales/common-canvas/locales/en.json +1 -0
  84. package/locales/common-canvas/locales/eo.json +1 -0
  85. package/locales/common-properties/locales/de.json +10 -1
  86. package/locales/common-properties/locales/en.json +4 -1
  87. package/locales/common-properties/locales/eo.json +23 -18
  88. package/locales/common-properties/locales/es.json +10 -1
  89. package/locales/common-properties/locales/fr.json +10 -1
  90. package/locales/common-properties/locales/it.json +10 -1
  91. package/locales/common-properties/locales/ja.json +10 -1
  92. package/locales/common-properties/locales/ko.json +10 -1
  93. package/locales/common-properties/locales/pt-br.json +10 -1
  94. package/locales/common-properties/locales/sv.json +10 -1
  95. package/locales/common-properties/locales/zh-CN.json +10 -1
  96. package/locales/common-properties/locales/zh-TW.json +10 -1
  97. package/package.json +1 -1
  98. package/src/common-canvas/canvas-controller.js +38 -4
  99. package/src/common-canvas/svg-canvas-d3.js +12 -0
  100. package/src/common-canvas/svg-canvas-renderer.js +244 -66
  101. package/src/common-canvas/svg-canvas-utils-links.js +37 -7
  102. package/src/common-canvas/svg-canvas-utils-markdown.js +0 -2
  103. package/src/common-canvas/svg-canvas-utils-textarea.js +56 -43
  104. package/src/common-properties/components/editor-form/editor-form.jsx +19 -5
  105. package/src/common-properties/components/editor-form/editor-form.scss +30 -3
  106. package/src/common-properties/components/field-picker/field-picker.jsx +18 -59
  107. package/src/common-properties/components/field-picker/field-picker.scss +15 -24
  108. package/src/common-properties/components/flexible-table/flexible-table.jsx +32 -16
  109. package/src/common-properties/components/flexible-table/flexible-table.scss +6 -12
  110. package/src/common-properties/components/properties-modal/properties-modal.jsx +3 -1
  111. package/src/common-properties/components/properties-modal/properties-modal.scss +1 -0
  112. package/src/common-properties/components/table-buttons/table-buttons.jsx +1 -0
  113. package/src/common-properties/components/table-buttons/table-buttons.scss +4 -26
  114. package/src/common-properties/components/virtualized-table/virtualized-table.jsx +6 -5
  115. package/src/common-properties/constants/constants.js +11 -2
  116. package/src/common-properties/controls/abstract-table.jsx +12 -4
  117. package/src/common-properties/controls/datefield/datefield.jsx +1 -1
  118. package/src/common-properties/controls/dropdown/dropdown.jsx +3 -3
  119. package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +11 -2
  120. package/src/common-properties/controls/expression/expression-toggle/expression-toggle.jsx +5 -6
  121. package/src/common-properties/controls/expression/expression.jsx +3 -1
  122. package/src/common-properties/controls/expression/expression.scss +1 -2
  123. package/src/common-properties/controls/list/list.jsx +1 -1
  124. package/src/common-properties/controls/multiselect/multiselect.jsx +2 -2
  125. package/src/common-properties/controls/numberfield/numberfield.jsx +30 -6
  126. package/src/common-properties/controls/passwordfield/passwordfield.jsx +13 -2
  127. package/src/common-properties/controls/radioset/radioset.scss +1 -5
  128. package/src/common-properties/controls/selectcolumns/selectcolumns.jsx +1 -1
  129. package/src/common-properties/controls/someofselect/someofselect.jsx +1 -1
  130. package/src/common-properties/controls/textarea/textarea.jsx +2 -2
  131. package/src/common-properties/controls/textfield/textfield.jsx +1 -1
  132. package/src/common-properties/controls/timefield/timefield.jsx +1 -1
  133. package/src/common-properties/form/ControlInfo.js +3 -1
  134. package/src/common-properties/form/EditorForm.js +11 -11
  135. package/src/common-properties/index.scss +2 -4
  136. package/src/common-properties/panels/control/control.jsx +1 -0
  137. package/src/common-properties/panels/control/control.scss +12 -0
  138. package/src/common-properties/panels/sub-panel/invoker.jsx +2 -0
  139. package/src/common-properties/panels/sub-panel/sub-panel.scss +6 -0
  140. package/src/common-properties/panels/subtabs/subtabs.jsx +13 -3
  141. package/src/common-properties/panels/subtabs/subtabs.scss +62 -0
  142. package/src/common-properties/panels/tearsheet/tearsheet.jsx +64 -7
  143. package/src/common-properties/panels/tearsheet/tearsheet.scss +84 -18
  144. package/src/common-properties/properties-controller.js +4 -0
  145. package/src/common-properties/properties-main/properties-main.jsx +17 -1
  146. package/src/object-model/api-pipeline.js +1 -6
  147. package/src/object-model/canvas-in-handler.js +6 -3
  148. package/src/object-model/layout-dimensions.js +12 -0
  149. package/src/object-model/object-model.js +7 -39
  150. package/src/object-model/redux/canvas-store.js +55 -0
  151. package/src/toolbar/toolbar-action-item.jsx +3 -1
  152. package/src/toolbar/toolbar-overflow-item.jsx +3 -1
  153. package/src/toolbar/toolbar.jsx +6 -2
  154. package/src/toolbar/toolbar.scss +21 -0
  155. package/stats.html +1 -1
  156. package/dist/canvas-constants-09ffa4d4.js +0 -2
  157. package/dist/canvas-constants-09ffa4d4.js.map +0 -1
  158. package/dist/canvas-constants-ab55d0fd.js +0 -2
  159. package/dist/canvas-controller-3a399ae6.js +0 -2
  160. package/dist/canvas-controller-3a399ae6.js.map +0 -1
  161. package/dist/canvas-controller-c046093c.js +0 -2
  162. package/dist/canvas-controller-c046093c.js.map +0 -1
  163. package/dist/common-canvas-088c1a4b.js +0 -2
  164. package/dist/common-canvas-088c1a4b.js.map +0 -1
  165. package/dist/common-canvas-7676cc1b.js +0 -2
  166. package/dist/common-canvas-7676cc1b.js.map +0 -1
  167. package/dist/common-properties-9d77f8e1.js +0 -2
  168. package/dist/common-properties-9d77f8e1.js.map +0 -1
  169. package/dist/common-properties-a31de521.js +0 -2
  170. package/dist/common-properties-a31de521.js.map +0 -1
  171. package/dist/createClass-72b049bc.js +0 -2
  172. package/dist/createClass-72b049bc.js.map +0 -1
  173. package/dist/createClass-d5cac0b7.js +0 -2
  174. package/dist/createClass-d5cac0b7.js.map +0 -1
  175. package/dist/en-7a0f1db1.js +0 -2
  176. package/dist/en-8647c347.js +0 -2
  177. package/dist/extends-87da7df3.js +0 -7
  178. package/dist/extends-87da7df3.js.map +0 -1
  179. package/dist/extends-dc95dba8.js +0 -7
  180. package/dist/extends-dc95dba8.js.map +0 -1
  181. package/dist/flexible-table-59ad2c83.js +0 -2
  182. package/dist/flexible-table-59ad2c83.js.map +0 -1
  183. package/dist/flexible-table-5c4fbb7b.js +0 -2
  184. package/dist/flexible-table-5c4fbb7b.js.map +0 -1
  185. package/dist/getPrototypeOf-4e282dd3.js +0 -2
  186. package/dist/getPrototypeOf-4e282dd3.js.map +0 -1
  187. package/dist/getPrototypeOf-b3806813.js +0 -2
  188. package/dist/getPrototypeOf-b3806813.js.map +0 -1
  189. package/dist/icon-2c16236a.js +0 -2
  190. package/dist/icon-816af0e7.js +0 -2
  191. package/dist/index-6f739fa1.js +0 -2
  192. package/dist/toolbar-2ef99bd8.js +0 -2
  193. package/dist/toolbar-2ef99bd8.js.map +0 -1
  194. package/dist/toolbar-cb967e26.js +0 -2
  195. package/dist/toolbar-cb967e26.js.map +0 -1
@@ -61,7 +61,8 @@ export default class CanvasInHandler {
61
61
  y_pos: typeof canvasNode.y_pos !== "undefined" ? canvasNode.y_pos : canvasNode.yPos, // Handle old field name yPos
62
62
  class_name: canvasNode.className,
63
63
  label: canvasNode.objectData.label,
64
- type: nodeType
64
+ type: nodeType,
65
+ style: canvasNode.style
65
66
  };
66
67
  if (canvasNode.objectData && canvasNode.objectData.description) {
67
68
  newNode.description = canvasNode.objectData.description;
@@ -178,7 +179,8 @@ export default class CanvasInHandler {
178
179
  x_pos: typeof canvasComment.x_pos !== "undefined" ? canvasComment.x_pos : canvasComment.xPos, // Handle old field name xPos
179
180
  y_pos: typeof canvasComment.y_pos !== "undefined" ? canvasComment.y_pos : canvasComment.yPos, // Handle old field name yPos
180
181
  height: canvasComment.height,
181
- width: canvasComment.width
182
+ width: canvasComment.width,
183
+ style: canvasComment.style
182
184
  })
183
185
  );
184
186
  }
@@ -192,7 +194,8 @@ export default class CanvasInHandler {
192
194
  class_name: canvasLink.className,
193
195
  srcNodeId: canvasLink.source,
194
196
  trgNodeId: canvasLink.target,
195
- type: this.getLinkType(canvasLink)
197
+ type: this.getLinkType(canvasLink),
198
+ style: canvasLink.style
196
199
  };
197
200
  if (canvasLink.sourcePort) {
198
201
  newLink.srcNodePortId = canvasLink.sourcePort;
@@ -21,6 +21,10 @@ const portsHorizontalDefaultLayout = {
21
21
  defaultNodeWidth: 160,
22
22
  defaultNodeHeight: 40,
23
23
 
24
+ // A space separated list of classes that will be added to the group <g>
25
+ // DOM element for the node.
26
+ className: "",
27
+
24
28
  // Default node shape. Can be "rectangle" or "port-arcs"
25
29
  nodeShape: "port-arcs",
26
30
 
@@ -61,6 +65,8 @@ const portsHorizontalDefaultLayout = {
61
65
 
62
66
  // An array of decorations to be applied to the node. For details see:
63
67
  // https://github.com/elyra-ai/canvas/wiki/2.4.2-Decoration-Specification
68
+ // These are added to the node at run time and will not be saved into
69
+ // the pipeline flow.
64
70
  decorations: [],
65
71
 
66
72
  // Positions and dimensions for 9 enumerated default decorator positions.
@@ -412,6 +418,10 @@ const portsVerticalDefaultLayout = {
412
418
  defaultNodeWidth: 70,
413
419
  defaultNodeHeight: 75,
414
420
 
421
+ // A space separated list of classes that will be added to the group <g>
422
+ // DOM element for the node.
423
+ className: "",
424
+
415
425
  // Default node shape. Can be "rectangle" or "port-arcs"
416
426
  nodeShape: "rectangle",
417
427
 
@@ -452,6 +462,8 @@ const portsVerticalDefaultLayout = {
452
462
 
453
463
  // An array of decorations to be applied to the node. For details see:
454
464
  // https://github.com/elyra-ai/canvas/wiki/2.4.2-Decoration-Specification
465
+ // These are added to the node at run time and will not be saved into
466
+ // the pipeline flow.
455
467
  decorations: [],
456
468
 
457
469
  // Positions and dimensions for 9 enumerated default decorator positions.
@@ -1573,54 +1573,23 @@ export default class ObjectModel {
1573
1573
  // ---------------------------------------------------------------------------
1574
1574
 
1575
1575
  getSelectedObjectIds() {
1576
- return this.getSelectionInfo().selections || [];
1576
+ return this.store.getSelectedObjectIds();
1577
1577
  }
1578
1578
 
1579
1579
  getSelectedNodesIds() {
1580
- var objs = [];
1581
- const apiPipeline = this.getSelectedPipeline();
1582
- apiPipeline.getNodes().forEach((node) => {
1583
- if (this.getSelectedObjectIds().includes(node.id)) {
1584
- objs.push(node.id);
1585
- }
1586
- });
1587
- return objs;
1580
+ return this.getSelectedNodes().map((n) => n.id);
1588
1581
  }
1589
1582
 
1590
1583
  getSelectedNodes() {
1591
- const objs = [];
1592
- const apiPipeline = this.getSelectedPipeline();
1593
- apiPipeline.getNodes().forEach((node) => {
1594
- if (this.getSelectedObjectIds().includes(node.id)) {
1595
- objs.push(node);
1596
- }
1597
- });
1598
-
1599
- return objs;
1584
+ return this.store.getSelectedNodes();
1600
1585
  }
1601
1586
 
1602
1587
  getSelectedComments() {
1603
- const objs = [];
1604
- const apiPipeline = this.getSelectedPipeline();
1605
- apiPipeline.getComments().forEach((com) => {
1606
- if (this.getSelectedObjectIds().includes(com.id)) {
1607
- objs.push(com);
1608
- }
1609
- });
1610
-
1611
- return objs;
1588
+ return this.store.getSelectedComments();
1612
1589
  }
1613
1590
 
1614
1591
  getSelectedLinks() {
1615
- const objs = [];
1616
- const apiPipeline = this.getSelectedPipeline();
1617
- apiPipeline.getLinks().forEach((lnk) => {
1618
- if (this.getSelectedObjectIds().includes(lnk.id)) {
1619
- objs.push(lnk);
1620
- }
1621
- });
1622
-
1623
- return objs;
1592
+ return this.store.getSelectedLinks();
1624
1593
  }
1625
1594
 
1626
1595
  getSelectedObjects() {
@@ -1638,7 +1607,7 @@ export default class ObjectModel {
1638
1607
  }
1639
1608
 
1640
1609
  getSelectedPipelineId() {
1641
- return this.getSelectionInfo().pipelineId;
1610
+ return this.store.getSelectedPipelineId();
1642
1611
  }
1643
1612
 
1644
1613
  clearSelections() {
@@ -1770,8 +1739,7 @@ export default class ObjectModel {
1770
1739
 
1771
1740
  // Returns true if all the selected objects are links.
1772
1741
  areAllSelectedObjectsLinks() {
1773
- const nonLinkIndex = this.getSelectedObjects().findIndex((selObj) => !this.isLink(selObj));
1774
- return nonLinkIndex === -1;
1742
+ return this.store.areAllSelectedObjectsLinks();
1775
1743
  }
1776
1744
 
1777
1745
  // Recursive function to add all connected nodes into the group.
@@ -124,6 +124,17 @@ export default class CanavasStore {
124
124
  return null;
125
125
  }
126
126
 
127
+ isEmpty(pipelineId) {
128
+ const pipeline = this.getNonClonedPipeline(pipelineId);
129
+
130
+ if (pipeline.nodes && pipeline.nodes.length === 0 &&
131
+ pipeline.comments && pipeline.comments.length === 0 &&
132
+ pipeline.links && pipeline.links.length === 0) {
133
+ return true;
134
+ }
135
+ return false;
136
+ }
137
+
127
138
  // This is a service method for retrieving the internal pipeline. It does NOT
128
139
  // clone the pipeline therefore it should NOT be called from outside this
129
140
  // class because we don't want to surface the intenal data in redux to
@@ -132,6 +143,23 @@ export default class CanavasStore {
132
143
  return this.store.getState().canvasinfo.pipelines.find((p) => p.id === pipelineId);
133
144
  }
134
145
 
146
+ // This is a service method for retrieving selected objects of the type passed
147
+ // in which can be "nodes", "comments" or "links". It does NOT clone the
148
+ // resultant array therefore it should NOT be called from outside this
149
+ // class because we don't want to surface the intenal data in redux to
150
+ // the outside world.
151
+ getNonClonedSelectedObjs(type) {
152
+ const selectedPipelineId = this.getSelectedPipelineId();
153
+ if (selectedPipelineId) {
154
+ const pipeline = this.getNonClonedPipeline(selectedPipelineId);
155
+ if (pipeline[type]) {
156
+ const selectedObjIds = this.getSelectedObjectIds();
157
+ return pipeline[type].filter((o) => selectedObjIds.includes(o.id));
158
+ }
159
+ }
160
+ return [];
161
+ }
162
+
135
163
  getNodes(pipelineId) {
136
164
  const pipeline = this.getNonClonedPipeline(pipelineId);
137
165
  if (pipeline && pipeline.nodes) {
@@ -252,6 +280,33 @@ export default class CanavasStore {
252
280
  return this.cloneData(this.store.getState().selectioninfo);
253
281
  }
254
282
 
283
+ getSelectedPipelineId() {
284
+ return this.getSelectionInfo().pipelineId;
285
+ }
286
+
287
+ getSelectedObjectIds() {
288
+ const selectedObjIds = this.store.getState().selectioninfo.selections || [];
289
+ return this.cloneData(selectedObjIds);
290
+ }
291
+
292
+ getSelectedNodes() {
293
+ return cloneDeep(this.getNonClonedSelectedObjs("nodes"));
294
+ }
295
+
296
+ getSelectedComments() {
297
+ return cloneDeep(this.getNonClonedSelectedObjs("comments"));
298
+ }
299
+
300
+ getSelectedLinks() {
301
+ return cloneDeep(this.getNonClonedSelectedObjs("links"));
302
+ }
303
+
304
+ // Returns true if all the selected objects are links. That is, if the
305
+ // number of selected links is the same as the number of selected objects.
306
+ areAllSelectedObjectsLinks() {
307
+ return this.getNonClonedSelectedObjs("links").length === this.getSelectedObjectIds().length;
308
+ }
309
+
255
310
  getExternalPipelineFlows() {
256
311
  return this.cloneData(this.store.getState().externalpipelineflows);
257
312
  }
@@ -184,6 +184,7 @@ class ToolbarActionItem extends React.Component {
184
184
  disabled={!actionObj.enable}
185
185
  onFocus={this.props.onFocus}
186
186
  aria-label={actionObj.label}
187
+ size={this.props.size}
187
188
  >
188
189
  {buttonContent}
189
190
  </Button>
@@ -291,7 +292,8 @@ ToolbarActionItem.propTypes = {
291
292
  toolbarActionHandler: PropTypes.func.isRequired,
292
293
  instanceId: PropTypes.number.isRequired,
293
294
  overflow: PropTypes.bool,
294
- onFocus: PropTypes.func
295
+ onFocus: PropTypes.func,
296
+ size: PropTypes.oneOf(["md", "sm"])
295
297
  };
296
298
 
297
299
  export default ToolbarActionItem;
@@ -53,6 +53,7 @@ class ToolbarOverflowItem extends React.Component {
53
53
  onClick={this.toggleExtendedMenu}
54
54
  onFocus={this.props.onFocus}
55
55
  aria-label={this.props.label}
56
+ size={this.props.size}
56
57
  >
57
58
  <div className="toolbar-item-content default">
58
59
  <div className="toolbar-icon">
@@ -73,7 +74,8 @@ ToolbarOverflowItem.propTypes = {
73
74
  index: PropTypes.number.isRequired,
74
75
  generateExtensionMenuItems: PropTypes.func,
75
76
  onFocus: PropTypes.func,
76
- label: PropTypes.string
77
+ label: PropTypes.string,
78
+ size: PropTypes.oneOf(["md", "sm"])
77
79
  };
78
80
 
79
81
  export default ToolbarOverflowItem;
@@ -208,6 +208,7 @@ class Toolbar extends React.Component {
208
208
  overflow={overflow}
209
209
  instanceId={this.props.instanceId}
210
210
  onFocus={this.onFocus}
211
+ size={this.props.size}
211
212
  />
212
213
  );
213
214
  }
@@ -226,6 +227,7 @@ class Toolbar extends React.Component {
226
227
  generateExtensionMenuItems={this.generateExtensionMenuItems}
227
228
  onFocus={this.onFocus}
228
229
  label={label}
230
+ size={this.props.size}
229
231
  />
230
232
  );
231
233
 
@@ -280,9 +282,10 @@ class Toolbar extends React.Component {
280
282
  const leftItems = this.generateToolbarItems(this.leftBar, false, true);
281
283
  const rightItems = this.generateToolbarItems(this.rightBar, false, false);
282
284
 
285
+ const toolbarSizeClass = this.props.size === "sm" ? "toolbar-div toolbar-size-small" : "toolbar-div";
283
286
  const canvasToolbar = (
284
287
  <ReactResizeDetector handleWidth onResize={this.onToolbarResize}>
285
- <div className="toolbar-div" instanceid={this.props.instanceId}>
288
+ <div className={toolbarSizeClass} instanceid={this.props.instanceId}>
286
289
  <div className="toolbar-left-bar" onScroll={this.onScroll}>
287
290
  {leftItems}
288
291
  </div>
@@ -301,7 +304,8 @@ Toolbar.propTypes = {
301
304
  instanceId: PropTypes.number,
302
305
  toolbarActionHandler: PropTypes.func,
303
306
  tooltipDirection: PropTypes.string,
304
- additionalText: PropTypes.object
307
+ additionalText: PropTypes.object,
308
+ size: PropTypes.oneOf(["md", "sm"])
305
309
  };
306
310
 
307
311
  export default Toolbar;
@@ -35,6 +35,27 @@ $toolbar-divider-width: 1px;
35
35
 
36
36
  /* Prevent elements from being dragged onto canvas */
37
37
  -webkit-user-drag: none;
38
+
39
+ /* Small size toolbar used by common-properties */
40
+ &.toolbar-size-small {
41
+ height: $spacing-07;
42
+ .toolbar-left-bar {
43
+ padding: 0;
44
+ }
45
+ .toolbar-item button,
46
+ .toolbar-overflow-item > button {
47
+ padding: 0;
48
+ height: $spacing-07;
49
+ }
50
+ .toolbar-item-content {
51
+ padding: $spacing-02 $spacing-03;
52
+ height: $spacing-07;
53
+ align-items: center;
54
+ }
55
+ .toolbar-popover-list button {
56
+ padding: 0;
57
+ }
58
+ }
38
59
  }
39
60
 
40
61
  .toolbar-left-bar {