@processmaker/screen-builder 2.87.1 → 2.88.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processmaker/screen-builder",
3
- "version": "2.87.1",
3
+ "version": "2.88.0",
4
4
  "scripts": {
5
5
  "dev": "VITE_COVERAGE=true vite",
6
6
  "build": "vite build",
@@ -56,7 +56,7 @@
56
56
  "@fortawesome/fontawesome-free": "^5.6.1",
57
57
  "@originjs/vite-plugin-commonjs": "^1.0.3",
58
58
  "@panter/vue-i18next": "^0.15.2",
59
- "@processmaker/vue-form-elements": "0.53.0",
59
+ "@processmaker/vue-form-elements": "0.54.0",
60
60
  "@processmaker/vue-multiselect": "2.3.0",
61
61
  "@storybook/addon-essentials": "^7.6.13",
62
62
  "@storybook/addon-interactions": "^7.6.13",
@@ -115,7 +115,7 @@
115
115
  },
116
116
  "peerDependencies": {
117
117
  "@panter/vue-i18next": "^0.15.0",
118
- "@processmaker/vue-form-elements": "0.53.0",
118
+ "@processmaker/vue-form-elements": "0.54.0",
119
119
  "i18next": "^15.0.8",
120
120
  "vue": "^2.6.12",
121
121
  "vuex": "^3.1.1"
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16 4.8L1.06667 0.320003V0H0V10.6667V15.7333H1.06667V10.2667L16 4.8Z" fill="#556271"/>
3
+ </svg>
@@ -2,21 +2,17 @@
2
2
  <div class="card" :style="customStyle">
3
3
  <div class="card-header d-flex justify-content-between align-items-center">
4
4
  <template v-if="dataControl.showControl">
5
- <div class="mb-1 mt-1">
6
- <b-avatar
7
- v-if="dataControl.showAvatar"
8
- size="2em"
9
- :variant="dataControl.variant"
10
- :text="dataControl.count"
11
- class="avatar-text"
12
- ></b-avatar>
5
+ <div class="head-filter">
6
+ <b-badge class="badge-custom" pill :variant="dataControl.variant">
7
+ {{ dataControl.count }}
8
+ </b-badge>
13
9
  <p class="control-text mb-0" :style="dataControl.colorText">
14
10
  {{ $t(title) }}
15
11
  </p>
16
12
  <template v-if="dataControl.dropdownShow === 'requests'">
17
13
  <b-dropdown
18
14
  variant="outline-secondary"
19
- right
15
+ offset="-70"
20
16
  no-caret
21
17
  >
22
18
  <template #button-content>
@@ -48,44 +44,21 @@
48
44
  <div class="mr-4">
49
45
  <b-dropdown
50
46
  variant="outline-secondary"
47
+ offset="-50"
51
48
  size="sm"
52
49
  >
53
50
  <template #button-content>
54
51
  <span class="text-capitalize">
55
- <b-icon
56
- v-if="showBadge"
57
- icon="circle-fill"
58
- class="mr-2"
59
- :variant="badgeVariant"
60
- />
61
52
  {{ $t(titleDropdown) }}
62
53
  </span>
63
54
  </template>
64
55
  <b-dropdown-item
65
- @click="handleDropdownSelection('requests_dropdown', 'all')"
56
+ v-for="option in requestFilterDropdown"
57
+ :key="option"
58
+ @click="handleDropdownSelection('requests_dropdown', option)"
66
59
  >
67
60
  <span class="item-text">
68
- {{ $t("View All") }}
69
- </span>
70
- </b-dropdown-item>
71
- <b-dropdown-item
72
- @click="handleDropdownSelection('requests_dropdown', 'Completed')"
73
- >
74
- <span class="item-text">
75
- <i
76
- class="fas fa-circle mr-2 text-primary"
77
- />
78
- {{ $t("Completed") }}
79
- </span>
80
- </b-dropdown-item>
81
- <b-dropdown-item
82
- @click="handleDropdownSelection('requests_dropdown', 'In Progress')"
83
- >
84
- <span class="item-text">
85
- <i
86
- class="fas fa-circle mr-2 text-success"
87
- />
88
- {{ $t("In Progress") }}
61
+ {{ $t(option) }}
89
62
  </span>
90
63
  </b-dropdown-item>
91
64
  </b-dropdown>
@@ -95,42 +68,21 @@
95
68
  <div class="mr-4">
96
69
  <b-dropdown
97
70
  variant="outline-secondary"
71
+ offset="-50"
98
72
  size="sm"
99
73
  >
100
74
  <template #button-content>
101
75
  <span class="text-capitalize">
102
- <b-icon
103
- v-if="showBadge"
104
- icon="circle-fill"
105
- class="mr-2"
106
- :variant="badgeVariant"
107
- />
108
76
  {{ $t(titleDropdown) }}
109
77
  </span>
110
78
  </template>
111
- <b-dropdown-item @click="handleDropdownSelection('tasks', 'all')">
112
- <span class="item-text">
113
- {{ $t("View All") }}
114
- </span>
115
- </b-dropdown-item>
116
79
  <b-dropdown-item
117
- @click="handleDropdownSelection('tasks', 'Overdue')"
80
+ v-for="option in taskFilterDropdown"
81
+ :key="option"
82
+ @click="handleDropdownSelection('tasks', option)"
118
83
  >
119
84
  <span class="item-text">
120
- <i
121
- class="fas fa-circle mr-2 text-danger"
122
- />
123
- {{ $t("Overdue") }}
124
- </span>
125
- </b-dropdown-item>
126
- <b-dropdown-item
127
- @click="handleDropdownSelection('tasks', 'In Progress')"
128
- >
129
- <span class="item-text">
130
- <i
131
- class="fas fa-circle mr-2 text-warning"
132
- />
133
- {{ $t("In Progress") }}
85
+ {{ $t(option) }}
134
86
  </span>
135
87
  </b-dropdown-item>
136
88
  </b-dropdown>
@@ -172,10 +124,10 @@
172
124
  <template v-if="listOption === 'My Tasks'">
173
125
  <FormTasks @tasksCount="getData"></FormTasks>
174
126
  </template>
175
- <template v-if="listOption === 'My Requests'">
127
+ <template v-if="verifyListCase()">
176
128
  <FormRequests @requestsCount="getData"></FormRequests>
177
129
  </template>
178
- <template v-if="listOption === 'Start New Request'">
130
+ <template v-if="verifyNewCase()">
179
131
  <FormNewRequest @startControl="getData"></FormNewRequest>
180
132
  </template>
181
133
  </div>
@@ -202,24 +154,46 @@ export default {
202
154
  searchCriteria: "",
203
155
  showInput: false,
204
156
  pmql: "",
205
- badgeVariant: "",
206
157
  typeSelected: "",
207
158
  showBadge: false,
208
159
  customStyle: {
209
160
  "border-radius": "8px"
210
- }
161
+ },
162
+ taskFilterDropdown: [
163
+ "Self-service",
164
+ "In Progress",
165
+ "Overdue",
166
+ "View All"
167
+ ],
168
+ requestFilterDropdown: [
169
+ "View All",
170
+ "Completed",
171
+ "In Progress",
172
+ ]
211
173
  };
