project-booster-vue 8.90.4 → 8.91.1

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 (32) hide show
  1. package/package.json +1 -1
  2. package/src/components/configurations/search/PbConfigurationsSearch.vue +0 -6
  3. package/src/components/inspiration/PbInspiration.stories.mdx +10 -11
  4. package/src/components/inspiration/PbInspiration.vue +14 -1
  5. package/src/components/inspiration/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-inspiration-with-media-1-snap.png +0 -0
  6. package/src/components/media/detail/PbMediaDetail.vue +0 -2
  7. package/src/components/media/list/PbMediaList.vue +20 -1
  8. package/src/components/media/list/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-media-list-all-media-1-snap.png +0 -0
  9. package/src/components/media/upload/PbMediaUpload.vue +7 -40
  10. package/src/components/media/upload/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-media-upload-101-sandbox-1-snap.png +0 -0
  11. package/src/components/mozaic/dialog/MDialog.vue +21 -14
  12. package/src/components/mozaic/layer/MLayer.vue +19 -13
  13. package/src/components/pedagogy/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-pedagogy-101-sandbox-1-snap.png +0 -0
  14. package/src/components/products/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-products-feature-showcase-with-products-1-snap.png +0 -0
  15. package/src/components/question/list-select/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-scenario-/360/237/246/240-questions-/360/237/246/240-pb-list-select-features-answers-next-step-showcase-feature-next-step-1-snap.png +0 -0
  16. package/src/components/question/upload-document/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-upload-document-form-how-case-without-document-types-1-snap.png +0 -0
  17. package/src/components/question/upload-document/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-upload-document-form-show-case-with-document-types-1-snap.png +0 -0
  18. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-default-theme-1-snap.png +0 -0
  19. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-theming-with-payload-prop-1-snap.png +0 -0
  20. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-theming-with-theme-prop-1-snap.png +0 -0
  21. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-with-a-popin-save-action-1-snap.png +0 -0
  22. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-with-exit-options-1-snap.png +0 -0
  23. package/src/components/restitution/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-pb-restitution-features-without-price-bar-1-snap.png +0 -0
  24. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-101-sandbox-1-snap.png +0 -0
  25. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-form-demo-card-select-1-snap.png +0 -0
  26. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-form-demo-text-input-1-snap.png +0 -0
  27. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-form-demo-textarea-1-snap.png +0 -0
  28. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-read-only-demo-completions-1-snap.png +0 -0
  29. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-read-only-demo-section-bullets-1-snap.png +0 -0
  30. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-read-only-demo-section-image-1-snap.png +0 -0
  31. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-read-only-demo-section-image-banner-1-snap.png +0 -0
  32. package/src/components/tasks/details/__snapshots__/storyshots-puppeteer-test-puppeteer-js-image-storyshots-project-booster-components-/360/237/246/240-tasks-/360/237/246/240-pb-task-details-read-only-demo-title-1-snap.png +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-booster-vue",
3
- "version": "8.90.4",
3
+ "version": "8.91.1",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "test:unit": "vue-cli-service test:unit --forceExit --detectOpenHandles",
@@ -306,10 +306,6 @@ $responsive-breakpoint: 'm';
306
306
  & :deep(.m-dialog__body) {
307
307
  flex-grow: 1;
308
308
  }
309
-
310
- & :deep(.m-dialog__footer) {
311
- z-index: 1;
312
- }
313
309
  }
314
310
 
315
311
  &__results {
@@ -324,8 +320,6 @@ $responsive-breakpoint: 'm';
324
320
  }
325
321
 
326
322
  &__buttons {
327
- @include set-box-shadow('m');
328
-
329
323
  display: flex;
330
324
  flex-direction: column-reverse;
331
325
  justify-content: center;
@@ -7,11 +7,9 @@ import {
7
7
  mediaFileResolver,
8
8
  uploadMediaResolver,
9
9
  } from '../../service/api/mocks/mediaMock';
10
- import { notContentResolver } from '../../service/api/mocks/commonMock';
11
10
  import { rest } from 'msw';
11
+ import { notContentResolver } from '../../service/api/mocks/commonMock';
12
12
  import { nestedAppDecorator } from '../../../.storybook/nested-app-decorator';
13
- import { vuexfireMutations } from 'vuexfire';
14
- import PbMediaUpload from '../media/upload/PbMediaUpload';
15
13
 
16
14
  <Meta
17
15
  title="Project Booster/Components/ 🦠 PbInspiration"
@@ -26,16 +24,17 @@ import PbMediaUpload from '../media/upload/PbMediaUpload';
26
24
  media: mediaStore,
27
25
  },
