@processmaker/modeler 1.33.0 → 1.35.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 (41) hide show
  1. package/cypress.json +1 -1
  2. package/dist/modeler.common.js +846 -2162
  3. package/dist/modeler.common.js.map +1 -1
  4. package/dist/modeler.umd.js +846 -2162
  5. package/dist/modeler.umd.js.map +1 -1
  6. package/dist/modeler.umd.min.js +4 -4
  7. package/dist/modeler.umd.min.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/.DS_Store +0 -0
  10. package/src/ModelerApp.vue +0 -13
  11. package/src/components/crown/crownButtons/icons/faAlignBottom.js +3 -3
  12. package/src/components/crown/crownButtons/icons/faAlignLeft.js +3 -3
  13. package/src/components/crown/crownButtons/icons/faAlignRight.js +3 -3
  14. package/src/components/crown/crownButtons/icons/faAlignTop.js +3 -3
  15. package/src/components/crown/crownButtons/icons/faCenterHorizontally.js +3 -3
  16. package/src/components/crown/crownButtons/icons/faCenterVertically.js +3 -3
  17. package/src/components/crown/crownButtons/icons/faDistributeHorizontally.js +3 -3
  18. package/src/components/crown/crownButtons/icons/faDistributeVertically.js +3 -3
  19. package/src/components/crown/crownMultiselect/crownMultiselect.vue +3 -3
  20. package/src/components/highlightColors.js +8 -0
  21. package/src/components/inspectors/inspectorButton/inspectorButton.scss +1 -0
  22. package/src/components/modeler/Modeler.vue +46 -3
  23. package/src/components/nodes/index.js +0 -1
  24. package/src/components/railBottom/RailBottom.vue +9 -0
  25. package/src/components/railBottom/controls/Controls.vue +14 -2
  26. package/src/components/railBottom/controls/SubmenuPopper/SubmenuPopper.vue +6 -4
  27. package/src/components/railBottom/controls/controls.scss +2 -0
  28. package/src/components/railBottom/miniPaperControl/miniPaperControl.scss +1 -0
  29. package/src/components/railBottom/railBottom.scss +2 -0
  30. package/src/components/railBottom/zoomControl/ZoomControl.vue +1 -3
  31. package/src/components/rails/explorer-rail/explorer.vue +3 -3
  32. package/src/components/rails/explorer-rail/filterNodeTypes/filterNodeTypes.vue +3 -0
  33. package/src/components/rails/explorer-rail/pmBlocksLoop/pmBlocksLoop.vue +19 -9
  34. package/src/components/toolbar/ToolBar.vue +21 -5
  35. package/src/components/toolbar/toolbar.scss +23 -0
  36. package/src/components/topRail/validateControl/validateButton/ValidateButton.vue +2 -0
  37. package/src/mixins/highlightConfig.js +15 -12
  38. package/src/mixins/linkConfig.js +15 -8
  39. package/src/nodeTypesStore.js +2 -0
  40. package/src/store.js +1 -0
  41. package/src/components/modeler/ModelerReadonly.vue +0 -1042
@@ -22,6 +22,7 @@
22
22
  aria-label="Publish controls"
23
23
  data-cy="publish-control"
24
24
  >
25
+ <div class="divider" />
25
26
  <template v-if="isVersionsInstalled">
26
27
  <div
27
28
  class="toolbar-item toolbar-version-status"
@@ -63,6 +64,17 @@
63
64
  data-cy="ellipsis-menu"
64
65
  />
65
66
  </template>
67
+ <button
68
+ v-else
69
+ class="save-button"
70
+ data-test="mini-map-btn"
71
+ v-b-tooltip.hover
72
+ :title="$t('Save')"
73
+ @click="$emit('saveBpmn')"
74
+ >
75
+ <font-awesome-icon :icon="saveIcon" />
76
+ <span class="save-button-label">{{ $t('Save') }}</span>
77
+ </button>
66
78
  </div>
67
79
  </div>
68
80
  </div>
