fcad-core-dragon 2.0.0-beta.8 → 2.0.0-beta.9

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 (57) hide show
  1. package/.editorconfig +33 -33
  2. package/.eslintignore +29 -29
  3. package/.eslintrc.cjs +81 -81
  4. package/CHANGELOG +3 -0
  5. package/README.md +71 -71
  6. package/bk.scss +117 -117
  7. package/package.json +1 -1
  8. package/src/assets/data/onboardingMessages.json +47 -47
  9. package/src/components/AppBaseErrorDisplay.vue +438 -438
  10. package/src/components/AppBaseFlipCard.vue +84 -84
  11. package/src/components/AppBasePopover.vue +41 -41
  12. package/src/components/AppCompInputRadioNext.vue +152 -152
  13. package/src/components/AppCompInputTextToFillNext.vue +171 -171
  14. package/src/components/AppCompJauge.vue +74 -74
  15. package/src/components/AppCompMenuItem.vue +228 -228
  16. package/src/components/AppCompNoteCall.vue +1 -0
  17. package/src/components/AppCompPlayBarProgress.vue +82 -82
  18. package/src/components/AppCompPopUpNext.vue +5 -1
  19. package/src/components/AppCompSettingsMenu.vue +172 -172
  20. package/src/components/AppCompViewDisplay.vue +6 -6
  21. package/src/composables/useQuiz.js +206 -206
  22. package/src/externalComps/ModuleView.vue +22 -22
  23. package/src/externalComps/SummaryView.vue +91 -91
  24. package/src/mixins/$mediaMixins.js +819 -819
  25. package/src/mixins/timerMixin.js +155 -155
  26. package/src/module/xapi/Crypto/Hasher.js +241 -241
  27. package/src/module/xapi/Crypto/WordArray.js +278 -278
  28. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  29. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  30. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  31. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  32. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  33. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  34. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  35. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  36. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  37. package/src/module/xapi/Crypto/index.js +53 -53
  38. package/src/module/xapi/Statement/activity.js +47 -47
  39. package/src/module/xapi/Statement/agent.js +55 -55
  40. package/src/module/xapi/Statement/group.js +26 -26
  41. package/src/module/xapi/Statement/index.js +259 -259
  42. package/src/module/xapi/Statement/statement.js +253 -253
  43. package/src/module/xapi/Statement/statementRef.js +23 -23
  44. package/src/module/xapi/Statement/substatement.js +22 -22
  45. package/src/module/xapi/Statement/verb.js +36 -36
  46. package/src/module/xapi/activitytypes.js +17 -17
  47. package/src/module/xapi/utils.js +167 -167
  48. package/src/module/xapi/verbs.js +294 -294
  49. package/src/module/xapi/xapiStatement.js +444 -444
  50. package/src/plugins/bus.js +8 -8
  51. package/src/plugins/gsap.js +14 -14
  52. package/src/plugins/i18n.js +44 -44
  53. package/src/plugins/save.js +37 -37
  54. package/src/plugins/scorm.js +287 -287
  55. package/src/plugins/xapi.js +11 -11
  56. package/src/public/index.html +33 -33
  57. package/src/shared/generalfuncs.js +210 -210