28
26
  mutations: {
29
- ...vuexfireMutations,
27
+ eventBusSendEvent(state, { code, payload }) {
28
+ console.log('event bus data : ', code, payload);
29
+ },
30
30
  },
31
- },
32
- [
33
- {
34
- name: 'PbMediaUpload',
35
- path: '/media-upload',
36
- component: PbMediaUpload,
31
+ actions: {
32
+ sendEventToBus({ commit }, action) {
33
+ commit('eventBusSendEvent', action);
34
+ },
37
35
  },
38
- ],
36
+ },
37
+ [],
39
38
  ),
40
39
  ]}
41
40
  />
@@ -15,7 +15,7 @@
15
15
  size="s"
16
16
  />
17
17
  <m-flex v-if="(!isLoadingMedia || mediaList.length > 0) && !mediaLoadError">
18
- <pb-media-upload namespace="media" />
18
+ <pb-media-upload namespace="media" @media-uploaded="handleMediaUploaded" />
19
19
  </m-flex>
20
20
  </m-flex>
21
21
  <m-flex class="pb-inspiration__container">
@@ -177,7 +177,14 @@ export default {
177
177
  }),
178
178
  },
179
179
 
180
+ created() {
181
+ this.$store.dispatch('sendEventToBus', { code: 'mediaHubLanded', payload: {} });
182
+ },
183
+
180
184
  methods: {
185
+ handleMediaUploaded() {
186
+ this.$store.dispatch('media/refreshMediaList');
187
+ },
181
188
  handleClickOnDelete(media) {
182
189
  this.mediaToDelete = media;
183
190
  },
@@ -206,6 +213,12 @@ export default {
206
213
  this.mediaToDelete = null;
207
214
  }, 1000);
208
215
  },
216
+ beforeRouteLeave(to, from, next) {
217
+ if (!to.name.startsWith('PbInspiration')) {
218
+ this.$store.dispatch('sendEventToBus', { code: 'mediaHubExited', payload: {} });
219
+ }
220
+ next();
221
+ },
209
222
  },
210
223
  };
211
224
  </script>
@@ -339,11 +339,9 @@ export default {
339
339
  this.reset();
340
340
  document.getElementsByTagName('html')[0].style.setProperty('overflow', 'hidden', 'important');
341
341
  document.getElementsByTagName('body')[0].style.setProperty('overflow', 'hidden', 'important');
342
- this.$store.dispatch('sendEventToBus', { code: 'mediaDetailLanded', payload: {} });
343
342
  } else {
344
343
  document.getElementsByTagName('html')[0].style.overflow = 'auto';
345
344
  document.getElementsByTagName('body')[0].style.overflow = 'auto';
346
- this.$store.dispatch('sendEventToBus', { code: 'mediaDetailExit', payload: {} });
347
345
  }
348
346
  },
349
347
  isMediaNameSaved(newValue, oldValue) {
@@ -69,7 +69,7 @@
69
69
  :namespace="namespace"
70
70
  :media="currentMedia"
71
71
  @click-on-delete="handleClickOnDelete"
72
- @click-on-close="currentMedia = null"
72
+ @click-on-close="handleClickOnClose"
73
73
  />
74
74
  </m-flex>
75
75
  </template>
@@ -142,11 +142,30 @@ export default {
142
142
  },
143
143
  },
144
144
 
145
+ watch: {
146
+ currentMedia(newValue, oldValue) {
147
+ if (oldValue === newValue) {
148
+ return;
149
+ }
150
+ if (!newValue) {
151
+ this.$store.dispatch('sendEventToBus', { code: 'mediaListLanded', payload: {} });
152
+ } else {
153
+ this.$store.dispatch('sendEventToBus', { code: 'mediaDetailLanded', payload: {} });
154
+ }
155
+ },
156
+ },
157
+
145
158
  mounted() {
159
+ this.$store.dispatch('sendEventToBus', { code: 'mediaListLanded', payload: {} });
146
160
  this.showMoreButtonAnimationDelay = 0;
147
161
  },
148
162
 
