fcad-core-dragon 2.1.0 → 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 +3 -2
  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 -2
  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 -15
  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
@@ -1,105 +1,105 @@
1
- /**
2
- * Base object for prototypal inheritance.
3
- */
4
- export const Base = {
5
- F: function () {},
6
- /**
7
- * Creates a new object that inherits from this object.
8
- * @param {Object} overrides Properties to copy into the new object.
9
- * @return {Object} The new object.
10
- * @static
11
- * @example
12
- * var MyType = CryptoJS.lib.Base.extend({
13
- * field: 'value',
14
- *
15
- * method: function () {
16
- * }
17
- * });
18
- */
19
- extend: function (overrides) {
20
- // Spawn
21
- this.F.prototype = this
22
- var subtype = new this.F()
23
-
24
- // Augment
25
- if (overrides) {
26
- subtype.mixIn(overrides)
27
- }
28
-
29
- // Create default initializer
30
- // if (!subtype.hasOwnProperty('init')) {
31
- if (!Object.prototype.hasOwnProperty.call(subtype, 'init')) {
32
- subtype.init = function () {
33
- subtype.$super.init.apply(this, arguments)
34
- }
35
- }
36
-
37
- // Initializer's prototype is the subtype object
38
- subtype.init.prototype = subtype
39
-
40
- // Reference supertype
41
- subtype.$super = this
42
-
43
- return subtype
44
- },
45
-
46
- /**
47
- * Extends this object and runs the init method.
48
- * Arguments to create() will be passed to init().
49
- * @return {Object} The new object.
50
- * @static
51
- * @example
52
- * var instance = MyType.create();
53
- */
54
- create: function () {
55
- var instance = this.extend()
56
- instance.init.apply(instance, arguments)
57
-
58
- return instance
59
- },
60
-
61
- /**
62
- * Initializes a newly created object.
63
- * Override this method to add some logic when your objects are created.
64
- * @example
65
- * var MyType = CryptoJS.lib.Base.extend({
66
- * init: function () {
67
- * // ...
68
- * }
69
- * });
70
- */
71
- init: function () {},
72
-
73
- /**
74
- * Copies properties into this object.
75
- * @param {Object} properties The properties to mix in.
76
- * @example
77
- * MyType.mixIn({
78
- * field: 'value'
79
- * });
80
- */
81
- mixIn: function (properties) {
82
- for (var propertyName in properties) {
83
- // if (properties.hasOwnProperty(propertyName)) {
84
- if (Object.prototype.hasOwnProperty.call(properties, propertyName)) {
85
- this[propertyName] = properties[propertyName]
86
- }
87
- }
88
-
89
- // IE won't copy toString using the loop above
90
- //if (properties.hasOwnProperty('toString')) {
91
- if (Object.prototype.hasOwnProperty.call(properties, 'toString')) {
92
- this.toString = properties.toString
93
- }
94
- },
95
-
96
- /**
97
- * Creates a copy of this object.
98
- * @return {Object} The clone.
99
- * @example
100
- * var clone = instance.clone();
101
- */
102
- clone: function () {
103
- return this.init.prototype.extend(this)
104
- }
105
- }
1
+ /**
2
+ * Base object for prototypal inheritance.
3
+ */
4
+ export const Base = {
5
+ F: function () {},
6
+ /**
7
+ * Creates a new object that inherits from this object.
8
+ * @param {Object} overrides Properties to copy into the new object.
9
+ * @return {Object} The new object.
10
+ * @static
11
+ * @example
12
+ * var MyType = CryptoJS.lib.Base.extend({
13
+ * field: 'value',
14
+ *
15
+ * method: function () {
16
+ * }
17
+ * });
18
+ */
19
+ extend: function (overrides) {
20
+ // Spawn
21
+ this.F.prototype = this
22
+ var subtype = new this.F()
23
+
24
+ // Augment
25
+ if (overrides) {
26
+ subtype.mixIn(overrides)
27
+ }
28
+
29
+ // Create default initializer
30
+ // if (!subtype.hasOwnProperty('init')) {
31
+ if (!Object.prototype.hasOwnProperty.call(subtype, 'init')) {
32
+ subtype.init = function () {
33
+ subtype.$super.init.apply(this, arguments)
34
+ }
35
+ }
36
+
37
+ // Initializer's prototype is the subtype object
38
+ subtype.init.prototype = subtype
39
+
40
+ // Reference supertype
41
+ subtype.$super = this
42
+
43
+ return subtype
44
+ },
45
+
46
+ /**
47
+ * Extends this object and runs the init method.
48
+ * Arguments to create() will be passed to init().
49
+ * @return {Object} The new object.
50
+ * @static
51
+ * @example
52
+ * var instance = MyType.create();
53
+ */
54
+ create: function () {
55
+ var instance = this.extend()
56
+ instance.init.apply(instance, arguments)
57
+
58
+ return instance
59
+ },
60
+
61
+ /**
62
+ * Initializes a newly created object.
63
+ * Override this method to add some logic when your objects are created.
64
+ * @example
65
+ * var MyType = CryptoJS.lib.Base.extend({
66
+ * init: function () {
67
+ * // ...
68
+ * }
69
+ * });
70
+ */
71
+ init: function () {},
72
+
73
+ /**
74
+ * Copies properties into this object.
75
+ * @param {Object} properties The properties to mix in.
76
+ * @example
77
+ * MyType.mixIn({
78
+ * field: 'value'
79
+ * });
80
+ */
81
+ mixIn: function (properties) {
82
+ for (var propertyName in properties) {
83
+ // if (properties.hasOwnProperty(propertyName)) {
84
+ if (Object.prototype.hasOwnProperty.call(properties, propertyName)) {
85
+ this[propertyName] = properties[propertyName]
86
+ }
87
+ }
88
+
89
+ // IE won't copy toString using the loop above
90
+ //if (properties.hasOwnProperty('toString')) {
91
+ if (Object.prototype.hasOwnProperty.call(properties, 'toString')) {
92
+ this.toString = properties.toString
93
+ }
94
+ },
95
+
96
+ /**
97
+ * Creates a copy of this object.
98
+ * @return {Object} The clone.
99
+ * @example
100
+ * var clone = instance.clone();
101
+ */
102
+ clone: function () {
103
+ return this.init.prototype.extend(this)
104
+ }
105
+ }
@@ -1,99 +1,99 @@
1
- import { WordArray } from '../WordArray'
2
-
3
- /**
4
- * Base64 encoding strategy.
5
- */
6
- export const Base64 = function () {
7
- return {
8
- /**
9
- * Converts a word array to a Base64 string.
10
- *
11
- * @param {WordArray} wordArray The word array.
12
- *
13
- * @return {string} The Base64 string.
14
- *
15
- * @static
16
- *
17
- * @example
18
- *
19
- * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
20
- */
21
- stringify: function (wordArray) {
22
- // Shortcuts
23
- var words = wordArray.words
24
- var sigBytes = wordArray.sigBytes
25
- var map = this._map
26
-
27
- // Clamp excess bits
28
- wordArray.clamp()
29
-
30
- // Convert
31
- var base64Chars = []
32
- for (var i = 0; i < sigBytes; i += 3) {
33
- var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
34
- var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff
35
- var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff
36
-
37
- var triplet = (byte1 << 16) | (byte2 << 8) | byte3
38
-
39
- for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
40
- base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f))
41
- }
42
- }
43
-
44
- // Add padding
45
- var paddingChar = map.charAt(64)
46
- if (paddingChar) {
47
- while (base64Chars.length % 4) {
48
- base64Chars.push(paddingChar)
49
- }
50
- }
51
-
52
- return base64Chars.join('')
53
- },
54
-
55
- /**
56
- * Converts a Base64 string to a word array.
57
- *
58
- * @param {string} base64Str The Base64 string.
59
- *
60
- * @return {WordArray} The word array.
61
- *
62
- * @static
63
- *
64
- * @example
65
- *
66
- * var wordArray = CryptoJS.enc.Base64.parse(base64String);
67
- */
68
- parse: function (base64Str) {
69
- // Shortcuts
70
- var base64StrLength = base64Str.length
71
- var map = this._map
72
-
73
- // Ignore padding
74
- var paddingChar = map.charAt(64)
75
- if (paddingChar) {
76
- var paddingIndex = base64Str.indexOf(paddingChar)
77
- if (paddingIndex != -1) {
78
- base64StrLength = paddingIndex
79
- }
80
- }
81
-
82
- // Convert
83
- var words = []
84
- var nBytes = 0
85
- for (var i = 0; i < base64StrLength; i++) {
86
- if (i % 4) {
87
- var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2)
88
- var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2)
89
- words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8)
90
- nBytes++
91
- }
92
- }
93
-
94
- return WordArray.create(words, nBytes)
95
- },
96
-
97
- _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
98
- }
99
- }
1
+ import { WordArray } from '../WordArray'
2
+
3
+ /**
4
+ * Base64 encoding strategy.
5
+ */
6
+ export const Base64 = function () {
7
+ return {
8
+ /**
9
+ * Converts a word array to a Base64 string.
10
+ *
11
+ * @param {WordArray} wordArray The word array.
12
+ *
13
+ * @return {string} The Base64 string.
14
+ *
15
+ * @static
16
+ *
17
+ * @example
18
+ *
19
+ * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
20
+ */
21
+ stringify: function (wordArray) {
22
+ // Shortcuts
23
+ var words = wordArray.words
24
+ var sigBytes = wordArray.sigBytes
25
+ var map = this._map
26
+
27
+ // Clamp excess bits
28
+ wordArray.clamp()
29
+
30
+ // Convert
31
+ var base64Chars = []
32
+ for (var i = 0; i < sigBytes; i += 3) {
33
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
34
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff
35
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff
36
+
37
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3
38
+
39
+ for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
40
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f))
41
+ }
42
+ }
43
+
44
+ // Add padding
45
+ var paddingChar = map.charAt(64)
46
+ if (paddingChar) {
47
+ while (base64Chars.length % 4) {
48
+ base64Chars.push(paddingChar)
49
+ }
50
+ }
51
+
52
+ return base64Chars.join('')
53
+ },
54
+
55
+ /**
56
+ * Converts a Base64 string to a word array.
57
+ *
58
+ * @param {string} base64Str The Base64 string.
59
+ *
60
+ * @return {WordArray} The word array.
61
+ *
62
+ * @static
63
+ *
64
+ * @example
65
+ *
66
+ * var wordArray = CryptoJS.enc.Base64.parse(base64String);
67
+ */
68
+ parse: function (base64Str) {
69
+ // Shortcuts
70
+ var base64StrLength = base64Str.length
71
+ var map = this._map
72
+
73
+ // Ignore padding
74
+ var paddingChar = map.charAt(64)
75
+ if (paddingChar) {
76
+ var paddingIndex = base64Str.indexOf(paddingChar)
77
+ if (paddingIndex != -1) {
78
+ base64StrLength = paddingIndex
79
+ }
80
+ }
81
+
82
+ // Convert
83
+ var words = []
84
+ var nBytes = 0
85
+ for (var i = 0; i < base64StrLength; i++) {
86
+ if (i % 4) {
87
+ var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2)
88
+ var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2)
89
+ words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8)
90
+ nBytes++
91
+ }
92
+ }
93
+
94
+ return WordArray.create(words, nBytes)
95
+ },
96
+
97
+ _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
98
+ }
99
+ }
@@ -1,61 +1,61 @@
1
- import { WordArray } from '../WordArray'
2
- /**
3
- * Hex encoding strategy.
4
- */
5
- export const Hex = {
6
- /**
7
- * Converts a word array to a hex string.
8
- *
9
- * @param {WordArray} wordArray The word array.
10
- *
11
- * @return {string} The hex string.
12
- *
13
- * @static
14
- *
15
- * @example
16
- *
17
- * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
18
- */
19
- stringify: function (wordArray) {
20
- // Shortcuts
21
- var words = wordArray.words
22
- var sigBytes = wordArray.sigBytes
23
-
24
- // Convert
25
- var hexChars = []
26
- for (var i = 0; i < sigBytes; i++) {
27
- var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
28
- hexChars.push((bite >>> 4).toString(16))
29
- hexChars.push((bite & 0x0f).toString(16))
30
- }
31
-
32
- return hexChars.join('')
33
- },
34
-
35
- /**
36
- * Converts a hex string to a word array.
37
- *
38
- * @param {string} hexStr The hex string.
39
- *
40
- * @return {WordArray} The word array.
41
- *
42
- * @static
43
- *
44
- * @example
45
- *
46
- * var wordArray = CryptoJS.enc.Hex.parse(hexString);
47
- */
48
- parse: function (hexStr) {
49
- // Shortcut
50
- var hexStrLength = hexStr.length
51
-
52
- // Convert
53
- var words = []
54
- for (var i = 0; i < hexStrLength; i += 2) {
55
- words[i >>> 3] |=
56
- parseInt(hexStr.substring(i, 2), 16) << (24 - (i % 8) * 4)
57
- }
58
-
59
- return new WordArray.init(words, hexStrLength / 2)
60
- }
61
- }
1
+ import { WordArray } from '../WordArray'
2
+ /**
3
+ * Hex encoding strategy.
4
+ */
5
+ export const Hex = {
6
+ /**
7
+ * Converts a word array to a hex string.
8
+ *
9
+ * @param {WordArray} wordArray The word array.
10
+ *
11
+ * @return {string} The hex string.
12
+ *
13
+ * @static
14
+ *
15
+ * @example
16
+ *
17
+ * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
18
+ */
19
+ stringify: function (wordArray) {
20
+ // Shortcuts
21
+ var words = wordArray.words
22
+ var sigBytes = wordArray.sigBytes
23
+
24
+ // Convert
25
+ var hexChars = []
26
+ for (var i = 0; i < sigBytes; i++) {
27
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
28
+ hexChars.push((bite >>> 4).toString(16))
29
+ hexChars.push((bite & 0x0f).toString(16))
30
+ }
31
+
32
+ return hexChars.join('')
33
+ },
34
+
35
+ /**
36
+ * Converts a hex string to a word array.
37
+ *
38
+ * @param {string} hexStr The hex string.
39
+ *
40
+ * @return {WordArray} The word array.
41
+ *
42
+ * @static
43
+ *
44
+ * @example
45
+ *
46
+ * var wordArray = CryptoJS.enc.Hex.parse(hexString);
47
+ */
48
+ parse: function (hexStr) {
49
+ // Shortcut
50
+ var hexStrLength = hexStr.length
51
+
52
+ // Convert
53
+ var words = []
54
+ for (var i = 0; i < hexStrLength; i += 2) {
55
+ words[i >>> 3] |=
56
+ parseInt(hexStr.substring(i, 2), 16) << (24 - (i % 8) * 4)
57
+ }
58
+
59
+ return new WordArray.init(words, hexStrLength / 2)
60
+ }
61
+ }
@@ -1,61 +1,61 @@
1
- import { WordArray } from '../WordArray'
2
- /**
3
- * Latin1 encoding strategy.
4
- */
5
- export const Latin1 = function () {
6
- return {
7
- /**
8
- * Converts a word array to a Latin1 string.
9
- *
10
- * @param {WordArray} wordArray The word array.
11
- *
12
- * @return {string} The Latin1 string.
13
- *
14
- * @static
15
- *
16
- * @example
17
- *
18
- * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
19
- */
20
- stringify: function (wordArray) {
21
- // Shortcuts
22
- var words = wordArray.words
23
- var sigBytes = wordArray.sigBytes
24
-
25
- // Convert
26
- var latin1Chars = []
27
- for (var i = 0; i < sigBytes; i++) {
28
- var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
29
- latin1Chars.push(String.fromCharCode(bite))
30
- }
31
-
32
- return latin1Chars.join('')
33
- },
34
-
35
- /**
36
- * Converts a Latin1 string to a word array.
37
- *
38
- * @param {string} latin1Str The Latin1 string.
39
- *
40
- * @return {WordArray} The word array.
41
- *
42
- * @static
43
- *
44
- * @example
45
- *
46
- * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
47
- */
48
- parse: function (latin1Str) {
49
- // Shortcut
50
- var latin1StrLength = latin1Str.length
51
-
52
- // Convert
53
- var words = []
54
- for (var i = 0; i < latin1StrLength; i++) {
55
- words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8)
56
- }
57
-
58
- return new WordArray.init(words, latin1StrLength)
59
- }
60
- }
61
- }
1
+ import { WordArray } from '../WordArray'
2
+ /**
3
+ * Latin1 encoding strategy.
4
+ */
5
+ export const Latin1 = function () {
6
+ return {
7
+ /**
8
+ * Converts a word array to a Latin1 string.
9
+ *
10
+ * @param {WordArray} wordArray The word array.
11
+ *
12
+ * @return {string} The Latin1 string.
13
+ *
14
+ * @static
15
+ *
16
+ * @example
17
+ *
18
+ * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
19
+ */
20
+ stringify: function (wordArray) {
21
+ // Shortcuts
22
+ var words = wordArray.words
23
+ var sigBytes = wordArray.sigBytes
24
+
25
+ // Convert
26
+ var latin1Chars = []
27
+ for (var i = 0; i < sigBytes; i++) {
28
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff
29
+ latin1Chars.push(String.fromCharCode(bite))
30
+ }
31
+
32
+ return latin1Chars.join('')
33
+ },
34
+
35
+ /**
36
+ * Converts a Latin1 string to a word array.
37
+ *
38
+ * @param {string} latin1Str The Latin1 string.
39
+ *
40
+ * @return {WordArray} The word array.
41
+ *
42
+ * @static
43
+ *
44
+ * @example
45
+ *
46
+ * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
47
+ */
48
+ parse: function (latin1Str) {
49
+ // Shortcut
50
+ var latin1StrLength = latin1Str.length
51
+
52
+ // Convert
53
+ var words = []
54
+ for (var i = 0; i < latin1StrLength; i++) {
55
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8)
56
+ }
57
+
58
+ return new WordArray.init(words, latin1StrLength)
59
+ }
60
+ }
61
+ }