fcad-core-dragon 2.0.0-beta.2 → 2.0.0-beta.4

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 (72) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/CHANGELOG +9 -0
  3. package/package.json +26 -12
  4. package/src/$locales/en.json +37 -87
  5. package/src/$locales/fr.json +17 -106
  6. package/src/assets/data/onboardingMessages.json +1 -1
  7. package/src/components/AppBase.vue +241 -143
  8. package/src/components/AppBaseButton.vue +2 -6
  9. package/src/components/AppBaseErrorDisplay.vue +193 -183
  10. package/src/components/AppBaseFlipCard.vue +1 -0
  11. package/src/components/AppBaseModule.vue +195 -225
  12. package/src/components/AppBasePage.vue +519 -64
  13. package/src/components/AppBasePopover.vue +41 -0
  14. package/src/components/AppCompAudio.vue +32 -64
  15. package/src/components/AppCompBranchButtons.vue +52 -71
  16. package/src/components/AppCompButtonProgress.vue +12 -18
  17. package/src/components/AppCompCarousel.vue +102 -0
  18. package/src/components/{AppCompInputCheckBox.vue → AppCompInputCheckBoxNext.vue} +56 -94
  19. package/src/components/AppCompInputDropdownNext.vue +159 -0
  20. package/src/components/{AppCompInputRadio.vue → AppCompInputRadioNext.vue} +53 -63
  21. package/src/components/AppCompInputTextNext.vue +106 -0
  22. package/src/components/AppCompInputTextTableNext.vue +141 -0
  23. package/src/components/AppCompInputTextToFillDropdownNext.vue +230 -0
  24. package/src/components/{AppCompInputTextToFillText.vue → AppCompInputTextToFillNext.vue} +71 -64
  25. package/src/components/AppCompJauge.vue +16 -9
  26. package/src/components/AppCompMenu.vue +50 -29
  27. package/src/components/AppCompMenuItem.vue +52 -15
  28. package/src/components/AppCompNavigation.vue +225 -211
  29. package/src/components/AppCompNoteCall.vue +22 -30
  30. package/src/components/AppCompNoteCredit.vue +45 -20
  31. package/src/components/AppCompPlayBar.vue +55 -108
  32. package/src/components/AppCompPlayBarNext.vue +2052 -0
  33. package/src/components/AppCompPlayBarProgress.vue +10 -1
  34. package/src/components/AppCompPopUpNext.vue +503 -0
  35. package/src/components/{AppCompQuiz.vue → AppCompQuizNext.vue} +632 -703
  36. package/src/components/AppCompQuizRecall.vue +74 -75
  37. package/src/components/{AppCompSVG.vue → AppCompSVGNext.vue} +111 -99
  38. package/src/components/AppCompSettingsMenu.vue +11 -8
  39. package/src/components/AppCompTableOfContent.vue +78 -76
  40. package/src/components/AppCompTranscript.vue +5 -0
  41. package/src/components/AppCompVideoPlayer.vue +30 -42
  42. package/src/components/BaseModule.vue +1 -0
  43. package/src/composables/useQuiz.js +206 -0
  44. package/src/externalComps/ModuleView.vue +22 -0
  45. package/src/externalComps/SummaryView.vue +91 -0
  46. package/src/main.js +99 -90
  47. package/src/mixins/$mediaMixins.js +13 -21
  48. package/src/mixins/timerMixin.js +1 -1
  49. package/src/module/stores/appStore.js +901 -0
  50. package/src/module/xapi/ADL.js +8 -4
  51. package/src/plugins/bus.js +7 -2
  52. package/src/plugins/gsap.js +4 -7
  53. package/src/plugins/helper.js +33 -13
  54. package/src/plugins/i18n.js +2 -2
  55. package/src/plugins/idb.js +44 -29
  56. package/src/plugins/save.js +1 -1
  57. package/src/plugins/scorm.js +2 -2
  58. package/src/plugins/xapi.js +2 -2
  59. package/src/public/index.html +22 -10
  60. package/src/router/index.js +13 -10
  61. package/src/router/routes.js +20 -25
  62. package/src/shared/generalfuncs.js +33 -18
  63. package/src/shared/validators.js +116 -6
  64. package/src/components/AppCompInputDropdown.vue +0 -182
  65. package/src/components/AppCompInputTextBox.vue +0 -91
  66. package/src/components/AppCompInputTextTable.vue +0 -158
  67. package/src/components/AppCompInputTextToFillDropdown.vue +0 -257
  68. package/src/components/AppCompPopUp.vue +0 -583
  69. package/src/components/AppCompPopover.vue +0 -27
  70. package/src/mixins/$pageMixins.js +0 -415
  71. package/src/mixins/$quizMixins.js +0 -442
  72. package/src/module/store.js +0 -1014
@@ -1,8 +1,10 @@
1
1
  <!--
2
- @ Description: This component is used to display a quiz and its answer from a previous page if it has been completed by the user. The only quiz type supported is open answer (textarea) and the quiz must be in the same lesson.
3
- @ What it does: Retrieve the quizData specific to an activity ID and pageID. Then, retrieve the answers previously saved by the user to this quiz. After, create an html element including title and conditional content. If the answer have been previously saved, a specific hypertext, the question and the answer (disabled textarea) are displayed. If the answer have not been saved, another hypertext is displayed.
2
+ @ Description: This component is used to display a quiz and its answer from a previous page if it has been completed by the user. The only quiz type supported is open answer (textarea) and the quiz must be in the same lesson.
3
+ @ What it does: Retrieve the quizData specific to an activity ID and pageID. Then, retrieve the answers previously saved by the user to this quiz. After, create an html element including title and conditional content. If the answer have been previously saved, a specific hypertext, the question and the answer (disabled textarea) are displayed. If the answer have not been saved, another hypertext is displayed.
4
+ @How to use: in a page call <app-comp-quiz-recall :quiz-recall-data="defineDQuizRecallData">
5
+ ** where "defineDQuizRecallData" refers to data object of quiz to pass to component
6
+ ** data object should containt following attributes: quizId,activityId,pageId,hypertext_done',hypertext_undone,title,titletag
4
7
  -->
5
-
6
8
  <template>
7
9
  <section class="quizRecall">