149
163
  methods: {
164
+ handleClickOnClose() {
165
+ this.$store.dispatch('sendEventToBus', { code: 'mediaDetailExit', payload: {} });
166
+ this.currentMedia = null;
167
+ },
168
+
150
169
  handleClickOnDelete(media) {
151
170
  this.$emit('click-on-delete', media);
152
171
  },
@@ -117,7 +117,7 @@
117
117
  label="Nom de la photo"
118
118
  v-model="fileName"
119
119
  :error="nameSaveError"
120
- :disabled="isMediaNameSaving"
120
+ :disabled="isMediaUploading"
121
121
  required
122
122
  autofocus
123
123
  />
@@ -126,12 +126,13 @@
126
126
  size="s"
127
127
  class="pb-media-upload__preview-room-toggle"
128
128
  name="pb-media-room-toggle"
129
+ v-model="isRoomPicture"
129
130
  label="Il s'agit d'une photo de ma pièce"
130
131
  />
131
132
  </div>
132
133
  <transition name="pb-media-upload--fade" mode="out-in" @before-leave="beforeLeave">
133
134
  <m-flex
134
- v-if="isMediaNameSaving"
135
+ v-if="isMediaUploading"
135
136
  class="pb-media-upload__preview-actions"
136
137
  justify-content="center"
137
138
  full-width
@@ -221,7 +222,8 @@ export default {
221
222
  isMediaUploading: false,
222
223
  isMediaUploaded: false,
223
224
  mediaUploadError: null,
224
- isMediaNameSaving: false,
225
+ isNameAlreadyUsed: false,
226
+ isRoomPicture: false,
225
227
  };
226
228
  },
227
229
 
@@ -244,8 +246,6 @@ export default {
244
246
  error = `Le nom doit faire au maximum ${NAME_MAX_LENGTH} caractères`;
245
247
  } else if (this.isNameAlreadyUsed) {
246
248
  error = 'Ce nom est déjà utilisé dans ce projet';
247
- } else if (this.mediaNameSaveError) {
248
- error = 'Une erreur est survenue lors de la sauvegarde';
249
249
  }
250
250
  return error;
251
251
  },
@@ -280,20 +280,6 @@ export default {
280
280
  }
281
281
  }
282
282
  },
283
-
284
- isMediaNameSaving(newValue) {
285
- if (!newValue && this.isMediaUploaded) {
286
- setTimeout(() => {
287
- this.$refs.pbMediaUploadPreviewInput.focus();
288
- }, 300);
289
- }
290
- },
291
-
292
- isMediaNameSaved(newValue) {
293
- if (newValue) {
294
- this.$router.go(-1);
295
- }
296
- },
297
283
  },
298
284
 