@@ -1,228 +1,228 @@
1
- <!--
2
- @ Description: This component is used to display and create the link's to all the activity creation in module.
3
- @ What it does: Goes trougth all the activity in the router and create a card that open the Table of content (appCompTableOfContent) that display the anchor.Display the title and subtitle enter in menu.json. Must be used with AppCompTableOfContent and AppCompMenu.
4
- -->
5
- <template>
6
- <v-row v-if="activities.length" class="box-msa">
7
- <v-col
8
- v-for="activity of activities"
9
- :key="activity.id"
10
- cols="6"
11
- class="menu-section-activity"
12
- :aria-describedby="activity.id + '-subMenu'"
13
- >
14
- <router-link
15
- :id="activity.id + '-subMenu'"
16
- :title="activity.title"
17
- :data-test="`item-menu-${activity.id}`"
18
- class="btn-menu"
19
- :to="{
20
- name: createRoutes(activity.id)
21
- }"
22
- @click="startActivity(activity)"
23
- >
24
- <div class="menu-card" tag="article">
25
- <v-row>
26
- <div v-if="activity.subtitle === undefined" class="title">
27
- <h4 v-html="activity.title"></h4>
28
- </div>
29
- <div v-else class="title">
30
- <h4 v-html="`${activity.title} : ${activity.subtitle}`"></h4>
31
- </div>
32
-
33
- <div class="cnt-time">
34
- <svg :aria-label="$t('label.timer')">
35
- <use href="#clock-icon" />
36
- </svg>
37
- <p class="time">
38
- {{ activity.time || '00:00' }}
39
- </p>
40
- </div>
41
- <div class="box-gauge">
42
- <app-comp-jauge
43
- :max-value="getActivitySize(activity.id)"
44
- :value="getPageComplete(activity.id)"
45
- />
46
- </div>
47
- </v-row>
48
- </div>
49
- </router-link>
50
- </v-col>
51
- </v-row>
52
- </template>
53
- <script>
54
- // ...
55
- import { mapState } from 'pinia'
56
- import { useAppStore } from '../module/stores/appStore'
57
- import AppCompJauge from './AppCompJauge.vue'
58
- export default {
59
- components: {
60
- AppCompJauge
61
- },
62
- computed: {
63
- ...mapState(useAppStore, [
64
- 'getAllActivities',
65
- 'getAllActivitiesState',
66
- 'getAllCompleted',
67
- 'getAppConfigs',
68
- 'getMenuSettings',
69
- 'getModuleInfo'
70
- ]),
71
- activities() {
72
- // get the data for list of the page for this module from the store and
73
- // get the route of the page from the router to build the menu with its routes
74
- let count = 0
75
- const collection = []
76
-
77
- this.getAllActivities().list.forEach((value, key) => {
78
- let theActivity,
79
- activityTitle,
80
- activitySubTitle,
81
- activityTime = null,
82
- activityPath = ''
83
-
84
- if (this.menuInfo[key]) {
85
- const { title, subTitle, time } = this.menuInfo[key] //get time subTitle time from menu info
86
- //set the title
87
- if (title && title != ' ') activityTitle = title
88
- //set the subtitle
89
- if (subTitle && subTitle != ' ') activitySubTitle = subTitle
90
- //set the time
91
- if (time && time != ' ') activityTime = time
92
- }
93
- // This is the Introduction
94
- if (key === 'A00') {
95
- activityTitle = activityTitle || this.$t('text.introduction')
96
- activityPath = 'introduction'
97
- } else if (key === 'A99') {
98
- activityTitle = activityTitle || this.$t('text.conclusion')
99
- activityPath = 'conclusion'
100
- } else {
101
- count++
102
- activityTitle =
103
- activityTitle || `${this.$t('text.activity')} ${count}`
104
- activityPath = `activite_${count}`
105
- }
106
-
107
- theActivity = {
108
- id: key,
109
- title: activityTitle,
110
- subtitle: activitySubTitle,
111
- time: activityTime,
112
- path: activityPath,
113
- data: value
114
- }
115
-
116
- collection.push(theActivity) // push the activity in the collection
117
- })
118
-
119
- return collection
120
- },
121
- menuInfo() {
122
- let menuInfo = this.getMenuSettings
123
- return menuInfo
124
- }
125
- },
126
- mounted() {},
127
- methods: {
128
- /**
129
- * @description Gives gives length of completed page for an activity
130
- * @param {String} idActivity
131
- * @returns {Number}
132
- */
133
- getPageComplete(idActivity) {
134
- /// give all the page that are complete to the gauge
135
- if (idActivity) {
136
- let completed = []
137
- if (this.getAllCompleted[idActivity]) {
138
- completed = this.getAllCompleted[idActivity] //get all completed page for the activity
139
- }
140
-
141
- return completed.length
142
- }
143
- },
144
- /**
145
- * @description give the size of the state of the activity
146
- * @param {String} activityID
147
- * @returns {Number} size
148
- */
149
- getActivitySize(activityID) {
150
- /*
151
- * Note:
152
- * Assaging by reference would change the property of the getters when the valued are changed in the new object in. * To prevent this behaviour we will make a deep copy of the getter
153
- * cf: https://reactgo.com/javascript-clone-object/
154
- */
155
-
156
- const allActivitiesState = JSON.parse(
157
- JSON.stringify(this.getAllActivitiesState)
158
- )
159
- let size = allActivitiesState[activityID]
160
- ? allActivitiesState[activityID].size
161
- : 0
162
-
163
- return size
164
- },
165
- createRoutes(data) {
166
- let activity
167
-
168
- if (data.charAt(1) == '0' || data.charAt(1) == 0) {
169
- activity = data.substr(2)
170
- } else {
171
- activity = data.substr(1)
172
- }
173
-
174
- if (activity == 0 && activity == '0') return `introduction`
175
- if (activity == '99') return `conclusion`
176
- else return `activite_${activity}`
177
- },
178
- startActivity(a) {
179
- //this.$bus.$emit('send-starting-event', a)
180
- }
181
- }
182
- }
183
- </script>
184
- <style lang="scss">
185
- .menu-card {
186
- width: 100%;
187
- padding: 24px;
188
-
189
- .v-row {
190
- margin: 0;
191
- flex-direction: column;
192
-
193
- .title {
194
- flex-grow: 4;
195
- width: 80%;
196
- margin-bottom: 30px;
197
-
198
- h3 {
199
- text-align: left;
200
- }
201
- }
202
-
203
- .cnt-time {
204
- display: flex;
205
- flex-direction: row;
206
- align-items: center;
207
- margin-bottom: 20px;
208
-
209
- svg {
210
- width: 18px;
211
- height: 18px;
212
- margin-right: 10px;
213
- }
214
- }
215
-
216
- .box-gauge {
217
- display: block;
218
- width: 100%;
219
-
220
- .box-g {
221
- display: flex;
222
- flex-direction: row;
223
- align-items: center;
224
- }
225
- }
226
- }
227
- }
228
- </style>
1
+ <!--
2
+ @ Description: This component is used to display and create the link's to all the activity creation in module.
3
+ @ What it does: Goes trougth all the activity in the router and create a card that open the Table of content (appCompTableOfContent) that display the anchor.Display the title and subtitle enter in menu.json. Must be used with AppCompTableOfContent and AppCompMenu.
4
+ -->
5
+ <template>
6
+ <v-row v-if="activities.length" class="box-msa">
7
+ <v-col
8
+ v-for="activity of activities"
9
+ :key="activity.id"
10
+ cols="6"
11
+ class="menu-section-activity"
12
+ :aria-describedby="activity.id + '-subMenu'"
13
+ >
14
+ <router-link
15
+ :id="activity.id + '-subMenu'"
16
+ :title="activity.title"
17
+ :data-test="`item-menu-${activity.id}`"
18
+ class="btn-menu"
19
+ :to="{
20
+ name: createRoutes(activity.id)
21
+ }"
22
+ @click="startActivity(activity)"
23
+ >
24
+ <div class="menu-card" tag="article">
25
+ <v-row>
26
+ <div v-if="activity.subtitle === undefined" class="title">
27
+ <h4 v-html="activity.title"></h4>
28
+ </div>
29
+ <div v-else class="title">
30
+ <h4 v-html="`${activity.title} : ${activity.subtitle}`"></h4>
31
+ </div>
32
+
33
+ <div class="cnt-time">
34
+ <svg :aria-label="$t('label.timer')">
35
+ <use href="#clock-icon" />
36
+ </svg>
37
+ <p class="time">
38
+ {{ activity.time || '00:00' }}
39
+ </p>
40
+ </div>
41
+ <div class="box-gauge">
42
+ <app-comp-jauge
43
+ :max-value="getActivitySize(activity.id)"
44
+ :value="getPageComplete(activity.id)"
45
+ />
46
+ </div>
47
+ </v-row>
48
+ </div>
49
+ </router-link>
50
+ </v-col>
51
+ </v-row>
52
+ </template>
53
+ <script>
54
+ // ...
55
+ import { mapState } from 'pinia'
56
+ import { useAppStore } from '../module/stores/appStore'
57
+ import AppCompJauge from './AppCompJauge.vue'
58
+ export default {
59
+ components: {
60
+ AppCompJauge
61
+ },
62
+ computed: {
63
+ ...mapState(useAppStore, [
64
+ 'getAllActivities',
65
+ 'getAllActivitiesState',
66
+ 'getAllCompleted',
67
+ 'getAppConfigs',
68
+ 'getMenuSettings',
69
+ 'getModuleInfo'
70
+ ]),
71
+ activities() {
72
+ // get the data for list of the page for this module from the store and
73
+ // get the route of the page from the router to build the menu with its routes
74
+ let count = 0
75
+ const collection = []
76
+
77
+ this.getAllActivities().list.forEach((value, key) => {
78
+ let theActivity,
79
+ activityTitle,
80
+ activitySubTitle,
81
+ activityTime = null,
82
+ activityPath = ''
83
+
84
+ if (this.menuInfo[key]) {
85
+ const { title, subTitle, time } = this.menuInfo[key] //get time subTitle time from menu info
86
+ //set the title
87
+ if (title && title != ' ') activityTitle = title
88
+ //set the subtitle
89
+ if (subTitle && subTitle != ' ') activitySubTitle = subTitle
90
+ //set the time
91
+ if (time && time != ' ') activityTime = time
92
+ }
93
+ // This is the Introduction
94
+ if (key === 'A00') {
95
+ activityTitle = activityTitle || this.$t('text.introduction')
96
+ activityPath = 'introduction'
97
+ } else if (key === 'A99') {
98
+ activityTitle = activityTitle || this.$t('text.conclusion')
99
+ activityPath = 'conclusion'
100
+ } else {
101
+ count++
102
+ activityTitle =
103
+ activityTitle || `${this.$t('text.activity')} ${count}`
104
+ activityPath = `activite_${count}`
105
+ }
106
+
107
+ theActivity = {
108
+ id: key,
109
+ title: activityTitle,
110
+ subtitle: activitySubTitle,
111
+ time: activityTime,
112
+ path: activityPath,
113
+ data: value
114
+ }
115
+
116
+ collection.push(theActivity) // push the activity in the collection
117
+ })
118
+
119
+ return collection
120
+ },
121
+ menuInfo() {
122
+ let menuInfo = this.getMenuSettings
123
+ return menuInfo
124
+ }
125
+ },
126
+ mounted() {},
127
+ methods: {
128
+ /**
129
+ * @description Gives gives length of completed page for an activity
130
+ * @param {String} idActivity
131
+ * @returns {Number}
132
+ */
133
+ getPageComplete(idActivity) {
134
+ /// give all the page that are complete to the gauge
135
+ if (idActivity) {
136
+ let completed = []
137
+ if (this.getAllCompleted[idActivity]) {
138
+ completed = this.getAllCompleted[idActivity] //get all completed page for the activity
139
+ }
140
+
141
+ return completed.length
142
+ }
143
+ },
144
+ /**
145
+ * @description give the size of the state of the activity
146
+ * @param {String} activityID
147
+ * @returns {Number} size
148
+ */
149
+ getActivitySize(activityID) {
150
+ /*
151
+ * Note:
152
+ * Assaging by reference would change the property of the getters when the valued are changed in the new object in. * To prevent this behaviour we will make a deep copy of the getter
153
+ * cf: https://reactgo.com/javascript-clone-object/
154
+ */
155
+
156
+ const allActivitiesState = JSON.parse(
157
+ JSON.stringify(this.getAllActivitiesState)
158
+ )
159
+ let size = allActivitiesState[activityID]
160
+ ? allActivitiesState[activityID].size
161
+ : 0
162
+
163
+ return size
164
+ },
165
+ createRoutes(data) {
166
+ let activity
167
+
168
+ if (data.charAt(1) == '0' || data.charAt(1) == 0) {
169
+ activity = data.substr(2)
170
+ } else {
171
+ activity = data.substr(1)
172
+ }
173
+
174
+ if (activity == 0 && activity == '0') return `introduction`
175
+ if (activity == '99') return `conclusion`
176
+ else return `activite_${activity}`
177
+ },
178
+ startActivity(a) {
179
+ //this.$bus.$emit('send-starting-event', a)
180
+ }
181
+ }
182
+ }
183
+ </script>
184
+ <style lang="scss">
185
+ .menu-card {
186
+ width: 100%;
187
+ padding: 24px;
188
+
189
+ .v-row {
190
+ margin: 0;
191
+ flex-direction: column;
192
+
193
+ .title {
194
+ flex-grow: 4;
195
+ width: 80%;
196
+ margin-bottom: 30px;
197
+
198
+ h3 {
199
+ text-align: left;
200
+ }
201
+ }
202
+
203
+ .cnt-time {
204
+ display: flex;
205
+ flex-direction: row;
206
+ align-items: center;
207
+ margin-bottom: 20px;
208
+
209
+ svg {
210
+ width: 18px;
211
+ height: 18px;
212
+ margin-right: 10px;
213
+ }
214
+ }
215
+
216
+ .box-gauge {
217
+ display: block;
218
+ width: 100%;
219
+
220
+ .box-g {
221
+ display: flex;
222
+ flex-direction: row;
223
+ align-items: center;
224
+ }
225
+ }
226
+ }
227
+ }
228
+ </style>
@@ -121,6 +121,7 @@ export default {
121
121
  }
