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.
- package/.eslintrc.cjs +1 -1
- package/CHANGELOG +9 -0
- package/package.json +26 -12
- package/src/$locales/en.json +37 -87
- package/src/$locales/fr.json +17 -106
- package/src/assets/data/onboardingMessages.json +1 -1
- package/src/components/AppBase.vue +241 -143
- package/src/components/AppBaseButton.vue +2 -6
- package/src/components/AppBaseErrorDisplay.vue +193 -183
- package/src/components/AppBaseFlipCard.vue +1 -0
- package/src/components/AppBaseModule.vue +195 -225
- package/src/components/AppBasePage.vue +519 -64
- package/src/components/AppBasePopover.vue +41 -0
- package/src/components/AppCompAudio.vue +32 -64
- package/src/components/AppCompBranchButtons.vue +52 -71
- package/src/components/AppCompButtonProgress.vue +12 -18
- package/src/components/AppCompCarousel.vue +102 -0
- package/src/components/{AppCompInputCheckBox.vue → AppCompInputCheckBoxNext.vue} +56 -94
- package/src/components/AppCompInputDropdownNext.vue +159 -0
- package/src/components/{AppCompInputRadio.vue → AppCompInputRadioNext.vue} +53 -63
- package/src/components/AppCompInputTextNext.vue +106 -0
- package/src/components/AppCompInputTextTableNext.vue +141 -0
- package/src/components/AppCompInputTextToFillDropdownNext.vue +230 -0
- package/src/components/{AppCompInputTextToFillText.vue → AppCompInputTextToFillNext.vue} +71 -64
- package/src/components/AppCompJauge.vue +16 -9
- package/src/components/AppCompMenu.vue +50 -29
- package/src/components/AppCompMenuItem.vue +52 -15
- package/src/components/AppCompNavigation.vue +225 -211
- package/src/components/AppCompNoteCall.vue +22 -30
- package/src/components/AppCompNoteCredit.vue +45 -20
- package/src/components/AppCompPlayBar.vue +55 -108
- package/src/components/AppCompPlayBarNext.vue +2052 -0
- package/src/components/AppCompPlayBarProgress.vue +10 -1
- package/src/components/AppCompPopUpNext.vue +503 -0
- package/src/components/{AppCompQuiz.vue → AppCompQuizNext.vue} +632 -703
- package/src/components/AppCompQuizRecall.vue +74 -75
- package/src/components/{AppCompSVG.vue → AppCompSVGNext.vue} +111 -99
- package/src/components/AppCompSettingsMenu.vue +11 -8
- package/src/components/AppCompTableOfContent.vue +78 -76
- package/src/components/AppCompTranscript.vue +5 -0
- package/src/components/AppCompVideoPlayer.vue +30 -42
- package/src/components/BaseModule.vue +1 -0
- package/src/composables/useQuiz.js +206 -0
- package/src/externalComps/ModuleView.vue +22 -0
- package/src/externalComps/SummaryView.vue +91 -0
- package/src/main.js +99 -90
- package/src/mixins/$mediaMixins.js +13 -21
- package/src/mixins/timerMixin.js +1 -1
- package/src/module/stores/appStore.js +901 -0
- package/src/module/xapi/ADL.js +8 -4
- package/src/plugins/bus.js +7 -2
- package/src/plugins/gsap.js +4 -7
- package/src/plugins/helper.js +33 -13
- package/src/plugins/i18n.js +2 -2
- package/src/plugins/idb.js +44 -29
- package/src/plugins/save.js +1 -1
- package/src/plugins/scorm.js +2 -2
- package/src/plugins/xapi.js +2 -2
- package/src/public/index.html +22 -10
- package/src/router/index.js +13 -10
- package/src/router/routes.js +20 -25
- package/src/shared/generalfuncs.js +33 -18
- package/src/shared/validators.js +116 -6
- package/src/components/AppCompInputDropdown.vue +0 -182
- package/src/components/AppCompInputTextBox.vue +0 -91
- package/src/components/AppCompInputTextTable.vue +0 -158
- package/src/components/AppCompInputTextToFillDropdown.vue +0 -257
- package/src/components/AppCompPopUp.vue +0 -583
- package/src/components/AppCompPopover.vue +0 -27
- package/src/mixins/$pageMixins.js +0 -415
- package/src/mixins/$quizMixins.js +0 -442
- 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 {
|
|
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
|
-
...
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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 (
|
|
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
|
-
//
|
|
101
|
+
// Should only check for Object or Array property
|
|
109
102
|
if (
|
|
110
|
-
|
|
111
|
-
searchObject[property] !==
|
|
112
|
-
)
|
|
113
|
-
|
|
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
|
-
|
|
123
|
-
|
|
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
|
|
127
|
+
if (pageData) {
|
|
130
128
|
this.quizData = this.findQuizdataObject(
|
|
131
|
-
pageData
|
|
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
|
|
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(
|
|
152
|
+
getQuizRecallAnswer() {
|
|
154
153
|
//Get userData
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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 (
|
|
164
|
-
this.quizRecall.hypertext_done =
|
|
167
|
+
if (hypertext_done) {
|
|
168
|
+
this.quizRecall.hypertext_done = hypertext_done
|
|
165
169
|
}
|
|
166
|
-
if (
|
|
167
|
-
this.quizRecall.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 (
|
|
171
|
-
this.quizRecall.title =
|
|
174
|
+
if (title) {
|
|
175
|
+
this.quizRecall.title = title
|
|
172
176
|
//Modify le titletag
|
|
173
|
-
if (
|
|
174
|
-
let validator = this.validateTitleTag(
|
|
177
|
+
if (titletag) {
|
|
178
|
+
let validator = this.validateTitleTag(titletag)
|
|
175
179
|
if (validator) {
|
|
176
|
-
this.quizRecall.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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
136
|
+
viewBox: '0 0 39 36',
|
|
168
137
|
paths: [
|
|
169
138
|
{
|
|
170
139
|
id: 'Path_3899',
|
|
171
|
-
|
|
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: '
|
|
205
|
-
d: '
|
|
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: '
|
|
214
|
-
d: '
|
|
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
|
|
211
|
+
viewBox: '0 0 39 36',
|
|
250
212
|
paths: [
|
|
251
213
|
{
|
|
252
214
|
id: 'Path_3912',
|
|
253
|
-
|
|
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: '
|
|
261
|
-
viewBox: '0 0
|
|
220
|
+
id: 'toc-icon',
|
|
221
|
+
viewBox: '0 0 39 36',
|
|
262
222
|
paths: [
|
|
263
223
|
{
|
|
264
|
-
id: '
|
|
265
|
-
|
|
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
|
|
231
|
+
viewBox: '0 0 500 500',
|
|
274
232
|
paths: [
|
|
275
233
|
{
|
|
276
|
-
d: '
|
|
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
|
|
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: '
|
|
286
|
-
d: '
|
|
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
|
-
|
|
301
|
+
import { h, defineComponent, ref } from 'vue'
|
|
302
|
+
import { validateSvgDefinition } from '../shared/validators'
|
|
303
|
+
export default defineComponent({
|
|
304
|
+
name: 'AppCompSVGNext',
|
|
293
305
|
props: {
|
|
294
|
-
|
|
295
|
-
type:
|
|
296
|
-
default:
|
|
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
|
-
|
|
317
|
+
let iconsList = ref([])
|
|
301
318
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
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
|
-
|
|
317
|
-
|
|
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 {
|
|
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
|
-
...
|
|
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
|
|
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
|
|
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
|