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,24 +1,24 @@
1
- <!--
1
+ <!-- About this Component--
2
2
  @ Description: This component is used to display and create the navigation in el+ mode.
3
- @ What it does: Create the link to back back to the menu. Create link to the all the anchor to the current activity and display the curent anchor and the button next page and previous page. Portal are use to place the element in the rigth place in the main frame.
3
+ @ What it does: Create the link to back back to the menu. Create link to the all the anchor to the current activity and display the curent anchor and the button next page and previous page. Teleport are use to place the element in the rigth place in the main frame.
4
4
  -->
5
5
  <template>
6
6
  <div v-if="navigationRoutes" class="app-ctrl">
7
7
  <div id="tool-bar">
8
- <b-link
8
+ <router-link
9
9
  id="btn_back_summary"
10
10
  :to="{ name: homeLanding.route }"
11
11
  class="btn"
12
12
  :title="homeLanding.title"
13
13
  >
14
14
  <template #default>
15
- <svg width="20" height="17">
15
+ <svg class="home-icon">
16
16
  <use href="#home-icon" />
17
17
  </svg>
18
18
 
19
19
  <span class="toolbar_label">{{ homeLanding.title }}</span>
20
20
  </template>
21
- </b-link>
21
+ </router-link>
22
22
  <div class="ctn-w">
23
23
  <app-base-button
24
24
  id="toc"
@@ -26,8 +26,8 @@
26
26
  :aria-label="$t('button.toc')"
27
27
  @click="openToc()"
28
28
  >
29
- <svg width="20" height="17">
30
- <use href="#timeline-icon" />
29
+ <svg class="toc-icon">
30
+ <use href="#toc-icon" />
31
31
  </svg>
32
32
  <span class="toolbar_label">{{ $t('button.toc') }}</span>
33
33
  </app-base-button>
@@ -35,13 +35,14 @@
35
35
  </div>
36
36
  <div class="ctn-w">
37
37
  <app-base-button
38
+ id="btn_infos"
38
39
  :title="$t('button.info')"
39
40
  :aria-label="$t('button.info')"
40
41
  :disabled="noInfo"
41
42
  :class="{ md_disabled: noInfo }"
42
43
  @click="openCreditNote()"
43
44
  >
44
- <svg width="20" height="17">
45
+ <svg class="info-icon">
45
46
  <use href="#info-icon" />
46
47
  </svg>
47
48
  <span class="toolbar_label">{{ $t('button.info') }}</span>
@@ -52,80 +53,81 @@
52
53
 
53
54
  <!-- Navigation principale -->
54
55
 
55
- <portal v-if="!isMenu" to="primary_nav">
56
- <app-base-button
57
- id="btn_previous_page"
58
- ref="btn_previous_page"
59
- class="nav_main_btn primary_nav_btn"
60
- :title="$t('button.go_to_previous_page')"
61
- :aria-label="$t('button.go_to_previous_page')"
62
- :is-active="!backAllowed"
63
- @click="goPrevious"
64
- >
65
- <svg width="24" height="24">
66
- <use href="#fleche-gauche-icon" fill="#fff" />
67
- </svg>
68
- </app-base-button>
69
- <div class="pagination">
70
- <span aria-hidden="true">
71
- Page {{ pagination.counter }} / {{ pagination.total }}
72
- </span>
73
- <span class="sr-only">
74
- Page {{ pagination.counter }} {{ pagination.$W }}
75
- {{ pagination.total }}
76
- </span>
77
- </div>
78
- <app-base-button
79
- id="btn_next_page"
80
- ref="btn_next_page"
81
- class="nav_main_btn primary_nav_btn"
82
- :aria-label="$t('button.go_to_next_page')"
83
- :title="$t('button.go_to_next_page')"
84
- :is-active="!nextAllowed"
85
- @click="goNext"
86
- >
87
- <svg width="24" height="24">
88
- <!-- <use v-if="nextLesson" href="#fleche-retour-icon" fill="#fff" /> -->
89
-
90
- <use href="#fleche-droite-icon" fill="#fff"></use>
91
- </svg>
92
- </app-base-button>
93
- </portal>
56
+ <SafeTeleport to="#primary_nav_wrapper">
57
+ <template v-if="!isMenu">
58
+ <app-base-button
59
+ id="btn_previous_page"
60
+ ref="btn_previous_page"
61
+ class="nav_main_btn primary_nav_btn"
62
+ :title="$t('button.go_to_previous_page')"
63
+ :aria-label="$t('button.go_to_previous_page')"
64
+ :is-active="!backAllowed"
65
+ @click="goPrevious"
66
+ >
67
+ <svg>
68
+ <use href="#fleche-gauche-icon" />
69
+ </svg>
70
+ </app-base-button>
71
+ <div class="pagination">
72
+ <span aria-hidden="true">
73
+ Page {{ pagination.counter }} / {{ pagination.total }}
74
+ </span>
75
+ <span class="sr-only">
76
+ Page {{ pagination.counter }} {{ pagination.$W }}
77
+ {{ pagination.total }}
78
+ </span>
79
+ </div>
80
+ <app-base-button
81
+ id="btn_next_page"
82
+ ref="btn_next_page"
83
+ class="nav_main_btn primary_nav_btn"
84
+ :aria-label="$t('button.go_to_next_page')"
85
+ :title="$t('button.go_to_next_page')"
86
+ :is-active="!nextAllowed"
87
+ @click="goNext"
88
+ >
89
+ <svg>
90
+ <use href="#fleche-droite-icon"></use>
91
+ </svg>
92
+ </app-base-button>
93
+ </template>
94
+ </SafeTeleport>
94
95
  <!---------------------------- TEST ------------------------->