@@ -74,7 +86,6 @@ import { faCompress, faExpand, faMapMarked, faMinus, faPlus, faRedo, faUndo, faS
74
86
  import undoRedoStore from '@/undoRedoStore';
75
87
  import Breadcrumb from '@/components/toolbar/breadcrumb/Breadcrumb';
76
88
  import TopRail from '@/components/topRail/TopRail.vue';
77
-
78
89
  export default {
79
90
  name: 'tool-bar',
80
91
  components: {
@@ -218,13 +229,18 @@ export default {
218
229
  },
219
230
  },
220
231
  mounted() {
221
- if (this.$root.$children[0].process.is_template) {
222
- const indexOfActions = this.ellipsisMenuActions.findIndex(object => {
223
- return object.value === 'save-template';
224
- });
232
+ const childProcess = this.$root.$children[0]?.process;
233
+ const indexOfActions = this.ellipsisMenuActions.findIndex(object => {
234
+ return object.value === 'save-template';
235
+ });
225
236
 
237
+ if (childProcess?.is_template) {
226
238
  this.ellipsisMenuActions.splice(indexOfActions, 1);
227
239
  }
240
+
241
+ if (childProcess?.asset_type === 'PM_BLOCK') {
242
+ this.ellipsisMenuActions.splice(indexOfActions, 2);
243
+ }
228
244
  },
229
245
  };
230
246
  </script>
@@ -79,3 +79,26 @@ $toolbar-background-color: #fff;
79
79
  border-top-left-radius: 4px !important;
80
80
  border-bottom-left-radius: 4px !important;
81
81
  }
82
+
83
+ .save-button {
84
+ display: flex;
85
+ justify-content: center;
86
+ align-items: center;
87
+ height: 32px;
88
+ background-color: #6C757D;
89
+ border: 0 none;
90
+ border-radius: 4px;
91
+ transition: background-color 0.3s ease;
92
+ color: #ffffff;
93
+ &:active {
94
+ background-color: #5A6268;
95
+ }
96
+ &-label {
97
+ padding-left: 0.4em;
98
+ }
99
+ }
100
+ .divider {
101
+ border-left: 1px solid #6C757D;
102
+ height: 80%;
103
+ padding-left: 11px;
104
+ }
@@ -3,6 +3,8 @@
3
3
  type="button"
4
4
  @click.prevent="handleOpen"
5
5
  :class="['validate-button', { 'validate-button-active': isOpen }]"
6
+ :title="$t('Auto validate')"
7
+ v-b-tooltip.hover.viewport.d50="{ customClass: 'no-pointer-events' }"
6
8
  data-cy="validate-button"
7
9
  >
8
10
  <inline-svg :src="isOpen ? validateOpenIcon : validateCloseIcon" />
@@ -1,12 +1,15 @@
1
1
  import cloneDeep from 'lodash/cloneDeep';
2
2
  import store from '@/store';
3
-
4
- const COLOR_DEFAULT = '#5096db';
5
- const COLOR_ERROR = '##FF0000';
6
- const COLOR_IN_PROGRESS = '#1572C2';
7
- const COLOR_IDLE = '#ced4da';
8
- const COLOR_COMPLETED = '#00875A';
9
- const COLOR_COMPLETED_FILL = '#edfffc';
3
+ import {
4
+ COLOR_DEFAULT,
5
+ COLOR_ERROR,
6
+ COLOR_IN_PROGRESS,
7
+ COLOR_IN_PROGRESS_FILL,
8
+ COLOR_IDLE,
9
+ COLOR_IDLE_FILL,
10
+ COLOR_COMPLETED,
11
+ COLOR_COMPLETED_FILL,
12
+ } from '@/components/highlightColors.js';
10
13
 
11
14
  const errorHighlighter = {
12
15
  highlighter: {
@@ -41,7 +44,7 @@ const completedHighlighter = {
41
44
  options: {
42
45
  attrs: {
43
46
  stroke: COLOR_COMPLETED,
44
- 'stroke-width': 3,
47
+ 'stroke-width': 5,
45
48
  },
46
49
  },
47
50
  },
@@ -53,8 +56,7 @@ const inProgressHighlighter = {
53
56
  options: {
54
57
  attrs: {
55
58
  stroke: COLOR_IN_PROGRESS,
56
- 'stroke-width': 3,
57
- 'stroke-dasharray': '4 4',
59
+ 'stroke-width': 5,
58
60
  },
59
61
  },
60
62
  },
@@ -66,7 +68,7 @@ const idleHighlighter = {
66
68
  options: {
67
69
  attrs: {
68
70
  stroke: COLOR_IDLE,
69
- 'stroke-width': 3,
71
+ 'stroke-width': 5,
70
72
  },
71
73
  },
72
74
  },
@@ -124,10 +126,11 @@ export default {
124
126
  }
125
127
  this.shapeView.unhighlight(this.shapeBody, inProgressHighlighter);
126
128
  if (this.isInProgress) {
129
+ this.shape.attr('body/fill', COLOR_IN_PROGRESS_FILL);
127
130
  this.shapeView.highlight(this.shapeBody, inProgressHighlighter);
128
131
  }
129
132
  if (this.isIdle) {
130
- this.shape.attr('body/fill', COLOR_IDLE);
133
+ this.shape.attr('body/fill', COLOR_IDLE_FILL);
131
134
  this.shapeView.highlight(this.shapeBody, idleHighlighter);
132
135
  }
133
136
  return;
@@ -5,6 +5,10 @@ import { invalidNodeColor, setShapeColor, validNodeColor } from '@/components/no
5
5
  import { getDefaultAnchorPoint } from '@/portsUtils';
6
6
  import resetShapeColor from '@/components/resetShapeColor';
7
7
  import store from '@/store';
8
+ import {
9
+ COLOR_IDLE,
10
+ COLOR_COMPLETED,
11
+ } from '@/components/highlightColors.js';
8
12
 
9
13
  const endpoints = {
10
14
  source: 'source',
@@ -15,11 +19,8 @@ function isPoint(item) {
15
19
  return item.x && item.y;
16
20
  }
17
21
 
18
- const COLOR_IDLE = '#ced4da';
19
- const COLOR_COMPLETED = '#00875A';
20
-
21
22
  export default {
22
- props: ['highlighted', 'paper', 'paperManager', 'isCompleted'],
23
+ props: ['highlighted', 'paper', 'paperManager', 'isCompleted', 'isIdle'],
23
24
  data() {
24
25
  return {
25
26
  sourceShape: null,
@@ -80,10 +81,16 @@ export default {
80
81
  },
81
82
  methods: {
82
83
  setShapeHighlight() {
83
- const COLOR = this.isCompleted ? COLOR_COMPLETED : COLOR_IDLE;
84
- this.shape.attr({
85
- line: { stroke: COLOR },
86
- });
84
+ if (this.isCompleted) {
85
+ this.shape.attr({
86
+ line: { stroke: COLOR_COMPLETED },
87
+ });
88
+ }
89
+ else if (this.isIdle) {
90
+ this.shape.attr({
91
+ line: { stroke: COLOR_IDLE },
92
+ });
93
+ }
87
94
  },
88
95
  findSourceShape() {
89
96
  return this.graph.getElements().find(element => {
@@ -68,6 +68,8 @@ export default new Vuex.Store({
68
68
  id: uniqueId('pmBlockNode_'),
69
69
  type: pmBlockNode.id,
70
70
  icon: pmBlockNode.icon,
71
+ customIcon: pmBlockNode.customIcon,
72
+ svgIcon: pmBlockNode.svgIcon,
71
73
  label: pmBlockNode.label,
72
74
  description: pmBlockNode.description,
73
75
  bpmnType: pmBlockNode.bpmnType,
package/src/store.js CHANGED
@@ -59,6 +59,7 @@ export default new Vuex.Store({
59
59
  copiedElements: state => state.copiedElements,
60
60
  clientLeftPaper: state => state.clientLeftPaper,
61
61
  isReadOnly: state => state.readOnly,
62
+ showComponent: state => !state.readOnly,
62
63
  },
63
64
  mutations: {
64
65
  setReadOnly(state, value) {