@magmamath/students-features 1.3.10-rc.0 → 1.3.10

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 (97) hide show
  1. package/dist/commonjs/features/uiMode/getUIMode.js +47 -0
  2. package/dist/commonjs/features/uiMode/getUIMode.js.map +1 -0
  3. package/dist/commonjs/features/uiMode/index.js +20 -0
  4. package/dist/commonjs/features/uiMode/index.js.map +1 -0
  5. package/dist/commonjs/features/uiMode/uiMode.constants.js +14 -0
  6. package/dist/commonjs/features/uiMode/uiMode.constants.js.map +1 -0
  7. package/dist/commonjs/features/uiMode/uiMode.helpers.js +53 -0
  8. package/dist/commonjs/features/uiMode/uiMode.helpers.js.map +1 -0
  9. package/dist/commonjs/features/uiMode/uiMode.types.js +6 -0
  10. package/dist/commonjs/features/uiMode/uiMode.types.js.map +1 -0
  11. package/dist/commonjs/index.js +12 -0
  12. package/dist/commonjs/index.js.map +1 -1
  13. package/dist/module/features/uiMode/getUIMode.js +42 -0
  14. package/dist/module/features/uiMode/getUIMode.js.map +1 -0
  15. package/dist/module/features/uiMode/index.js +5 -0
  16. package/dist/module/features/uiMode/index.js.map +1 -0
  17. package/dist/module/features/uiMode/uiMode.constants.js +10 -0
  18. package/dist/module/features/uiMode/uiMode.constants.js.map +1 -0
  19. package/dist/module/features/uiMode/uiMode.helpers.js +45 -0
  20. package/dist/module/features/uiMode/uiMode.helpers.js.map +1 -0
  21. package/dist/module/features/uiMode/uiMode.types.js +4 -0
  22. package/dist/module/features/uiMode/uiMode.types.js.map +1 -0
  23. package/dist/module/index.js +1 -0
  24. package/dist/module/index.js.map +1 -1
  25. package/dist/typescript/commonjs/features/uiMode/__tests__/getUIMode.test.d.ts +2 -0
  26. package/dist/typescript/commonjs/features/uiMode/__tests__/getUIMode.test.d.ts.map +1 -0
  27. package/dist/typescript/commonjs/features/uiMode/getUIMode.d.ts +3 -0
  28. package/dist/typescript/commonjs/features/uiMode/getUIMode.d.ts.map +1 -0
  29. package/dist/typescript/commonjs/features/uiMode/index.d.ts +3 -0
  30. package/dist/typescript/commonjs/features/uiMode/index.d.ts.map +1 -0
  31. package/dist/typescript/commonjs/features/uiMode/uiMode.constants.d.ts +7 -0
  32. package/dist/typescript/commonjs/features/uiMode/uiMode.constants.d.ts.map +1 -0
  33. package/dist/typescript/commonjs/features/uiMode/uiMode.helpers.d.ts +8 -0
  34. package/dist/typescript/commonjs/features/uiMode/uiMode.helpers.d.ts.map +1 -0
  35. package/dist/typescript/commonjs/features/uiMode/uiMode.types.d.ts +57 -0
  36. package/dist/typescript/commonjs/features/uiMode/uiMode.types.d.ts.map +1 -0
  37. package/dist/typescript/commonjs/index.d.ts +1 -0
  38. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  39. package/dist/typescript/module/features/uiMode/__tests__/getUIMode.test.d.ts +2 -0
  40. package/dist/typescript/module/features/uiMode/__tests__/getUIMode.test.d.ts.map +1 -0
  41. package/dist/typescript/module/features/uiMode/getUIMode.d.ts +3 -0
  42. package/dist/typescript/module/features/uiMode/getUIMode.d.ts.map +1 -0
  43. package/dist/typescript/module/features/uiMode/index.d.ts +3 -0
  44. package/dist/typescript/module/features/uiMode/index.d.ts.map +1 -0
  45. package/dist/typescript/module/features/uiMode/uiMode.constants.d.ts +7 -0
  46. package/dist/typescript/module/features/uiMode/uiMode.constants.d.ts.map +1 -0
  47. package/dist/typescript/module/features/uiMode/uiMode.helpers.d.ts +8 -0
  48. package/dist/typescript/module/features/uiMode/uiMode.helpers.d.ts.map +1 -0
  49. package/dist/typescript/module/features/uiMode/uiMode.types.d.ts +57 -0
  50. package/dist/typescript/module/features/uiMode/uiMode.types.d.ts.map +1 -0
  51. package/dist/typescript/module/index.d.ts +1 -0
  52. package/dist/typescript/module/index.d.ts.map +1 -1
  53. package/package.json +2 -2
  54. package/src/features/uiMode/__tests__/SPEC.md +114 -0
  55. package/src/features/uiMode/__tests__/getUIMode.test.ts +364 -0
  56. package/src/features/uiMode/getUIMode.ts +28 -0
  57. package/src/features/uiMode/index.ts +2 -0
  58. package/src/features/uiMode/uiMode.constants.ts +7 -0
  59. package/src/features/uiMode/uiMode.helpers.ts +52 -0
  60. package/src/features/uiMode/uiMode.types.ts +46 -0
  61. package/src/index.ts +1 -0
  62. package/dist/commonjs/features/interfaceMode/index.js +0 -33
  63. package/dist/commonjs/features/interfaceMode/index.js.map +0 -1
  64. package/dist/commonjs/features/interfaceMode/interfaceMode.constants.js +0 -30
  65. package/dist/commonjs/features/interfaceMode/interfaceMode.constants.js.map +0 -1
  66. package/dist/commonjs/features/interfaceMode/interfaceMode.helpers.js +0 -56
  67. package/dist/commonjs/features/interfaceMode/interfaceMode.helpers.js.map +0 -1
  68. package/dist/commonjs/features/interfaceMode/model/InterfaceModeModel.js +0 -110
  69. package/dist/commonjs/features/interfaceMode/model/InterfaceModeModel.js.map +0 -1
  70. package/dist/module/features/interfaceMode/index.js +0 -6
  71. package/dist/module/features/interfaceMode/index.js.map +0 -1
  72. package/dist/module/features/interfaceMode/interfaceMode.constants.js +0 -26
  73. package/dist/module/features/interfaceMode/interfaceMode.constants.js.map +0 -1
  74. package/dist/module/features/interfaceMode/interfaceMode.helpers.js +0 -48
  75. package/dist/module/features/interfaceMode/interfaceMode.helpers.js.map +0 -1
  76. package/dist/module/features/interfaceMode/model/InterfaceModeModel.js +0 -105
  77. package/dist/module/features/interfaceMode/model/InterfaceModeModel.js.map +0 -1
  78. package/dist/typescript/commonjs/features/interfaceMode/index.d.ts +0 -4
  79. package/dist/typescript/commonjs/features/interfaceMode/index.d.ts.map +0 -1
  80. package/dist/typescript/commonjs/features/interfaceMode/interfaceMode.constants.d.ts +0 -22
  81. package/dist/typescript/commonjs/features/interfaceMode/interfaceMode.constants.d.ts.map +0 -1
  82. package/dist/typescript/commonjs/features/interfaceMode/interfaceMode.helpers.d.ts +0 -28
  83. package/dist/typescript/commonjs/features/interfaceMode/interfaceMode.helpers.d.ts.map +0 -1
  84. package/dist/typescript/commonjs/features/interfaceMode/model/InterfaceModeModel.d.ts +0 -33
  85. package/dist/typescript/commonjs/features/interfaceMode/model/InterfaceModeModel.d.ts.map +0 -1
  86. package/dist/typescript/module/features/interfaceMode/index.d.ts +0 -4
  87. package/dist/typescript/module/features/interfaceMode/index.d.ts.map +0 -1
  88. package/dist/typescript/module/features/interfaceMode/interfaceMode.constants.d.ts +0 -22
  89. package/dist/typescript/module/features/interfaceMode/interfaceMode.constants.d.ts.map +0 -1
  90. package/dist/typescript/module/features/interfaceMode/interfaceMode.helpers.d.ts +0 -28
  91. package/dist/typescript/module/features/interfaceMode/interfaceMode.helpers.d.ts.map +0 -1
  92. package/dist/typescript/module/features/interfaceMode/model/InterfaceModeModel.d.ts +0 -33
  93. package/dist/typescript/module/features/interfaceMode/model/InterfaceModeModel.d.ts.map +0 -1
  94. package/src/features/interfaceMode/index.ts +0 -3
  95. package/src/features/interfaceMode/interfaceMode.constants.ts +0 -24
  96. package/src/features/interfaceMode/interfaceMode.helpers.ts +0 -79
  97. package/src/features/interfaceMode/model/InterfaceModeModel.ts +0 -115