8
10
  <!--Optionnal title, out of quiz-answer-conditionning, default tag H4, but can be change by user-->
@@ -39,7 +41,9 @@
39
41
 
40
42
  <script>
41
43
  //Recall mixins has the necessary datas and functions to give back quizRecall statu
42
- import { mapGetters } from 'vuex'
44
+ import { mapState } from 'pinia'
45
+ import { useAppStore } from '../module/stores/appStore'
46
+
43
47
  export default {
44
48
  name: 'AppCompQuizRecall',
45
49
  props: {
@@ -53,9 +57,7 @@ export default {
53
57
  ennonce: '',
54
58
  title: '',
55
59
  titletag: 'h4',
56
- hypertext_done: `<p>${this.$t(
57
- 'message.recall_done'
58
- )}</p>` /*String traduite par défaut*/,
60
+ hypertext_done: `<p>${this.$t('message.recall_done')}</p>` /*String traduite par défaut*/,
59
61
  hypertext_undone: `<p>${this.$t(
60
62
  'message.recall_undone'
61
63
  )}</p>` /*String traduite par défaut*/
@@ -64,30 +66,21 @@ export default {
64
66
  }
65
67
  },
66
68
  computed: {
67
- ...mapGetters(['getAllCompleted', 'getUserInteraction', 'getPageData'])
68
- },
69
- watch: {
70
- //Change quizRecall when userData is changed (it is where answer are saved)
71
- getUserInteraction(newUserData, oldUserData) {
72
- if (this.quizRecallData && this.quizData) {
73
- this.getQuizRecallAnswer(this.quizRecallData, this.quizData)
74
- } else {
75
- this.quizRecall.done == false
76
- }
77
- }
69
+ ...mapState(useAppStore, [
70
+ 'getAllCompleted',
71
+ 'getUserInteraction',
72
+ 'getPageInteraction',
73
+ 'getPageData'
74
+ ])
78
75
  },
79
- mounted() {},
80
76
  created() {
81
77
  //Validate quizRecall data
82
78
  //(no validation to the quiz, only to the new datas)
83
79
  this.validateQuizRecallData(this.quizRecallData)
84
-
80
+ const { activityId, pageId } = this.quizRecallData
85
81
  //Get quizData and validate the quiz type
86
- if (this.quizRecallData.activityId && this.quizRecallData.pageId) {
87
- this.getQuizData(
88
- this.quizRecallData.activityId,
89
- this.quizRecallData.pageId
90
- )
82
+ if (activityId && pageId) {
83
+ this.getQuizData(activityId, pageId)
91
84
  }
92
85
 
93
86
  //Get quizRecall answer
@@ -105,34 +98,40 @@ export default {
105
98
  */
106
99
  findQuizdataObject(searchObject, quizID) {
107
100
  for (let property in searchObject) {
108
- // Check if the current property is an object and has the required properties
101
+ // Should only check for Object or Array property
109
102
  if (
110
- typeof searchObject[property] === 'object' &&
111
- searchObject[property] !== null
112
- ) {
113
- if (
114
- searchObject[property].id === quizID &&
115
- searchObject[property].type_question === 'reponse_ouverte'
116
- ) {
117
- return searchObject[property] // Valid Quiz data found
118
- }
119
- }
120
- }
103
+ searchObject[property].constructor !== Array &&
104
+ searchObject[property].constructor !== Object
105
+ )
106
+ continue
121
107
 
122
- // No reponse_ouverte quiz data with specified ID was found
123
- return null
108
+ // Convert if it not an Array but an Objet
109
+ const searchArray =
110
+ searchObject[property].constructor === Object
111
+ ? [searchObject[property]]
112
+ : searchObject[property]
113
+
114
+ //Only Search for quiz:
115
+ //Search Array is a list of quiz if one of its element has at least the property 'type_question'
116
+ return searchArray[0]['type_question']
117
+ ? searchArray.find(
118
+ (e) => e.id === quizID && e.type_question === 'reponse_ouverte'
119
+ )
120
+ : null
121
+ }
124
122
  },
125
123
  //Get datas from the original open answer quiz
126
124
  getQuizData(activityId, pageId) {
127
125
  if (pageId && activityId) {
128
126
  let pageData = this.getPageData(activityId, pageId)
129
- if (pageData && pageData.content) {
127
+ if (pageData) {
130
128
  this.quizData = this.findQuizdataObject(
131
- pageData.content,
129
+ pageData,
132
130
  this.quizRecallData.quizId
133
131
  )
132
+
134
133
  //Warn that the specified quiz could not be found
135
- if (this.quizData === null) {
134
+ if (!this.quizData) {
136
135
  console.warn(
137
136
  `%c WARNING!>>> Quiz Recall: Unable to find a quiz with type_question 'reponse_ouverte' and id '${this.quizRecallData.quizId}' in ${pageId} of ${activityId}`,
138
137
  'background: orange; color: white; display: block; margin:5px;'
@@ -150,51 +149,51 @@ export default {
150
149
  }
151
150
  },
152
151
  //Get datas from quizRecallData and userData and add them to quizRecall object
153
- getQuizRecallAnswer(quizRecallData, quizData) {
152
+ getQuizRecallAnswer() {
154
153
  //Get userData
155
- let userData = this.getUserInteraction
156
- //Get quizId
157
- let quizId = quizData.id
158
- //Get activityId
159
- let activityId = quizRecallData.activityId
160
- //Get pageId
161
- let pageId = quizRecallData.pageId
154
+ const {
155
+ activityId,
156
+ pageId,
157
+ quizId,
158
+ hypertext_done,
159
+ hypertext_undone,
160
+ title,
161
+ titletag
162
+ } = this.quizRecallData
163
+
164
+ let userData = this.getPageInteraction(activityId, pageId)
165
+
162
166
  //Add hypertext_done and undone to quizRecall
163
- if (quizRecallData.hypertext_done) {
164
- this.quizRecall.hypertext_done = quizRecallData.hypertext_done
167
+ if (hypertext_done) {
168
+ this.quizRecall.hypertext_done = hypertext_done
165
169
  }
166
- if (quizRecallData.hypertext_undone) {
167
- this.quizRecall.hypertext_undone = quizRecallData.hypertext_undone
170
+ if (hypertext_undone) {
171
+ this.quizRecall.hypertext_undone = hypertext_undone
168
172
  }
169
173
  //Add the title if it exists
170
- if (quizRecallData.title) {
171
- this.quizRecall.title = quizRecallData.title
174
+ if (title) {
175
+ this.quizRecall.title = title
172
176
  //Modify le titletag
173
- if (quizRecallData.titletag) {
174
- let validator = this.validateTitleTag(this.quizRecallData.titletag)
177
+ if (titletag) {
178
+ let validator = this.validateTitleTag(titletag)
175
179
  if (validator) {
176
- this.quizRecall.titletag = this.quizRecallData.titletag
180
+ this.quizRecall.titletag = titletag
177
181
  }
178
182
  }
179
183
  }
180
184
 
181
185
  //If quiz answer exists in userData, quizRecall done is true and add the quiz answer to quizRecall
182
- if (
183
- userData &&
184
- userData[activityId] &&
185
- userData[activityId][pageId] &&
186
- userData[activityId][pageId].userInteraction &&
187
- userData[activityId][pageId].userInteraction.quizAnswers &&
188
- userData[activityId][pageId].userInteraction.quizAnswers[quizId]
189
- ) {
190
- this.quizRecall.done = true
191
- this.quizRecall.answer =
192
- userData[activityId][pageId].userInteraction.quizAnswers[quizId]
193
- this.quizRecall.ennonce = quizData.ennonce
194
- } else {
195
- //If the quiz answer doesn't exist
196
- this.quizRecall.done = false
197
- }
186
+ if (!userData || !userData.userInteraction)
187
+ return (this.quizRecall.done = false)
188
+
189
+ const { quizAnswers } = userData.userInteraction
190
+
191
+ if (!quizAnswers || !quizAnswers[quizId])
192
+ return (this.quizRecall.done = false)
193
+
194
+ this.quizRecall.done = true
195
+ this.quizRecall.answer = quizAnswers[quizId].value
196
+ this.quizRecall.ennonce = this.quizData.ennonce
198
197
  },
199
198
 
200
199
  //Validate quizRecallData
@@ -12,9 +12,7 @@
12
12
  @STYLING If multiple path, use the id to style a specific path (see the svg width app-icons class at the end of the DOM to see all the ID in the inspector -- but the path fill/stroke can only be modified once per symbol per 'use'; idealy use one path per icon to modified it more easily)
13
13
  -->
14
14
  <script>
15
- //import { h } from 'vue'
16
-
17
- const IconsList = [
15
+ const defaultIconsList = [
18
16
  {
19
17
  id: 'pause-icon',
20
18
  viewBox: '0 0 21.23 24',
@@ -88,14 +86,6 @@ const IconsList = [
88
86
  }
89
87
  ]
90
88
  },
91
- {
92
- id: 'pip-icon',
93
- paths: [
94
- {
95
- d: 'M21 19.031v-14.063h-18v14.063h18zM23.016 18.984q0 0.797-0.609 1.406t-1.406 0.609h-18q-0.797 0-1.406-0.609t-0.609-1.406v-14.016q0-0.797 0.609-1.383t1.406-0.586h18q0.797 0 1.406 0.586t0.609 1.383v14.016zM18.984 11.016v6h-7.969v-6h7.969z'
96
- }
97
- ]
98
- },
99
89
  {
100
90
  id: 'subtitle-off-icon',
101
91
  viewBox: '0 0 40.53 32',
@@ -134,50 +124,20 @@ const IconsList = [
134
124
  },
135
125
  {
136
126
  id: 'close-square-icon',
137
- viewBox: '0 0 16 16',
138
- paths: [
139
- {
140
- d: 'M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z'
141
- },
142
- {
143
- d: 'M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'
144
- }
145
- ]
146
- },
147
- {
148
- id: 'branch-crochet-icon',
127
+ viewBox: '0 0 39 36',
149
128
  paths: [
150
129
  {
151
- id: 'Tracé_3833',
152
- 'data-name': 'Tracé 3833',
153
- d: 'M0,0H24V24H0Z',
154
- fill: 'none'
155
- },
156
-
157
- {
158
- id: 'Tracé_3834',
159
- 'data-name': 'Tracé 3834',
160
- d: 'M9,16.2,4.8,12,3.4,13.4,9,19,21,7,19.6,5.6Z',
161
- fill: '#e6f5ff'
130
+ d: 'M19.5,20.5L6.7,33.3c-0.3,0.3-0.8,0.5-1.3,0.5c-0.5,0-1-0.2-1.3-0.5C3.7,33,3.5,32.5,3.5,32 c0-0.5,0.2-1,0.5-1.3l12.8-12.8L4.1,5.1C3.7,4.7,3.5,4.2,3.5,3.8c0-0.5,0.2-1,0.5-1.3c0.3-0.4,0.8-0.6,1.3-0.5c0.5,0,1,0.2,1.3,0.5 l12.8,12.8L32.3,2.4c0.3-0.3,0.8-0.5,1.3-0.5c0.5,0,1,0.2,1.3,0.5c0.4,0.3,0.6,0.8,0.5,1.3c0,0.5-0.2,1-0.5,1.3L22.2,17.9L35,30.7 c0.3,0.3,0.5,0.8,0.5,1.3c0,0.5-0.2,1-0.5,1.3c-0.3,0.4-0.8,0.6-1.3,0.5c-0.5,0-1-0.2-1.3-0.5L19.5,20.5z'
162
131
  }
163
132
  ]
164
133
  },
165
134
  {
166
135
  id: 'navigate-next-icon',
167
- viewBox: '0 0 7.41 12',
136
+ viewBox: '0 0 39 36',
168
137
  paths: [
169
138
  {
170
139
  id: 'Path_3899',
171
- 'data-name': 'Path 3899',
172
- d: 'M0,0H24V24H0Z',
173
- fill: 'none'
174
- },
175
-
176
- {
177
- id: 'Path_3900',
178
- 'data-name': 'Path 3900',
179
- d: 'M10.02,6,8.61,7.41,13.19,12,8.61,16.59,10.02,18l6-6Z',
180
- transform: 'translate(-8.61 -6)'
140
+ d: 'M23.4,17.9L11.2,5.7c-0.4-0.4-0.6-1-0.6-1.6c0-0.6,0.2-1.2,0.6-1.6 c0.4-0.4,1-0.7,1.6-0.7c0.6,0,1.2,0.2,1.6,0.7L27.8,16c0.3,0.2,0.5,0.6,0.6,0.9c0.1,0.3,0.2,0.7,0.2,1c0,0.3-0.1,0.7-0.2,1 c-0.1,0.3-0.3,0.6-0.6,0.9L14.3,33.2c-0.4,0.4-1,0.6-1.6,0.6c-0.6,0-1.2-0.2-1.6-0.6c-0.4-0.4-0.7-1-0.7-1.6c0-0.6,0.2-1.2,0.7-1.6 L23.4,17.9z'
181
141
  }
182
142
  ]
183
143
  },
@@ -199,19 +159,21 @@ const IconsList = [
199
159
  },
200
160
  {
201
161
  id: 'fleche-gauche-icon',
162
+ viewBox: '0 0 36.2 31.9',
202
163
  paths: [
203
164
  {
204
- id: 'arrow_forward_FILL0_wght400_GRAD0_opsz48',
205
- d: 'M11.7 23.4c-.3 0-.6-.1-.8-.3L.3 12.5c-.1-.1-.2-.2-.3-.4v-.4c0-.1 0-.3.1-.4.1-.1.2-.3.3-.4L10.9.3c.5-.4 1.1-.4 1.6 0 .4.5.4 1.2 0 1.6l-8.6 8.6h19c.6 0 1.1.5 1.1 1.2 0 .6-.5 1.1-1.2 1.1H3.9l8.6 8.6c.4.5.4 1.1 0 1.6-.2.3-.5.4-.8.4z'
165
+ id: 'ico_fleche_droite',
166
+ d: 'M8.2,14.1h22.2c0.4,0,0.8,0.1,1,0.4c0.3,0.3,0.4,0.7,0.4,1c0,0.4-0.1,0.8-0.4,1 c-0.3,0.3-0.7,0.4-1,0.4H8.2l10.1,10.1c0.3,0.3,0.4,0.6,0.4,1c0,0.4-0.2,0.8-0.5,1c-0.3,0.3-0.6,0.4-1,0.4c-0.4,0-0.8-0.2-1-0.4 L3.8,16.8c-0.2-0.2-0.3-0.4-0.4-0.6c-0.1-0.2-0.1-0.4-0.1-0.7c0-0.2,0-0.4,0.1-0.7c0.1-0.2,0.2-0.4,0.4-0.6L16.2,2 c0.3-0.3,0.6-0.4,1-0.4c0.4,0,0.8,0.1,1.1,0.4c0.3,0.3,0.5,0.6,0.5,1c0,0.4-0.2,0.8-0.5,1L8.2,14.1z'
206
167
  }
207
168
  ]
208
169
  },
209
170
  {
210
171
  id: 'fleche-droite-icon',
172
+ viewBox: '0 0 36.2 31.9',
211
173
  paths: [
212
174
  {
213
- id: 'arrow_forward_FILL0_wght400_GRAD0_opsz48',
214
- d: 'M11.4 23.1c-.4-.5-.4-1.1 0-1.6l8.6-8.6H1.1c-.6 0-1.2-.5-1.2-1.1 0-.6.5-1.2 1.1-1.2h19L11.4 2c-.4-.5-.4-1.2 0-1.6.5-.4 1.1-.4 1.6 0L23.6 11c.1.1.2.2.3.4.1.1.1.3.1.4 0 .1 0 .3-.1.4-.1.2-.2.3-.3.4L13 23.2c-.2.2-.5.3-.8.3-.3-.1-.6-.2-.8-.4z'
175
+ id: 'ico_fleche_droite',
176
+ d: 'M27,17.1H4.8c-0.4,0-0.8-0.1-1-0.4c-0.3-0.3-0.4-0.7-0.4-1c0-0.4,0.1-0.8,0.4-1 c0.3-0.3,0.7-0.4,1-0.4H27L16.9,4.1c-0.3-0.3-0.4-0.6-0.4-1c0-0.4,0.2-0.8,0.5-1c0.3-0.3,0.6-0.4,1-0.4c0.4,0,0.8,0.2,1,0.4 l12.4,12.4c0.2,0.2,0.3,0.4,0.4,0.6c0.1,0.2,0.1,0.4,0.1,0.7c0,0.2,0,0.4-0.1,0.7c-0.1,0.2-0.2,0.4-0.4,0.6L19,29.2 c-0.3,0.3-0.6,0.4-1,0.4c-0.4,0-0.8-0.1-1.1-0.4c-0.3-0.3-0.5-0.6-0.5-1c0-0.4,0.2-0.8,0.5-1L27,17.1z'
215
177
  }
216
178
  ]
217
179
  },
@@ -246,90 +208,140 @@ const IconsList = [
246
208
  },
247
209
  {
248
210
  id: 'home-icon',
249
- viewBox: '0 0 20 17',
211
+ viewBox: '0 0 39 36',
250
212
  paths: [
251
213
  {
252
214
  id: 'Path_3912',
253
- 'data-name': 'Path 3912',
254
- d: 'M10,20V14h4v6h5V12h3L12,3,2,12H5v8Z',
255
- transform: 'translate(-2 -3)'
215
+ d: 'M4.9,30.9V13.7c0-0.5,0.1-1.1,0.4-1.6c0.2-0.5,0.6-0.9,1-1.2l11.1-8.3 c0.6-0.5,1.3-0.7,2.1-0.7c0.8,0,1.5,0.2,2.1,0.7l11.1,8.3c0.4,0.3,0.8,0.7,1,1.2c0.2,0.5,0.4,1,0.4,1.6v17.2c0,0.8-0.3,1.5-0.9,2.1 c-0.5,0.6-1.3,0.9-2.1,0.9H25c-0.5,0-0.9-0.2-1.3-0.5c-0.3-0.3-0.5-0.8-0.5-1.3v-9.5c0-0.5-0.2-0.9-0.5-1.3 c-0.3-0.3-0.8-0.5-1.3-0.5h-3.9c-0.5,0-0.9,0.2-1.3,0.5c-0.3,0.3-0.5,0.8-0.5,1.3v9.5c0,0.5-0.2,0.9-0.5,1.3 c-0.3,0.3-0.8,0.5-1.3,0.5H7.8c-0.8,0-1.5-0.3-2.1-0.9C5.2,32.5,4.9,31.7,4.9,30.9z'
256
216
  }
257
217
  ]
258
218
  },
259
219
  {
260
- id: 'timeline-icon',
261
- viewBox: '0 0 33 18',
220
+ id: 'toc-icon',
221
+ viewBox: '0 0 39 36',
262
222
  paths: [
263
223
  {
264
- id: 'timeline_FILL0_wght400_GRAD0_opsz48',
265
- 'data-name': 'timeline FILL0 wght400 GRAD0 opsz48',
266
- d: 'M2.93,18.46a2.63,2.63,0,0,1,0-5.25l.39,0a4.21,4.21,0,0,1,.49.09l7.5-7.5a2.73,2.73,0,0,1-.1-.48c0-.13,0-.26,0-.39a2.62,2.62,0,0,1,4.48-1.84A2.51,2.51,0,0,1,16.43,5s0,.33-.11.85L20.45,10a2.73,2.73,0,0,1,.48-.1l.38,0,.37,0a2.66,2.66,0,0,1,.49.1l6-6a4.21,4.21,0,0,1-.09-.49c0-.12,0-.25,0-.38a2.63,2.63,0,1,1,2.63,2.63l-.38,0a3.86,3.86,0,0,1-.49-.09l-6,6a4,4,0,0,1,.09.48,2.55,2.55,0,0,1,0,.39,2.63,2.63,0,0,1-5.25,0c0-.13,0-.26,0-.39a2.73,2.73,0,0,1,.1-.48L14.67,7.47a2.66,2.66,0,0,1-.49.1l-.38,0L13,7.47,5.45,15a4.21,4.21,0,0,1,.09.49c0,.13,0,.25,0,.38A2.63,2.63,0,0,1,2.93,18.46Z',
267
- transform: 'translate(-0.31 -0.46)'
224
+ id: 'ico_progression',
225
+ d: 'M6.5,26.7c-0.7,0-1.3-0.3-1.8-0.7c-0.5-0.5-0.8-1.1-0.7-1.8c0-0.7,0.3-1.3,0.7-1.8 c0.5-0.5,1.1-0.8,1.8-0.7c0.1,0,0.3,0,0.4,0c0.1,0,0.3,0.1,0.4,0.1l6.9-6.9c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.3,0-0.4 c0-0.7,0.3-1.3,0.7-1.8c0.5-0.5,1.1-0.8,1.8-0.7c0.7,0,1.3,0.3,1.8,0.7c0.5,0.5,0.8,1.1,0.7,1.8c0,0.3-0.1,0.5-0.1,0.8l4,4 c0.1-0.1,0.2-0.1,0.4-0.1c0.1,0,0.3,0,0.4,0c0.1,0,0.3,0,0.4,0c0.1,0,0.3,0.1,0.4,0.1l5.5-5.5C30.1,13.3,30,13.1,30,13 c0-0.1,0-0.3,0-0.4c0-0.7,0.3-1.3,0.7-1.8c0.5-0.5,1.1-0.7,1.8-0.7c0.7,0,1.3,0.3,1.8,0.7c0.5,0.5,0.8,1.1,0.7,1.8 c0,0.7-0.3,1.3-0.7,1.8c-0.5,0.5-1.1,0.8-1.8,0.7c-0.1,0-0.3,0-0.4,0c-0.1,0-0.3-0.1-0.4-0.1l-5.5,5.5c0.1,0.1,0.1,0.2,0.1,0.4 c0,0.1,0,0.3,0,0.4c0,0.7-0.3,1.3-0.7,1.8c-0.5,0.5-1.1,0.8-1.8,0.7c-0.7,0-1.3-0.3-1.8-0.7c-0.5-0.5-0.8-1.1-0.7-1.8 c0-0.1,0-0.3,0-0.4c0-0.1,0.1-0.3,0.1-0.4l-4-4c-0.1,0.1-0.3,0.1-0.4,0.1c-0.1,0-0.3,0-0.4,0c-0.3,0-0.5-0.1-0.8-0.1l-6.9,6.9 C8.9,23.5,9,23.6,9,23.7c0,0.1,0,0.3,0,0.4c0,0.7-0.3,1.3-0.7,1.8C7.8,26.4,7.1,26.7,6.5,26.7z'
268
226
  }
269
227
  ]
270
228
  },
271
229
  {
272
230
  id: 'info-icon',
273
- viewBox: '0 0 17.9 17.91',
231
+ viewBox: '0 0 500 500',
274
232
  paths: [
275
233
  {
276
- d: 'M9.07 13.41a.65.65 0 0 0 .67-.63V8.66a.63.63 0 0 0-.2-.46.67.67 0 0 0-.47-.2.65.65 0 0 0-.67.63v4.08a.59.59 0 0 0 .2.46.67.67 0 0 0 .47.24ZM9 6.34a.69.69 0 0 0 .53-.2.67.67 0 0 0 .21-.52.74.74 0 0 0-.21-.54.73.73 0 0 0-1 0 .74.74 0 0 0-.21.54.67.67 0 0 0 .21.52.69.69 0 0 0 .47.2Zm0 11.57a9 9 0 0 1-3.55-.69 8.68 8.68 0 0 1-4.76-4.76 9.45 9.45 0 0 1 0-7.09 8.79 8.79 0 0 1 1.9-2.85 9.05 9.05 0 0 1 12.8 12.8 8.88 8.88 0 0 1-2.86 1.9 9.1 9.1 0 0 1-3.53.69Z'
234
+ d: 'M428.3,170.42c-9.35-21.99-22.82-41.99-39.68-58.91c-16.94-16.85-36.94-30.32-58.94-39.66 c-22.86-9.8-47.51-14.77-72.38-14.62c-24.88-0.17-49.53,4.79-72.4,14.59c-21.99,9.35-41.99,22.82-58.91,39.68 c-16.85,16.94-30.32,36.94-39.66,58.94c-9.8,22.86-14.78,47.51-14.62,72.38c-0.18,24.88,4.79,49.53,14.59,72.4 c9.35,21.99,22.82,41.99,39.68,58.91c16.94,16.85,36.94,30.32,58.94,39.66c22.86,9.8,47.51,14.77,72.38,14.62 c24.88,0.18,49.53-4.79,72.4-14.59c21.99-9.35,41.99-22.82,58.91-39.68c16.85-16.94,30.32-36.94,39.66-58.94 c9.8-22.86,14.78-47.51,14.62-72.38C443.07,217.94,438.1,193.29,428.3,170.42z M271.95,326.3c0.1,3.91-1.43,7.69-4.21,10.44 c-2.75,2.79-6.53,4.31-10.44,4.21c-3.91,0.1-7.69-1.43-10.44-4.21c-2.78-2.75-4.31-6.53-4.21-10.44v-83.03 c-0.1-3.91,1.43-7.69,4.21-10.44c2.75-2.78,6.53-4.31,10.44-4.21c3.91-0.1,7.69,1.43,10.44,4.21c2.78,2.75,4.31,6.53,4.21,10.44 V326.3z M268.54,190.64c-2.96,3-7.03,4.64-11.24,4.54v0.01c-4.21,0.1-8.28-1.54-11.24-4.55c-3-2.96-4.64-7.03-4.54-11.24 c-0.1-4.21,1.54-8.28,4.54-11.24c2.96-3,7.03-4.64,11.24-4.54c4.21-0.1,8.28,1.54,11.24,4.54c3,2.96,4.64,7.03,4.54,11.24 C273.18,183.61,271.54,187.68,268.54,190.64z'
235
+ //d: 'M428.3,170.42c-9.35-21.99-22.82-41.99-39.68-58.91c-16.94-16.85-36.94-30.32-58.94-39.66 c-22.86-9.8-47.51-14.77-72.38-14.62c-24.88-0.17-49.53,4.79-72.4,14.59c-21.99,9.35-41.99,22.82-58.91,39.68 c-16.85,16.94-30.32,36.94-39.66,58.94c-9.8,22.86-14.78,47.51-14.62,72.38c-0.18,24.88,4.79,49.53,14.59,72.4 c9.35,21.99,22.82,41.99,39.68,58.91c16.94,16.85,36.94,30.32,58.94,39.66c22.86,9.8,47.51,14.77,72.38,14.62 c24.88,0.18,49.53-4.79,72.4-14.59c21.99-9.35,41.99-22.82,58.91-39.68c16.85-16.94,30.32-36.94,39.66-58.94 c9.8-22.86,14.78-47.51,14.62-72.38C443.07,217.94,438.1,193.29,428.3,170.42z M271.95,326.3c0.1,3.91-1.43,7.69-4.21,10.44 c-2.75,2.79-6.53,4.31-10.44,4.21c-3.91,0.1-7.69-1.43-10.44-4.21c-2.78-2.75-4.31-6.53-4.21-10.44v-83.03 c-0.1-3.91,1.43-7.69,4.21-10.44c2.75-2.78,6.53-4.31,10.44-4.21c3.91-0.1,7.69,1.43,10.44,4.21c2.78,2.75,4.31,6.53,4.21,10.44 V326.3z M268.54,190.64c-2.96,3-7.03,4.64-11.24,4.54v0.01c-4.21,0.1-8.28-1.54-11.24-4.55c-3-2.96-4.64-7.03-4.54-11.24 c-0.1-4.21,1.54-8.28,4.54-11.24c2.96-3,7.03-4.64,11.24-4.54c4.21-0.1,8.28,1.54,11.24,4.54c3,2.96,4.64,7.03,4.54,11.24 C273.18,183.61,271.54,187.68,268.54,190.64z'
277
236
  }
278
237
  ]
279
238
  },
280
239
  {
281
240
  id: 'clock-icon',
282
- viewBox: '0 0 18 21.01',
241
+ viewBox: '0 0 39 36',
242
+ paths: [
243
+ {
244
+ id: 'ico_duree',
245
+ d: 'M21.2,17v-6.6c0-0.3-0.1-0.7-0.4-0.9c-0.2-0.2-0.6-0.4-0.9-0.4c-0.3,0-0.7,0.1-0.9,0.4 c-0.2,0.2-0.4,0.6-0.4,0.9v7c0,0.2,0,0.4,0.1,0.6c0.1,0.2,0.2,0.4,0.3,0.5l5.8,5.8c0.2,0.2,0.5,0.4,0.9,0.4c0.3,0,0.7-0.1,0.9-0.4 c0.2-0.2,0.4-0.6,0.4-0.9c0-0.3-0.1-0.7-0.4-0.9L21.2,17z M19.9,33.5c-2.1,0-4.3-0.4-6.2-1.3c-1.9-0.8-3.6-2-5.1-3.4 c-1.5-1.5-2.6-3.2-3.4-5.1c-0.8-2-1.3-4.1-1.3-6.2c0-2.1,0.4-4.3,1.3-6.2c0.8-1.9,2-3.6,3.4-5.1c1.5-1.5,3.2-2.6,5.1-3.4 c2-0.8,4.1-1.3,6.2-1.3c2.1,0,4.3,0.4,6.2,1.3c1.9,0.8,3.6,2,5.1,3.4c1.5,1.5,2.6,3.2,3.4,5.1c0.8,2,1.3,4.1,1.3,6.2 c0,2.1-0.4,4.3-1.3,6.2c-0.8,1.9-2,3.6-3.4,5.1c-1.5,1.5-3.2,2.6-5.1,3.4C24.2,33.1,22.1,33.6,19.9,33.5z M19.9,31 c3.6,0.1,7-1.4,9.5-3.9c2.6-2.5,4-6,3.9-9.5c0.1-3.6-1.4-7-3.9-9.5c-2.5-2.6-6-4-9.5-3.9c-3.6-0.1-7,1.4-9.5,3.9 c-2.6,2.5-4,6-3.9,9.5c-0.1,3.6,1.4,7,3.9,9.5C12.9,29.7,16.4,31.1,19.9,31L19.9,31z'
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ id: 'link-icon',
251
+ viewBox: '0 0 39 36',
252
+ paths: [
253
+ {
254
+ id: 'ico_link',
255
+ d: 'M11.2,25.5c-2,0-4-0.8-5.4-2.2c-1.5-1.4-2.3-3.4-2.2-5.4c0-2,0.8-4,2.2-5.4 c1.4-1.5,3.4-2.3,5.4-2.2h5.1c0.3,0,0.7,0.1,0.9,0.4c0.2,0.2,0.4,0.6,0.4,0.9c0,0.3-0.1,0.7-0.4,0.9c-0.2,0.2-0.6,0.4-0.9,0.4h-5.1 c-1.4,0-2.7,0.5-3.6,1.5c-1,0.9-1.5,2.3-1.5,3.6c0,1.4,0.5,2.7,1.5,3.6c0.9,1,2.3,1.5,3.6,1.5h5.1c0.3,0,0.7,0.1,0.9,0.4 c0.2,0.2,0.4,0.6,0.4,0.9c0,0.3-0.1,0.7-0.4,0.9c-0.2,0.2-0.6,0.4-0.9,0.4L11.2,25.5z M14.5,19.1c-0.3,0-0.7-0.1-0.9-0.4 c-0.2-0.2-0.4-0.6-0.4-0.9c0-0.3,0.1-0.7,0.4-0.9c0.2-0.2,0.6-0.4,0.9-0.4h10.1c0.3,0,0.7,0.1,0.9,0.4c0.2,0.2,0.4,0.6,0.4,0.9 c0,0.3-0.1,0.7-0.4,0.9c-0.2,0.2-0.6,0.4-0.9,0.4H14.5z M22.8,25.5c-0.3,0-0.7-0.1-0.9-0.4c-0.2-0.2-0.4-0.6-0.4-0.9 c0-0.3,0.1-0.7,0.4-0.9c0.2-0.2,0.6-0.4,0.9-0.4h5.1c1.4,0,2.7-0.5,3.6-1.5c1-0.9,1.5-2.3,1.5-3.6c0-1.4-0.5-2.7-1.5-3.6 c-0.9-1-2.3-1.5-3.6-1.5h-5.1c-0.3,0-0.7-0.1-0.9-0.4c-0.2-0.2-0.4-0.6-0.4-0.9c0-0.3,0.1-0.7,0.4-0.9c0.2-0.2,0.6-0.4,0.9-0.4h5.1 c2,0,4,0.8,5.4,2.2c1.5,1.4,2.3,3.4,2.2,5.4c0,2-0.8,4-2.2,5.4c-1.4,1.5-3.4,2.3-5.4,2.2L22.8,25.5z'
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ id: 'plus-icon',
261
+ viewBox: '0 0 39 36',
262
+ paths: [
263
+ {
264
+ id: 'ico_plus',
265
+ d: 'M17.7,19.7H5.4c-0.5,0-1-0.2-1.3-0.5c-0.4-0.3-0.5-0.8-0.5-1.3c0-0.5,0.2-1,0.5-1.3 C4.4,16.2,4.9,16,5.4,16h12.3V3.7c0-0.5,0.2-1,0.5-1.3C18.6,2,19,1.9,19.5,1.9c0.5,0,1,0.2,1.3,0.5c0.4,0.3,0.5,0.8,0.5,1.3V16h12.3 c0.5,0,1,0.2,1.3,0.5c0.4,0.3,0.5,0.8,0.5,1.3c0,0.5-0.2,1-0.5,1.3c-0.3,0.4-0.8,0.5-1.3,0.5H21.4V32c0,0.5-0.2,1-0.5,1.3 c-0.3,0.4-0.8,0.5-1.3,0.5c-0.5,0-1-0.2-1.3-0.5c-0.4-0.3-0.5-0.8-0.5-1.3V19.7z'
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ id: 'check-icon',
271
+ viewBox: '0 0 39 36',
272
+ paths: [
273
+ {
274
+ id: 'ico_check',
275
+ d: 'M14.4,25.1L32.4,7c0.3-0.3,0.7-0.5,1.1-0.5c0.4,0,0.8,0.2,1.1,0.5c0.3,0.3,0.5,0.7,0.5,1.1 c0,0.4-0.2,0.8-0.5,1.1l-19,19c-0.3,0.4-0.8,0.6-1.3,0.6c-0.5,0-1-0.2-1.3-0.6l-8.7-8.7c-0.3-0.3-0.5-0.7-0.5-1.1 c0-0.4,0.2-0.8,0.5-1.1c0.3-0.3,0.7-0.5,1.1-0.5c0.4,0,0.8,0.2,1.1,0.5L14.4,25.1z'
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ id: 'chevronD-icon',
281
+ viewBox: '0 0 39 36',
283
282
  paths: [
284
283
  {
285
- id: 'Path_3904',
286
- d: 'M12 0H6v2h6V0zM8 13h2V7H8v6zm8.03-6.61 1.42-1.42c-.43-.51-.9-.98-1.41-1.41l-1.42 1.42c-3.88-3.1-9.55-2.47-12.65 1.41S-.5 15.94 3.38 19.04s9.55 2.47 12.65-1.41a8.992 8.992 0 0 0 0-11.24zM9 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7c0 3.86-3.13 7-6.99 7H9z'
284
+ id: 'ico_chevronD',
285
+ d: 'M19.5,26.9c-0.3,0-0.7-0.1-1-0.2c-0.3-0.1-0.6-0.3-0.9-0.6L4.2,12.7c-0.4-0.4-0.6-1-0.6-1.6 c0-0.6,0.2-1.2,0.6-1.6c0.4-0.4,1-0.7,1.6-0.7c0.6,0,1.2,0.2,1.6,0.7l12.2,12.2L31.7,9.5c0.4-0.4,1-0.6,1.6-0.6 c0.6,0,1.2,0.2,1.6,0.6c0.4,0.4,0.7,1,0.7,1.6c0,0.6-0.2,1.2-0.7,1.6L21.4,26.1c-0.2,0.3-0.6,0.5-0.9,0.6 C20.2,26.8,19.9,26.9,19.5,26.9z'
286
+ }
287
+ ]
288
+ },
289
+ {
290
+ id: 'check-toc',
291
+ viewBox: '0 0 97.3 95.1',
292
+ paths: [
293
+ {
294
+ id: 'ico_succes',
295
+ d: 'M42.3,58l-11-11c-0.7-0.7-1.5-1-2.5-1c-0.9,0-1.9,0.3-2.5,1c-0.7,0.7-1,1.6-1,2.5 c0,0.9,0.4,1.8,1,2.5l13,13c0.8,0.8,1.9,1.3,3,1.3c1.1,0,2.2-0.5,3-1.3l26.4-26.4c0.7-0.7,1-1.5,1-2.5c0-0.9-0.3-1.9-1-2.5 c-0.7-0.7-1.6-1-2.5-1c-0.9,0-1.8,0.4-2.5,1L42.3,58z M49.1,92.9c-6,0-12-1.2-17.6-3.5c-5.3-2.3-10.2-5.5-14.3-9.6 c-4.1-4.1-7.4-8.9-9.6-14.3C5.2,59.9,4,53.9,4.1,47.9c0-6,1.2-12,3.5-17.6C9.9,25,13.1,20.1,17.2,16c4.1-4.1,8.9-7.4,14.3-9.6 C37,4,43,2.8,49.1,2.9c6,0,12,1.2,17.6,3.5c5.3,2.3,10.2,5.5,14.3,9.6c4.1,4.1,7.4,8.9,9.6,14.3c2.4,5.6,3.6,11.5,3.5,17.6 c0,6-1.2,12-3.5,17.6c-2.3,5.3-5.5,10.2-9.6,14.3c-4.1,4.1-8.9,7.4-14.3,9.6C61.1,91.7,55.1,92.9,49.1,92.9z'
287
296
  }
288
297
  ]
289
298
  }
290
299
  ]
291
300
 
292
- export default {
301
+ import { h, defineComponent, ref } from 'vue'
302
+ import { validateSvgDefinition } from '../shared/validators'
303
+ export default defineComponent({
304
+ name: 'AppCompSVGNext',
293
305
  props: {
294
- viewBox: {
295
- type: String,
296
- default: '0 0 24 24'
306
+ extraIcons: {
307
+ type: Array,
308
+ default: () => []
297
309
  }
298
310
  },
311
+ setup(props) {
312
+ let extraIcons =
313
+ props.extraIcons && validateSvgDefinition(props.extraIcons)
314
+ ? ref(props.extraIcons)
315
+ : ref([])
299
316
 
300
- methods: {},
317
+ let iconsList = ref([])
301
318
 
302
- render(h) {
303
- return h('svg', { style: 'display: none', class: 'app-icons' }, [
304
- h(
305
- 'defs',
306
- {},
307
- IconsList.map((icon) => {
308
- return h(
309
- 'symbol',
310
- {
311
- attrs: {
319
+ function addToListIcons(icons) {
320
+ icons = icons || []
321
+ iconsList.value = [...defaultIconsList, ...icons.value]
322
+ }
323
+
324
+ addToListIcons(extraIcons)
325
+
326
+ return () =>
327
+ h('svg', { style: { display: 'none' } }, [
328
+ h('defs', null, [
329
+ iconsList.value.map((icon, index) => {
330
+ return h(
331
+ 'symbol',
332
+ {
312
333
  id: icon.id,
313
334
  viewBox: (() => (icon.viewBox ? icon.viewBox : '0 0 24 24'))()
314
- }
315
- },
316
- icon.paths.map((_p) => {
317
- return h('path', { attrs: { ..._p } })
318
- })
319
- )
320
- })
321
- )
322
- ])
335
+ },
336
+ [
337
+ icon.paths.map((_p) => {
338
+ return h('path', { ..._p })
339
+ })
340
+ ]
341
+ )
342
+ })
343
+ ])
344
+ ])
323
345
  }
324
- }
346
+ })
325
347
  </script>
326
-
327
- <style lang="scss" scoped>
328
- svg {
329
- width: 28px;
330
- height: 28px;
331
- fill: #fff;
332
- stroke: #fff;
333
- cursor: pointer;
334
- }
335
- </style>
@@ -9,10 +9,7 @@
9
9
  @hidden="onClose"
10
10
  >
11
11
  <div class="pl-3 pr-3">
12
- <b-form-group
13
- v-slot="{ ariaDescribedby }"
14
- :label="$t('user_settings.title')"
15
- >
12
+ <b-form-group :label="$t('user_settings.title')">
16
13
  <b-form-checkbox
17
14
  v-for="(setting, index) in Object.entries(settingsSelected)"
18
15
  :key="index"
@@ -40,7 +37,8 @@
40
37
  </template>
41
38
 
42
39
  <script>
43
- import { mapGetters } from 'vuex'
40
+ import { mapState, mapActions } from 'pinia'
41
+ import { useAppStore } from '../module/stores/appStore'
44
42
  import AppBaseButton from './AppBaseButton.vue'
45
43
 
46
44
  export default {
@@ -53,7 +51,7 @@ export default {
53
51
  }
54
52
  },
55
53
  computed: {
56
- ...mapGetters([
54
+ ...mapState(useAppStore, [
57
55
  'getApplicationSettings',
58
56
  'getModuleInfo',
59
57
  'getUserInteraction',
@@ -67,6 +65,7 @@ export default {
67
65
  watch: {
68
66
  getApplicationSettings: {
69
67
  immediate: true,
68
+ deep: true,
70
69
  handler() {
71
70
  this.getAppSettingsInStore()
72
71
  }
@@ -80,6 +79,10 @@ export default {
80
79
  })
81
80
  },
82
81
  methods: {
82
+ ...mapActions(useAppStore, [
83
+ 'setApplicationSettings',
84
+ 'updateUserMetaData'
85
+ ]),
83
86
  getAppSettingsInStore() {
84
87
  this.settingsSelected = { ...this.getApplicationSettings }
85
88
  },
@@ -90,7 +93,7 @@ export default {
90
93
  this.saveSettingsToStore(this.settingsSelected)
91
94
  },
92
95
  saveSettingsToStore(settings) {
93
- this.$store.dispatch('setApplicationSettings', settings)
96
+ this.setApplicationSettings(settings)
94
97
  },
95
98
  /**
96
99
  * @description Save the user preferred settings to vue store and LRS or local store:
@@ -147,7 +150,7 @@ export default {
147
150
  }, 1000)
148
151
  } else {
149
152
  this.$set(this.getUserInteraction, 'userSettings', appSettings) // adding the usersettings to user Interaction to save to save to the local DB
150
- this.$store.dispatch('updateUserMetaData', this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
153
+ this.updateUserMetaData(this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
151
154
  }
152
155
 
153
156
  //update sidebar data