@eccenca/gui-elements 23.0.0-rc.2 → 23.0.0-rc.3-unofficial.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/CHANGELOG.md +26 -1
- package/dist/cjs/cmem/index.js +3 -1
- package/dist/cjs/cmem/index.js.map +1 -1
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +64 -0
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
- package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
- package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/typing.js +35 -0
- package/dist/cjs/cmem/react-flow/configuration/typing.js.map +1 -0
- package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
- package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js +42 -0
- package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
- package/dist/cjs/common/utils/CssCustomProperties.js +114 -0
- package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -0
- package/dist/cjs/common/utils/getColorConfiguration.js +21 -0
- package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -0
- package/dist/cjs/components/Icon/canonicalIconNames.js +124 -114
- package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/cjs/components/Tag/Tag.js +2 -1
- package/dist/cjs/components/Tag/Tag.js.map +1 -1
- package/dist/cjs/extensions/codemirror/CodeMirror.js +3 -3
- package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/cjs/extensions/react-flow/index.js +6 -1
- package/dist/cjs/extensions/react-flow/index.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +3 -2
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/utils.js +12 -6
- package/dist/cjs/extensions/react-flow/minimap/utils.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +74 -25
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js +10 -6
- package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +49 -0
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
- package/dist/cjs/legacy-replacements/Tabs/Tabs.js +1 -1
- package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/legacy-replacements/TextField/TextField.js +5 -8
- package/dist/cjs/legacy-replacements/TextField/TextField.js.map +1 -1
- package/dist/esm/cmem/index.js +1 -0
- package/dist/esm/cmem/index.js.map +1 -1
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +89 -0
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
- package/dist/esm/cmem/react-flow/configuration/graph.js +1 -1
- package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/linking.js +3 -1
- package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/typing.js +32 -0
- package/dist/esm/cmem/react-flow/configuration/typing.js.map +1 -0
- package/dist/esm/cmem/react-flow/configuration/workflow.js +3 -1
- package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js +31 -0
- package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
- package/dist/esm/common/utils/CssCustomProperties.js +154 -0
- package/dist/esm/common/utils/CssCustomProperties.js.map +1 -0
- package/dist/esm/common/utils/getColorConfiguration.js +16 -0
- package/dist/esm/common/utils/getColorConfiguration.js.map +1 -0
- package/dist/esm/components/Icon/canonicalIconNames.js +124 -114
- package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/esm/components/Tag/Tag.js +2 -1
- package/dist/esm/components/Tag/Tag.js.map +1 -1
- package/dist/esm/extensions/codemirror/CodeMirror.js +3 -3
- package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/esm/extensions/react-flow/index.js +1 -0
- package/dist/esm/extensions/react-flow/index.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js +3 -2
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/utils.js +10 -5
- package/dist/esm/extensions/react-flow/minimap/utils.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js +76 -27
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js +26 -6
- package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +44 -0
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/legacy-replacements/Tabs/Tabs.js +1 -1
- package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +1 -1
- package/dist/esm/legacy-replacements/TextField/TextField.js +2 -5
- package/dist/esm/legacy-replacements/TextField/TextField.js.map +1 -1
- package/dist/types/cmem/index.d.ts +1 -0
- package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +26 -0
- package/dist/types/cmem/react-flow/configuration/graph.d.ts +3 -8
- package/dist/types/cmem/react-flow/configuration/linking.d.ts +3 -9
- package/dist/types/cmem/react-flow/configuration/typing.d.ts +28 -0
- package/dist/types/cmem/react-flow/configuration/workflow.d.ts +3 -9
- package/dist/types/cmem/react-flow/nodes/StickyNoteNode.d.ts +3 -0
- package/dist/types/common/utils/CssCustomProperties.d.ts +28 -0
- package/dist/types/common/utils/getColorConfiguration.d.ts +8 -0
- package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
- package/dist/types/components/Tag/Tag.d.ts +5 -1
- package/dist/types/extensions/codemirror/CodeMirror.d.ts +5 -1
- package/dist/types/extensions/react-flow/index.d.ts +1 -0
- package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +1 -1
- package/dist/types/extensions/react-flow/minimap/utils.d.ts +1 -0
- package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +17 -1
- package/dist/types/extensions/react-flow/nodes/NodeContentExtension.d.ts +2 -2
- package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +14 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +1 -1
- package/package.json +14 -13
- package/scripts/compile-sass.ts +9 -0
- package/scripts/fix-cjs-dist +5 -0
- package/scripts/fix-esm-dist +6 -0
- package/scripts/sassConfig.js +13 -0
- package/src/_shame.scss +17 -0
- package/src/cmem/index.ts +1 -0
- package/src/cmem/markdown/markdown.scss +1 -1
- package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +134 -0
- package/src/cmem/react-flow/_index.scss +1 -1
- package/src/cmem/react-flow/_minimap.scss +6 -2
- package/src/cmem/react-flow/configuration/graph.ts +3 -5
- package/src/cmem/react-flow/configuration/linking.ts +5 -6
- package/src/cmem/react-flow/configuration/typing.ts +30 -0
- package/src/cmem/react-flow/configuration/workflow.ts +5 -5
- package/src/cmem/react-flow/nodes/StickyNoteNode.tsx +13 -0
- package/src/cmem/react-flow/{_nodes.scss → nodes/_colors.scss} +0 -0
- package/src/cmem/react-flow/nodes/_index.scss +2 -0
- package/src/cmem/react-flow/nodes/_stickynote.scss +72 -0
- package/src/common/utils/CssCustomProperties.ts +2 -2
- package/src/common/utils/getColorConfiguration.ts +1 -2
- package/src/components/Accordion/accordion.scss +11 -11
- package/src/components/Application/_header.scss +4 -3
- package/src/components/Button/button.scss +43 -6
- package/src/components/Card/card.scss +5 -5
- package/src/components/ContextOverlay/ContextMenu.stories.tsx +4 -1
- package/src/components/ContextOverlay/contextoverlay.scss +14 -2
- package/src/components/Dialog/dialog.scss +10 -8
- package/src/components/Form/form.scss +6 -6
- package/src/components/Icon/canonicalIconNames.tsx +134 -121
- package/src/components/Icon/icon.scss +1 -1
- package/src/components/Label/label.scss +2 -2
- package/src/components/Menu/menu.scss +6 -6
- package/src/components/Notification/notification.scss +3 -1
- package/src/components/OverviewItem/overviewitem.scss +8 -8
- package/src/components/PropertyValuePair/propertyvalue.scss +9 -7
- package/src/components/Separation/separation.scss +6 -6
- package/src/components/SimpleTable/simpletable.scss +5 -5
- package/src/components/Tabs/tabs.scss +2 -2
- package/src/components/Tag/Tag.tsx +6 -0
- package/src/components/Tag/tag.scss +36 -11
- package/src/components/TextField/textfield.scss +6 -4
- package/src/components/Tooltip/tooltip.scss +3 -3
- package/src/components/Typography/typography.scss +4 -4
- package/src/configuration/_variables.scss +11 -9
- package/src/extensions/codemirror/CodeMirror.tsx +9 -4
- package/src/extensions/react-flow/edges/_edges.scss +3 -3
- package/src/extensions/react-flow/handles/_handles.scss +13 -13
- package/src/extensions/react-flow/index.ts +1 -0
- package/src/extensions/react-flow/minimap/MiniMap.tsx +16 -1
- package/src/extensions/react-flow/minimap/_minimap.scss +6 -6
- package/src/extensions/react-flow/minimap/utils.ts +8 -3
- package/src/extensions/react-flow/nodes/NodeContent.tsx +253 -166
- package/src/extensions/react-flow/nodes/NodeContentExtension.tsx +17 -11
- package/src/extensions/react-flow/nodes/_nodes.scss +44 -12
- package/src/extensions/react-flow/nodes/nodeUtils.tsx +53 -0
- package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +24 -13
- package/src/extensions/react-flow/nodes/stories/NodeContentExtension.stories.tsx +39 -47
- package/src/includes/blueprintjs/_variables.scss +3 -1
- package/src/includes/carbon-components/_variables.scss +7 -5
- package/src/index.ts +1 -1
- package/src/legacy-replacements/Tabs/Tabs.tsx +3 -1
- package/src/legacy-replacements/TextField/TextField.tsx +7 -5
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
&.react-flow__node-default {
|
|
18
|
-
// remove
|
|
18
|
+
// remove default styles
|
|
19
19
|
background-color: unset !important;
|
|
20
20
|
color: unset !important;
|
|
21
21
|
border: unset !important;
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
.#{$eccgui}-graphviz__node--minimal-rectangular,
|
|
71
71
|
.#{$eccgui}-graphviz__node--minimal-circular {
|
|
72
72
|
|
|
73
|
-
/*
|
|
73
|
+
/* FIXME: does not work correctly with tooltips around
|
|
74
74
|
transition: width $reactflow-transition-time $reactflow-transition-function,
|
|
75
75
|
max-height $reactflow-transition-time $reactflow-transition-function,
|
|
76
76
|
border-radius $reactflow-transition-time $reactflow-transition-function;
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
.#{$eccgui}-graphviz__node__header-depiction + .#{$eccgui}-graphviz__node__header-label,
|
|
85
85
|
.#{$eccgui}-graphviz__node__header-menu,
|
|
86
86
|
.#{$eccgui}-graphviz__node__content,
|
|
87
|
+
.#{$eccgui}-graphviz__node__extension,
|
|
87
88
|
.#{$eccgui}-graphviz__node__footer {
|
|
88
89
|
display: none;
|
|
89
90
|
}
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
|
|
98
99
|
.#{$eccgui}-graphviz__node--minimal-circular {
|
|
99
100
|
.react-flow__node:not(.selected) /*:not(:hover)*/ & {
|
|
100
|
-
border-radius: 100%;
|
|
101
|
+
border-radius: 100%;
|
|
101
102
|
|
|
102
103
|
.#{$eccgui}-graphviz__node__header-depiction {
|
|
103
104
|
border-radius: 100%;
|
|
@@ -113,6 +114,10 @@
|
|
|
113
114
|
justify-content: space-between;
|
|
114
115
|
align-items: center;
|
|
115
116
|
min-height: $reactflow-node-basesize;
|
|
117
|
+
|
|
118
|
+
.#{$ns}-button:not([class*="#{$ns}-intent-"]) {
|
|
119
|
+
color: currentColor;
|
|
120
|
+
}
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
.#{$eccgui}-graphviz__node__header-depiction,
|
|
@@ -123,7 +128,7 @@
|
|
|
123
128
|
}
|
|
124
129
|
|
|
125
130
|
.#{$eccgui}-graphviz__node__header-label {
|
|
126
|
-
margin: 0 $eccgui-size-block-whitespace
|
|
131
|
+
margin: 0 $eccgui-size-block-whitespace * 0.25;
|
|
127
132
|
white-space: nowrap;
|
|
128
133
|
overflow: hidden;
|
|
129
134
|
text-overflow: ellipsis;
|
|
@@ -157,7 +162,7 @@
|
|
|
157
162
|
}
|
|
158
163
|
|
|
159
164
|
.#{$eccgui}-graphviz__node__content {
|
|
160
|
-
padding: $eccgui-size-block-whitespace
|
|
165
|
+
padding: $eccgui-size-block-whitespace * 0.5 $eccgui-size-block-whitespace * 0.25;
|
|
161
166
|
overflow: hidden;
|
|
162
167
|
background-color: $card-background-color;
|
|
163
168
|
color: $eccgui-color-workspace-text;
|
|
@@ -170,6 +175,7 @@
|
|
|
170
175
|
}
|
|
171
176
|
|
|
172
177
|
.#{$eccgui}-graphviz__node__footer {
|
|
178
|
+
padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
|
|
173
179
|
font-size: $reactflow-node-font-size;
|
|
174
180
|
color: $reactflow-node-color;
|
|
175
181
|
background-color: $reactflow-node-background-color;
|
|
@@ -177,25 +183,43 @@
|
|
|
177
183
|
|
|
178
184
|
// Node sizes
|
|
179
185
|
|
|
180
|
-
.#{$eccgui}-
|
|
186
|
+
.#{$eccgui}-graphviz__node__resizer,
|
|
187
|
+
.#{$eccgui}-graphviz__node.is-resizeable {
|
|
188
|
+
min-height: 2.5 * $reactflow-node-basesize;
|
|
189
|
+
min-width: 2.5 * $reactflow-node-basesize;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.#{$eccgui}-graphviz__node__resizer {
|
|
193
|
+
.selected &,
|
|
194
|
+
&:hover {
|
|
195
|
+
.#{$eccgui}-graphviz__node__resizer--cursorhandles {
|
|
196
|
+
& > div {
|
|
197
|
+
overflow: auto;
|
|
198
|
+
resize: both;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.#{$eccgui}-graphviz__node--tiny:not(.is-resizeable) {
|
|
181
205
|
width: $reactflow-node-basesize * 4;
|
|
182
206
|
min-height: $reactflow-node-basesize;
|
|
183
207
|
max-height: $reactflow-node-basesize * 4;
|
|
184
208
|
}
|
|
185
209
|
|
|
186
|
-
.#{$eccgui}-graphviz__node--small {
|
|
210
|
+
.#{$eccgui}-graphviz__node--small:not(.is-resizeable) {
|
|
187
211
|
width: $reactflow-node-basesize * 5;
|
|
188
212
|
min-height: $reactflow-node-basesize;
|
|
189
213
|
max-height: $reactflow-node-basesize * 8;
|
|
190
214
|
}
|
|
191
215
|
|
|
192
|
-
.#{$eccgui}-graphviz__node--medium {
|
|
216
|
+
.#{$eccgui}-graphviz__node--medium:not(.is-resizeable) {
|
|
193
217
|
width: $reactflow-node-basesize * 8;
|
|
194
218
|
min-height: $reactflow-node-basesize;
|
|
195
219
|
max-height: $reactflow-node-basesize * 13;
|
|
196
220
|
}
|
|
197
221
|
|
|
198
|
-
.#{$eccgui}-graphviz__node--large {
|
|
222
|
+
.#{$eccgui}-graphviz__node--large:not(.is-resizeable) {
|
|
199
223
|
width: $reactflow-node-basesize * 13;
|
|
200
224
|
min-height: $reactflow-node-basesize;
|
|
201
225
|
max-height: $reactflow-node-basesize * 13;
|
|
@@ -277,7 +301,7 @@
|
|
|
277
301
|
|
|
278
302
|
.#{$eccgui}-graphviz__node__extension {
|
|
279
303
|
background-color: $reactflow-node-background-color;
|
|
280
|
-
min-height: $eccgui-size-block-whitespace
|
|
304
|
+
min-height: $eccgui-size-block-whitespace* 0.5;
|
|
281
305
|
flex-grow: 1;
|
|
282
306
|
flex-shrink: 1;
|
|
283
307
|
|
|
@@ -298,6 +322,10 @@
|
|
|
298
322
|
}
|
|
299
323
|
}
|
|
300
324
|
|
|
325
|
+
.#{$eccgui}-graphviz__node__extension--slideout {
|
|
326
|
+
order: 4;
|
|
327
|
+
}
|
|
328
|
+
|
|
301
329
|
.#{$eccgui}-graphviz__node__extension--expanded {
|
|
302
330
|
display: flex;
|
|
303
331
|
flex-direction: column;
|
|
@@ -319,17 +347,21 @@
|
|
|
319
347
|
border-radius: $reactflow-node-border-radius;
|
|
320
348
|
border-style: solid;
|
|
321
349
|
}
|
|
350
|
+
|
|
351
|
+
&:not(.#{$eccgui}-graphviz__node__extension--slideout) + .#{$eccgui}-graphviz__node__footer {
|
|
352
|
+
border-top: 1px solid $eccgui-color-separation-divider;
|
|
353
|
+
}
|
|
322
354
|
}
|
|
323
355
|
|
|
324
356
|
.#{$eccgui}-graphviz__node__extension-expandbutton {
|
|
325
357
|
display: flex;
|
|
326
358
|
min-height: 0;
|
|
327
|
-
max-height: $eccgui-size-block-whitespace
|
|
359
|
+
max-height: $eccgui-size-block-whitespace* 0.5;
|
|
328
360
|
width: 100%;
|
|
329
361
|
}
|
|
330
362
|
|
|
331
363
|
.#{$eccgui}-graphviz__node__extension-body {
|
|
332
|
-
padding: $eccgui-size-block-whitespace
|
|
364
|
+
padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
|
|
333
365
|
flex-grow: 0;
|
|
334
366
|
flex-shrink: 1;
|
|
335
367
|
overflow: auto;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { CSSProperties } from "react";
|
|
2
|
+
import { Node } from "react-flow-renderer";
|
|
3
|
+
import Color from "color";
|
|
4
|
+
|
|
5
|
+
interface IStickyNote {
|
|
6
|
+
id: string;
|
|
7
|
+
content: string;
|
|
8
|
+
color: string;
|
|
9
|
+
position: number[];
|
|
10
|
+
dimension: number[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* converts a react-flow node with
|
|
15
|
+
* type = "stickynote" to IStickyNote type compatible with the backend
|
|
16
|
+
* @param node
|
|
17
|
+
* @returns {IStickyNote}
|
|
18
|
+
*/
|
|
19
|
+
const transformNodeToStickyNode = (node: Node<any>): IStickyNote => ({
|
|
20
|
+
id: node.id,
|
|
21
|
+
content: node.data.businessData.stickyNote!,
|
|
22
|
+
position: [node.position.x, node.position.y],
|
|
23
|
+
dimension: [node.data.nodeDimensions?.width!, node.data.nodeDimensions?.height!],
|
|
24
|
+
color: node.data.style?.borderColor!,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* takes in a hex color string and returns
|
|
29
|
+
* a style object with style rules for borderColor, backgroundColor and color
|
|
30
|
+
* @param {string} color
|
|
31
|
+
* @returns {CSSProperties}
|
|
32
|
+
*/
|
|
33
|
+
const generateStyleWithColor = (color: string): CSSProperties => {
|
|
34
|
+
let style: CSSProperties = {};
|
|
35
|
+
try {
|
|
36
|
+
const colorObj = Color("#fff").mix(Color(color), 0.24);
|
|
37
|
+
style = {
|
|
38
|
+
backgroundColor: colorObj.toString(),
|
|
39
|
+
borderColor: color,
|
|
40
|
+
color: colorObj.isLight() ? "#000" : "#fff",
|
|
41
|
+
};
|
|
42
|
+
} catch (ex) {
|
|
43
|
+
console.warn("Received invalid color for sticky note: " + color);
|
|
44
|
+
}
|
|
45
|
+
return style;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const utils = {
|
|
49
|
+
generateStyleWithColor,
|
|
50
|
+
transformNodeToStickyNode,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default utils;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useState, useEffect, useCallback } from "react";
|
|
2
2
|
import { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
3
3
|
import { LoremIpsum } from 'react-lorem-ipsum';
|
|
4
|
-
import ReactFlow, { Elements } from 'react-flow-renderer';
|
|
5
|
-
import
|
|
4
|
+
import ReactFlow, { Elements, ReactFlowProvider } from 'react-flow-renderer';
|
|
5
|
+
import {
|
|
6
|
+
OverflowText,
|
|
7
|
+
HtmlContentBlock,
|
|
8
|
+
} from "./../../../../index";
|
|
6
9
|
|
|
7
10
|
import { NodeContent } from "./../NodeContent";
|
|
8
11
|
import { nodeTypes } from "./../nodeTypes";
|
|
@@ -19,13 +22,15 @@ export default {
|
|
|
19
22
|
argTypes: {
|
|
20
23
|
contentExtension: {
|
|
21
24
|
control: "select",
|
|
22
|
-
options: ["Not set", "Default example"],
|
|
25
|
+
options: ["Not set", "Default example", "Slide out example"],
|
|
23
26
|
mapping: {
|
|
24
27
|
"Not set": undefined,
|
|
25
|
-
"Default example": <ContentExtensionExample />,
|
|
28
|
+
"Default example": <NodeContentExtension {...ContentExtensionExample.args} />,
|
|
29
|
+
"Slide out example": <NodeContentExtension {...ContentExtensionExampleSlideOut.args} />,
|
|
26
30
|
},
|
|
27
31
|
},
|
|
28
32
|
content: { control: "none" },
|
|
33
|
+
footerContent: { control: "none" },
|
|
29
34
|
isConnectable: { table: { disable: true } },
|
|
30
35
|
targetPosition: { table: { disable: true } },
|
|
31
36
|
sourcePosition: { table: { disable: true } },
|
|
@@ -42,7 +47,7 @@ const NodeContentExample = (args: any) => {
|
|
|
42
47
|
useEffect(() => {
|
|
43
48
|
setElements([
|
|
44
49
|
{
|
|
45
|
-
id: '1',
|
|
50
|
+
id: 'example-1',
|
|
46
51
|
type: 'default',
|
|
47
52
|
data: args,
|
|
48
53
|
position: { x: 50, y: 50 },
|
|
@@ -59,13 +64,13 @@ const NodeContentExample = (args: any) => {
|
|
|
59
64
|
[reactflowInstance]
|
|
60
65
|
);
|
|
61
66
|
|
|
62
|
-
return <ReactFlow
|
|
67
|
+
return <ReactFlowProvider><ReactFlow
|
|
63
68
|
elements={elements}
|
|
64
69
|
style={{ height: '400px' }}
|
|
65
70
|
onLoad={onLoad}
|
|
66
71
|
nodeTypes={ nodeTypes }
|
|
67
72
|
defaultZoom={1}
|
|
68
|
-
|
|
73
|
+
/></ReactFlowProvider>
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
const Template: ComponentStory<typeof NodeContent> = (args) => (
|
|
@@ -81,7 +86,12 @@ Default.args = {
|
|
|
81
86
|
<LoremIpsum p={4} avgSentencesPerParagraph={3} random={false} />
|
|
82
87
|
</HtmlContentBlock>
|
|
83
88
|
),
|
|
84
|
-
|
|
89
|
+
footerContent: (
|
|
90
|
+
<OverflowText passDown>
|
|
91
|
+
Node footer with some text information.
|
|
92
|
+
</OverflowText>
|
|
93
|
+
),
|
|
94
|
+
contentExtension: undefined,
|
|
85
95
|
minimalShape: "none",
|
|
86
96
|
getMinimalTooltipData: (node: any) => {
|
|
87
97
|
return {
|
|
@@ -100,11 +110,12 @@ Default.args = {
|
|
|
100
110
|
type: "source",
|
|
101
111
|
data: {extendedTooltip: "this is a source handle"}
|
|
102
112
|
}
|
|
103
|
-
]
|
|
113
|
+
],
|
|
114
|
+
onNodeResize: false, // workaround that storybook do not automatically include empty handle function
|
|
104
115
|
};
|
|
105
116
|
|
|
106
|
-
export const
|
|
107
|
-
|
|
117
|
+
export const Resizeable = Template.bind({});
|
|
118
|
+
Resizeable.args = {
|
|
108
119
|
...Default.args,
|
|
109
|
-
|
|
110
|
-
}
|
|
120
|
+
onNodeResize: (dimensions) => { alert(`new dimensions: ${dimensions.width}x${dimensions.height}`); },
|
|
121
|
+
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { ComponentMeta } from "@storybook/react";
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
3
3
|
import { LoremIpsum } from 'react-lorem-ipsum';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
NodeContentExtension,
|
|
7
|
+
NodeContentExtensionProps
|
|
8
|
+
} from "./../NodeContentExtension";
|
|
6
9
|
import IconButton from "../../../../components/Icon/IconButton";
|
|
7
10
|
import HtmlContentBlock from "../../../../components/Typography/HtmlContentBlock";
|
|
8
11
|
|
|
@@ -10,50 +13,39 @@ export default {
|
|
|
10
13
|
title: "Extensions/React Flow/Node Content Extension",
|
|
11
14
|
component: NodeContentExtension,
|
|
12
15
|
argTypes: {
|
|
16
|
+
children: { control: "none" },
|
|
17
|
+
actionButtons: { control: "none" },
|
|
13
18
|
},
|
|
14
19
|
} as ComponentMeta<typeof NodeContentExtension>;
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
slideOutOfNode
|
|
48
|
-
isExpanded={isExpanded}
|
|
49
|
-
onToggle={toggleExpansion}
|
|
50
|
-
actionButtons={
|
|
51
|
-
<IconButton name="item-question" onClick={(e) => { alert("this is a action button"); }} />
|
|
52
|
-
}
|
|
53
|
-
>
|
|
54
|
-
<HtmlContentBlock>
|
|
55
|
-
<h4>Extension example.</h4>
|
|
56
|
-
<LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
|
|
57
|
-
</HtmlContentBlock>
|
|
58
|
-
</NodeContentExtension>);
|
|
59
|
-
}
|
|
21
|
+
const Template: ComponentStory<typeof NodeContentExtension> = (args: NodeContentExtensionProps) => (
|
|
22
|
+
<NodeContentExtension {...args} /*some comment*/ />
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
export const Default = Template.bind({});
|
|
26
|
+
Default.args = {
|
|
27
|
+
actionButtons: <IconButton name="item-question" onClick={(e) => { alert("this is a action button"); }} />,
|
|
28
|
+
slideOutOfNode: false,
|
|
29
|
+
isExpanded: false,
|
|
30
|
+
setExpanded: (_event: React.MouseEvent<HTMLElement>, expanded: boolean) => {
|
|
31
|
+
return !expanded;
|
|
32
|
+
},
|
|
33
|
+
children: (
|
|
34
|
+
<HtmlContentBlock>
|
|
35
|
+
<h4>Extension example.</h4>
|
|
36
|
+
<LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
|
|
37
|
+
</HtmlContentBlock>
|
|
38
|
+
)
|
|
39
|
+
} as NodeContentExtensionProps;
|
|
40
|
+
|
|
41
|
+
export const SlideOutOfNode = Template.bind({});
|
|
42
|
+
SlideOutOfNode.args = {
|
|
43
|
+
...Default.args,
|
|
44
|
+
slideOutOfNode: true,
|
|
45
|
+
} as NodeContentExtensionProps;
|
|
46
|
+
|
|
47
|
+
export const WithoutExpansionHandler = Template.bind({});
|
|
48
|
+
WithoutExpansionHandler.args = {
|
|
49
|
+
...Default.args,
|
|
50
|
+
setExpanded: undefined,
|
|
51
|
+
} as NodeContentExtensionProps;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "sass:math";
|
|
2
|
+
|
|
1
3
|
// Stack of BlueprintJS variables that are necessary to use their framework
|
|
2
4
|
// TODO: calculate them from own configuration variables, all unchanged variables are commented out
|
|
3
5
|
|
|
@@ -79,7 +81,7 @@ $ns: bp4 !default;
|
|
|
79
81
|
|
|
80
82
|
// easily the most important variable, so it comes up top
|
|
81
83
|
// (so other variables can use it to define themselves)
|
|
82
|
-
$pt-grid-size: $eccgui-size-typo-text
|
|
84
|
+
$pt-grid-size: math.div($eccgui-size-typo-text, 1.4) !default;
|
|
83
85
|
|
|
84
86
|
$pt-font-family: $eccgui-font-family-default !default;
|
|
85
87
|
$pt-font-family-monospace: $eccgui-font-family-monospace !default;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "sass:math";
|
|
2
|
+
|
|
1
3
|
// Stack of Carbon variables that are necessary to use their framework
|
|
2
4
|
// TODO: calculate them from own configuration variables, all unchanged variables are commented out
|
|
3
5
|
|
|
@@ -38,19 +40,19 @@ $carbon--base-font-size: $eccgui-size-typo-base !default;
|
|
|
38
40
|
|
|
39
41
|
$caption-01: (
|
|
40
42
|
font-size: carbon--rem($eccgui-size-typo-caption),
|
|
41
|
-
line-height: $eccgui-size-typo-text-lineheight
|
|
43
|
+
line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
|
|
42
44
|
) !default;
|
|
43
45
|
$label-01: (
|
|
44
46
|
font-size: carbon--rem($eccgui-size-typo-caption),
|
|
45
|
-
line-height: $eccgui-size-typo-text-lineheight
|
|
47
|
+
line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
|
|
46
48
|
) !default;
|
|
47
49
|
$helper-text-01: (
|
|
48
50
|
font-size: carbon--rem($eccgui-size-typo-caption),
|
|
49
|
-
line-height: $eccgui-size-typo-text-lineheight
|
|
51
|
+
line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
|
|
50
52
|
) !default;
|
|
51
53
|
$body-short-01: (
|
|
52
54
|
font-size: carbon--rem($eccgui-size-typo-text),
|
|
53
|
-
line-height: $eccgui-size-typo-text-lineheight
|
|
55
|
+
line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
|
|
54
56
|
) !default;
|
|
55
57
|
$body-long-01: (
|
|
56
58
|
font-size: carbon--rem($eccgui-size-typo-text),
|
|
@@ -59,7 +61,7 @@ $body-long-01: (
|
|
|
59
61
|
$code-01: (
|
|
60
62
|
font-family: $eccgui-font-family-monospace,
|
|
61
63
|
font-size: carbon--rem($eccgui-size-typo-caption),
|
|
62
|
-
line-height: $eccgui-size-typo-text-lineheight
|
|
64
|
+
line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
|
|
63
65
|
) !default;
|
|
64
66
|
$heading-01: (
|
|
65
67
|
font-size: carbon--rem($eccgui-size-typo-text),
|
package/src/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
|
|
|
9
9
|
// deprecated interface
|
|
10
10
|
interface TabsProps extends Omit<
|
|
11
11
|
BlueprintTabsProps,
|
|
12
|
-
"vertical" | "onChange" | "large" | "id" | "
|
|
12
|
+
"vertical" | "onChange" | "large" | "id" | "animate"
|
|
13
13
|
> {
|
|
14
14
|
activeTab: string;
|
|
15
15
|
tabs: DeprecatedTabProps[];
|
|
@@ -69,7 +69,9 @@ export function TabsReplacement({
|
|
|
69
69
|
(allowScrollbars ? ` ${eccgui}-tabs--scrollablelist` : "")
|
|
70
70
|
}
|
|
71
71
|
{...usagetype}
|
|
72
|
+
renderActiveTabPanelOnly={true}
|
|
72
73
|
{...restProps}
|
|
74
|
+
animate={false}
|
|
73
75
|
>
|
|
74
76
|
{
|
|
75
77
|
tabs.map(tab => {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import {
|
|
3
|
+
FieldItem,
|
|
4
|
+
TextField,
|
|
5
|
+
TextArea,
|
|
6
|
+
IconButton
|
|
7
|
+
} from "./../../index";
|
|
6
8
|
|
|
7
9
|
const extendedOnChange = (onChangeFn: any, event: any) => {
|
|
8
10
|
if (typeof onChangeFn === "function") {
|
|
@@ -47,7 +49,7 @@ export function TextFieldReplacement ({
|
|
|
47
49
|
const fieldProperties = {
|
|
48
50
|
className: className,
|
|
49
51
|
messageText: error,
|
|
50
|
-
|
|
52
|
+
labelProps: !!label ? { text: label } : {},
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
const inputProperties: {[key: string]: any } = {
|