Skip to content

Commit f748b14

Browse files
Merge branch 'release/v24.0.0' into feature/newMappingSuggestion-CMEM-5433
# Conflicts: # CHANGELOG.md
2 parents 3891bca + 9c33568 commit f748b14

111 files changed

Lines changed: 3297 additions & 2348 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 84 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,35 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
66

77
## [Unreleased]
88

9+
This is a major release, and it might be not compatible with your current usage of our library. Please read about the necessary changes in the section about how to migrate.
10+
11+
### Migration from v23 to v24
12+
13+
- upgrade Typescript to v5
14+
- upgrade Node to at least v18, see **Changed** section for more info about it
15+
- remove deprecated components, properties and imports from your project, if the info cannot be found here then it was already mentioned in **Deprecated** sections of the past changelogs
16+
- `<GridColumn/>`
17+
- `full`: was deprecated and now removed because it always uses full width if it is the only column and does not have any othe size config
18+
- `<Notification/>`
19+
- `fullWidth`: was deprecated and now removed, use `flexWidth` as replacement
20+
- `iconName`: was deprecated and now removed, use `icon` property
21+
- `<Table/>`
22+
- `size`: use only "small", "medium" or "large" as value
23+
- `<Tag/>`
24+
- `emphasized`: was deprecated and now removed, use `minimal=false` plus `emphasis="stronger"` instead
25+
- `IconSized` type: use `CarbonIconType`
26+
- `TimeUnits` type: use `ElapsedDateTimeDisplayUnits`
27+
- `MarkdownParserProps` interface: use `MarkdownProps`
28+
- `elapsedTimeSegmented` function: use `elapsedDateTimeDisplayUtils.elapsedTimeSegmented`
29+
- `simplifiedElapsedTime` function: use `elapsedDateTimeDisplayUtils.simplifiedElapsedTime`
30+
931
### Added
1032

33+
- `<StringPreviewContentBlobToggler />`:
34+
- `noTogglerContentSuffix`: Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary. This allows to add non-string elements to both the full-view content and the pure string content.
1135
- `<MultiSuggestField />`
1236
- An optional custom search function property has been added, it defines how to filter elements.
37+
- Added a prop `limitHeightOpened` to limit the height of the dropdown by automatically calculating the available height in vh.
1338
- `<FlexibleLayoutContainer />` and `<FlexibleLayoutItem />`
1439
- helper components to create flex layouts for positioning sub elements
1540
- stop misusing `Toolbar*` components to do that (anti pattern)
@@ -18,6 +43,22 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
1843
- `<Label />`
1944
- `emphasis` property to control visual appearance of the label text
2045
- basic Storybook example for `<Application* />` components
46+
- `<CodeEditor />`
47+
- `setEditorView` option for compatibility to Codemirror v6
48+
- `supportCodeFolding` optional property to fold code for the supported modes e.g: `xml`, `json`, etc.
49+
- `shouldHighlightActiveLine` optional property to highlight active line where the cursor is currently in.
50+
- `shouldHaveMinimalSetup` optional property that imports codemirror's base minimal configurations.
51+
- `additionalExtensions` optional property for additional extensions to customize the editor further.
52+
- `<Markdown />`
53+
- `htmlContentBlockProps` can now be used to configure the wrapper around the Markdown content
54+
- `$eccgui-selector-text-spot-highlight` config variable to specify selector that is used to create shortly highlighted spots
55+
- it is highlighted when the selector is also active local anchor target or if it has the `.eccgui-typography--spothighlight` class attached to it
56+
57+
### Fixed
58+
59+
- toggling on/off the `<HandleTools/>` was corrected, they kept displayed after re-entering with the cursor
60+
- `<Pagination/>`
61+
- change text overflow for selectors to `clip` because Firefox rendered `ellipsis` a bit too early
2162

2263
### Changed
2364