122
122
  }, 200)
123
123
  } else {
124
+ this.$bus.$emit('close-widget')
124
125
  this.$bus.$emit('note-to-show', this.$el)
125
126
  let e = document.getElementsByClassName('callEndNote')
126
127
  let t = this.$el.getAttribute('id')
@@ -1,82 +1,82 @@
1
- <!--@ Description: This component is used to display the playbar associate with the videoPlayer
2
- @ What it does: The component is used to interacted with the videoPlayer via buttons.
3
- v-media class is used to identified which html elements trigger the playBar to be appear (with focus/click)-->
4
- <template>
5
- <!--------------------------------- PLAY-BAR Progress -------------------------------------->
6
- <div ref="$playbar-timeline" class="pb-timeline">
7
- <div ref="$progress-area" class="progress-area">
8
- <div
9
- id="progress-bar"
10
- ref="$progress-bar"
11
- draggable="false"
12
- tabindex="0"
13
- class="v-media pb-progress-bar"
14
- role="slider"
15
- aria-valuemin="0"
16
- :aria-label="mediaA11Y.label"
17
- :aria-valuenow="mediaA11Y.valNow"
18
- :aria-valuemax="mediaA11Y.valMax"
19
- :aria-valuetext="mediaA11Y.valueText"
20
- @focus="changeFocusState('progressBar', true)"
21
- @blur="changeFocusState('progressBar', false)"
22
- >
23
- <!--Class progress-animation is apply when we are not using the thumb to change the progression-->
24
- <div
25
- id="progress-indicator"
26
- ref="$progress-indicator"
27
- draggable="false"
28
- class="progress-indicator"
29
- :class="{ 'progress-animation': !progressThumbDown }"
30
- :style="{ width: progressBarPercentage + '%' }"
31
- >
32
- <!--Mousedown validate if the thumb is cliqued (if yes, the mouse is follow to modify the progress)
33
- MouseOver/MouseOut deactivate click event on progressBar if the mouse hovered the thumb-->
34
- <!-- <div
35
- ref="$progress-thumb"
36
- draggable="false"
37
- class="progress-thumb"
38
- style="z-index: 9"
39
- @mousedown="
40
- savedIsPlaying = isPlaying
41
- progressThumbDown = true
42
- "
43
- @mouseover="progressThumbHover = true"
44
- @mouseleave="progressThumbHover = false"
45
- ></div> -->
46
-
47
- <div
48
- ref="$progress-thumb"
49
- draggable="false"
50
- class="progress-thumb"
51
- style="z-index: 9"
52
- @mouseover="progressThumbHover = true"
53
- @mouseleave="progressThumbHover = false"
54
- ></div>
55
- </div>
56
- </div>
57
- <div
58
- v-if="tooTipTimeCode"
59
- id="seek-tooltip"
60
- ref="$seek-tooltip"
61
- aria-hidden="true"
62
- class="seek-tooltip"
63
- >
64
- {{ tooTipTimeCode }}
65
- </div>
66
- </div>
67
- </div>
68
- </template>
69
-
70
- <script>
71
- import $extendsMedia from '../mixins/$mediaMixins'
72
-
73
- export default {
74
- mixins: [$extendsMedia],
75
- data() {
76
- return {
77
- tooTipTimeCode: null
78
- }
79
- },
80
- mounted() {}
81
- }
82
- </script>
1
+ <!--@ Description: This component is used to display the playbar associate with the videoPlayer
2
+ @ What it does: The component is used to interacted with the videoPlayer via buttons.
3
+ v-media class is used to identified which html elements trigger the playBar to be appear (with focus/click)-->
4
+ <template>
5
+ <!--------------------------------- PLAY-BAR Progress -------------------------------------->
6
+ <div ref="$playbar-timeline" class="pb-timeline">
7
+ <div ref="$progress-area" class="progress-area">
8
+ <div
9
+ id="progress-bar"
10
+ ref="$progress-bar"
11
+ draggable="false"
12
+ tabindex="0"
13
+ class="v-media pb-progress-bar"
14
+ role="slider"
15
+ aria-valuemin="0"
16
+ :aria-label="mediaA11Y.label"
17
+ :aria-valuenow="mediaA11Y.valNow"
18
+ :aria-valuemax="mediaA11Y.valMax"
19
+ :aria-valuetext="mediaA11Y.valueText"
20
+ @focus="changeFocusState('progressBar', true)"
21
+ @blur="changeFocusState('progressBar', false)"
22
+ >
23
+ <!--Class progress-animation is apply when we are not using the thumb to change the progression-->
24
+ <div
25
+ id="progress-indicator"
26
+ ref="$progress-indicator"
27
+ draggable="false"
28
+ class="progress-indicator"
29
+ :class="{ 'progress-animation': !progressThumbDown }"
30
+ :style="{ width: progressBarPercentage + '%' }"
31
+ >
32
+ <!--Mousedown validate if the thumb is cliqued (if yes, the mouse is follow to modify the progress)
33
+ MouseOver/MouseOut deactivate click event on progressBar if the mouse hovered the thumb-->
34
+ <!-- <div
35
+ ref="$progress-thumb"
36
+ draggable="false"
37
+ class="progress-thumb"
38
+ style="z-index: 9"
39
+ @mousedown="
40
+ savedIsPlaying = isPlaying
41
+ progressThumbDown = true
42
+ "
43
+ @mouseover="progressThumbHover = true"
44
+ @mouseleave="progressThumbHover = false"
45
+ ></div> -->
46
+
47
+ <div
48
+ ref="$progress-thumb"
49
+ draggable="false"
50
+ class="progress-thumb"
51
+ style="z-index: 9"
52
+ @mouseover="progressThumbHover = true"
53
+ @mouseleave="progressThumbHover = false"
54
+ ></div>
55
+ </div>
56
+ </div>
57
+ <div
58
+ v-if="tooTipTimeCode"
59
+ id="seek-tooltip"
60
+ ref="$seek-tooltip"
61
+ aria-hidden="true"
62
+ class="seek-tooltip"
63
+ >
64
+ {{ tooTipTimeCode }}
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </template>
69
+
70
+ <script>
71
+ import $extendsMedia from '../mixins/$mediaMixins'
72
+
73
+ export default {
74
+ mixins: [$extendsMedia],
75
+ data() {
76
+ return {
77
+ tooTipTimeCode: null
78
+ }
79
+ },
80
+ mounted() {}
81
+ }
82
+ </script>
@@ -208,7 +208,7 @@
208
208
  </template>
209
209
 
210
210
  <script>
211
- import { mapActions } from 'pinia'
211
+ import { mapState, mapActions } from 'pinia'
212
212
  import { useAppStore } from '../module/stores/appStore'
213
213
 
214
214
  export default {
@@ -229,6 +229,7 @@ export default {
229
229
  }
230
230
  },
231
231
  computed: {
232
+ ...mapState(useAppStore, ['getNotes', 'getWidgetOpen']),
232
233
  contentLength() {
233
234
  let size = null
234
235
  if (!this.pType || this.pType !== 'popup-info') return
@@ -399,6 +400,9 @@ export default {
399
400
  if (this.pType == 'popup-endActivity')
400
401
  this.updateEndPopUp(true) //This will handle the activation of the element in the portal
401
402
  else this.updateEndPopUp(false) //This will handle the activation of the element in the portal
403
+ if (this.getWidgetOpen) {
404
+ this.$bus.$emit('close-widget')
405
+ }
402
406
  this.$open()
403
407
  }
404
408
  },