95
96
  <!---------------------------- END_ACTIVITY_POPUP SECTION ------------------------->
96
97
 
97
- <portal v-if="endActivityPopup" to="wrap-end-activity">
98
- <app-base-button
99
- v-if="endActivityPopup.backEnabled"
100
- :aria-label="endActivityPopup.backLabel"
101
- :title="endActivityPopup.backLabel"
102
- class="popup_primary_nav_btn"
103
- @click="navigateTo(endActivityPopup.backRoute)"
104
- >
105
- {{ endActivityPopup.backLabel }}
106
- </app-base-button>
107
-
108
- <app-base-button
109
- v-if="endActivityPopup.nextEnabled"
110
- :aria-label="endActivityPopup.nextLabel"
111
- :title="endActivityPopup.nextLabel"
112
- class="popup_primary_nav_btn"
113
- @click="navigateTo(endActivityPopup.nextRoute)"
114
- >
115
- {{ endActivityPopup.nextLabel }}
116
- </app-base-button>
117
- </portal>
98
+ <SafeTeleport
99
+ v-if="endActivityPopup && getEndPopUp"
100
+ defer
101
+ to="#end-activity"
102
+ >
103
+ <div class="popup-bottom-buttons">
104
+ <app-base-button
105
+ :aria-label="endActivityPopup.backLabel"
106
+ :title="endActivityPopup.backLabel"
107
+ class="popup_primary_nav_btn btn btn-reserve"
108
+ @click="navigateTo(endActivityPopup.backRoute)"
109
+ >
110
+ {{ endActivityPopup.backLabel }}
111
+ </app-base-button>
118
112
 
113
+ <app-base-button
114
+ :aria-label="endActivityPopup.nextLabel"
115
+ :title="endActivityPopup.nextLabel"
116
+ class="popup_primary_nav_btn btn btn-main"
117
+ @click="navigateTo(endActivityPopup.nextRoute)"
118
+ >
119
+ {{ endActivityPopup.nextLabel }}
120
+ </app-base-button>
121
+ </div>
122
+ </SafeTeleport>
119
123
  <!---------------------------- END END_ACTIVITY_POPUP SECTION ------------------------->
120
- <app-comp-settings-menu />
121
124
  </div>
122
125
  </template>
123
126
 
124
127
  <script>
125
- import { mapGetters } from 'vuex'
126
- import AppCompSettingsMenu from './AppCompSettingsMenu.vue'
128
+ import { mapState, mapActions } from 'pinia'
129
+ import { useAppStore } from '../module/stores/appStore'
127
130
  export default {
128
- components: { AppCompSettingsMenu },
129
131
  props: {
130
132
  autoNavigate: { type: Boolean, default: false }
131
133
  },
@@ -147,7 +149,7 @@ export default {
147
149
  }
148
150
  },
