sequential-workflow-designer 0.18.4 → 0.19.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/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Step, BranchedStep, SequentialStep, Definition, Sequence, ComponentType, DefinitionWalker, StepOrName } from 'sequential-workflow-model';
1
+ import { Definition, Step, Sequence, ComponentType, DefinitionWalker, StepOrName } from 'sequential-workflow-model';
2
2
  export * from 'sequential-workflow-model';
3
3
 
4
4
  declare class Icons {
@@ -68,25 +68,6 @@ type SimpleEventListener<T> = (value: T) => void;
68
68
 
69
69
  declare function race<A, B, C>(timeout: number, a: SimpleEvent<A>, b: SimpleEvent<B>, c?: SimpleEvent<C>): SimpleEvent<[A?, B?, C?]>;
70
70
 
71
- /**
72
- * @deprecated Use {@link Step} instead.
73
- */
74
- interface TaskStep extends Step {
75
- componentType: 'task';
76
- }
77
- /**
78
- * @deprecated Use {@link BranchedStep} instead.
79
- */
80
- interface SwitchStep extends BranchedStep {
81
- componentType: 'switch';
82
- }
83
- /**
84
- * @deprecated Use {@link SequentialStep} instead.
85
- */
86
- interface ContainerStep extends SequentialStep {
87
- componentType: 'container';
88
- }
89
-
90
71
  interface Behavior {
91
72
  onStart(position: Vector): void;
92
73
  onMove(delta: Vector): Behavior | void;
@@ -296,13 +277,21 @@ declare class ComponentContext {
296
277
  private constructor();
297
278
  }
298
279
 
280
+ declare class CustomActionController {
281
+ private readonly configuration;
282
+ private readonly state;
283
+ constructor(configuration: DesignerConfiguration, state: DesignerState);
284
+ trigger(action: CustomAction, step: Step | null, sequence: Sequence): void;
285
+ private notifyStepChanged;
286
+ }
287
+
299
288
  declare class HistoryController {
300
289
  private readonly stack;
301
290
  private readonly state;
302
- private readonly definitionModifier;
291
+ private readonly stateModifier;
303
292
  private readonly stackSize;
304
- static create(initialStack: UndoStack | undefined, state: DesignerState, definitionModifier: DefinitionModifier, configuration: DesignerConfiguration): HistoryController;
305
- constructor(stack: UndoStack, state: DesignerState, definitionModifier: DefinitionModifier, stackSize: number);
293
+ static create(initialStack: UndoStack | undefined, state: DesignerState, stateModifier: StateModifier, configuration: DesignerConfiguration): HistoryController;
294
+ constructor(stack: UndoStack, state: DesignerState, stateModifier: StateModifier, stackSize: number);
306
295
  canUndo(): boolean;
307
296
  undo(): void;
308
297
  canRedo(): boolean;
@@ -351,23 +340,25 @@ declare class DesignerContext {
351
340
  readonly services: Services;
352
341
  readonly componentContext: ComponentContext;
353
342
  readonly definitionWalker: DefinitionWalker;
354
- readonly definitionModifier: DefinitionModifier;
343
+ readonly stateModifier: StateModifier;
355
344
  readonly layoutController: LayoutController;
356
345
  readonly workspaceController: WorkspaceControllerWrapper;
357
346
  readonly behaviorController: BehaviorController;
347
+ readonly customActionController: CustomActionController;
358
348
  readonly historyController: HistoryController | undefined;
359
349
  static create(parent: HTMLElement, startDefinition: Definition, configuration: DesignerConfiguration, services: Services): DesignerContext;
360
- constructor(theme: string, state: DesignerState, configuration: DesignerConfiguration, services: Services, componentContext: ComponentContext, definitionWalker: DefinitionWalker, definitionModifier: DefinitionModifier, layoutController: LayoutController, workspaceController: WorkspaceControllerWrapper, behaviorController: BehaviorController, historyController: HistoryController | undefined);
350
+ constructor(theme: string, state: DesignerState, configuration: DesignerConfiguration, services: Services, componentContext: ComponentContext, definitionWalker: DefinitionWalker, stateModifier: StateModifier, layoutController: LayoutController, workspaceController: WorkspaceControllerWrapper, behaviorController: BehaviorController, customActionController: CustomActionController, historyController: HistoryController | undefined);
361
351
  setWorkspaceController(controller: WorkspaceController): void;
362
352
  }
363
353
 
364
354
  type EditorRendererHandler = (step: Step | null) => void;
365
355
  declare class EditorRenderer {
366
356
  private readonly state;
357
+ private readonly selectedStepIdProvider;
367
358
  private readonly definitionWalker;
368
359
  private readonly handler;
369
360
  private readonly raceEvent;
370
- static create(state: DesignerState, definitionWalker: DefinitionWalker, handler: EditorRendererHandler): EditorRenderer;
361
+ static create(state: DesignerState, selectedStepIdProvider: SelectedStepIdProvider, definitionWalker: DefinitionWalker, handler: EditorRendererHandler): EditorRenderer;
371
362
  private currentStepId;
372
363
  private constructor();
373
364
  destroy(): void;
@@ -376,17 +367,26 @@ declare class EditorRenderer {
376
367
  private readonly raceEventHandler;
377
368
  }
378
369
 
370
+ interface StateModifierDependency {
371
+ update(): void;
372
+ }
373
+
374
+ interface SelectedStepIdProvider {
375
+ onSelectedStepIdChanged: SimpleEvent<string | null>;
376
+ selectedStepId: string | null;
377
+ }
379
378
  declare class EditorApi {
380
379
  private readonly state;
381
380
  private readonly definitionWalker;
382
- private readonly definitionModifier;
383
- constructor(state: DesignerState, definitionWalker: DefinitionWalker, definitionModifier: DefinitionModifier);
381
+ private readonly stateModifier;
382
+ constructor(state: DesignerState, definitionWalker: DefinitionWalker, stateModifier: StateModifier);
384
383
  isCollapsed(): boolean;
385
384
  isReadonly(): boolean;
386
385
  toggleIsCollapsed(): void;
387
386
  subscribeIsCollapsed(listener: SimpleEventListener<boolean>): void;
388
387
  getDefinition(): Definition;
389
- runRenderer(rendererHandler: EditorRendererHandler): EditorRenderer;
388
+ addDefinitionModifierDependency(dependency: StateModifierDependency): void;
389
+ runRenderer(rendererHandler: EditorRendererHandler, customSelectedStepIdProvider: SelectedStepIdProvider | null): EditorRenderer;
390
390
  createStepEditorContext(stepId: string): StepEditorContext;
391
391
  createRootEditorContext(): RootEditorContext;
392
392
  }
@@ -396,10 +396,6 @@ declare class PathBarApi {
396
396
  private readonly definitionWalker;
397
397
  constructor(state: DesignerState, definitionWalker: DefinitionWalker);
398
398
  readonly onStateChanged: SimpleEvent<[(string[] | undefined)?, (DefinitionChangedEvent | undefined)?, unknown?]>;
399
- /**
400
- * @deprecated Don't use this method
401
- */
402
- subscribe(handler: () => void): void;
403
399
  setFolderPath(path: string[]): void;
404
400
  getFolderPath(): string[];
405
401
  getFolderPathStepNames(): string[];
@@ -476,6 +472,7 @@ declare class DesignerApi {
476
472
  readonly workspace: WorkspaceApi;
477
473
  readonly viewport: ViewportApi;
478
474
  readonly pathBar: PathBarApi;
475
+ readonly definitionWalker: DefinitionWalker;
479
476
  static create(context: DesignerContext): DesignerApi;
480
477
  private constructor();
481
478
  }
@@ -712,6 +709,7 @@ interface DesignerExtension {
712
709
  grid?: GridExtension;
713
710
  rootComponent?: RootComponentExtension;
714
711
  sequenceComponent?: SequenceComponentExtension;
712
+ contextMenu?: ContextMenuExtension;
715
713
  daemons?: DaemonExtension[];
716
714
  }
717
715
  interface StepExtension<S extends Step = Step> {
@@ -785,6 +783,17 @@ interface SequencePlaceIndicator {
785
783
  interface SequenceComponentExtension {
786
784
  create(parentElement: SVGElement, sequenceContext: SequenceContext, componentContext: ComponentContext): SequenceComponent;
787
785
  }
786
+ interface ContextMenuExtension {
787
+ createItemsProvider?: (customActionController: CustomActionController) => ContextMenuItemsProvider;
788
+ }
789
+ interface ContextMenuItemsProvider {
790
+ getItems(step: Step | null, sequence: Sequence): ContextMenuItem[];
791
+ }
792
+ interface ContextMenuItem {
793
+ readonly label: string;
794
+ readonly order: number;
795
+ readonly callback?: () => void;
796
+ }
788
797
  interface PlaceholderControllerExtension {
789
798
  create(): PlaceholderController;
790
799
  }
@@ -924,6 +933,7 @@ interface ToolboxGroupConfiguration {
924
933
  steps: StepDefinition[];
925
934
  }
926
935
  interface StepsConfiguration {
936
+ isSelectable?: (step: Step, parentSequence: Sequence) => boolean;
927
937
  canInsertStep?: (step: Step, targetSequence: Sequence, targetIndex: number) => boolean;
928
938
  isDraggable?: (step: Step, parentSequence: Sequence) => boolean;
929
939
  canMoveStep?: (sourceSequence: Sequence, step: Step, targetSequence: Sequence, targetIndex: number) => boolean;
@@ -984,11 +994,17 @@ declare enum DefinitionChangeType {
984
994
  rootReplaced = 8
985
995
  }
986
996
 
987
- declare class DefinitionModifier {
997
+ declare class StateModifier {
988
998
  private readonly definitionWalker;
989
999
  private readonly state;
990
1000
  private readonly configuration;
991
- constructor(definitionWalker: DefinitionWalker, state: DesignerState, configuration: DesignerConfiguration);
1001
+ private readonly dependencies;
1002
+ static create(definitionWalker: DefinitionWalker, state: DesignerState, configuration: DesignerConfiguration): StateModifier;
1003
+ constructor(definitionWalker: DefinitionWalker, state: DesignerState, configuration: DesignerConfiguration, dependencies: StateModifierDependency[]);
1004
+ addDependency(dependency: StateModifierDependency): void;
1005
+ isSelectable(step: Step, parentSequence: Sequence): boolean;
1006
+ trySelectStep(step: Step, parentSequence: Sequence): void;
1007
+ trySelectStepById(stepId: string): void;
992
1008
  isDeletable(stepId: string): boolean;
993
1009
  tryDelete(stepId: string): boolean;
994
1010
  tryInsert(step: Step, targetSequence: Sequence, targetIndex: number): boolean;
@@ -997,21 +1013,17 @@ declare class DefinitionModifier {
997
1013
  isDuplicable(step: Step, parentSequence: Sequence): boolean;
998
1014
  tryDuplicate(step: Step, parentSequence: Sequence): boolean;
999
1015
  replaceDefinition(definition: Definition): void;
1000
- updateDependantFields(): void;
1016
+ updateDependencies(): void;
1001
1017
  }
1002
1018
 
1003
1019
  declare class ControlBarApi {
1004
1020
  private readonly state;
1005
1021
  private readonly historyController;
1006
- private readonly definitionModifier;
1022
+ private readonly stateModifier;
1007
1023
  private readonly viewportApi;
1008
- static create(state: DesignerState, historyController: HistoryController | undefined, definitionModifier: DefinitionModifier, viewportApi: ViewportApi): ControlBarApi;
1024
+ static create(state: DesignerState, historyController: HistoryController | undefined, stateModifier: StateModifier, viewportApi: ViewportApi): ControlBarApi;
1009
1025
  private constructor();
1010
1026
  readonly onStateChanged: SimpleEvent<unknown>;
1011
- /**
1012
- * @deprecated Don't use this method
1013
- */
1014
- subscribe(handler: () => void): void;
1015
1027
  resetViewport(): void;
1016
1028
  zoomIn(): void;
1017
1029
  zoomOut(): void;
@@ -1029,7 +1041,7 @@ declare class ControlBarApi {
1029
1041
  declare class Editor {
1030
1042
  private readonly view;
1031
1043
  private readonly renderer;
1032
- static create(parent: HTMLElement, api: EditorApi, stepEditorClassName: string, stepEditorProvider: StepEditorProvider, rootEditorClassName: string, rootEditorProvider: RootEditorProvider): Editor;
1044
+ static create(parent: HTMLElement, api: EditorApi, stepEditorClassName: string, stepEditorProvider: StepEditorProvider, rootEditorClassName: string, rootEditorProvider: RootEditorProvider, customSelectedStepIdProvider: SelectedStepIdProvider | null): Editor;
1033
1045
  private constructor();
1034
1046
  destroy(): void;
1035
1047
  }
@@ -1037,6 +1049,7 @@ declare class Editor {
1037
1049
  declare class Designer<TDefinition extends Definition = Definition> {
1038
1050
  private readonly view;
1039
1051
  private readonly state;
1052
+ private readonly stateModifier;
1040
1053
  private readonly walker;
1041
1054
  private readonly historyController;
1042
1055
  private readonly api;
@@ -1114,10 +1127,6 @@ declare class Designer<TDefinition extends Definition = Definition> {
1114
1127
  * @description Moves the viewport to the step with the animation.
1115
1128
  */
1116
1129
  moveViewportToStep(stepId: string): void;
1117
- /**
1118
- * @deprecated Use `moveViewportToStep` instead.
1119
- */
1120
- moveViewPortToStep(stepId: string): void;
1121
1130
  /**
1122
1131
  * @description Rerender the root component and all its children.
1123
1132
  */
@@ -1197,16 +1206,6 @@ declare class StepsDesignerExtension implements DesignerExtension {
1197
1206
  readonly steps: StepExtension<Step>[];
1198
1207
  static create(configuration: StepsDesignerExtensionConfiguration): StepsDesignerExtension;
1199
1208
  protected constructor(steps: StepExtension<Step>[]);
1200
- }
1201
- /**
1202
- * @deprecated Use `StepsDesignerExtension` instead.
1203
- */
1204
- declare class StepsExtension extends StepsDesignerExtension {
1205
- }
1206
- /**
1207
- * @deprecated Use `StepsDesignerExtensionConfiguration` instead.
1208
- */
1209
- interface StepsExtensionConfiguration extends StepsDesignerExtensionConfiguration {
1210
1209
  }
1211
1210
 
1212
- export { Attributes, Badge, BadgeExtension, BadgeView, Badges, BadgesResult, BaseClickCommand, CenteredViewportCalculator, ClassicWheelControllerExtension, ClickCommand, ClickCommandType, ClickDetails, Component, ComponentContext, ComponentView, ContainerStep, ContainerStepComponentViewConfiguration, ContainerStepExtensionConfiguration, ControlBarApi, CustomAction, CustomActionHandler, CustomActionHandlerContext, Daemon, DaemonExtension, DefaultSequenceComponent, DefaultSequenceComponentView, DefaultViewportController, DefaultViewportControllerExtension, DefinitionChangeType, DefinitionChangedEvent, Designer, DesignerApi, DesignerConfiguration, DesignerContext, DesignerExtension, DesignerState, Dom, DraggedComponent, DraggedComponentExtension, Editor, EditorApi, EditorsConfiguration, Grid, GridExtension, Icons, InputView, JoinView, KeyboardAction, KeyboardConfiguration, LabelView, LineGridConfiguration, LineGridDesignerExtension, ObjectCloner, OpenFolderClickCommand, OutputView, PathBarApi, Placeholder, PlaceholderController, PlaceholderControllerExtension, PlaceholderDirection, PlaceholderExtension, PlaceholderView, QuantifiedScaleViewportCalculator, RectPlaceholder, RectPlaceholderConfiguration, RectPlaceholderView, RegionView, RerenderStepClickCommand, RootComponentExtension, RootEditorContext, RootEditorProvider, RootValidator, SelectStepClickCommand, SequenceComponent, SequenceComponentExtension, SequenceContext, SequencePlaceIndicator, Services, ServicesResolver, SimpleEvent, SimpleEventListener, StepComponent, StepComponentView, StepComponentViewContext, StepComponentViewFactory, StepComponentViewWrapperExtension, StepContext, StepDefinition, StepDescriptionProvider, StepEditorContext, StepEditorProvider, StepExtension, StepExtensionResolver, StepIconUrlProvider, StepLabelProvider, StepValidator, StepsConfiguration, StepsDesignerExtension, StepsDesignerExtensionConfiguration, StepsExtension, StepsExtensionConfiguration, SwitchStep, SwitchStepComponentViewConfiguration, SwitchStepExtensionConfiguration, TaskStep, TaskStepComponentViewConfiguration, TaskStepExtensionConfiguration, ToolboxApi, ToolboxConfiguration, ToolboxGroupConfiguration, TriggerCustomActionClickCommand, UiComponent, UiComponentExtension, Uid, UidGenerator, UndoStack, UndoStackItem, ValidationErrorBadgeExtension, ValidationErrorBadgeExtensionConfiguration, ValidationErrorBadgeViewConfiguration, ValidatorConfiguration, Vector, Viewport, ViewportController, ViewportControllerExtension, WheelController, WheelControllerExtension, WorkspaceApi, createContainerStepComponentViewFactory, createSwitchStepComponentViewFactory, createTaskStepComponentViewFactory, getAbsolutePosition, race };
1211
+ export { Attributes, Badge, BadgeExtension, BadgeView, Badges, BadgesResult, BaseClickCommand, CenteredViewportCalculator, ClassicWheelControllerExtension, ClickCommand, ClickCommandType, ClickDetails, Component, ComponentContext, ComponentView, ContainerStepComponentViewConfiguration, ContainerStepExtensionConfiguration, ContextMenuExtension, ContextMenuItem, ContextMenuItemsProvider, ControlBarApi, CustomAction, CustomActionController, CustomActionHandler, CustomActionHandlerContext, Daemon, DaemonExtension, DefaultSequenceComponent, DefaultSequenceComponentView, DefaultViewportController, DefaultViewportControllerExtension, DefinitionChangeType, DefinitionChangedEvent, Designer, DesignerApi, DesignerConfiguration, DesignerContext, DesignerExtension, DesignerState, Dom, DraggedComponent, DraggedComponentExtension, Editor, EditorApi, EditorsConfiguration, Grid, GridExtension, Icons, InputView, JoinView, KeyboardAction, KeyboardConfiguration, LabelView, LineGridConfiguration, LineGridDesignerExtension, ObjectCloner, OpenFolderClickCommand, OutputView, PathBarApi, Placeholder, PlaceholderController, PlaceholderControllerExtension, PlaceholderDirection, PlaceholderExtension, PlaceholderView, QuantifiedScaleViewportCalculator, RectPlaceholder, RectPlaceholderConfiguration, RectPlaceholderView, RegionView, RerenderStepClickCommand, RootComponentExtension, RootEditorContext, RootEditorProvider, RootValidator, SelectStepClickCommand, SelectedStepIdProvider, SequenceComponent, SequenceComponentExtension, SequenceContext, SequencePlaceIndicator, Services, ServicesResolver, SimpleEvent, SimpleEventListener, StateModifierDependency, StepComponent, StepComponentView, StepComponentViewContext, StepComponentViewFactory, StepComponentViewWrapperExtension, StepContext, StepDefinition, StepDescriptionProvider, StepEditorContext, StepEditorProvider, StepExtension, StepExtensionResolver, StepIconUrlProvider, StepLabelProvider, StepValidator, StepsConfiguration, StepsDesignerExtension, StepsDesignerExtensionConfiguration, SwitchStepComponentViewConfiguration, SwitchStepExtensionConfiguration, TaskStepComponentViewConfiguration, TaskStepExtensionConfiguration, ToolboxApi, ToolboxConfiguration, ToolboxGroupConfiguration, TriggerCustomActionClickCommand, UiComponent, UiComponentExtension, Uid, UidGenerator, UndoStack, UndoStackItem, ValidationErrorBadgeExtension, ValidationErrorBadgeExtensionConfiguration, ValidationErrorBadgeViewConfiguration, ValidatorConfiguration, Vector, Viewport, ViewportController, ViewportControllerExtension, WheelController, WheelControllerExtension, WorkspaceApi, createContainerStepComponentViewFactory, createSwitchStepComponentViewFactory, createTaskStepComponentViewFactory, getAbsolutePosition, race };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sequential-workflow-designer",
3
3
  "description": "Customizable no-code component for building flow-based programming applications.",
4
- "version": "0.18.4",
4
+ "version": "0.19.0",
5
5
  "type": "module",
6
6
  "main": "./lib/esm/index.js",
7
7
  "types": "./lib/index.d.ts",
@@ -33,6 +33,7 @@
33
33
  z-index: 20;
34
34
  box-sizing: border-box;
35
35
  width: 130px;
36
+ -webkit-user-select: none;
36
37
  user-select: none;
37
38
  }
38
39
  .sqd-toolbox-header {
@@ -222,6 +223,7 @@
222
223
  flex: 1;
223
224
  position: relative;
224
225
  display: block;
226
+ -webkit-user-select: none;
225
227
  user-select: none;
226
228
  }
227
229
  .sqd-workspace-canvas {