sequential-workflow-designer-react 0.13.2 → 0.13.3

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/lib/cjs/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var ReactDOM = require('react-dom/client');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var React = require('react');
5
+ var react = require('react');
6
6
  var sequentialWorkflowDesigner = require('sequential-workflow-designer');
7
7
 
8
8
  var Presenter = /** @class */ (function () {
@@ -53,18 +53,18 @@ var __assign = function() {
53
53
  };
54
54
 
55
55
  if (!window.sqdGlobalEditorContext) {
56
- window.sqdGlobalEditorContext = React.createContext(null);
56
+ window.sqdGlobalEditorContext = react.createContext(null);
57
57
  }
58
58
  var globalEditorContext = window.sqdGlobalEditorContext;
59
59
  function useGlobalEditor() {
60
- var wrapper = React.useContext(globalEditorContext);
60
+ var wrapper = react.useContext(globalEditorContext);
61
61
  if (!wrapper) {
62
62
  throw new Error('Cannot find global editor context');
63
63
  }
64
64
  return wrapper;
65
65
  }
66
66
  function GlobalEditorWrapperContext(props) {
67
- var _a = React.useState(function () { return createWrapper(); }), wrapper = _a[0], setWrapper = _a[1];
67
+ var _a = react.useState(function () { return createWrapper(); }), wrapper = _a[0], setWrapper = _a[1];
68
68
  function createWrapper() {
69
69
  return {
70
70
  properties: props.definition.properties,
@@ -83,18 +83,18 @@ function GlobalEditorWrapperContext(props) {
83
83
  }
84
84
 
85
85
  if (!window.sqdStepEditorContext) {
86
- window.sqdStepEditorContext = React.createContext(null);
86
+ window.sqdStepEditorContext = react.createContext(null);
87
87
  }
88
88
  var stepEditorContext = window.sqdStepEditorContext;
89
89
  function useStepEditor() {
90
- var wrapper = React.useContext(stepEditorContext);
90
+ var wrapper = react.useContext(stepEditorContext);
91
91
  if (!wrapper) {
92
92
  throw new Error('Cannot find step editor context');
93
93
  }
94
94
  return wrapper;
95
95
  }
96
96
  function StepEditorWrapperContext(props) {
97
- var _a = React.useState(function () { return createWrapper(); }), wrapper = _a[0], setWrapper = _a[1];
97
+ var _a = react.useState(function () { return createWrapper(); }), wrapper = _a[0], setWrapper = _a[1];
98
98
  function createWrapper() {
99
99
  return {
100
100
  id: props.step.id,
@@ -144,15 +144,17 @@ function wrapDefinition(value, isValid) {
144
144
 
145
145
  var externalEditorClassName = 'sqd-editor-react';
146
146
  function SequentialWorkflowDesigner(props) {
147
- var _a = React.useState(null), placeholder = _a[0], setPlaceholder = _a[1];
148
- var onDefinitionChangeRef = React.useRef(props.onDefinitionChange);
149
- var onSelectedStepIdChangedRef = React.useRef(props.onSelectedStepIdChanged);
150
- var globalEditorRef = React.useRef(props.globalEditor);
151
- var stepEditorRef = React.useRef(props.stepEditor);
152
- var controllerRef = React.useRef(props.controller);
153
- var customActionHandlerRef = React.useRef(props.customActionHandler);
154
- var designerRef = React.useRef(null);
155
- var editorRootRef = React.useRef(null);
147
+ var _a = react.useState(null), placeholder = _a[0], setPlaceholder = _a[1];
148
+ var onDefinitionChangeRef = react.useRef(props.onDefinitionChange);
149
+ var onSelectedStepIdChangedRef = react.useRef(props.onSelectedStepIdChanged);
150
+ var onIsEditorCollapsedChangedRef = react.useRef(props.onIsEditorCollapsedChanged);
151
+ var onIsToolboxCollapsedChangedRef = react.useRef(props.onIsToolboxCollapsedChanged);
152
+ var globalEditorRef = react.useRef(props.globalEditor);
153
+ var stepEditorRef = react.useRef(props.stepEditor);
154
+ var controllerRef = react.useRef(props.controller);
155
+ var customActionHandlerRef = react.useRef(props.customActionHandler);
156
+ var designerRef = react.useRef(null);
157
+ var editorRootRef = react.useRef(null);
156
158
  var definition = props.definition;
157
159
  var selectedStepId = props.selectedStepId;
158
160
  var isReadonly = props.isReadonly;
@@ -161,6 +163,8 @@ function SequentialWorkflowDesigner(props) {
161
163
  var steps = props.stepsConfiguration;
162
164
  var validator = props.validatorConfiguration;
163
165
  var toolbox = props.toolboxConfiguration;
166
+ var isEditorCollapsed = props.isEditorCollapsed;
167
+ var isToolboxCollapsed = props.isToolboxCollapsed;
164
168
  var controlBar = props.controlBar;
165
169
  var extensions = props.extensions;
166
170
  if (props.controlBar === undefined) {
@@ -176,7 +180,7 @@ function SequentialWorkflowDesigner(props) {
176
180
  if (!globalEditorRef.current) {
177
181
  throw new Error('Global editor is not provided');
178
182
  }
179
- if (React.isValidElement(globalEditorRef.current)) {
183
+ if (react.isValidElement(globalEditorRef.current)) {
180
184
  return Presenter.render(externalEditorClassName, editorRootRef, jsxRuntime.jsx(GlobalEditorWrapperContext, __assign({ definition: def, context: context }, { children: globalEditorRef.current })));
181
185
  }
182
186
  return globalEditorRef.current(def, context);
@@ -185,7 +189,7 @@ function SequentialWorkflowDesigner(props) {
185
189
  if (!stepEditorRef.current) {
186
190
  throw new Error('Step editor is not provided');
187
191
  }
188
- if (React.isValidElement(stepEditorRef.current)) {
192
+ if (react.isValidElement(stepEditorRef.current)) {
189
193
  return Presenter.render(externalEditorClassName, editorRootRef, jsxRuntime.jsx(StepEditorWrapperContext, __assign({ step: step, context: context }, { children: stepEditorRef.current })));
190
194
  }
191
195
  return stepEditorRef.current(step, context);
@@ -206,22 +210,28 @@ function SequentialWorkflowDesigner(props) {
206
210
  // console.log('sqd: designer destroyed');
207
211
  }
208
212
  }
209
- React.useEffect(function () {
213
+ react.useEffect(function () {
210
214
  onDefinitionChangeRef.current = props.onDefinitionChange;
211
215
  }, [props.onDefinitionChange]);
212
- React.useEffect(function () {
216
+ react.useEffect(function () {
213
217
  onSelectedStepIdChangedRef.current = props.onSelectedStepIdChanged;
214
218
  }, [props.onSelectedStepIdChanged]);
215
- React.useEffect(function () {
219
+ react.useEffect(function () {
220
+ onIsEditorCollapsedChangedRef.current = props.onIsEditorCollapsedChanged;
221
+ }, [props.onIsEditorCollapsedChanged]);
222
+ react.useEffect(function () {
223
+ onIsToolboxCollapsedChangedRef.current = props.onIsToolboxCollapsedChanged;
224
+ }, [props.onIsToolboxCollapsedChanged]);
225
+ react.useEffect(function () {
216
226
  globalEditorRef.current = props.globalEditor;
217
227
  }, [props.globalEditor]);
218
- React.useEffect(function () {
228
+ react.useEffect(function () {
219
229
  stepEditorRef.current = props.stepEditor;
220
230
  }, [props.stepEditor]);
221
- React.useEffect(function () {
231
+ react.useEffect(function () {
222
232
  customActionHandlerRef.current = props.customActionHandler;
223
233
  }, [props.customActionHandler]);
224
- React.useEffect(function () {
234
+ react.useEffect(function () {
225
235
  if (!placeholder) {
226
236
  return;
227
237
  }
@@ -239,7 +249,15 @@ function SequentialWorkflowDesigner(props) {
239
249
  }
240
250
  if (isReadonly !== undefined && isReadonly !== designerRef.current.isReadonly()) {
241
251
  designerRef.current.setIsReadonly(isReadonly);
242
- // console.log('sqd: readonly updated');
252
+ // console.log('sqd: isReadonly updated');
253
+ }
254
+ if (isToolboxCollapsed !== undefined && isToolboxCollapsed !== designerRef.current.isToolboxCollapsed()) {
255
+ designerRef.current.setIsToolboxCollapsed(isToolboxCollapsed);
256
+ // console.log('sqd: isToolboxCollapsed updated');
257
+ }
258
+ if (isEditorCollapsed !== undefined && isEditorCollapsed !== designerRef.current.isEditorCollapsed()) {
259
+ designerRef.current.setIsEditorCollapsed(isEditorCollapsed);
260
+ // console.log('sqd: isEditorCollapsed updated');
243
261
  }
244
262
  return;
245
263
  }
@@ -248,12 +266,14 @@ function SequentialWorkflowDesigner(props) {
248
266
  var designer = sequentialWorkflowDesigner.Designer.create(placeholder, definition.value, {
249
267
  theme: theme,
250
268
  undoStackSize: undoStackSize,
251
- toolbox: toolbox,
269
+ toolbox: toolbox
270
+ ? __assign(__assign({}, toolbox), { isCollapsed: isToolboxCollapsed }) : false,
252
271
  steps: steps,
253
272
  validator: validator,
254
273
  controlBar: controlBar,
255
274
  editors: globalEditorRef.current && stepEditorRef.current
256
275
  ? {
276
+ isCollapsed: isEditorCollapsed,
257
277
  globalEditorProvider: globalEditorProvider,
258
278
  stepEditorProvider: stepEditorProvider
259
279
  }
@@ -278,9 +298,33 @@ function SequentialWorkflowDesigner(props) {
278
298
  onSelectedStepIdChangedRef.current(stepId);
279
299
  }
280
300
  });
301
+ designer.onIsToolboxCollapsedChanged.subscribe(function (isCollapsed) {
302
+ if (onIsToolboxCollapsedChangedRef.current) {
303
+ onIsToolboxCollapsedChangedRef.current(isCollapsed);
304
+ }
305
+ });
306
+ designer.onIsEditorCollapsedChanged.subscribe(function (isCollapsed) {
307
+ if (onIsEditorCollapsedChangedRef.current) {
308
+ onIsEditorCollapsedChangedRef.current(isCollapsed);
309
+ }
310
+ });
281
311
  designerRef.current = designer;
282
- }, [placeholder, definition, selectedStepId, isReadonly, theme, undoStackSize, toolbox, controlBar, steps, validator, extensions]);
283
- React.useEffect(function () {
312
+ }, [
313
+ placeholder,
314
+ definition,
315
+ selectedStepId,
316
+ isReadonly,
317
+ theme,
318
+ undoStackSize,
319
+ toolbox,
320
+ isToolboxCollapsed,
321
+ isEditorCollapsed,
322
+ controlBar,
323
+ steps,
324
+ validator,
325
+ extensions
326
+ ]);
327
+ react.useEffect(function () {
284
328
  return tryDestroy;
285
329
  }, []);
286
330
  return jsxRuntime.jsx("div", { ref: setPlaceholder, "data-testid": "designer", className: "sqd-designer-react" });
@@ -334,7 +378,7 @@ var SequentialWorkflowDesignerController = /** @class */ (function () {
334
378
  return SequentialWorkflowDesignerController;
335
379
  }());
336
380
  function useSequentialWorkflowDesignerController(deps) {
337
- return React.useMemo(function () { return SequentialWorkflowDesignerController.create(); }, deps || []);
381
+ return react.useMemo(function () { return SequentialWorkflowDesignerController.create(); }, deps || []);
338
382
  }
339
383
 
340
384
  exports.GlobalEditorWrapperContext = GlobalEditorWrapperContext;
package/lib/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import ReactDOM from 'react-dom/client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import React, { createContext, useContext, useState, useRef, useEffect, useMemo } from 'react';
3
+ import { createContext, useContext, useState, useRef, useEffect, isValidElement, useMemo } from 'react';
4
4
  import { Designer } from 'sequential-workflow-designer';
5
5
 
6
6
  var Presenter = /** @class */ (function () {
@@ -145,6 +145,8 @@ function SequentialWorkflowDesigner(props) {
145
145
  var _a = useState(null), placeholder = _a[0], setPlaceholder = _a[1];
146
146
  var onDefinitionChangeRef = useRef(props.onDefinitionChange);
147
147
  var onSelectedStepIdChangedRef = useRef(props.onSelectedStepIdChanged);
148
+ var onIsEditorCollapsedChangedRef = useRef(props.onIsEditorCollapsedChanged);
149
+ var onIsToolboxCollapsedChangedRef = useRef(props.onIsToolboxCollapsedChanged);
148
150
  var globalEditorRef = useRef(props.globalEditor);
149
151
  var stepEditorRef = useRef(props.stepEditor);
150
152
  var controllerRef = useRef(props.controller);
@@ -159,6 +161,8 @@ function SequentialWorkflowDesigner(props) {
159
161
  var steps = props.stepsConfiguration;
160
162
  var validator = props.validatorConfiguration;
161
163
  var toolbox = props.toolboxConfiguration;
164
+ var isEditorCollapsed = props.isEditorCollapsed;
165
+ var isToolboxCollapsed = props.isToolboxCollapsed;
162
166
  var controlBar = props.controlBar;
163
167
  var extensions = props.extensions;
164
168
  if (props.controlBar === undefined) {
@@ -174,7 +178,7 @@ function SequentialWorkflowDesigner(props) {
174
178
  if (!globalEditorRef.current) {
175
179
  throw new Error('Global editor is not provided');
176
180
  }
177
- if (React.isValidElement(globalEditorRef.current)) {
181
+ if (isValidElement(globalEditorRef.current)) {
178
182
  return Presenter.render(externalEditorClassName, editorRootRef, jsx(GlobalEditorWrapperContext, __assign({ definition: def, context: context }, { children: globalEditorRef.current })));
179
183
  }
180
184
  return globalEditorRef.current(def, context);
@@ -183,7 +187,7 @@ function SequentialWorkflowDesigner(props) {
183
187
  if (!stepEditorRef.current) {
184
188
  throw new Error('Step editor is not provided');
185
189
  }
186
- if (React.isValidElement(stepEditorRef.current)) {
190
+ if (isValidElement(stepEditorRef.current)) {
187
191
  return Presenter.render(externalEditorClassName, editorRootRef, jsx(StepEditorWrapperContext, __assign({ step: step, context: context }, { children: stepEditorRef.current })));
188
192
  }
189
193
  return stepEditorRef.current(step, context);
@@ -210,6 +214,12 @@ function SequentialWorkflowDesigner(props) {
210
214
  useEffect(function () {
211
215
  onSelectedStepIdChangedRef.current = props.onSelectedStepIdChanged;
212
216
  }, [props.onSelectedStepIdChanged]);
217
+ useEffect(function () {
218
+ onIsEditorCollapsedChangedRef.current = props.onIsEditorCollapsedChanged;
219
+ }, [props.onIsEditorCollapsedChanged]);
220
+ useEffect(function () {
221
+ onIsToolboxCollapsedChangedRef.current = props.onIsToolboxCollapsedChanged;
222
+ }, [props.onIsToolboxCollapsedChanged]);
213
223
  useEffect(function () {
214
224
  globalEditorRef.current = props.globalEditor;
215
225
  }, [props.globalEditor]);
@@ -237,7 +247,15 @@ function SequentialWorkflowDesigner(props) {
237
247
  }
238
248
  if (isReadonly !== undefined && isReadonly !== designerRef.current.isReadonly()) {
239
249
  designerRef.current.setIsReadonly(isReadonly);
240
- // console.log('sqd: readonly updated');
250
+ // console.log('sqd: isReadonly updated');
251
+ }
252
+ if (isToolboxCollapsed !== undefined && isToolboxCollapsed !== designerRef.current.isToolboxCollapsed()) {
253
+ designerRef.current.setIsToolboxCollapsed(isToolboxCollapsed);
254
+ // console.log('sqd: isToolboxCollapsed updated');
255
+ }
256
+ if (isEditorCollapsed !== undefined && isEditorCollapsed !== designerRef.current.isEditorCollapsed()) {
257
+ designerRef.current.setIsEditorCollapsed(isEditorCollapsed);
258
+ // console.log('sqd: isEditorCollapsed updated');
241
259
  }
242
260
  return;
243
261
  }
@@ -246,12 +264,14 @@ function SequentialWorkflowDesigner(props) {
246
264
  var designer = Designer.create(placeholder, definition.value, {
247
265
  theme: theme,
248
266
  undoStackSize: undoStackSize,
249
- toolbox: toolbox,
267
+ toolbox: toolbox
268
+ ? __assign(__assign({}, toolbox), { isCollapsed: isToolboxCollapsed }) : false,
250
269
  steps: steps,
251
270
  validator: validator,
252
271
  controlBar: controlBar,
253
272
  editors: globalEditorRef.current && stepEditorRef.current
254
273
  ? {
274
+ isCollapsed: isEditorCollapsed,
255
275
  globalEditorProvider: globalEditorProvider,
256
276
  stepEditorProvider: stepEditorProvider
257
277
  }
@@ -276,8 +296,32 @@ function SequentialWorkflowDesigner(props) {
276
296
  onSelectedStepIdChangedRef.current(stepId);
277
297
  }
278
298
  });
299
+ designer.onIsToolboxCollapsedChanged.subscribe(function (isCollapsed) {
300
+ if (onIsToolboxCollapsedChangedRef.current) {
301
+ onIsToolboxCollapsedChangedRef.current(isCollapsed);
302
+ }
303
+ });
304
+ designer.onIsEditorCollapsedChanged.subscribe(function (isCollapsed) {
305
+ if (onIsEditorCollapsedChangedRef.current) {
306
+ onIsEditorCollapsedChangedRef.current(isCollapsed);
307
+ }
308
+ });
279
309
  designerRef.current = designer;
280
- }, [placeholder, definition, selectedStepId, isReadonly, theme, undoStackSize, toolbox, controlBar, steps, validator, extensions]);
310
+ }, [
311
+ placeholder,
312
+ definition,
313
+ selectedStepId,
314
+ isReadonly,
315
+ theme,
316
+ undoStackSize,
317
+ toolbox,
318
+ isToolboxCollapsed,
319
+ isEditorCollapsed,
320
+ controlBar,
321
+ steps,
322
+ validator,
323
+ extensions
324
+ ]);
281
325
  useEffect(function () {
282
326
  return tryDestroy;
283
327
  }, []);
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { MutableRefObject, Context, DependencyList } from 'react';
3
3
  import ReactDOM from 'react-dom/client';
4
- import { Definition, GlobalEditorContext, Designer, GlobalEditorProvider, StepEditorProvider, StepsConfiguration, ValidatorConfiguration, ToolboxConfiguration, CustomActionHandler, DesignerExtension, Step, StepEditorContext } from 'sequential-workflow-designer';
4
+ import { Definition, GlobalEditorContext, Designer, ToolboxConfiguration, GlobalEditorProvider, StepEditorProvider, StepsConfiguration, ValidatorConfiguration, CustomActionHandler, DesignerExtension, Step, StepEditorContext } from 'sequential-workflow-designer';
5
5
 
6
6
  declare class Presenter {
7
7
  static render(className: string, rootRef: MutableRefObject<ReactDOM.Root | null>, element: JSX.Element): HTMLElement;
@@ -55,6 +55,7 @@ declare class SequentialWorkflowDesignerController {
55
55
  }
56
56
  declare function useSequentialWorkflowDesignerController(deps?: DependencyList): SequentialWorkflowDesignerController;
57
57
 
58
+ type ReactToolboxConfiguration = Omit<ToolboxConfiguration, 'isCollapsed'>;
58
59
  interface SequentialWorkflowDesignerProps<TDefinition extends Definition> {
59
60
  definition: WrappedDefinition<TDefinition>;
60
61
  onDefinitionChange: (state: WrappedDefinition<TDefinition>) => void;
@@ -63,11 +64,15 @@ interface SequentialWorkflowDesignerProps<TDefinition extends Definition> {
63
64
  isReadonly?: boolean;
64
65
  globalEditor: false | JSX.Element | GlobalEditorProvider;
65
66
  stepEditor: false | JSX.Element | StepEditorProvider;
67
+ isEditorCollapsed?: boolean;
68
+ onIsEditorCollapsedChanged?: (isCollapsed: boolean) => void;
66
69
  theme?: string;
67
70
  undoStackSize?: number;
68
71
  stepsConfiguration: StepsConfiguration;
69
72
  validatorConfiguration?: ValidatorConfiguration;
70
- toolboxConfiguration: false | ToolboxConfiguration;
73
+ toolboxConfiguration: false | ReactToolboxConfiguration;
74
+ isToolboxCollapsed?: boolean;
75
+ onIsToolboxCollapsedChanged?: (isCollapsed: boolean) => void;
71
76
  /**
72
77
  * @description If true, the control bar will be displayed.
73
78
  */
@@ -102,4 +107,4 @@ declare function StepEditorWrapperContext(props: {
102
107
  context: StepEditorContext;
103
108
  }): JSX.Element;
104
109
 
105
- export { GlobalEditorWrapper, GlobalEditorWrapperContext, Presenter, SequentialWorkflowDesigner, SequentialWorkflowDesignerController, SequentialWorkflowDesignerProps, StepEditorWrapper, StepEditorWrapperContext, WrappedDefinition, useGlobalEditor, useSequentialWorkflowDesignerController, useStepEditor, wrapDefinition };
110
+ export { GlobalEditorWrapper, GlobalEditorWrapperContext, Presenter, ReactToolboxConfiguration, SequentialWorkflowDesigner, SequentialWorkflowDesignerController, SequentialWorkflowDesignerProps, StepEditorWrapper, StepEditorWrapperContext, WrappedDefinition, useGlobalEditor, useSequentialWorkflowDesignerController, useStepEditor, wrapDefinition };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sequential-workflow-designer-react",
3
3
  "description": "React wrapper for Sequential Workflow Designer component.",
4
- "version": "0.13.2",
4
+ "version": "0.13.3",
5
5
  "type": "module",
6
6
  "main": "./lib/esm/index.js",
7
7
  "types": "./lib/index.d.ts",
@@ -47,7 +47,7 @@
47
47
  "peerDependencies": {
48
48
  "react": "^18.2.0",
49
49
  "react-dom": "^18.2.0",
50
- "sequential-workflow-designer": "^0.13.2"
50
+ "sequential-workflow-designer": "^0.13.3"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@rollup/plugin-node-resolve": "^15.0.1",
@@ -63,7 +63,7 @@
63
63
  "prettier": "^2.8.2",
64
64
  "react": "^18.2.0",
65
65
  "react-dom": "^18.2.0",
66
- "sequential-workflow-designer": "^0.13.2",
66
+ "sequential-workflow-designer": "^0.13.3",
67
67
  "rollup": "^3.18.0",
68
68
  "rollup-plugin-dts": "^5.2.0",
69
69
  "rollup-plugin-typescript2": "^0.34.1",