fcad-core-dragon 2.1.0-beta.4 → 2.1.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 (73) hide show
  1. package/.editorconfig +8 -33
  2. package/.prettierrc +11 -0
  3. package/.vscode/extensions.json +8 -0
  4. package/.vscode/settings.json +16 -0
  5. package/CHANGELOG +20 -0
  6. package/eslint.config.js +60 -0
  7. package/package.json +9 -9
  8. package/src/$locales/en.json +3 -3
  9. package/src/$locales/fr.json +3 -3
  10. package/src/assets/data/onboardingMessages.json +47 -47
  11. package/src/components/AppBase.vue +5 -6
  12. package/src/components/AppBaseErrorDisplay.vue +438 -438
  13. package/src/components/AppBaseFlipCard.vue +84 -84
  14. package/src/components/AppBaseModule.vue +15 -17
  15. package/src/components/AppBasePage.vue +91 -8
  16. package/src/components/AppBasePopover.vue +41 -41
  17. package/src/components/AppBaseSkeleton.vue +24 -3
  18. package/src/components/AppCompAudio.vue +12 -2
  19. package/src/components/AppCompInputCheckBoxNx.vue +1 -2
  20. package/src/components/AppCompInputRadioNx.vue +8 -2
  21. package/src/components/AppCompInputTextToFillDropdownNx.vue +45 -0
  22. package/src/components/AppCompMenu.vue +423 -423
  23. package/src/components/AppCompNavigation.vue +2 -2
  24. package/src/components/AppCompPlayBarNext.vue +123 -94
  25. package/src/components/AppCompPopUpNext.vue +2 -2
  26. package/src/components/AppCompQuizNext.vue +12 -2
  27. package/src/components/AppCompQuizRecall.vue +10 -4
  28. package/src/components/AppCompSettingsMenu.vue +172 -172
  29. package/src/components/AppCompTableOfContent.vue +1 -4
  30. package/src/components/AppCompVideoPlayer.vue +7 -0
  31. package/src/components/AppCompViewDisplay.vue +6 -6
  32. package/src/composables/useTimer.js +17 -20
  33. package/src/externalComps/ModuleView.vue +22 -22
  34. package/src/externalComps/SummaryView.vue +91 -91
  35. package/src/main.js +5 -5
  36. package/src/module/stores/appStore.js +0 -1
  37. package/src/module/xapi/Crypto/Hasher.js +241 -241
  38. package/src/module/xapi/Crypto/WordArray.js +278 -278
  39. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  40. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  41. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  42. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  43. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  44. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  45. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  46. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  47. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  48. package/src/module/xapi/Crypto/index.js +53 -53
  49. package/src/module/xapi/Statement/activity.js +47 -47
  50. package/src/module/xapi/Statement/agent.js +55 -55
  51. package/src/module/xapi/Statement/group.js +26 -26
  52. package/src/module/xapi/Statement/index.js +259 -259
  53. package/src/module/xapi/Statement/statement.js +253 -253
  54. package/src/module/xapi/Statement/statementRef.js +23 -23
  55. package/src/module/xapi/Statement/substatement.js +22 -22
  56. package/src/module/xapi/Statement/verb.js +36 -36
  57. package/src/module/xapi/activitytypes.js +17 -17
  58. package/src/module/xapi/utils.js +167 -167
  59. package/src/module/xapi/verbs.js +294 -294
  60. package/src/module/xapi/xapiStatement.js +444 -444
  61. package/src/plugins/analytics.js +4 -4
  62. package/src/plugins/bus.js +8 -8
  63. package/src/plugins/gsap.js +4 -2
  64. package/src/plugins/helper.js +8 -4
  65. package/src/plugins/save.js +37 -37
  66. package/src/plugins/scorm.js +287 -287
  67. package/src/plugins/xapi.js +11 -11
  68. package/src/public/index.html +33 -33
  69. package/src/router/index.js +1 -1
  70. package/src/shared/validators.js +22 -6
  71. package/.eslintignore +0 -29
  72. package/.eslintrc.cjs +0 -81
  73. package/bk.scss +0 -117
@@ -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
+ }