fcad-core-dragon 2.1.1 → 2.1.2

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 (160) hide show
  1. package/.editorconfig +7 -7
  2. package/.gitlab-ci.yml +124 -0
  3. package/.prettierrc +11 -11
  4. package/.vscode/extensions.json +8 -8
  5. package/.vscode/settings.json +46 -16
  6. package/CHANGELOG +520 -520
  7. package/README.md +57 -57
  8. package/documentation/.vitepress/config.js +114 -114
  9. package/documentation/api-examples.md +49 -49
  10. package/documentation/composants/app-base-button.md +58 -58
  11. package/documentation/composants/app-base-error-display.md +59 -59
  12. package/documentation/composants/app-base-popover.md +68 -68
  13. package/documentation/composants/app-comp-audio.md +75 -75
  14. package/documentation/composants/app-comp-branch-buttons.md +111 -111
  15. package/documentation/composants/app-comp-button-progress.md +53 -53
  16. package/documentation/composants/app-comp-carousel.md +53 -53
  17. package/documentation/composants/app-comp-container.md +53 -53
  18. package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
  19. package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
  20. package/documentation/composants/app-comp-input-radio-next.md +39 -39
  21. package/documentation/composants/app-comp-input-text-next.md +35 -35
  22. package/documentation/composants/app-comp-input-text-table-next.md +34 -34
  23. package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
  24. package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
  25. package/documentation/composants/app-comp-jauge.md +31 -31
  26. package/documentation/composants/app-comp-menu-item.md +55 -55
  27. package/documentation/composants/app-comp-menu.md +29 -29
  28. package/documentation/composants/app-comp-navigation.md +41 -41
  29. package/documentation/composants/app-comp-note-call.md +53 -53
  30. package/documentation/composants/app-comp-note-credit.md +53 -53
  31. package/documentation/composants/app-comp-play-bar-next.md +53 -53
  32. package/documentation/composants/app-comp-pop-up-next.md +93 -93
  33. package/documentation/composants/app-comp-quiz-next.md +235 -235
  34. package/documentation/composants/app-comp-quiz-recall.md +53 -53
  35. package/documentation/composants/app-comp-svg-next.md +53 -53
  36. package/documentation/composants/app-comp-table-of-content.md +50 -50
  37. package/documentation/composants/app-comp-video-player.md +82 -82
  38. package/documentation/composants.md +46 -46
  39. package/documentation/composants_critiques/ModelPageComposant.md +53 -53
  40. package/documentation/composants_critiques/app-base-module.md +43 -43
  41. package/documentation/composants_critiques/app-base-page.md +48 -48
  42. package/documentation/composants_critiques/app-base.md +311 -311
  43. package/documentation/composants_critiques/main.md +15 -15
  44. package/documentation/demarrage.md +50 -50
  45. package/documentation/deploiement.md +57 -57
  46. package/documentation/index.md +33 -33
  47. package/documentation/markdown-examples.md +85 -85
  48. package/documentation/public/vite.svg +14 -14
  49. package/documentation/public/vuejs.svg +1 -1
  50. package/documentation/public/vuetify.svg +5 -5
  51. package/eslint.config.js +60 -60
  52. package/junit-report.xml +182 -0
  53. package/package.json +66 -59
  54. package/playwright/index.html +12 -0
  55. package/playwright/index.js +21 -0
  56. package/playwright-ct.config.js +95 -0
  57. package/src/$locales/en.json +157 -157
  58. package/src/$locales/fr.json +120 -120
  59. package/src/assets/data/onboardingMessages.json +47 -47
  60. package/src/components/AppBase.vue +1171 -1169
  61. package/src/components/AppBaseButton.vue +90 -95
  62. package/src/components/AppBaseErrorDisplay.vue +438 -438
  63. package/src/components/AppBaseFlipCard.vue +84 -84
  64. package/src/components/AppBaseModule.vue +1639 -1634
  65. package/src/components/AppBasePage.vue +867 -866
  66. package/src/components/AppBasePopover.vue +41 -41
  67. package/src/components/AppBaseSkeleton.vue +66 -66
  68. package/src/components/AppCompAudio.vue +261 -256
  69. package/src/components/AppCompBranchButtons.vue +508 -508
  70. package/src/components/AppCompButtonProgress.vue +137 -132
  71. package/src/components/AppCompCarousel.vue +342 -336
  72. package/src/components/AppCompContainer.vue +29 -29
  73. package/src/components/AppCompInputCheckBoxNx.vue +325 -323
  74. package/src/components/AppCompInputDropdownNx.vue +302 -299
  75. package/src/components/AppCompInputRadioNx.vue +287 -284
  76. package/src/components/AppCompInputTextNx.vue +156 -153
  77. package/src/components/AppCompInputTextTableNx.vue +205 -202
  78. package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
  79. package/src/components/AppCompInputTextToFillNx.vue +316 -313
  80. package/src/components/AppCompJauge.vue +81 -81
  81. package/src/components/AppCompMenu.vue +6 -1
  82. package/src/components/AppCompMenuItem.vue +246 -240
  83. package/src/components/AppCompNavigation.vue +977 -972
  84. package/src/components/AppCompNoteCall.vue +167 -161
  85. package/src/components/AppCompNoteCredit.vue +496 -491
  86. package/src/components/AppCompPlayBarNext.vue +2290 -2288
  87. package/src/components/AppCompPopUpNext.vue +508 -504
  88. package/src/components/AppCompQuizNext.vue +515 -510
  89. package/src/components/AppCompQuizRecall.vue +355 -350
  90. package/src/components/AppCompSVGNext.vue +346 -346
  91. package/src/components/AppCompSettingsMenu.vue +177 -172
  92. package/src/components/AppCompTableOfContent.vue +433 -427
  93. package/src/components/AppCompVideoPlayer.vue +377 -377
  94. package/src/components/AppCompViewDisplay.vue +6 -6
  95. package/src/components/BaseModule.vue +55 -55
  96. package/src/composables/useIdleDetector.js +56 -56
  97. package/src/composables/useQuiz.js +89 -89
  98. package/src/composables/useTimer.js +172 -172
  99. package/src/directives/nvdaFix.js +53 -53
  100. package/src/externalComps/ModuleView.vue +22 -22
  101. package/src/externalComps/SummaryView.vue +91 -91
  102. package/src/main.js +493 -476
  103. package/src/module/stores/appStore.js +960 -947
  104. package/src/module/xapi/ADL.js +520 -520
  105. package/src/module/xapi/Crypto/Hasher.js +241 -241
  106. package/src/module/xapi/Crypto/WordArray.js +278 -278
  107. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  108. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  109. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  110. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  111. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  112. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  113. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  114. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  115. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  116. package/src/module/xapi/Crypto/index.js +53 -53
  117. package/src/module/xapi/Statement/activity.js +47 -47
  118. package/src/module/xapi/Statement/agent.js +55 -55
  119. package/src/module/xapi/Statement/group.js +26 -26
  120. package/src/module/xapi/Statement/index.js +259 -259
  121. package/src/module/xapi/Statement/statement.js +253 -253
  122. package/src/module/xapi/Statement/statementRef.js +23 -23
  123. package/src/module/xapi/Statement/substatement.js +22 -22
  124. package/src/module/xapi/Statement/verb.js +36 -36
  125. package/src/module/xapi/activitytypes.js +17 -17
  126. package/src/module/xapi/launch.js +157 -157
  127. package/src/module/xapi/utils.js +167 -167
  128. package/src/module/xapi/verbs.js +294 -294
  129. package/src/module/xapi/wrapper.js +1895 -1895
  130. package/src/module/xapi/xapiStatement.js +444 -444
  131. package/src/plugins/analytics.js +34 -34
  132. package/src/plugins/bus.js +12 -8
  133. package/src/plugins/gsap.js +17 -17
  134. package/src/plugins/helper.js +355 -358
  135. package/src/plugins/i18n.js +27 -26
  136. package/src/plugins/idb.js +227 -227
  137. package/src/plugins/save.js +37 -37
  138. package/src/plugins/scorm.js +287 -287
  139. package/src/plugins/xapi.js +11 -11
  140. package/src/public/index.html +33 -33
  141. package/src/router/index.js +57 -57
  142. package/src/router/routes.js +312 -312
  143. package/src/shared/generalfuncs.js +344 -344
  144. package/src/shared/validators.js +1018 -1018
  145. package/tests/component/AppBaseButton.spec.js +53 -0
  146. package/tests/component/pinia.spec.js +24 -0
  147. package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
  148. package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
  149. package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
  150. package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
  151. package/tests/unit/AppCompInputTextNx.spec.js +44 -0
  152. package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
  153. package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
  154. package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
  155. package/tests/unit/AppCompQuizNext.spec.js +114 -0
  156. package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
  157. package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
  158. package/vitest.config.js +28 -19
  159. package/vitest.setup.js +28 -0
  160. package/src/components/AppBaseButton.test.js +0 -21