@@ -1,33 +0,0 @@
1
- import { Store } from 'effector';
2
- import { Grade, InterfaceMode } from '../interfaceMode.constants';
3
- import { ToolBarVariants } from '@magmamath/react-native-draw-board';
4
- import { AnswerType } from '../../../types/answerTypes';
5
- import { MyScriptMathCharacterTypes } from '../../../types/characterTypes';
6
- import { Locale } from '@magmamath/frontend-config';
7
- type NullableGrade = Grade | null;
8
- export declare class InterfaceModeModel {
9
- readonly $mode: import("effector").StoreWritable<{
10
- toolbar: ToolBarVariants;
11
- answerArea: InterfaceMode;
12
- general: InterfaceMode;
13
- }>;
14
- private $userGrade;
15
- private $isPracticeMode;
16
- private $practiceModeGrade;
17
- private $classGrade;
18
- private $locale;
19
- private $answerType;
20
- private $characterType;
21
- private $hasAnswerVariants;
22
- bindUserGrade($store: Store<NullableGrade>): this;
23
- bindPracticeMode($store: Store<boolean>): this;
24
- bindPracticeModeGrade($store: Store<NullableGrade>): this;
25
- bindClassGrade($store: Store<NullableGrade>): this;
26
- bindLocale($store: Store<Locale>): this;
27
- bindAnswerType($store: Store<AnswerType>): this;
28
- bindCharacterType($store: Store<MyScriptMathCharacterTypes>): this;
29
- bindHasAnswerVariants($store: Store<boolean>): this;
30
- init(): this;
31
- }
32
- export {};
33
- //# sourceMappingURL=InterfaceModeModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterfaceModeModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/interfaceMode/model/InterfaceModeModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAQnD,KAAK,aAAa,GAAG,KAAK,GAAG,IAAI,CAAA;AAEjC,qBAAa,kBAAkB;IAC7B,SAAgB,KAAK;;;;OAA6B;IAElD,OAAO,CAAC,UAAU,CAAyD;IAC3E,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,kBAAkB,CAAyD;IACnF,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,cAAc,CAA2F;IACjH,OAAO,CAAC,kBAAkB,CAAqC;IAE/D,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAK1C,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAKvC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAKlD,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAK3C,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAKhC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;IAKxC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,CAAC;IAK3D,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAK5C,IAAI;CA8CL"}
@@ -1,3 +0,0 @@
1
- export { isSimpleGrade } from './interfaceMode.helpers'
2
- export { InterfaceMode, MAX_SIMPLE_MODE_GRADE } from './interfaceMode.constants'
3
- export { InterfaceModeModel } from './model/InterfaceModeModel'
@@ -1,24 +0,0 @@
1
- export const MAX_SIMPLE_MODE_GRADE = 2
2
-
3
- export enum Grade {
4
- OTHER = -1,
5
- K = 0,
6
- FIRST = 1,
7
- SECOND = 2,
8
- THIRD = 3,
9
- FOURTH = 4,
10
- FIFTH = 5,
11
- SIXTH = 6,
12
- SEVENTH = 7,
13
- EIGHTH = 8,
14
- NINTH = 9,
15
- TENTH = 10,
16
- ELEVENTH = 11,
17
- TWELFTH = 12,
18
- }
19
-
20
- export enum InterfaceMode {
21
- REGULAR = 'REGULAR',
22
- SIMPLE = 'SIMPLE',
23
- }
24
-
@@ -1,79 +0,0 @@
1
- import { Grade, InterfaceMode } from './interfaceMode.constants'
2
- import { AnswerType } from '../../types/answerTypes'
3
- import { MyScriptMathCharacterTypes } from '../../types/characterTypes'
4
- import { ToolBarVariants } from '@magmamath/react-native-draw-board'
5
- import { Locale } from '@magmamath/frontend-config'
6
-
7
- const isValidGrade = (grade: Grade | null | undefined): grade is Grade => {
8
- return grade !== null && grade !== undefined
9
- }
10
-
11
- export const isSimpleGrade = (grade: Grade | null | undefined) => {
12
- return isValidGrade(grade) && grade >= Grade.K && grade <= Grade.SECOND
13
- }
14
-
15
- type GetIsSimpleModeProps = {
16
- userGrade: Grade | null | undefined
17
- isPracticeMode: boolean
18
- practiceModeGrade: Grade | null | undefined
19
- assignmentClassGrade: Grade | null | undefined
20
- }
21
-
22
- export const getIsSimpleMode = ({
23
- userGrade,
24
- isPracticeMode,
25
- practiceModeGrade,
26
- assignmentClassGrade,
27
- }: GetIsSimpleModeProps): boolean => {
28
- if (isPracticeMode) return isSimpleGrade(practiceModeGrade)
29
- const grade =
30
- !isValidGrade(userGrade) || userGrade === Grade.OTHER
31
- ? assignmentClassGrade
32
- : userGrade
33
-
34
- return isSimpleGrade(grade)
35
- }
36
-
37
- type GetAnswerAreaModeProps = {
38
- isPracticeMode: boolean
39
- answerType: AnswerType
40
- characterType: MyScriptMathCharacterTypes
41
- hasAnswerVariants: boolean
42
- }
43
-
44
- export const getAnswerAreaMode = ({
45
- isPracticeMode,
46
- answerType,
47
- characterType,
48
- hasAnswerVariants,
49
- }: GetAnswerAreaModeProps): InterfaceMode => {
50
- const isHandwritingNumbersWhole =
51
- answerType === AnswerType.HANDWRITING &&
52
- characterType === MyScriptMathCharacterTypes.NUMBERS_WHOLE
53
-
54
- if (isPracticeMode || hasAnswerVariants || isHandwritingNumbersWhole) {
55
- return InterfaceMode.SIMPLE
56
- }
57
-
58
- return InterfaceMode.REGULAR
59
- }
60
-
61
- type GetToolbarModeProps = {
62
- isSimpleModeGrade: boolean
63
- grade: Grade | null | undefined
64
- locale: Locale
65
- }
66
-
67
- export const getToolbarMode = ({
68
- isSimpleModeGrade,
69
- grade,
70
- locale,
71
- }: GetToolbarModeProps): ToolBarVariants => {
72
- const isUSOrCA = locale === Locale.US || locale === Locale.CA
73
- const gradeThreshold = isUSOrCA ? Grade.SIXTH : Grade.SEVENTH
74
- const isAdvanced = isValidGrade(grade) && grade >= gradeThreshold
75
-
76
- if (isAdvanced) return ToolBarVariants.ADVANCED
77
- if (isSimpleModeGrade) return ToolBarVariants.SIMPLE
78
- return ToolBarVariants.COMMON
79
- }
@@ -1,115 +0,0 @@
1
- import { createStore, sample, Store } from 'effector'
2
- import { Grade, InterfaceMode } from '../interfaceMode.constants'
3
- import { getAnswerAreaMode, getIsSimpleMode, getToolbarMode } from '../interfaceMode.helpers'
4
- import { ToolBarVariants } from '@magmamath/react-native-draw-board'
5
- import { AnswerType } from '../../../types/answerTypes'
6
- import { MyScriptMathCharacterTypes } from '../../../types/characterTypes'
7
- import { Locale } from '@magmamath/frontend-config'
8
-
9
- const INITIAL_STATE = {
10
- toolbar: ToolBarVariants.COMMON,
11
- answerArea: InterfaceMode.REGULAR,
12
- general: InterfaceMode.REGULAR,
13
- }
14
-
15
- type NullableGrade = Grade | null
16
-
17
- export class InterfaceModeModel {
18
- public readonly $mode = createStore(INITIAL_STATE)
19
-
20
- private $userGrade: Store<NullableGrade> = createStore<NullableGrade>(null)
21
- private $isPracticeMode: Store<boolean> = createStore(false)
22
- private $practiceModeGrade: Store<NullableGrade> = createStore<NullableGrade>(null)
23
- private $classGrade: Store<NullableGrade> = createStore<NullableGrade>(null)
24
- private $locale: Store<Locale> = createStore(Locale.US)
25
- private $answerType: Store<AnswerType> = createStore(AnswerType.HANDWRITING)
26
- private $characterType: Store<MyScriptMathCharacterTypes> = createStore(MyScriptMathCharacterTypes.NUMBERS_WHOLE)
27
- private $hasAnswerVariants: Store<boolean> = createStore(false)
28
-
29
- bindUserGrade($store: Store<NullableGrade>) {
30
- this.$userGrade = $store
31
- return this
32
- }
33
-
34
- bindPracticeMode($store: Store<boolean>) {
35
- this.$isPracticeMode = $store
36
- return this
37
- }
38
-
39
- bindPracticeModeGrade($store: Store<NullableGrade>) {
40
- this.$practiceModeGrade = $store
41
- return this
42
- }
43
-
44
- bindClassGrade($store: Store<NullableGrade>) {
45
- this.$classGrade = $store
46
- return this
47
- }
48
-
49
- bindLocale($store: Store<Locale>) {
50
- this.$locale = $store
51
- return this
52
- }
53
-
54
- bindAnswerType($store: Store<AnswerType>) {
55
- this.$answerType = $store
56
- return this
57
- }
58
-
59
- bindCharacterType($store: Store<MyScriptMathCharacterTypes>) {
60
- this.$characterType = $store
61
- return this
62
- }
63
-
64
- bindHasAnswerVariants($store: Store<boolean>) {
65
- this.$hasAnswerVariants = $store
66
- return this
67
- }
68
-
69
- init() {
70
- sample({
71
- source: {
72
- userGrade: this.$userGrade,
73
- locale: this.$locale,
74
- isPracticeMode: this.$isPracticeMode,
75
- practiceModeGrade: this.$practiceModeGrade,
76
- assignmentClassGrade: this.$classGrade,
77
- answerType: this.$answerType,
78
- characterType: this.$characterType,
79
- hasAnswerVariants: this.$hasAnswerVariants,
80
- },
81
- fn: ({
82
- locale,
83
- userGrade,
84
- isPracticeMode,
85
- practiceModeGrade,
86
- assignmentClassGrade,
87
- answerType,
88
- characterType,
89
- hasAnswerVariants,
90
- }) => {
91
- const isSimpleMode = getIsSimpleMode({
92
- userGrade,
93
- isPracticeMode,
94
- practiceModeGrade,
95
- assignmentClassGrade,
96
- })
97
-
98
- return {
99
- general: isSimpleMode ? InterfaceMode.SIMPLE : InterfaceMode.REGULAR,
100
- toolbar: getToolbarMode({
101
- isSimpleModeGrade: isSimpleMode,
102
- grade: assignmentClassGrade ?? practiceModeGrade,
103
- locale,
104
- }),
105
- answerArea: isSimpleMode
106
- ? getAnswerAreaMode({ isPracticeMode, answerType, characterType, hasAnswerVariants })
107
- : InterfaceMode.REGULAR,
108
- }
109
- },
110
- target: this.$mode,
111
- })
112
-
113
- return this
114
- }
115
- }