sequential-workflow-designer 0.15.2

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/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "sequential-workflow-designer",
3
+ "description": "Customizable no-code component for building flow-based programming applications.",
4
+ "version": "0.15.2",
5
+ "type": "module",
6
+ "main": "./lib/esm/index.js",
7
+ "types": "./lib/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": {
11
+ "require": "./lib/index.d.ts",
12
+ "default": "./lib/index.d.ts"
13
+ },
14
+ "default": {
15
+ "require": "./lib/cjs/index.cjs",
16
+ "default": "./lib/esm/index.js"
17
+ }
18
+ },
19
+ "./css/designer.css": {
20
+ "default": "./css/designer.css"
21
+ },
22
+ "./css/designer-light.css": {
23
+ "default": "./css/designer-light.css"
24
+ },
25
+ "./css/designer-dark.css": {
26
+ "default": "./css/designer-dark.css"
27
+ },
28
+ "./sass/designer.scss": {
29
+ "default": "./sass/designer.scss"
30
+ },
31
+ "./sass/designer-theme.scss": {
32
+ "default": "./sass/designer-theme.scss"
33
+ },
34
+ "./sass/designer-light.scss": {
35
+ "default": "./sass/designer-light.scss"
36
+ },
37
+ "./sass/designer-dark.scss": {
38
+ "default": "./sass/designer-dark.scss"
39
+ }
40
+ },
41
+ "author": {
42
+ "name": "NoCode JS",
43
+ "url": "https://nocode-js.com/"
44
+ },
45
+ "homepage": "https://nocode-js.com/",
46
+ "license": "MIT",
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/nocode-js/sequential-workflow-designer.git"
50
+ },
51
+ "files": [
52
+ "lib/",
53
+ "dist/",
54
+ "css/",
55
+ "sass/"
56
+ ],
57
+ "publishConfig": {
58
+ "registry": "https://registry.npmjs.org/"
59
+ },
60
+ "scripts": {
61
+ "prepare": "cp ../LICENSE LICENSE && cp ../README.md README.md",
62
+ "clean": "rm -rf lib && rm -rf build && rm -rf dist && rm -rf node_modules/.cache/rollup-plugin-typescript2",
63
+ "start": "rollup -c --watch",
64
+ "start:clean": "yarn clean && npm run start",
65
+ "start:sass": "sass --no-source-map --watch ./sass:./css",
66
+ "build": "yarn clean && yarn build:sass && rollup -c",
67
+ "build:sass": "sass --no-source-map ./sass:./css",
68
+ "test": "karma start karma.conf.cjs",
69
+ "test:single": "karma start karma.conf.cjs --single-run",
70
+ "eslint": "eslint ./src --ext .ts",
71
+ "prettier": "prettier --check ./src ./sass",
72
+ "prettier:fix": "prettier --write ./src ./sass"
73
+ },
74
+ "dependencies": {
75
+ "sequential-workflow-model": "^0.2.0"
76
+ },
77
+ "peerDependencies": {
78
+ "sequential-workflow-model": "^0.2.0"
79
+ },
80
+ "devDependencies": {
81
+ "@rollup/plugin-node-resolve": "^15.0.1",
82
+ "@types/jasmine": "^4.3.1",
83
+ "@typescript-eslint/eslint-plugin": "^5.47.0",
84
+ "@typescript-eslint/parser": "^5.47.0",
85
+ "eslint": "^8.30.0",
86
+ "karma": "^6.4.1",
87
+ "karma-chrome-launcher": "^3.1.1",
88
+ "karma-jasmine": "^5.1.0",
89
+ "karma-spec-reporter": "^0.0.36",
90
+ "karma-typescript": "^5.5.3",
91
+ "karma-typescript-es6-transform": "^5.5.3",
92
+ "prettier": "^2.8.2",
93
+ "rollup": "^3.18.0",
94
+ "rollup-plugin-dts": "^5.2.0",
95
+ "rollup-plugin-typescript2": "^0.34.1",
96
+ "typescript": "^4.9.5",
97
+ "sass": "^1.66.1"
98
+ },
99
+ "keywords": [
100
+ "workflow",
101
+ "designer",
102
+ "builder",
103
+ "nocode",
104
+ "lowcode",
105
+ "flow"
106
+ ]
107
+ }
@@ -0,0 +1,68 @@
1
+ @import './designer-theme.scss';
2
+
3
+ @include sqd-theme-ui-toolbox(
4
+ 'dark',
5
+ $panelBackgroundColor: #3f3f3f,
6
+ $panelBoxShadow: none,
7
+ $headerTextColor: #fff,
8
+ $filterBackground: #242424,
9
+ $filterTextColor: #fff,
10
+ $filterBorder: none,
11
+ $groupTextColor: #fff,
12
+ $groupBackgroundColor: #242424
13
+ );
14
+ @include sqd-theme-ui-toolbox-item(
15
+ 'dark',
16
+ $itemTextColor: #000,
17
+ $itemBackgroundColor: #c6c6c6,
18
+ $itemBorder: none,
19
+ $itemBoxShadow: none,
20
+ $itemBorderHovered: none,
21
+ $itemBackgroundColorHovered: #d3d3d3
22
+ );
23
+ @include sqd-theme-ui-control-bar(
24
+ 'dark',
25
+ $panelBackgroundColor: #3f3f3f,
26
+ $panelBoxShadow: none,
27
+ $buttonBorder: none,
28
+ $buttonBackground: #c6c6c6,
29
+ $buttonBackgroundHovered: #d3d3d3
30
+ );
31
+ @include sqd-theme-ui-editor(
32
+ 'dark',
33
+ $panelBackgroundColor: #3f3f3f,
34
+ $panelBoxShadow: none,
35
+ $toggleBackgroundColor: #6f6f6f,
36
+ $toggleBoxShadow: none
37
+ );
38
+ @include sqd-theme-ui-context-menu(
39
+ 'dark',
40
+ $panelBackgroundColor: #3f3f3f,
41
+ $groupTextColor: #ccc,
42
+ $itemTextColor: #fff,
43
+ $itemBackgroundColorHovered: #525252
44
+ );
45
+
46
+ @include sqd-theme-workspace('dark', $backgroundColor: #1f1f1f);
47
+ @include sqd-theme-line-grid('dark', $strokeColor: #2a2a2a);
48
+ @include sqd-theme-join('dark', $joinStrokeColor: #707070);
49
+ @include sqd-theme-region('dark', $strokeColor: #434343, $strokeColorSelected: #fff);
50
+ @include sqd-theme-placeholder('dark', $rectFillColor: #0e0e0e, $rectStrokeColor: #6a6a6a, $rectFillHovered: #ed4800);
51
+ @include sqd-theme-validation-error-badge('dark', $triangleFillColor: #ffa200, $iconFillColor: #000);
52
+
53
+ @include sqd-theme-start-stop-root-component('dark', $circleFillColor: #2c18df, $iconFillColor: #fff);
54
+
55
+ @include sqd-theme-task-step-component(
56
+ 'dark',
57
+ $rectFillColor: #c6c6c6,
58
+ $rectStrokeColor: none,
59
+ $rectStrokeColorSelected: #fff,
60
+ $rectShadow: 0 1.5px 1.5px rgba(0, 0, 0, 0.15),
61
+ $textColor: #000,
62
+ $emptyIconColor: #c6c6c6,
63
+ $inputStrokeColor: #707070,
64
+ $inputFillColor: #c6c6c6,
65
+ $outputFillColor: #707070
66
+ );
67
+ @include sqd-theme-switch-step-component('dark', $inputStrokeColor: #707070, $inputFillColor: #c6c6c6);
68
+ @include sqd-theme-container-step-component('dark', $inputStrokeColor: #707070, $inputFillColor: #c6c6c6);
@@ -0,0 +1,20 @@
1
+ @import './designer-theme.scss';
2
+
3
+ @include sqd-theme-ui-toolbox('light');
4
+ @include sqd-theme-ui-toolbox-item('light');
5
+ @include sqd-theme-ui-control-bar('light');
6
+ @include sqd-theme-ui-editor('light');
7
+ @include sqd-theme-ui-context-menu('light');
8
+
9
+ @include sqd-theme-workspace('light');
10
+ @include sqd-theme-line-grid('light');
11
+ @include sqd-theme-join('light');
12
+ @include sqd-theme-region('light');
13
+ @include sqd-theme-placeholder('light');
14
+ @include sqd-theme-validation-error-badge('light');
15
+
16
+ @include sqd-theme-start-stop-root-component('light');
17
+
18
+ @include sqd-theme-task-step-component('light');
19
+ @include sqd-theme-switch-step-component('light');
20
+ @include sqd-theme-container-step-component('light');
@@ -0,0 +1,378 @@
1
+ @mixin sqd-theme-ui-toolbox(
2
+ $theme,
3
+ $panelBackgroundColor: #fff,
4
+ $panelBoxShadow: (0 0 8px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.15)),
5
+ $headerTextColor: #000,
6
+ $filterBackground: #fff,
7
+ $filterTextColor: #000,
8
+ $filterBorder: (1px solid #c3c3c3),
9
+ $filterBorderColorFocused: #939393,
10
+ $groupTextColor: #000,
11
+ $groupBackgroundColor: #e5e5e5
12
+ ) {
13
+ .sqd-theme-#{$theme} {
14
+ .sqd-toolbox {
15
+ background: $panelBackgroundColor;
16
+ box-shadow: $panelBoxShadow;
17
+ }
18
+ .sqd-toolbox-header-title {
19
+ color: $headerTextColor;
20
+ }
21
+ .sqd-toolbox-filter {
22
+ background: $filterBackground;
23
+ color: $filterTextColor;
24
+ border: $filterBorder;
25
+ }
26
+ .sqd-toolbox-filter:focus {
27
+ border-color: $filterBorderColorFocused;
28
+ }
29
+ .sqd-toolbox-group-title {
30
+ color: $groupTextColor;
31
+ background: $groupBackgroundColor;
32
+ }
33
+ }
34
+ }
35
+ @mixin sqd-theme-ui-toolbox-item(
36
+ $theme,
37
+ $stepType: '',
38
+ $itemTextColor: #000,
39
+ $itemBackgroundColor: #fff,
40
+ $itemBorder: (1px solid #c3c3c3),
41
+ $itemBoxShadow: (0 2px 2px rgba(0, 0, 0, 0.15)),
42
+ $itemBorderHovered: #939393,
43
+ $itemBackgroundColorHovered: #fff,
44
+ $noIconBackgroundColor: #c6c6c6
45
+ ) {
46
+ .sqd-theme-#{$theme} .sqd-toolbox-item#{if($stepType != '', '.sqd-type-' + $stepType, '')} {
47
+ & {
48
+ color: $itemTextColor;
49
+ border: $itemBorder;
50
+ box-shadow: $itemBoxShadow;
51
+ background: $itemBackgroundColor;
52
+ }
53
+ &:hover {
54
+ border-color: $itemBorderHovered;
55
+ background: $itemBackgroundColorHovered;
56
+ }
57
+ & .sqd-toolbox-item-icon.sqd-no-icon {
58
+ background: $noIconBackgroundColor;
59
+ }
60
+ }
61
+ }
62
+
63
+ @mixin sqd-theme-ui-control-bar(
64
+ $theme,
65
+ $panelBackgroundColor: #fff,
66
+ $panelBoxShadow: (0 0 8px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.15)),
67
+ $buttonBackground: #fff,
68
+ $buttonBackgroundHovered: #fff,
69
+ $buttonBorder: (1px solid #c3c3c3),
70
+ $buttonBorderColorHovered: #939393,
71
+ $buttonIconPathFillColor: #000,
72
+ $buttonDeleteIconPathFillColor: #e01a24
73
+ ) {
74
+ .sqd-theme-#{$theme} {
75
+ .sqd-control-bar {
76
+ background: $panelBackgroundColor;
77
+ box-shadow: $panelBoxShadow;
78
+ }
79
+ .sqd-control-bar-button {
80
+ border: $buttonBorder;
81
+ background: $buttonBackground;
82
+ }
83
+ .sqd-control-bar-button:hover {
84
+ border-color: $buttonBorderColorHovered;
85
+ background: $buttonBackgroundHovered;
86
+ }
87
+ .sqd-control-bar-button .sqd-icon-path {
88
+ fill: $buttonIconPathFillColor;
89
+ }
90
+ .sqd-control-bar-button.sqd-delete .sqd-icon-path {
91
+ fill: $buttonDeleteIconPathFillColor;
92
+ }
93
+ }
94
+ }
95
+
96
+ @mixin sqd-theme-ui-editor(
97
+ $theme,
98
+ $panelBackgroundColor: #fff,
99
+ $panelBoxShadow: (0 0 8px rgba(0, 0, 0, 0.15)),
100
+ $toggleBackgroundColor: #fff,
101
+ $toggleBoxShadow: (0 0 8px rgba(0, 0, 0, 0.15))
102
+ ) {
103
+ .sqd-theme-#{$theme} {
104
+ .sqd-smart-editor {
105
+ background: $panelBackgroundColor;
106
+ box-shadow: $panelBoxShadow;
107
+ }
108
+ .sqd-smart-editor-toggle {
109
+ background: $toggleBackgroundColor;
110
+ box-shadow: $toggleBoxShadow;
111
+ }
112
+ }
113
+ }
114
+
115
+ @mixin sqd-theme-ui-context-menu(
116
+ $theme,
117
+ $panelBackgroundColor: #fff,
118
+ $panelBoxShadow: (0 0 8px rgba(0, 0, 0, 0.2)),
119
+ $groupTextColor: #888,
120
+ $itemTextColor: #000,
121
+ $itemBackgroundColorHovered: #eee
122
+ ) {
123
+ .sqd-theme-#{$theme}.sqd-context-menu {
124
+ background: $panelBackgroundColor;
125
+ box-shadow: $panelBoxShadow;
126
+ }
127
+ .sqd-theme-#{$theme} .sqd-context-menu-group {
128
+ color: $groupTextColor;
129
+ }
130
+ .sqd-theme-#{$theme} .sqd-context-menu-item {
131
+ color: $itemTextColor;
132
+ }
133
+ .sqd-theme-#{$theme} .sqd-context-menu-item:hover {
134
+ background: $itemBackgroundColorHovered;
135
+ }
136
+ }
137
+
138
+ @mixin sqd-theme-workspace($theme, $backgroundColor: #f9f9f9) {
139
+ .sqd-theme-#{$theme}.sqd-designer {
140
+ background: $backgroundColor;
141
+ }
142
+ }
143
+
144
+ @mixin sqd-theme-line-grid($theme, $strokeColor: #e3e3e3, $strokeWidth: 1) {
145
+ .sqd-theme-#{$theme} .sqd-line-grid-path {
146
+ stroke: $strokeColor;
147
+ stroke-width: $strokeWidth;
148
+ }
149
+ }
150
+
151
+ @mixin sqd-theme-join($theme, $joinStrokeColor: #000, $joinStrokeWidth: 2) {
152
+ .sqd-theme-#{$theme} {
153
+ .sqd-join {
154
+ stroke-width: $joinStrokeWidth;
155
+ stroke: $joinStrokeColor;
156
+ }
157
+ }
158
+ }
159
+
160
+ @mixin sqd-theme-placeholder(
161
+ $theme,
162
+ $rectFillColor: #d8d8d8,
163
+ $rectStrokeColor: #6a6a6a,
164
+ $rectStrokeWidth: 1,
165
+ $rectStrokeDasharray: 3,
166
+ $rectFillHovered: #ed4800,
167
+ $iconPathFillColor: #2b2b2b,
168
+ $iconPathFillColorHovered: #fff
169
+ ) {
170
+ .sqd-theme-#{$theme} {
171
+ .sqd-placeholder .sqd-placeholder-rect {
172
+ fill: $rectFillColor;
173
+ stroke: $rectStrokeColor;
174
+ stroke-width: $rectStrokeWidth;
175
+ stroke-dasharray: $rectStrokeDasharray;
176
+ }
177
+ .sqd-placeholder.sqd-hover .sqd-placeholder-rect {
178
+ fill: $rectFillHovered;
179
+ }
180
+ .sqd-placeholder-icon-path {
181
+ fill: $iconPathFillColor;
182
+ }
183
+ .sqd-placeholder.sqd-hover .sqd-placeholder-icon-path {
184
+ fill: $iconPathFillColorHovered;
185
+ }
186
+ }
187
+ }
188
+
189
+ @mixin sqd-theme-region(
190
+ $theme,
191
+ $strokeColor: #cecece,
192
+ $strokeColorSelected: #ed4800,
193
+ $strokeWidth: 2,
194
+ $strokeWidthSelected: 2,
195
+ $strokeDasharray: 3,
196
+ $strokeDasharraySelected: 0
197
+ ) {
198
+ .sqd-theme-#{$theme} {
199
+ .sqd-region {
200
+ stroke: $strokeColor;
201
+ stroke-width: $strokeWidth;
202
+ stroke-dasharray: $strokeDasharray;
203
+ }
204
+ .sqd-region.sqd-selected {
205
+ stroke: $strokeColorSelected;
206
+ stroke-width: $strokeWidthSelected;
207
+ stroke-dasharray: $strokeDasharraySelected;
208
+ }
209
+ }
210
+ }
211
+
212
+ @mixin sqd-theme-validation-error-badge($theme, $triangleFillColor: #ffa200, $iconFillColor: #000) {
213
+ .sqd-theme-#{$theme} {
214
+ .sqd-validation-error {
215
+ fill: $triangleFillColor;
216
+ }
217
+ .sqd-validation-error-icon-path {
218
+ fill: $iconFillColor;
219
+ }
220
+ }
221
+ }
222
+
223
+ @mixin sqd-theme-start-stop-root-component($theme, $circleFillColor: #2c18df, $iconFillColor: #fff) {
224
+ .sqd-theme-#{$theme} {
225
+ .sqd-root-start-stop-circle {
226
+ fill: $circleFillColor;
227
+ }
228
+ .sqd-root-start-stop-icon {
229
+ fill: $iconFillColor;
230
+ }
231
+ }
232
+ }
233
+
234
+ @mixin sqd-theme-task-step-component(
235
+ $theme,
236
+ $stepType: '',
237
+ $rectFillColor: #fff,
238
+ $rectStrokeColor: #c3c3c3,
239
+ $rectStrokeColorSelected: #ed4800,
240
+ $rectStrokeWidth: 1,
241
+ $rectStrokeWidthSelected: 2,
242
+ $rectShadow: (0 1.5px 1.5px rgba(0, 0, 0, 0.15)),
243
+ $textColor: #000,
244
+ $emptyIconColor: #c6c6c6,
245
+ $inputStrokeWidth: 2,
246
+ $inputStrokeColor: #000,
247
+ $inputFillColor: #fff,
248
+ $outputFillColor: #000,
249
+ $outputStrokeWidth: 0,
250
+ $outputStrokeColor: #000
251
+ ) {
252
+ .sqd-theme-#{$theme} .sqd-step-task#{if($stepType != '', '.sqd-type-' + $stepType, '')} {
253
+ .sqd-step-task-rect {
254
+ fill: $rectFillColor;
255
+ stroke-width: $rectStrokeWidth;
256
+ stroke: $rectStrokeColor;
257
+ filter: drop-shadow($rectShadow);
258
+ }
259
+ .sqd-step-task-rect.sqd-selected {
260
+ stroke: $rectStrokeColorSelected;
261
+ stroke-width: $rectStrokeWidthSelected;
262
+ }
263
+ .sqd-step-task-text {
264
+ fill: $textColor;
265
+ }
266
+ .sqd-step-task-empty-icon {
267
+ fill: $emptyIconColor;
268
+ }
269
+ @include _sqd-input($inputFillColor: $inputFillColor, $inputStrokeWidth: $inputStrokeWidth, $inputStrokeColor: $inputStrokeColor);
270
+ @include _sqd-output(
271
+ $outputFillColor: $outputFillColor,
272
+ $outputStrokeWidth: $outputStrokeWidth,
273
+ $outputStrokeColor: $outputStrokeColor
274
+ );
275
+ }
276
+ }
277
+
278
+ @mixin sqd-theme-switch-step-component(
279
+ $theme,
280
+ $stepType: '',
281
+ $labelPrimaryTextColor: #fff,
282
+ $labelPrimaryFillColor: #2411db,
283
+ $labelPrimaryStrokeColor: #fff,
284
+ $labelPrimaryStrokeWidth: 0,
285
+ $labelPrimaryShadow: '',
286
+ $labelSecondaryTextColor: #fff,
287
+ $labelSecondaryFillColor: #000,
288
+ $labelSecondaryStrokeColor: #000,
289
+ $labelSecondaryStrokeWidth: 0,
290
+ $labelSecondaryShadow: '',
291
+ $inputStrokeWidth: 2,
292
+ $inputStrokeColor: #000,
293
+ $inputFillColor: #fff
294
+ ) {
295
+ .sqd-theme-#{$theme} .sqd-step-switch#{if($stepType != '', '.sqd-type-' + $stepType, '')} {
296
+ & > .sqd-label-primary > .sqd-label-text {
297
+ fill: $labelPrimaryTextColor;
298
+ }
299
+ & > .sqd-label-primary > .sqd-label-rect {
300
+ fill: $labelPrimaryFillColor;
301
+ stroke-width: $labelPrimaryStrokeWidth;
302
+ @if $labelPrimaryStrokeWidth > 0 {
303
+ stroke: $labelPrimaryStrokeColor;
304
+ }
305
+ @if $labelPrimaryShadow != '' {
306
+ filter: drop-shadow($labelPrimaryShadow);
307
+ }
308
+ }
309
+ & > .sqd-label-secondary > .sqd-label-rect {
310
+ fill: $labelSecondaryFillColor;
311
+ stroke-width: $labelSecondaryStrokeWidth;
312
+ @if $labelSecondaryStrokeWidth > 0 {
313
+ stroke: $labelSecondaryStrokeColor;
314
+ }
315
+ @if $labelSecondaryShadow != '' {
316
+ filter: drop-shadow($labelSecondaryShadow);
317
+ }
318
+ }
319
+ & > .sqd-label-secondary > .sqd-label-text {
320
+ fill: $labelSecondaryTextColor;
321
+ }
322
+ & > g > {
323
+ @include _sqd-input(
324
+ $inputFillColor: $inputFillColor,
325
+ $inputStrokeWidth: $inputStrokeWidth,
326
+ $inputStrokeColor: $inputStrokeColor
327
+ );
328
+ }
329
+ }
330
+ }
331
+
332
+ @mixin sqd-theme-container-step-component(
333
+ $theme,
334
+ $stepType: '',
335
+ $labelTextColor: #fff,
336
+ $labelFillColor: #2411db,
337
+ $inputStrokeWidth: 2,
338
+ $inputStrokeColor: #000,
339
+ $inputFillColor: #fff
340
+ ) {
341
+ .sqd-theme-#{$theme} .sqd-step-container#{if($stepType != '', '.sqd-type-' + $stepType, '')} {
342
+ & > .sqd-label > .sqd-label-text {
343
+ fill: $labelTextColor;
344
+ }
345
+ & > .sqd-label > .sqd-label-rect {
346
+ fill: $labelFillColor;
347
+ }
348
+ & > g > {
349
+ @include _sqd-input(
350
+ $inputFillColor: $inputFillColor,
351
+ $inputStrokeWidth: $inputStrokeWidth,
352
+ $inputStrokeColor: $inputStrokeColor
353
+ );
354
+ }
355
+ }
356
+ }
357
+
358
+ /* internal */
359
+
360
+ @mixin _sqd-input($inputFillColor, $inputStrokeWidth, $inputStrokeColor) {
361
+ .sqd-input {
362
+ fill: $inputFillColor;
363
+ stroke-width: $inputStrokeWidth;
364
+ @if $inputStrokeWidth > 0 {
365
+ stroke: $inputStrokeColor;
366
+ }
367
+ }
368
+ }
369
+
370
+ @mixin _sqd-output($outputFillColor, $outputStrokeWidth, $outputStrokeColor) {
371
+ .sqd-output {
372
+ fill: $outputFillColor;
373
+ stroke-width: $outputStrokeWidth;
374
+ @if $outputStrokeWidth > 0 {
375
+ stroke: $outputStrokeColor;
376
+ }
377
+ }
378
+ }