bpmn-js-rails 0.1.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.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +6 -0
  3. data/app/assets/javascripts/bpmn-js/bpmn-modeler.production.min.js +199 -0
  4. data/app/assets/javascripts/bpmn-js/bpmn-viewer.production.min.js +22 -0
  5. data/app/assets/javascripts/dmn-js/dmn-modeler.production.min.js +194 -0
  6. data/app/assets/javascripts/dmn-js/dmn-viewer.production.min.js +16 -0
  7. data/app/assets/javascripts/form-js/form-editor.umd.js +78936 -0
  8. data/app/assets/javascripts/form-js/form-viewer.umd.js +54147 -0
  9. data/app/assets/stylesheets/bpmn-js/bpmn-font/css/bpmn-codes.css +108 -0
  10. data/app/assets/stylesheets/bpmn-js/bpmn-font/css/bpmn-embedded.css +166 -0
  11. data/app/assets/stylesheets/bpmn-js/bpmn-font/css/bpmn.css +164 -0
  12. data/app/assets/stylesheets/bpmn-js/bpmn-font/font/bpmn.eot +0 -0
  13. data/app/assets/stylesheets/bpmn-js/bpmn-font/font/bpmn.svg +224 -0
  14. data/app/assets/stylesheets/bpmn-js/bpmn-font/font/bpmn.ttf +0 -0
  15. data/app/assets/stylesheets/bpmn-js/bpmn-font/font/bpmn.woff +0 -0
  16. data/app/assets/stylesheets/bpmn-js/bpmn-font/font/bpmn.woff2 +0 -0
  17. data/app/assets/stylesheets/bpmn-js/bpmn-js.css +145 -0
  18. data/app/assets/stylesheets/bpmn-js/diagram-js.css +1011 -0
  19. data/app/assets/stylesheets/dmn-js/diagram-js.css +1011 -0
  20. data/app/assets/stylesheets/dmn-js/dmn-font/css/dmn-codes.css +41 -0
  21. data/app/assets/stylesheets/dmn-js/dmn-font/css/dmn-embedded.css +98 -0
  22. data/app/assets/stylesheets/dmn-js/dmn-font/css/dmn.css +97 -0
  23. data/app/assets/stylesheets/dmn-js/dmn-font/font/dmn.eot +0 -0
  24. data/app/assets/stylesheets/dmn-js/dmn-font/font/dmn.svg +90 -0
  25. data/app/assets/stylesheets/dmn-js/dmn-font/font/dmn.ttf +0 -0
  26. data/app/assets/stylesheets/dmn-js/dmn-font/font/dmn.woff +0 -0
  27. data/app/assets/stylesheets/dmn-js/dmn-font/font/dmn.woff2 +0 -0
  28. data/app/assets/stylesheets/dmn-js/dmn-js-boxed-expression-controls.css +130 -0
  29. data/app/assets/stylesheets/dmn-js/dmn-js-boxed-expression.css +186 -0
  30. data/app/assets/stylesheets/dmn-js/dmn-js-decision-table-controls.css +301 -0
  31. data/app/assets/stylesheets/dmn-js/dmn-js-decision-table.css +580 -0
  32. data/app/assets/stylesheets/dmn-js/dmn-js-drd.css +95 -0
  33. data/app/assets/stylesheets/dmn-js/dmn-js-literal-expression.css +165 -0
  34. data/app/assets/stylesheets/dmn-js/dmn-js-shared.css +221 -0
  35. data/app/assets/stylesheets/form-js/form-js-editor.css +2342 -0
  36. data/app/assets/stylesheets/form-js/form-js.css +3694 -0
  37. data/app/helpers/bpmn_js_rails/view_helper.rb +291 -0
  38. data/app/javascript/bpmn_js_rails/controllers/bpmn_js_modeler_controller.js +85 -0
  39. data/app/javascript/bpmn_js_rails/controllers/bpmn_js_viewer_controller.js +46 -0
  40. data/app/javascript/bpmn_js_rails/controllers/dmn_js_modeler_controller.js +102 -0
  41. data/app/javascript/bpmn_js_rails/controllers/dmn_js_viewer_controller.js +45 -0
  42. data/app/javascript/bpmn_js_rails/controllers/form_js_editor_controller.js +80 -0
  43. data/app/javascript/bpmn_js_rails/controllers/form_js_viewer_controller.js +52 -0
  44. data/app/javascript/bpmn_js_rails/index.js +34 -0
  45. data/app/models/bpmn_js_rails/decision.rb +60 -0
  46. data/app/models/bpmn_js_rails/diagram.rb +51 -0
  47. data/app/models/bpmn_js_rails/form.rb +32 -0
  48. data/config/importmap.rb +7 -0
  49. data/config/routes.rb +2 -0
  50. data/db/migrate/20260319000001_create_bpmn_js_rails_diagrams.rb +15 -0
  51. data/db/migrate/20260319000002_create_bpmn_js_rails_forms.rb +15 -0
  52. data/db/migrate/20260319000003_create_bpmn_js_rails_decisions.rb +15 -0
  53. data/lib/bpmn-js-rails.rb +1 -0
  54. data/lib/bpmn_js_rails/engine.rb +30 -0
  55. data/lib/bpmn_js_rails/version.rb +3 -0
  56. data/lib/bpmn_js_rails/version.rb.erb +3 -0
  57. data/lib/bpmn_js_rails.rb +5 -0
  58. data/lib/generators/bpmn_js_rails/install/install_generator.rb +58 -0
  59. data/lib/generators/bpmn_js_rails/install/templates/create_bpmn_js_rails_decisions.rb.erb +15 -0
  60. data/lib/generators/bpmn_js_rails/install/templates/create_bpmn_js_rails_diagrams.rb.erb +15 -0
  61. data/lib/generators/bpmn_js_rails/install/templates/create_bpmn_js_rails_forms.rb.erb +15 -0
  62. data/lib/tasks/form_js_rails_tasks.rake +4 -0
  63. metadata +116 -0