212
174
  },
213
175
  watch: {
214
176
  listOption() {
215
- this.title = this.listOption;
177
+ this.title = this.checkTitle(this.listOption);
216
178
  this.dataControl = {};
217
179
  }
218
180
  },
219
181
  mounted() {
220
- this.title = this.listOption;
182
+ this.title = this.checkTitle(this.listOption);
221
183
  },
222
184
  methods: {
185
+ /**
186
+ * Backward compatibility beacuse value is used as title
187
+ */
188
+ checkTitle(option) {
189
+ if (option === "Start New Request") {
190
+ return "Start New Case";
191
+ }
192
+ if (option === "My Requests") {
193
+ return "My Cases";
194
+ }
195
+ return option;
196
+ },
223
197
  getData(data) {
224
198
  this.dataControl = data.dataControls;
225
199
  },
@@ -231,23 +205,19 @@ export default {
231
205
  this.typeSelected = listType;
232
206
  if (listType === "tasks") {
233
207
  this.$root.$emit("dropdownSelectionTask", valueSelected);
234
- this.titleDropdown =
235
- valueSelected === "all" ? this.viewAll : valueSelected;
236
- this.colorBadge();
208
+ this.titleDropdown = valueSelected;
237
209
  } else {
238
210
  if (listType === "requests_filter") {
239
211
  this.optionRequest = valueSelected;
240
212
  if (valueSelected === "by_me") {
241
- this.title = "Request Started By Me";
213
+ this.title = "Cases Started By Me";
242
214
  }
243
215
  if (valueSelected === "as_participant") {
244
216
  this.title = "With Me as Participant";
245
217
  }
246
218
  }
247
219
  if (listType === "requests_dropdown") {
248
- this.titleDropdown =
249
- valueSelected === "all" ? this.viewAll : valueSelected;
250
- this.colorBadge();
220
+ this.titleDropdown = valueSelected;
251
221
  this.dropdownRequest = valueSelected;
252
222
  }
253
223
  combinedFilter.push(this.optionRequest);
@@ -285,34 +255,21 @@ export default {
285
255
  this.showInput = !this.showInput;
286
256
  },
287
257
  /**
288
- * Set the badge's color of the filter selected
258
+ * Verify backward compatibility for Start New Case
289
259
  */
290
- colorBadge() {
291
- if (this.titleDropdown === "In Progress") {
292
- if (this.typeSelected === "tasks") {
293
- this.badgeVariant = "warning";
294
- }
295
- if (this.typeSelected === "requests_dropdown") {
296
- this.badgeVariant = "success";
297
- }
298
- this.showBadge = true;
299
- }
300
- if (this.titleDropdown === "Overdue") {
301
- this.badgeVariant = "danger";
302
- this.showBadge = true;
303
- }
304
- if (this.titleDropdown === "Overdue") {
305
- this.badgeVariant = "danger";
306
- this.showBadge = true;
307
- }
308
- if (this.titleDropdown === "Completed") {
309
- this.badgeVariant = "primary";
310
- this.showBadge = true;
311
- }
312
- if (this.titleDropdown === "View All" || this.titleDropdown === "all") {
313
- this.badgeVariant = "";
314
- this.showBadge = false;
315
- }
260
+ verifyNewCase() {
261
+ return (
262
+ this.listOption === "Start New Case" ||
263
+ this.listOption === "Start New Request"
264
+ );
265
+ },
266
+ /**
267
+ * Verify backward compatibility for List Cases
268
+ */
269
+ verifyListCase() {
270
+ return (
271
+ this.listOption === "My Cases" || this.listOption === "My Requests"
272
+ );
316
273
  }
317
274
  }
318
275
  };
@@ -355,10 +312,13 @@ export default {
355
312
  height: 300px;
356
313
  overflow: auto;
357
314
  background-color: #f9f9f9;
315
+ padding: 0;
358
316
  }
359
317
 
360
- .btn-outline-secondary {
318
+ .btn-outline-secondary,
319
+ .btn-outline-secondary:focus {
361
320
  border: none;
321
+ box-shadow: none;
362
322
  }
363
323
 
364
324
  .item-text {
@@ -372,12 +332,42 @@ export default {
372
332
  }
373
333
 
374
334
  .dropdown-menu {
375
- padding: 10px;
376
- width: 211px;
377
- box-shadow: 0px 10px 20px 4px #00000021;
335
+ padding: 0px;
336
+ width: 180px;
337
+ box-shadow: 0px 4px 8px 0px #0000001A;
338
+ border-radius: 4px;
378
339
  }
379
340
 
380
341
  .dropdown-item {
381
- padding: 10px 8px;
342
+ padding: 13px 12px;
343
+ font-family: 'Open Sans', sans-serif;
344
+ font-size: 16px;
345
+ font-weight: 400;
346
+ line-height: 21.79px;
347
+ letter-spacing: -0.02em;
348
+ text-align: left;
349
+ }
350
+
351
+ .btn-outline-secondary:hover,
352
+ .btn-outline-secondary:not(:disabled):not(.disabled):active,
353
+ .btn-outline-secondary:not(:disabled):not(.disabled).active,
354
+ .show > .btn-outline-secondary.dropdown-toggle {
355
+ background: none;
356
+ color: #228fed;
357
+ border: none;
358
+ box-shadow: none;
359
+ }
360
+
361
+ .head-filter {
362
+ display: flex;
363
+ align-items: baseline;
364
+ gap: 8px;
365
+ }
366
+
367
+ .badge {
368
+ display: inline-flex;
369
+ padding: 8px;
370
+ height: 24px;
371
+ align-items: center;
382
372
  }
383
373
  </style>
@@ -1,20 +1,23 @@
1
1
  <template>
2
2
  <div>
3
- <div v-if="Object.keys(processes).length && !loading" class="process-list">
3
+ <div
4
+ v-if="Object.keys(processes).length && !loading"
5
+ class="process-list p-4"
6
+ >
4
7
  <div class="row">
5
8
  <template v-for="(process, index) in processes">
6
- <div v-for="(event, indexE) in emptyStartEvents(process)" :key="`process-${index}-${indexE}`" class="col-sm-6">
7
- <ProcessCard
8
- :filter="filter"
9
- :process="process"
10
- :event="event"
11
- />
9
+ <div
10
+ v-for="(event, indexE) in emptyStartEvents(process)"
11
+ :key="`process-${index}-${indexE}`"
12
+ class="col-sm-6"
13
+ >
14
+ <ProcessCard :filter="filter" :process="process" :event="event" />
12
15
  </div>
13
16
  </template>
14
17
  </div>
15
18
  </div>
16
19
  <div v-else>
17
- <formEmpty link="" title="No Request to Start" url="" />
20
+ <formEmpty link="" title="No Case to Start" url="" />
18
21
  </div>
19
22
  </div>
20
23
  </template>