fcad-core-dragon 2.1.1 → 2.2.0-beta.1

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 (164) hide show
  1. package/.editorconfig +7 -7
  2. package/.gitlab-ci.yml +106 -0
  3. package/.prettierrc +11 -11
  4. package/.vscode/extensions.json +8 -8
  5. package/.vscode/settings.json +16 -16
  6. package/CHANGELOG +529 -520
  7. package/README.md +57 -57
  8. package/artifacts/playwright-report/index.html +85 -0
  9. package/documentation/.vitepress/config.js +114 -114
  10. package/documentation/api-examples.md +49 -49
  11. package/documentation/composants/app-base-button.md +58 -58
  12. package/documentation/composants/app-base-error-display.md +59 -59
  13. package/documentation/composants/app-base-popover.md +68 -68
  14. package/documentation/composants/app-comp-audio.md +75 -75
  15. package/documentation/composants/app-comp-branch-buttons.md +111 -111
  16. package/documentation/composants/app-comp-button-progress.md +53 -53
  17. package/documentation/composants/app-comp-carousel.md +53 -53
  18. package/documentation/composants/app-comp-container.md +53 -53
  19. package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
  20. package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
  21. package/documentation/composants/app-comp-input-radio-next.md +39 -39
  22. package/documentation/composants/app-comp-input-text-next.md +35 -35
  23. package/documentation/composants/app-comp-input-text-table-next.md +34 -34
  24. package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
  25. package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
  26. package/documentation/composants/app-comp-jauge.md +31 -31
  27. package/documentation/composants/app-comp-menu-item.md +55 -55
  28. package/documentation/composants/app-comp-menu.md +29 -29
  29. package/documentation/composants/app-comp-navigation.md +41 -41
  30. package/documentation/composants/app-comp-note-call.md +53 -53
  31. package/documentation/composants/app-comp-note-credit.md +53 -53
  32. package/documentation/composants/app-comp-play-bar-next.md +53 -53
  33. package/documentation/composants/app-comp-pop-up-next.md +93 -93
  34. package/documentation/composants/app-comp-quiz-next.md +235 -235
  35. package/documentation/composants/app-comp-quiz-recall.md +53 -53
  36. package/documentation/composants/app-comp-svg-next.md +53 -53
  37. package/documentation/composants/app-comp-table-of-content.md +50 -50
  38. package/documentation/composants/app-comp-video-player.md +82 -82
  39. package/documentation/composants.md +46 -46
  40. package/documentation/composants_critiques/ModelPageComposant.md +53 -53
  41. package/documentation/composants_critiques/app-base-module.md +43 -43
  42. package/documentation/composants_critiques/app-base-page.md +48 -48
  43. package/documentation/composants_critiques/app-base.md +311 -311
  44. package/documentation/composants_critiques/main.md +15 -15
  45. package/documentation/demarrage.md +50 -50
  46. package/documentation/deploiement.md +57 -57
  47. package/documentation/index.md +33 -33
  48. package/documentation/markdown-examples.md +85 -85
  49. package/documentation/public/vite.svg +14 -14
  50. package/documentation/public/vuejs.svg +1 -1
  51. package/documentation/public/vuetify.svg +5 -5
  52. package/eslint.config.js +60 -60
  53. package/package.json +69 -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 +862 -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 +326 -323
  74. package/src/components/AppCompInputDropdownNx.vue +302 -299
  75. package/src/components/AppCompInputRadioNx.vue +288 -284
  76. package/src/components/AppCompInputTextNx.vue +154 -153
  77. package/src/components/AppCompInputTextTableNx.vue +205 -202
  78. package/src/components/AppCompInputTextToFillDropdownNx.vue +341 -340
  79. package/src/components/AppCompInputTextToFillNx.vue +293 -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 +2288 -2288
  87. package/src/components/AppCompPopUpNext.vue +508 -504
  88. package/src/components/AppCompQuizNext.vue +515 -510
  89. package/src/components/AppCompQuizRecall.vue +365 -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 +378 -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 +506 -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 +29 -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/AppCompAudio.spec.js +134 -0
  149. package/tests/unit/AppCompCarousel.spec.js +54 -0
  150. package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
  151. package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
  152. package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
  153. package/tests/unit/AppCompInputTextNx.spec.js +44 -0
  154. package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
  155. package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
  156. package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
  157. package/tests/unit/AppCompNoteCredit.spec.js +58 -0
  158. package/tests/unit/AppCompQuizNext.spec.js +112 -0
  159. package/tests/unit/AppCompVideoPlayer.spec.js +169 -0
  160. package/tests/unit/useQuiz.spec.js +72 -0
  161. package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
  162. package/vitest.config.js +42 -19
  163. package/vitest.setup.js +96 -0
  164. 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,106 @@
1
+ image: node:22
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
+ #unit-test stage
42
+ run_tests_unit:
43
+ stage: test
44
+ dependencies:
45
+ - install_dependencies
46
+ script:
47
+ - echo "🏃 Running tests..."
48
+ - npm run test:unit:coverage -- --reporter=junit --outputFile=junit-report.xml
49
+ artifacts:
50
+ when: always
51
+ reports:
52
+ junit: junit-report.xml
53
+ coverage_report:
54
+ coverage_format: cobertura
55
+ path: coverage/cobertura-coverage.xml
56
+ paths:
57
+ - junit-report.xml
58
+ - coverage/
59
+ coverage: '/All files\s*\|\s*([\d\.]+)/' # regex to extract coverage percentage
60
+ allow_failure: true
61
+
62
+ #Components-test stage with playwright
63
+ run_components_test:
64
+ stage: test
65
+ image: mcr.microsoft.com/playwright:v1.48.0-jammy
66
+ dependencies:
67
+ - install_dependencies
68
+ script:
69
+ - echo "🏃 Running Components tests..."
70
+ - npx playwright install
71
+ - npm run test-ct
72
+ - mkdir -p artifacts
73
+ - cp -r playwright-report artifacts/playwright-report || true
74
+ - if [ -f results.xml ]; then cp results.xml artifacts/results.xml; fi
75
+ artifacts:
76
+ when: always
77
+ reports:
78
+ junit: artifacts/results.xml # for reporting in GitLab
79
+ paths:
80
+ - artifacts/playwright-report/
81
+ - artifacts/results.xml
82
+ allow_failure: true
83
+
84
+ #Deploy to npm
85
+ publish_to_npm:
86
+ stage: deploy
87
+ #image: node:22
88
+ script:
89
+ # Get version from package.json
90
+ - VERSION=$(node -p "require('./package.json').version")
91
+ - echo "Detected version => $VERSION"
92
+ # Set the right tag (next or latest) according to version
93
+ - if [[ "$VERSION" == *beta* ]]; then TAG="next"; else TAG="latest"; fi
94
+ - echo "Using dist-tag => $TAG"
95
+ - echo " //registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
96
+ - echo "👀 Check token - ${NPM_TOKEN} "
97
+ - cat ~/.npmrc
98
+ - npm whoami || true
99
+ - echo "🚀 Publishing package version from tag $CI_COMMIT_TAG"
100
+ - npm publish --access public --tag "$TAG" # scoped of publication (public)
101
+ when: on_success
102
+ rules:
103
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Deploy only from the default branch (e.g., main)
104
+ changes:
105
+ - package.json # run job only when package.json is modified
106
+
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,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
- }
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
+ }