@@ -0,0 +1,165 @@
1
+ .dmn-literal-expression-container {
2
+ --decision-properties-background-color: var(--color-white);
3
+ --decision-properties-border-color: var(--color-grey-225-10-15);
4
+ --decision-properties-color: var(--color-grey-225-10-15);
5
+ --literal-expression-color: var(--color-grey-225-10-15);
6
+ --literal-expression-properties-border-color: var(--color-grey-225-10-15);
7
+ --literal-expression-properties-color: var(--color-grey-225-10-15);
8
+ --powered-by-overlay-background-color: var(--color-black-opacity-20);
9
+ --powered-by-overlay-content-background-color: var(--color-white);
10
+ --powered-by-overlay-content-border-color: var(--color-grey-225-10-75);
11
+ --powered-by-overlay-content-color: var(--color-grey-225-10-15);
12
+ --textarea-border-color: var(--color-grey-225-10-15);
13
+ --textarea-color: var(--color-grey-225-10-15);
14
+ --view-drd-button-background-color: var(--color-white);
15
+ --view-drd-button-border-color: var(--color-grey-225-10-75);
16
+ --view-drd-button-color: var(--color-grey-225-10-15);
17
+ --view-drd-button-hover-background-color: var(--color-grey-225-10-97);
18
+ --literal-expression-font-family: 'Arial', sans-serif;
19
+ --literal-expression-font-family-monospace: monospace;
20
+
21
+ font-family: var(--literal-expression-font-family);
22
+ color: var(--literal-expression-color);
23
+ width: 100%;
24
+ height: 100%;
25
+ }
26
+
27
+ .dmn-literal-expression-container .viewer-container {
28
+ width: 100%;
29
+ height: 100%;
30
+ overflow: auto;
31
+ display: flex;
32
+ flex-direction: column;
33
+ }
34
+
35
+ .dmn-literal-expression-container * {
36
+ box-sizing: border-box;
37
+ }
38
+
39
+ /* decision properties */
40
+ .dmn-literal-expression-container .decision-properties {
41
+ border: 1px solid var(--decision-properties-border-color);
42
+ border-bottom: none;
43
+ padding: 10px;
44
+ padding-right: 75px;
45
+ color: var(--decision-properties-color);
46
+ background-color: var(--decision-properties-background-color);
47
+ position: relative;
48
+ min-width: 192px;
49
+ }
50
+
51
+ .dmn-literal-expression-container .decision-name {
52
+ margin: 0;
53
+ font-size: 21px;
54
+ font-weight: normal;
55
+ white-space: pre;
56
+ }
57
+
58
+ .dmn-literal-expression-container .decision-name:not(.editor) {
59
+ cursor: default;
60
+ }
61
+
62
+ .dmn-literal-expression-container .decision-name.editor {
63
+ cursor: text;
64
+ }
65
+
66
+ .dmn-literal-expression-container .decision-name div {
67
+ outline: none;
68
+ }
69
+
70
+ .dmn-literal-expression-container .decision-name:not(.editable),
71
+ .dmn-literal-expression-container .decision-name [contenteditable="true"] {
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ overflow: hidden;
75
+ }
76
+
77
+ .dmn-literal-expression-container .textarea .content-editable {
78
+ height: 100%;
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .dmn-literal-expression-container .decision-name.editor:not(.focussed):hover {
83
+ cursor: text;
84
+ }
85
+
86
+ .dmn-literal-expression-container .decision-name.focussed .content-editable {
87
+ text-overflow: unset;
88
+ }
89
+
90
+ /* textarea */
91
+ .dmn-literal-expression-container .textarea {
92
+ box-sizing: border-box;
93
+ width: 100%;
94
+ padding: 12px;
95
+ font-family: var(--literal-expression-font-family-monospace);
96
+ line-height: 1.4;
97
+ border: 1px solid var(--textarea-border-color);
98
+ border-bottom-width: 1px;
99
+ white-space: pre;
100
+ font-size: 14px;
101
+ color: var(--textarea-color);
102
+ min-height: 250px;
103
+ overflow: auto;
104
+ }
105
+
106
+ .dmn-literal-expression-container .textarea div:focus {
107
+ outline: none;
108
+ }
109
+
110
+ .dmn-literal-expression-container .textarea.editor {
111
+ cursor: text;
112
+ }
113
+
114
+ .dmn-literal-expression-container .textarea:not(.editor) {
115
+ cursor: default;
116
+ }
117
+
118
+ /* literal expression properties */
119
+ .dmn-literal-expression-container .literal-expression-properties {
120
+ box-sizing: border-box;
121
+ width: 100%;
122
+ padding: 0;
123
+ border: 1px solid var(--literal-expression-properties-border-color);
124
+ border-top: none;
125
+ font-size: 14px;
126
+ color: var(--literal-expression-properties-color);
127
+ }
128
+
129
+ .dmn-literal-expression-container .literal-expression-properties .variables-table {
130
+ border-spacing: 8px;
131
+ border-collapse: separate;
132
+ }
133
+
134
+ .dmn-literal-expression-container .literal-expression-properties .variables-table tr td:first-child {
135
+ font-weight: bold;
136
+ }
137
+
138
+ .dmn-literal-expression-container .literal-expression-properties .variables-table tr td:last-child {
139
+ min-width: 100px;
140
+ }
141
+
142
+ .dmn-literal-expression-container .literal-expression-properties .variable-name-input {
143
+ width: 100%;
144
+ }
145
+
146
+ /* view drd */
147
+ .dmn-literal-expression-container .view-drd {
148
+ margin-right: 10px;
149
+ padding-bottom: 10px;
150
+ }
151
+
152
+ .dmn-literal-expression-container .view-drd .view-drd-button {
153
+ background: var(--view-drd-button-background-color);
154
+ padding: 8px;
155
+ border: solid 1px var(--view-drd-button-border-color);
156
+ border-radius: 2px;
157
+ font-size: 14px;
158
+ color: var(--view-drd-button-color);
159
+ font-weight: bold;
160
+ cursor: pointer;
161
+ }
162
+
163
+ .dmn-literal-expression-container .view-drd .view-drd-button:hover {
164
+ background: var(--view-drd-button-hover-background-color);
165
+ }
@@ -0,0 +1,221 @@
1
+ /* Color definitions */
2
+ .dmn-js-parent {
3
+ --color-grey-225-10-15: hsl(225 10% 15%);
4
+ --color-grey-225-10-35: hsl(225 10% 35%);
5
+ --color-grey-225-10-55: hsl(225 10% 55%);
6
+ --color-grey-225-10-75: hsl(225 10% 75%);
7
+ --color-grey-225-10-80: hsl(225 10% 80%);
8
+ --color-grey-225-10-85: hsl(225 10% 85%);
9
+ --color-grey-225-10-90: hsl(225 10% 90%);
10
+ --color-grey-225-10-95: hsl(225 10% 95%);
11
+ --color-grey-225-10-97: hsl(225 10% 97%);
12
+ --color-blue-205-100-35: hsl(205 100% 35%);
13
+ --color-blue-205-100-45: hsl(205 100% 45%);
14
+ --color-blue-205-100-45-opacity-30: hsl(205 100% 45% / 30%);
15
+ --color-blue-205-100-50: hsl(205 100% 50%);
16
+ --color-blue-205-100-80: hsl(205 100% 80%);
17
+ --color-blue-205-100-95: hsl(205 100% 95%);
18
+ --color-green-150-86-44: hsl(150 86% 44%);
19
+ --color-red-360-100-35: hsl(360 100% 35%);
20
+ --color-red-360-100-45: hsl(360 100% 45%);
21
+ --color-red-360-100-92: hsl(360 100% 92%);
22
+ --color-red-360-100-97: hsl(360 100% 97%);
23
+ --color-white: hsl(0 0% 100%);
24
+ --color-black: hsl(0 0% 0%);
25
+ --color-black-opacity-10: hsl(0 0% 0% / 10%);
26
+ --color-black-opacity-20: hsl(0 0% 0% / 20%);
27
+ --hint-button-color: var(--color-blue-205-100-35);
28
+ --hint-invalid-color: var(--color-red-360-100-35);
29
+ --separator-color: var(--color-grey-225-10-75);
30
+ --input-border-color: var(--color-grey-225-10-75);
31
+ --input-color: var(--color-grey-225-10-15);
32
+ --input-focus-border-color: var(--color-blue-205-100-50);
33
+ --input-focus-box-shadow-color: var(--color-blue-205-100-80);
34
+ --input-focus-box-shadow-inset-color: var(--color-grey-225-10-75);
35
+ --input-focus-invalid-border-color: var(--color-red-360-100-45);
36
+ --input-focus-invalid-box-shadow-color: var(--color-red-360-100-92);
37
+ --input-invalid-border-color: var(--color-red-360-100-45);
38
+ --input-invalid-color: var(--color-red-360-100-35);
39
+ --select-option-selected-color: var(--color-blue-205-100-35);
40
+ --select-option-hover-background-color: var(--color-black-opacity-10);
41
+ --select-options-background-color: var(--color-white);
42
+ --select-options-border-color: var(--color-grey-225-10-75);
43
+ --select-options-box-shadow-color: var(--color-black-opacity-10);
44
+ --select-options-color: var(--color-grey-225-10-15);
45
+ }
46
+
47
+ .dms-list-component .items {
48
+ margin: 0;
49
+ padding: 0;
50
+ list-style: none;
51
+ line-height: 1.7em;
52
+ }
53
+
54
+ .dms-list-component .items .item .remove {
55
+ float: right;
56
+ }
57
+
58
+ .dms-fill-row {
59
+ display: flex;
60
+ flex-direction: row;
61
+ align-items: center;
62
+ }
63
+
64
+ .dms-fill-row > * {
65
+ flex: 0 0 auto;
66
+ }
67
+
68
+ .dms-fill-row > :last-child {
69
+ flex: 1 1 auto;
70
+ }
71
+
72
+ .dms-label {
73
+ font-weight: bold;
74
+ white-space: nowrap;
75
+ margin-right: 5px;
76
+ }
77
+
78
+ .dms-hrule {
79
+ border: 0;
80
+ border-top: dotted 1px var(--separator-color);
81
+ margin: 10px auto;
82
+ }
83
+
84
+ .dms-heading {
85
+ margin: 12px 0 8px;
86
+ font-weight: bold;
87
+ }
88
+
89
+ .dms-hint {
90
+ font-size: 12px;
91
+ margin-top: 5px;
92
+ color: var(--hint-color);
93
+ }
94
+
95
+ .dms-hint button {
96
+ color: var(--hint-button-color);
97
+ text-decoration: none;
98
+ display: inline;
99
+ border: none;
100
+ padding: 0;
101
+ margin: 0;
102
+ cursor: pointer;
103
+ font: inherit;
104
+ background: none;
105
+ }
106
+
107
+ .dms-validation-warning {
108
+ color: var(--hint-invalid-color);
109
+ }
110
+
111
+ h3.dms-heading {
112
+ font-size: 16px;
113
+ }
114
+
115
+ h4.dms-heading {
116
+ font-size: 14px;
117
+ }
118
+
119
+ .dms-input,
120
+ .dms-select {
121
+ outline: none;
122
+ padding: 3px 6px;
123
+ border: 1px solid var(--input-border-color);
124
+ background: none;
125
+ font-size: 14px;
126
+ font-family: inherit;
127
+ color: var(--input-color);
128
+ min-height: 26px;
129
+ }
130
+
131
+ .dms-input {
132
+ min-height: 26px;
133
+ white-space: pre-wrap;
134
+ }
135
+
136
+ .dms-select {
137
+ height: 26px;
138
+ }
139
+
140
+ .dms-input-select .dms-input {
141
+ padding-right: 24px;
142
+ }
143
+
144
+ .dms-input:focus,
145
+ .dms-select:focus {
146
+ border: solid 1px var(--input-focus-border-color);
147
+ box-shadow: 0 0 0 2px var(--input-focus-box-shadow-color), 0 0 0 1px var(--input-focus-box-shadow-inset-color) inset;
148
+ }
149
+
150
+ .dms-input.invalid,
151
+ .dms-select.invalid {
152
+ border-color: var(--input-invalid-border-color);
153
+ color: var(--input-invalid-color);
154
+ }
155
+
156
+ .dms-select.invalid:focus,
157
+ .dms-input.invalid:focus {
158
+ border: solid 1px var(--input-focus-invalid-border-color);
159
+ box-shadow: 0 0 0 2px var(--input-focus-invalid-box-shadow-color), 0 0 0 1px var(--input-focus-box-shadow-inset-color) inset;
160
+ }
161
+
162
+ .dms-validated-input.dms-block .dms-input,
163
+ .dms-block {
164
+ display: block;
165
+ width: 100%;
166
+ }
167
+
168
+ .dms-script-input {
169
+ height: 150px;
170
+ white-space: pre-wrap;
171
+ overflow: auto;
172
+ }
173
+
174
+ .dms-input-select {
175
+ display: inline-block;
176
+ position: relative;
177
+ min-width: 128px;
178
+ }
179
+
180
+ .dms-input-select .dms-input-select-icon {
181
+ position: absolute;
182
+ right: 6px;
183
+ top: 50%;
184
+ transform: translateY(-50%);
185
+ }
186
+
187
+ .dms-input-select .options {
188
+ background: var(--select-options-background-color);
189
+ }
190
+
191
+ .dms-select-options {
192
+ position: absolute;
193
+ background-color: var(--select-options-background-color);
194
+ border: solid 1px var(--select-options-border-color);
195
+ border-radius: 2px;
196
+ font-size: 14px;
197
+ color: var(--select-options-color);
198
+ box-shadow: 1px 1px 1px 1px var(--select-options-box-shadow-color);
199
+ z-index: 20;
200
+ cursor: pointer;
201
+ overflow: auto;
202
+ }
203
+
204
+ .dms-select-options .option {
205
+ padding: 4px 9px;
206
+ }
207
+
208
+ .dms-select-options .option.active {
209
+ color: var(--select-option-selected-color);
210
+ }
211
+
212
+ .dms-select-options .option:focus,
213
+ .dms-select-options .option:hover {
214
+ background-color: var(--select-option-hover-background-color);
215
+ }
216
+
217
+ .dmn-js-parent .content-editable.placeholder::before {
218
+ content: attr(data-placeholder);
219
+ position: absolute;
220
+ opacity: 0.5;
221
+ }