@@ -33,9 +74,47 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
3374
- upgrade to Storybook v8
3475
- include a few patches for actions, see https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#implicit-actions-can-not-be-used-during-rendering-for-example-in-the-play-function
3576
- allow `next` and `legacy` as branch names
77+
- `<CodeEditor />`
78+
- `setInstance` interface changed to `setEditorView` for semantic compatibility to Codemirror v6
79+
- `<BreadcrumbItem/>`
80+
- link color and separation char were adjusted
81+
- `<Markdown/>`
82+
- align blocks for language specific code to default code blocks
3683
- `<ReactFlow />`
3784
- property color for `graph` configuration was adjusted
3885
- switch icons for `item-clone` and `item-copy` to Carbon's `<Replicate/>` and `<Copy/>`
86+
- Remove duplicated icon names `artefact-customtask*` and only keep `artefact-task*` names.
87+
- `<OverviewItemDepiction/>`
88+
- improve examples in storybook
89+
- improve display for images that are to large for the available space (fully show them)
90+
91+
### Deprecated
92+
93+
- `<Icon/>` and `<TestIcon/>`
94+
- `description` and `iconTitle`: use `title` as replacement.
95+
- `TableRowHeightSize` type: use `TableProps["size"]` directly
96+
- `IRenderModifiers` interface: use `SuggestFieldItemRendererModifierProps`
97+
- `IElementWidth` type: use `SuggestFieldItemRendererModifierProps["styleWidth"]`
98+
- `MultiSelectSelectionProps` interface: use `MultiSuggestFieldSelectionProps`
99+
- `MultiSelectProps` interface: use `MultiSuggestFieldProps`
100+
- `nodeTypes` and `edgeTypes`
101+
- will be removed without replacement, define it yourself or use `<ReactFlow/` with `configuration` option
102+
- `AutoCompleteFieldProps` and `IAutoCompleteFieldProps` interfaces: use `SuggestFieldProps`
103+
- `<CodeAutocompleteField/>`
104+
- `AutoSuggestionProps`: use `CodeAutocompleteFieldProps` instead
105+
- we renamed `ISuggestionBase`, `ISuggestionWithReplacementInfo`, `IReplacementResult`, `IPartialAutoCompleteResult`, `IValidationResult` to `CodeAutocompleteFieldSuggestionBase`, `CodeAutocompleteFieldSuggestionWithReplacementInfo`, `CodeAutocompleteFieldReplacementResult`, `CodeAutocompleteFieldPartialAutoCompleteResult`, `CodeAutocompleteFieldValidationResult`
106+
- all legacy support components are going to be removed, you need to replace them by activily maintained components
107+
- `<ButtonReplacement/>`: switch to `<Button />`
108+
- `<AffirmativeButtonReplacement/>`: switch to `<Button affirmative />`
109+
- `<DismissiveButtonReplacement/>`: switch to `<Button dismissive />`
110+
- `<DisruptiveButtonReplacement/>`: switch to `<Button disruptive />`
111+
- `<CheckboxReplacement/>`: switch to `<Checkbox />`
112+
- `<RadioButtonReplacement/>`: switch to `<RadioButton />`
113+
- `<TabsReplacement/>`: switch to `<Tabs />`
114+
- `<TextFieldReplacement/>`: switch to `<TextField />`, `<TextArea />`, `<FieldItem />`
115+
- `MultiSuggestField.ofType` method:
116+
- instead of `MyMultiSuggest = MultiSuggestField.ofType<MyType>()` use directly `<MultiSuggestField<MyType> {...props} />`
117+
- `MultiSuggestField.ofType` also returns the original BlueprintJS `MultiSelect` element, not our version!
39118

40119
## [23.8.0] - 2024-08-19
41120