149
151
  computed: {
150
- ...mapGetters([
152
+ ...mapState(useAppStore, [
151
153
  'getCurrentPage',
152
154
  'getModuleInfo',
153
155
  'getIntroStatus',
@@ -157,7 +159,9 @@ export default {
157
159
  'getBifChoice',
158
160
  'getMenuSettings',
159
161
  'getWidgetOpen',
160
- 'getDataNoteCredit'
162
+ 'getDataNoteCredit',
163
+ 'getPopStatus',
164
+ 'getEndPopUp'
161
165
  ]),
162
166
  noInfo() {
163
167
  if (this.getDataNoteCredit.note || this.getDataNoteCredit.credit) {
@@ -321,12 +325,15 @@ export default {
321
325
  }
322
326
  },
323
327
  watch: {
324
- $route() {
325
- this.setNavigation() // reset the navigation context when route change
326
-
327
- setTimeout(() => {
328
- this.initPage()
329
- }, 200)
328
+ $route: {
329
+ handler() {
330
+ this.setNavigation() // reset the navigation context when route change
331
+
332
+ setTimeout(() => {
333
+ this.initPage()
334
+ }, 200)
335
+ },
336
+ deep: true
330
337
  }
331
338
  },
332
339
  beforeUnmount() {
@@ -343,6 +350,7 @@ export default {
343
350
  }, 200)
344
351
  },
345
352
  methods: {
353
+ ...mapActions(useAppStore, ['updateNextActivity']),
346
354
  initPage() {
347
355
  this.setNextActivity()
348
356
  this.setPreviousActivity()
@@ -351,7 +359,8 @@ export default {
351
359
  getActivity() {
352
360
  const { all_routes } = this.$helper.getRoutesFromVueRouter()
353
361
  const activity = all_routes.find(
354
- (route) => route.meta.id === this.$router.currentRoute.meta.activity_ref
362
+ (route) =>
363
+ route.meta.id === this.$router.currentRoute.value.meta.activity_ref
355
364
  )
356
365
  return activity
357
366
  },
@@ -487,55 +496,42 @@ export default {
487
496
  })
488
497
  break
489
498
  //Next navigation will lead next activity
490
- case this.nextActivity.type_of_next === 'ACTIVITY':
491
- this.openPopup(
492
- {
493
- type: 'popup-endActivity',
494
- value: {
495
- //title: this.$t('popup.text_congratulation'),
496
- title: '',
497
-
498
- hypertext_1: `<p>${this.$t('popup.text_what_to_do')}</p>`,
499
- $bvArgs: [
500
- {
501
- 'no-close-on-backdrop': false
502
- }
503
- ]
504
- }
505
- },
506
- 'no_attempts'
507
- )
499
+ case this.nextActivity.type_of_next === 'ACTIVITY': {
500
+ const endPopup = {
501
+ type: 'popup-endActivity',
502
+ value: {
503
+ title: `${this.$t('popup.text_what_to_do')}`
504
+ }
505
+ }
506
+
507
+ this.openPopup(endPopup)
508
+
508
509
  this.nextActivityRoute = this.nextActivity._namedRoute
509
510
 
510
511
  if (this.getModuleInfo.packageType !== 'xapi') return
511
512
 
512
513
  this.$bus.$emit('send-completion-event', 'ACTIVITY')
513
514
  break
515
+ }
514
516
  //Next navigation will lead next activity
515
- case this.nextActivity.type_of_next === 'LESSON':
516
- this.openPopup(
517
- {
518
- type: 'popup-endActivity',
519
- value: {
520
- //title: this.$t('popup.text_congratulation'),
521
- title: '',
522
-
523
- hypertext_1: `<p>${this.$t('popup.text_what_to_do')}</p>`,
524
- $bvArgs: [
525
- {
526
- 'no-close-on-backdrop': false
527
- }
528
- ]
529
- }
530
- },
531
- 'no_attempts'
532
- )
517
+ case this.nextActivity.type_of_next === 'LESSON': {
518
+ const endPopup = {
519
+ type: 'popup-endActivity',
520
+ value: {
521
+ template: `<p>${this.$t('popup.text_what_to_do')}</p>`,
522
+ title: ''
523
+ }
524
+ }
525
+
526
+ this.openPopup(endPopup)
527
+
533
528
  this.nextActivityRoute = this.nextLesson
534
529
 
535
530
  if (this.getModuleInfo.packageType !== 'xapi') return
536
531
  this.$bus.$emit('send-completion-event', 'ACTIVITY')
537
532
 
538
533
  break
534
+ }
539
535
  }
540
536
  },
541
537
 
@@ -565,9 +561,7 @@ export default {
565
561
  })
566
562
  } else {
567
563
  this.$router.push({
568
- name: `${
569
- this.navigationRoutes.cat[0]._namedRoute
570
- }.${this.getPageNavBifStart(
564
+ name: `${this.navigationRoutes.cat[0]._namedRoute}.${this.getPageNavBifStart(
571
565
  this.$route.meta.activity_ref,
572
566
  this.$route.meta.id
573
567
  )}`
@@ -593,12 +587,12 @@ export default {
593
587
  this.$bus.$emit('close-widget')
594
588
  }
595
589
  // current Route is module
596
- this.currentActivity = this.$router.currentRoute.meta.activity_ref
597
- this.currentPageId = this.$router.currentRoute.meta.id
590
+ this.currentActivity = this.$router.currentRoute.value.meta.activity_ref
591
+ this.currentPageId = this.$router.currentRoute.value.meta.id
598
592
 
599
593
  const { all_routes, meta } = this.$helper.getRoutesFromVueRouter()
600
594
 
601
- if (this.$router.currentRoute.name === 'module') {
595
+ if (this.$router.currentRoute.value.name === 'module') {
602
596
  this.navigationRoutes = {
603
597
  context: 'module',
604
598
  cat: meta.children
@@ -606,18 +600,18 @@ export default {
606
600
  }
607
601
  // Navigation catalog is the introduction
608
602
  else if (
609
- this.$router.currentRoute.meta.type === 'introduction' ||
610
- this.$router.currentRoute.meta.type === 'menu'
603
+ this.$router.currentRoute.value.meta.type === 'introduction' ||
604
+ this.$router.currentRoute.value.meta.type === 'menu'
611
605
  ) {
612
606
  const a = all_routes.find(
613
607
  (route) =>
614
608
  route.meta.id ===
615
- this.$router.currentRoute.meta.activity_ref.$folderName
609
+ this.$router.currentRoute.value.meta.activity_ref.$folderName
616
610
  )
617
611
 
618
612
  const b = all_routes.find(
619
613
  (route) =>
620
- route.meta.id === this.$router.currentRoute.meta.activity_ref
614
+ route.meta.id === this.$router.currentRoute.value.meta.activity_ref
621
615
  )
622
616
  if (a) {
623
617
  let r = []
@@ -654,13 +648,13 @@ export default {
654
648
  const a = all_routes.find(
655
649
  (route) =>
656
650
  route.meta.id ===
657
- this.$router.currentRoute.meta.activity_ref.$folderName
651
+ this.$router.currentRoute.value.meta.activity_ref.$folderName
658
652
  )
659
653
 
660
654
  // on refresh $forderName doesn't existe
661
655
  const b = all_routes.find(
662
656
  (route) =>
663
- route.meta.id === this.$router.currentRoute.meta.activity_ref
657
+ route.meta.id === this.$router.currentRoute.value.meta.activity_ref
664
658
  )
665
659
 
666
660
  if (a) {
@@ -753,7 +747,7 @@ export default {
753
747
  }
754
748
  } else this.nextActivity = null
755
749
 
756
- this.$store.dispatch('updateNextActivity', this.nextActivity)
750
+ this.updateNextActivity(this.nextActivity)
757
751
  },
758
752
  /**
759
753
  * @description: set previous activity for the navigation
@@ -817,41 +811,7 @@ export default {
817
811
  openPopup(popUpData) {
818
812
  this.$bus.$emit('open-popup', popUpData)
819
813
  },
820
- /**
821
- * @description hide the navigation of the application
822
- * @param {String} s - s name of the navigation element to hide ('back' | 'next')
823
- */
824
- hideNavigationCtrls(s) {
825
- s = s || 'all'
826
-
827
- if (s && !['back', 'next', 'all'].includes(s.toLowerCase(s))) return
828
814
 
829
- switch (s) {
830
- case 'back':
831
- {
832
- this.$store.dispatch('setShowNavLeftCtrl', false)
833
- }
834
- break
835
- case 'next':
836
- {
837
- this.$store.dispatch('setShowNavRightCtrl', false)
838
- this.$store.dispatch('setShowPrimaryCtrl', false)
839
- }
840
-
841
- break
842
-
843
- case 'all':
844
- {
845
- //hide the Upper Nav bar controls
846
- this.$store.dispatch('setShowNavLeftCtrl', false)
847
- this.$store.dispatch('setShowNavRightCtrl', false)
848
-
849
- //hide the main navigation to next page
850
- this.$store.dispatch('setShowPrimaryCtrl', false)
851
- }
852
- break
853
- }
854
- },
855
815
  /**
856
816
  * @description - send information to open toc
857
817
  */ openToc() {
@@ -869,62 +829,87 @@ export default {
869
829
  </script>
870
830
 
871
831
  <style lang="scss">
872
- .app-ctrl {
832
+ .app-nav {
833
+ transition: width 0.5s;
834
+ position: fixed !important;
835
+ top: 0;
836
+ left: 0;
837
+ z-index: 10;
873
838
  display: flex;
874
839
  flex-direction: column;
875
- align-items: start;
876
- height: 100%;
877
- width: 100%;
878
- position: relative;
840
+ flex-wrap: wrap;
841
+ align-content: start !important;
842
+ width: 67px;
843
+ height: 100vh;
879
844
 
880
- #tool-bar {
881
- width: 100%;
882
- padding: 32px 0;
845
+ .app-ctrl {
883
846
  display: flex;
884
847
  flex-direction: column;
885
- align-items: center;
886
- // flex-wrap: wrap;
848
+ align-items: start;
849
+ width: 100%;
887
850
 
888
- & .ctn-w > button,
889
- & > a {
890
- display: block;
891
- margin-bottom: 30px;
851
+ #tool-bar {
852
+ width: 100%;
853
+ padding: 32px 0;
854
+ display: flex;
855
+ flex-direction: column;
856
+ align-items: center;
857
+
858
+ & .ctn-w > button,
859
+ & > a {
860
+ //display: block;
861
+ width: 80px;
862
+ height: 80px;
863
+ padding: 0 !important;
864
+ margin-bottom: 24px;
865
+ display: flex;
866
+ flex-direction: column;
867
+ align-content: center;
868
+ justify-content: center;
869
+ position: relative;
870
+
871
+ .home-icon {
872
+ width: 22px;
873
+ height: 24px;
874
+ }
892
875
 
893
- span.toolbar_label {
894
- transition: opacity 0.5s;
895
- display: none;
896
- opacity: 0;
897
- }
898
- }
876
+ .toc-icon {
877
+ width: 41px;
878
+ height: 22px;
879
+ }
899
880
 
900
- .ctn-w {
901
- position: relative;
902
- }
903
- }
904
- }
881
+ .info-icon {
882
+ width: 24px;
883
+ height: 24px;
884
+ }
905
885
 
906
- #primary_nav_wrapper {
907
- display: flex;
908
- flex-direction: row;
909
- flex-wrap: wrap;
910
- align-content: center;
911
- justify-content: center;
912
- margin: 25px 0;
913
- }
886
+ span {
887
+ &.toolbar_label {
888
+ display: block;
889
+ transition: opacity 0.5s;
890
+ visibility: hidden;
891
+ opacity: 0;
892
+ }
893
+ }
914
894
 
915
- .navbar {
916
- transition: width 0.5s;
895
+ &.active_toc,
896
+ &.active_infos {
897
+ &::before {
898
+ content: '';
899
+ display: block;
900
+ position: absolute;
901
+ height: 100%;
902
+ width: 4px;
903
+ left: -16px;
904
+ }
905
+ }
906
+ }
917
907
 
918
- position: fixed;
919
- top: 0;
920
- left: 0;
921
- z-index: 10;
922
- display: flex;
923
- flex-direction: column;
924
- flex-wrap: wrap;
925
- align-content: start;
926
- width: 67px;
927
- height: 100%;
908
+ .ctn-w {
909
+ position: relative;
910
+ }
911
+ }
912
+ }
928
913
 
929
914
  &:focus,
930
915
  &:hover,
@@ -932,14 +917,43 @@ export default {
932
917
  width: 115px !important;
933
918
 
934
919
  #tool-bar {
935
- button,
920
+ & .ctn-w > button,
936
921
  a {
937
922
  span.toolbar_label {
938
- display: block;
923
+ visibility: visible;
939
924
  opacity: 1;
940
925
  }
941
926
  }
942
927
  }
943
928
  }
944
929
  }
930
+
931
+ #primary_nav_wrapper {
932
+ display: flex;
933
+ flex-direction: row;
934
+ flex-wrap: wrap;
935
+ align-content: center;
936
+ justify-content: center;
937
+ margin: 25px 0;
938
+
939
+ #btn_previous_page,
940
+ #btn_next_page {
941
+ border-radius: 50px;
942
+ width: 45px;
943
+ height: 45px;
944
+ display: flex;
945
+ justify-content: center;
946
+
947
+ /*svg {
948
+ width: 100%;
949
+ height: auto;
950
+ }*/
951
+ }
952
+
953
+ .pagination {
954
+ display: flex;
955
+ align-items: center;
956
+ justify-content: center;
957
+ }
958
+ }
945
959
  </style>