299
285
  mounted() {
@@ -330,6 +316,7 @@ export default {
330
316
  this.validationErrors = [];
331
317
  this.formData = null;
332
318
  this.fileName = null;
319
+ this.isRoomPicture = false;
333
320
  this.$refs?.pbMediaUploadForm?.reset();
334
321
  this.$store.dispatch(this.storePrefix + 'resetMediaUploadContext');
335
322
  },
@@ -339,7 +326,7 @@ export default {
339
326
  this.isMediaUploading = true;
340
327
  this.isMediaUploaded = false;
341
328
  try {
342
- this.$store.dispatch(this.storePrefix + 'uploadFile', this.formData);
329
+ this.$store.dispatch(this.storePrefix + 'uploadFile', this.formData, this.fileName, this.isRoomPicture);
343
330
  this.isMediaUploaded = true;
344
331
  } catch (error) {
345
332
  this.mediaUploadError = error;
@@ -413,26 +400,6 @@ export default {
413
400
 
414
401
  return valid;
415
402
  },
416
-
417
- saveMediaName() {
418
- if (this.isNameValid()) {
419
- this.isNameAlreadyUsed = false;
420
- this.mediaNameSaveError = null;
421
- this.isMediaNameSaving = true;
422
- this.isMediaNameSaved = false;
423
- try {
424
- this.$store.dispatch(this.storePrefix + 'saveMediaName', this.fileName);
425
- this.mediaNameSaveError = null;
426
- this.isMediaNameSaved = true;
427
- } catch (error) {
428
- if (error.response?.body?.code === 'NAME_ALREADY_USED') {
429
- this.isNameAlreadyUsed = true;
430
- }
431
- this.mediaNameSaveError = error;
432
- }
433
- this.isMediaNameSaving = false;
434
- }
435
- },
436
403
  },
437
404
  };
438
405
  </script>
@@ -148,21 +148,8 @@ export default {
148
148
  watch: {
149
149
  showDialog(newValue) {
150
150
  if (newValue) {
151
- this.bodyShadowTopOpacity = 0;
152
- const intervalId = setInterval(() => {
153
- if (this.$refs.pbDialogBody) {
154
- clearInterval(intervalId);
155
- this.bodyShadowBottomOpacity =
156
- Math.min(
157
- this.$refs.pbDialogBody.scrollHeight -
158
- this.$refs.pbDialogBody.scrollTop -
159
- this.$refs.pbDialogBody.clientHeight,
160
- 100,
161
- ) / 100;
162
- }
163
- }, 100);
151
+ this.initShadows();
164
152
  }
165
-
166
153
  this.adjustStyle(newValue);
167
154
  },
168
155
  },
@@ -170,6 +157,7 @@ export default {
170
157
  mounted() {
171
158
  this.updateComponentHeight();
172
159
  window.addEventListener('resize', this.handleResizeEvent);
160
+ this.initShadows();
173
161
  },
174
162
 
175
163
  beforeUnmount() {
@@ -216,6 +204,22 @@ export default {
216
204
  this.bodyShadowBottomOpacity =
217
205
  Math.min(event.srcElement.scrollHeight - event.srcElement.scrollTop - event.srcElement.clientHeight, 100) / 100;
218
206
  },
207
+
208
+ initShadows() {
209
+ this.bodyShadowTopOpacity = 0;
210
+ const intervalId = setInterval(() => {
211
+ if (this.$refs.pbDialogBody) {
212
+ clearInterval(intervalId);
213
+ this.bodyShadowBottomOpacity =
214
+ Math.min(
215
+ this.$refs.pbDialogBody.scrollHeight -
216
+ this.$refs.pbDialogBody.scrollTop -
217
+ this.$refs.pbDialogBody.clientHeight,
218
+ 100,
219
+ ) / 100;
220
+ }
221
+ }, 100);
222
+ },
219
223
  },
220
224
  };
221
225
  </script>
@@ -274,6 +278,8 @@ $responsive-breakpoint: 'm';
274
278
  }
275
279
 
276
280
  &__header {
281
+ background-color: white;
282
+
277
283
  box-sizing: border-box;
278
284
  position: relative;
279
285
  width: 100%;
@@ -327,6 +333,7 @@ $responsive-breakpoint: 'm';
327
333
  }
328
334
 
329
335
  &__footer {
336
+ background-color: white;
330
337
  box-sizing: border-box;
331
338
  width: 100%;
332
339
  z-index: 3;
@@ -155,20 +155,8 @@ export default {
155
155
  watch: {
156
156
  showLayer(newValue) {
157
157
  if (newValue) {
158
- const intervalId = setInterval(() => {
159
- if (this.$refs.pbLayerBodyContent) {
160
- clearInterval(intervalId);
161
- this.bodyShadowBottomOpacity =
162
- Math.min(
163
- this.$refs.pbLayerBodyContent.scrollHeight -
164
- this.$refs.pbLayerBodyContent.scrollTop -
165
- this.$refs.pbLayerBodyContent.clientHeight,
166
- 100,
167
- ) / 100;
168
- }
169
- }, 100);
158
+ this.initShadows();
170
159
  }
171
-
172
160
  this.adjustStyle(newValue);
173
161
  },
174
162
  },
@@ -176,6 +164,7 @@ export default {
176
164
  mounted() {
177
165
  this.updateComponentHeight();
178
166
  window.addEventListener('resize', this.handleResizeEvent);
167
+ this.initShadows();
179
168
  },
180
169
 
181
170
  beforeUnmount() {
@@ -222,6 +211,21 @@ export default {
222
211
  this.bodyShadowBottomOpacity =
223
212
  Math.min(event.srcElement.scrollHeight - event.srcElement.scrollTop - event.srcElement.clientHeight, 100) / 100;
224
213
  },
214
+
215
+ initShadows() {
216
+ const intervalId = setInterval(() => {
217
+ if (this.$refs.pbLayerBodyContent) {
218
+ clearInterval(intervalId);
219
+ this.bodyShadowBottomOpacity =
220
+ Math.min(
221
+ this.$refs.pbLayerBodyContent.scrollHeight -
222
+ this.$refs.pbLayerBodyContent.scrollTop -
223
+ this.$refs.pbLayerBodyContent.clientHeight,
224
+ 100,
225
+ ) / 100;
226
+ }
227
+ }, 100);
228
+ },
225
229
  },
226
230
  };
227
231
  </script>
@@ -268,6 +272,7 @@ $responsive-breakpoint: 'm';
268
272
  }
269
273
 
270
274
  &__header {
275
+ background-color: white;
271
276
  position: relative;
272
277
  width: 100%;
273
278
  z-index: 3;
@@ -321,6 +326,7 @@ $responsive-breakpoint: 'm';
321
326
  }
322
327
 
323
328
  &__footer {
329
+ background-color: white;
324
330
  width: 100%;
325
331
  z-index: 3;
326
332
  }