@@ -84,7 +163,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
84163
- Element wraps the content that need to be displayed sticky.
85164
- `utils`
86165
- `getScrollParent`: method to find the scroll parent of an element
87-
- `<AutoCompleteField />`
166+
- `<SuggestField />`
88167
- Support loading more results when scrolling to the end of the result list.
89168
- `<TextArea />`
90169
- `intent` property to set the state, formerly used `hasStatePrimary`, `hasStateSuccess`, `hasStateWarning` and `hasStateDanger` properties are now deprecated
@@ -219,7 +298,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
219298
- `<ActivityControlWidget />`
220299
- added extra line to show timer for execution period
221300
- `<ExtendedCodeEditor />`
222-
- replaces `<SingleLineCodeEditor />` to get used for the `<AutoSuggestion />` component
301+
- replaces `<SingleLineCodeEditor />` to get used for the `<CodeAutocompleteField />` component
223302
- new icons
224303
- `data-string`, `data-url`, `data-date`, `data-time`, `data-datetime`, `data-number`
225304
@@ -267,7 +346,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
267346
- `loose`: can be set to `true` to prevent the box with border on the label component
268347
- `<TableExpandHeader />`
269348
- `toggleIcon`: optional icon that should be displayed instead of the default ones.
270-
- `Utilities`
349+
- `utils`
271350
- `getGlobalVar` and `setGlobalVar`: can be used to manage global variables indepentently from component states. They are stored to the `window` object under a `eccgui` "namespace". Can be used for example to manage globally increased counters. Do not use them if you need to store user session properties or confidential data!
272351
- canonical icons for `artefact-chatlog`, `entity-human`, `entity-robot` and `operation-magic`
273352
@@ -397,7 +476,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
397476
- `<WorkspaceHeader />`
398477
- `IWorkspaceHeaderProps` interface is now deprecated, use `WorkspaceHeaderProps` instead
399478
- `<NumericInput />`
400-
- It will be remove because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
479+
- It will be removed because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
401480
- `<Highlighter />`
402481
- `HighlighterFunctions` renamed to `highlighterUtils`
403482
- `extractSearchWords` moved to `highlighterUtils.extractSearchWords`
@@ -412,7 +491,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
412491
- `ReactFlow` extensions
413492
- `NodeProps`: renamed to `NodeDefaultProps`
414493
- `minimapNodeClassName`: moved to `miniMapUtils.nodeClassName`
415-
- `minimapNodeColor`: moved to `miniMapUtils.nodeClassName`
494+
- `minimapNodeColor`: moved to `miniMapUtils.nodeColor`
416495
- `nodeUtils`: renamed to `nodeDefaultUtils`
417496
- `IHandleProps`: renamed to `NodeContentHandleProps`
418497
- `NodeDimensions`: use `NodeContentProps<any>['nodeDimensions']`

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,11 @@ If necessary you can use [yalc](https://github.com/wclr/yalc) to develop gui ele
109109

110110
1. Install yalc globally via npm or yarn
111111
2. Checkout [@eccenca/gui-elements](https://github.com/eccenca/gui-elements)
112-
3. Inside gui elements folder: `yalc publish --push`
113-
4. Inside your applications folder: `yalc link @eccenca/gui-elements`
114-
5. After updates to the gui elements: `yarn build:all && yalc push`
112+
3. Inside gui elements folder: `yarn build:all && yalc publish --push`
113+
4. Inside your applications folder: `yalc add @eccenca/gui-elements`
114+
5. After updates to the gui elements rebuild and update the applications yalc folder: `yarn build:all && yalc publish --push` (you usually are not required to fire another `yalc add` in your applications folder)
115+
116+
After you tested the GUI elements package locally you can Clean up your applications folder by `yalc remove --all && git checkout -- pakage.json yarn.lock`.
115117

116118
### Process for pull requests and publishing releases
117119

package.json

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@eccenca/gui-elements",
33
"description": "GUI elements based on other libraries, usable in React application, written in Typescript.",
4-
"version": "24.0.0-rc.0",
4+
"version": "24.0.0-rc.6",
55
"license": "Apache-2.0",
66
"homepage": "https://github.com/eccenca/gui-elements",
77
"bugs": "https://github.com/eccenca/gui-elements/issues",
@@ -70,49 +70,52 @@
7070
"@blueprintjs/select": "^5.2.2",
7171
"@carbon/icons": "^11.47.1",
7272
"@carbon/react": "^1.64.1",
73+
"@codemirror/lang-json": "^6.0.1",
74+
"@codemirror/lang-markdown": "^6.3.1",
75+
"@codemirror/lang-xml": "^6.1.0",
76+
"@codemirror/legacy-modes": "^6.4.2",
7377
"@mavrin/remark-typograf": "^2.2.0",
74-
"codemirror": "^5.65.16",
75-
"codemirror-formatting": "^1.0.0",
78+
"codemirror": "^6.0.1",
7679
"color": "^4.2.3",
7780
"compute-scroll-into-view": "^3.1.0",
7881
"lodash": "^4.17.21",
79-
"re-resizable": "6.9.9",
82+
"re-resizable": "^6.10.1",
8083
"react": "^16.13.1",
81-
"react-codemirror2": "^7.3.0",
8284
"react-dom": "^16.13.1",
8385
"react-flow-renderer": "9.7.4",
8486
"react-flow-renderer-lts": "npm:react-flow-renderer@^10.3.17",
8587
"react-inlinesvg": "^3.0.3",
8688
"react-markdown": "^8.0.7",
87-
"react-syntax-highlighter": "^15.5.0",
89+
"react-syntax-highlighter": "^15.6.1",
8890
"rehype-raw": "^6.1.1",
8991
"remark-definition-list": "^1.2.0",
9092
"remark-gfm": "^3.0.1",
9193
"remark-parse": "^10.0.2",
9294
"reset-css": "^5.0.2",
9395
"unified": "^11.0.5",
94-
"wicg-inert": "^3.1.3"
96+
"wicg-inert": "^3.1.3",
97+
"xml-formatter": "^3.6.3"
9598
},
9699
"devDependencies": {
97-
"@babel/core": "^7.25.2",
100+
"@babel/core": "^7.26.0",
98101
"@babel/plugin-proposal-class-properties": "^7.16.7",
99102
"@babel/plugin-proposal-private-methods": "^7.16.11",
100103
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
101-
"@babel/preset-env": "^7.25.4",
102-
"@babel/preset-flow": "^7.24.7",
103-
"@babel/preset-react": "^7.24.7",
104-
"@babel/preset-typescript": "^7.24.7",
105-
"@storybook/addon-actions": "^8.2.9",
106-
"@storybook/addon-essentials": "^8.2.9",
107-
"@storybook/addon-jest": "^8.2.9",
108-
"@storybook/addon-links": "^8.2.9",
104+
"@babel/preset-env": "^7.26.0",
105+
"@babel/preset-flow": "^7.25.9",
106+
"@babel/preset-react": "^7.25.9",
107+
"@babel/preset-typescript": "^7.26.0",
108+
"@storybook/addon-actions": "^8.4.3",
109+
"@storybook/addon-essentials": "^8.4.3",
110+
"@storybook/addon-jest": "^8.4.3",
111+
"@storybook/addon-links": "^8.4.3",
109112
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
110-
"@storybook/cli": "^8.2.9",
113+
"@storybook/cli": "^8.4.3",
111114
"@storybook/preset-scss": "^1.0.3",
112-
"@storybook/react": "^8.2.9",
113-
"@storybook/react-webpack5": "^8.2.9",
114-
"@storybook/test": "^8.2.9",
115-
"@testing-library/jest-dom": "^6.5.0",
115+
"@storybook/react": "^8.4.3",
116+
"@storybook/react-webpack5": "^8.4.3",
117+
"@storybook/test": "^8.4.3",
118+
"@testing-library/jest-dom": "^6.6.3",
116119
"@testing-library/react": "^12.1.2",
117120
"@types/codemirror": "^5.60.15",
118121
"@types/color": "^3.0.6",
@@ -122,7 +125,7 @@
122125
"@typescript-eslint/eslint-plugin": "^5.62.0",
123126
"@typescript-eslint/parser": "^5.62.0",
124127
"babel-jest": "^29.7.0",
125-
"chromatic": "^11.7.1",
128+
"chromatic": "^11.18.1",
126129
"eslint": "^8.57.0",
127130
"eslint-plugin-react": "^7.35.0",
128131
"eslint-plugin-react-hooks": "^4.6.2",
@@ -141,7 +144,7 @@
141144
"rimraf": "^5.0.10",
142145
"sass": "1.62.1",
143146
"sass-loader": "10.3.1",
144-
"storybook": "^8.2.9",
147+
"storybook": "^8.4.3",
145148
"stylelint": "^15.11.0",
146149
"stylelint-config-recess-order": "^4.6.0",
147150
"stylelint-config-standard-scss": "^9.0.0",
@@ -158,7 +161,9 @@
158161
},
159162
"resolutions": {
160163
"**/@types/react": "^17.0.80",
161-
"node-sass-package-importer/**/postcss": "^8.4.41"
164+
"node-sass-package-importer/**/postcss": "^8.4.41",
165+
"**/cross-spawn": "^7.0.5 ",
166+
"**/micromatch": "^4.0.8"
162167
},
163168
"husky": {
164169
"hooks": {

src/cmem/ActivityControl/ActivityControlTypes.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// @deprecated use `SilkActivityStatusProps`
2-
export interface IActivityStatus {
1+
export interface SilkActivityStatusProps {
32
// Optional project ID
43
project?: string;
54
// Optional task ID
@@ -23,7 +22,7 @@ export interface IActivityStatus {
2322
// If the activity has been cancelled
2423
cancelled: boolean;
2524
// The concrete status ID
26-
concreteStatus: ConcreteActivityStatus;
25+
concreteStatus: SilkActivityStatusConcrete;
2726
// If there was an error, this contains the exception message
2827
exceptionMessage?: string | null;
2928
// The runtime in ms
@@ -33,15 +32,12 @@ export interface IActivityStatus {
3332
// The queue time spent waiting before workflow is executed as date time, e.g. "2021-09-07T09:34:53.153Z"
3433
queueTime?: string;
3534
}
36-
export type SilkActivityStatusProps = IActivityStatus;
3735

38-
// @deprecated use `SilkActivityStatusConcrete`
39-
export type ConcreteActivityStatus =
36+
export type SilkActivityStatusConcrete =
4037
| "Cancelled"
4138
| "Failed"
4239
| "Successful"
4340
| "Not executed"
4441
| "Running"
4542
| "Waiting"
4643
| "Canceling";
47-
export type SilkActivityStatusConcrete = ConcreteActivityStatus;

src/cmem/ActivityControl/ActivityControlWidget.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ export interface ActivityControlWidgetProps extends TestableComponent {
8383
timerExecutionMsg?: JSX.Element | null;
8484
}
8585

86-
// @deprecated use `ActivityControlWidgetProps`
87-
export type IActivityControlProps = ActivityControlWidgetProps;
88-
8986
interface IActivityContextMenu extends TestableComponent {
9087
// Tooltip for the context menu
9188
tooltip?: string;
@@ -106,9 +103,6 @@ export interface ActivityControlWidgetAction extends TestableComponent {
106103
hasStateWarning?: boolean;
107104
}
108105

109-
// @deprecated use `ActivityControlWidgetAction`
110-
export type IActivityAction = ActivityControlWidgetAction;
111-
112106
interface IActivityMenuAction extends ActivityControlWidgetAction {
113107
// Optional link
114108
href?: string;

0 commit comments

Comments
 (0)