package/.editorconfig CHANGED
@@ -1,8 +1,8 @@
1
- [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
2
- charset = utf-8
3
- indent_size = 2
4
- indent_style = space
5
- insert_final_newline = true
6
- trim_trailing_whitespace = true
7
- end_of_line = lf
1
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
2
+ charset = utf-8
3
+ indent_size = 2
4
+ indent_style = space
5
+ insert_final_newline = true
6
+ trim_trailing_whitespace = true
7
+ end_of_line = lf
8
8
  max_line_length = 80
package/.gitlab-ci.yml ADDED
@@ -0,0 +1,124 @@
1
+ image: node:lts
2
+
3
+ stages:
4
+ - install
5
+ - lint
6
+ - test
7
+ - build
8
+ - deploy
9
+
10
+ # Configuration du cache pour for the pipelines
11
+ cache:
12
+ key: ${CI_COMMIT_REF_SLUG}-node-deps # access key
13
+ paths:
14
+ - node_modules
15
+ - playwright/.cache/
16
+ # policy: pull # policy for runner to downlaod cash bit not modify it
17
+
18
+ # Global variables to ensure clean clones and token-based authentication
19
+ variables:
20
+ GIT_STRATEGY: clone
21
+ GIT_CHECKOUT: 'true'
22
+ GIT_SUBMODULE_STRATEGY: recursive
23
+ GIT_DEPTH: 1 # Faster, shallow clone
24
+ GIT_SSL_NO_VERIFY: 'true' # Optional: if your GitLab server uses self-signed SSL
25
+ NPM_TOKEN: '$NPM_ACCESS_KEY' # hold value of Auth key for npm access
26
+
27
+ # Install stage
28
+ install_dependencies:
29
+ stage: install
30
+ script:
31
+ - echo "🏃 Installing dependencies..."
32
+ - npm ci
33
+ - chmod -R 777 node_modules/
34
+
35
+ #lint the code
36
+ lint_code:
37
+ stage: lint
38
+ script:
39
+ - npm run lintfix # Run configured linting script
40
+
41
+
42
+ #unit-test stage
43
+ run_tests_unit:
44
+ stage: test
45
+ script:
46
+ - echo "🏃 Running tests..."
47
+ - npm run test:unit -- --run --reporter=junit --outputFile=junit-report.xml
48
+ artifacts:
49
+ when: always
50
+ reports:
51
+ junit: junit-report.xml
52
+ coverage_report:
53
+ coverage_format: cobertura
54
+ path: coverage/cobertura-corage.xml
55
+ paths:
56
+ - junit-report.xml
57
+ - coverage/
58
+ allow_failure: true
59
+
60
+
61
+ #Components-test stage with playwright
62
+ run_components_test:
63
+ stage: test
64
+ image: mcr.microsoft.com/playwright:v1.48.0-jammy
65
+ script:
66
+ - echo "🏃 Running Components tests..."
67
+ - npx playwright show-report
68
+ - npm run test-ct
69
+ - mkdir -p artifacts
70
+ - cp -r playwright-report artifacts/playwright-report || true
71
+ - if [ -f results.xml ]; then cp results.xml artifacts/results.xml; fi
72
+ artifacts:
73
+ when: always
74
+ reports:
75
+ junit: artifacts/results.xml # for reporting in GitLab
76
+ paths:
77
+ - artifacts/playwright-report/
78
+ - artifacts/results.xml
79
+ allow_failure: true
80
+
81
+ # # unit-test stage
82
+ # build_app:
83
+ # stage: build
84
+ # script:
85
+ # - echo "🏃 Building app..."
86
+ # - npm run build # build the App
87
+ # artifacts:
88
+ # paths:
89
+ # - dist/
90
+
91
+ # run job for publication on Gitlab Pages
92
+ # pages:
93
+ # stage: deploy
94
+ # image: alpine:latest # smaller docker image
95
+ # needs: ['build_app', 'run_components_test']
96
+ # script:
97
+ # - echo "🏃 Deploying for production"
98
+ # - mkdir -p public
99
+ # - cp -r dist/. public/
100
+ # - if [ -d "public/dist" ]; then mv public/dist/* public/ && rm -r public/dist; fi
101
+ # artifacts:
102
+ # paths:
103
+ # - public
104
+ # environment:
105
+ # name: production/pages
106
+ # url: $CI_PAGES_URL # url is handle by Gitlab
107
+ # rules:
108
+ # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Deploy only from the default branch (e.g., main)
109
+
110
+ #Deploy to npm
111
+ publish_to_npm:
112
+ stage: deploy
113
+ #image: node:20
114
+ script:
115
+ - echo " //registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
116
+ - echo "👀 Check token - ${NPM_TOKEM} "
117
+ - cat ~/.npmrc
118
+ - npm whoami || true
119
+ - echo "🚀 Publishing package version from tag $CI_COMMIT_TAG"
120
+ - npm publish --access public # scoped of publication (public)
121
+ when: on_success
122
+ rules:
123
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Deploy only from the default branch (e.g., main)
124
+
package/.prettierrc CHANGED
@@ -1,11 +1,11 @@
1
- {
2
- "$schema": "https://www.schemastore.org/prettierrc.json",
3
- "singleQuote": true,
4
- "semi": false,
5
- "tabWidth": 2,
6
- "trailingComma": "none",
7
- "arrowParens": "always",
8
- "htmlWhitespaceSensitivity": "ignore",
9
- "endOfLine": "auto",
10
- "printWidth": 80
11
- }
1
+ {
2
+ "$schema": "https://www.schemastore.org/prettierrc.json",
3
+ "singleQuote": true,
4
+ "semi": false,
5
+ "tabWidth": 2,
6
+ "trailingComma": "none",
7
+ "arrowParens": "always",
8
+ "htmlWhitespaceSensitivity": "ignore",
9
+ "endOfLine": "auto",
10
+ "printWidth": 80
11
+ }
@@ -1,8 +1,8 @@
1
- {
2
- "recommendations": [
3
- "Vue.volar",
4
- "dbaeumer.vscode-eslint",
5
- "EditorConfig.EditorConfig",
6
- "esbenp.prettier-vscode"
7
- ]
8
- }
1
+ {
2
+ "recommendations": [
3
+ "Vue.volar",
4
+ "dbaeumer.vscode-eslint",
5
+ "EditorConfig.EditorConfig",
6
+ "esbenp.prettier-vscode"
7
+ ]
8
+ }
@@ -1,16 +1,46 @@
1
- {
2
- "explorer.fileNesting.enabled": true,
3
- "explorer.fileNesting.patterns": {
4
- "tsconfig.json": "tsconfig.*.json, env.d.ts",
5
- "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
6
- "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
7
- },
8
- "editor.codeActionsOnSave": {
9
- "source.fixAll": "explicit"
10
- },
11
- "editor.formatOnSave": true,
12
- "editor.defaultFormatter": "esbenp.prettier-vscode",
13
- "[vue]": {
14
- "editor.defaultFormatter": "esbenp.prettier-vscode"
15
- }
16
- }
1
+ {
2
+ "explorer.fileNesting.enabled": true,
3
+ "explorer.fileNesting.patterns": {
4
+ "tsconfig.json": "tsconfig.*.json, env.d.ts",
5
+ "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
6
+ "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
7
+ },
8
+ "editor.codeActionsOnSave": {
9
+ "source.fixAll": "explicit"
10
+ },
11
+ "editor.formatOnSave": true,
12
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
13
+ "[vue]": {
14
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
15
+ },
16
+ "workbench.colorCustomizations": {
17
+ "[Material Theme Darker]": {
18
+ "activityBar.activeBorder": "#2979FF",
19
+ "activityBarBadge.background": "#2979FF",
20
+ "breadcrumb.activeSelectionForeground": "#2979FF",
21
+ "editor.findMatchBorder": "#2979FF",
22
+ "editorSuggestWidget.highlightForeground": "#2979FF",
23
+ "editorWidget.border": "#2979FF",
24
+ "editorWidget.resizeBorder": "#2979FF",
25
+ "list.activeSelectionForeground": "#2979FF",
26
+ "list.highlightForeground": "#2979FF",
27
+ "list.inactiveSelectionForeground": "#2979FF",
28
+ "menu.selectionForeground": "#2979FF",
29
+ "menubar.selectionForeground": "#2979FF",
30
+ "notificationLink.foreground": "#2979FF",
31
+ "panelTitle.activeBorder": "#2979FF",
32
+ "pickerGroup.foreground": "#2979FF",
33
+ "progressBar.background": "#2979FF",
34
+ "scrollbarSlider.activeBackground": "#2979FF50",
35
+ "selection.background": "#2979FF40",
36
+ "settings.headerForeground": "#2979FF",
37
+ "settings.modifiedItemIndicator": "#2979FF",
38
+ "statusBarItem.remoteBackground": "#2979FF",
39
+ "tab.activeBorder": "#2979FF",
40
+ "textLink.foreground": "#2979FF"
41
+ },
42
+ "activityBar.background": "#113505",
43
+ "titleBar.activeBackground": "#184A07",
44
+ "titleBar.activeForeground": "#F3FEEF"
45
+ }
46
+ }