@magmamath/students-features 1.3.24 → 1.3.25-rc.0

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 (116) hide show
  1. package/dist/commonjs/features/keyboard/constants/groups/currency.constants.js +0 -3
  2. package/dist/commonjs/features/keyboard/constants/groups/currency.constants.js.map +1 -1
  3. package/dist/commonjs/features/keyboard/constants/keyboard.helpers.js +1 -2
  4. package/dist/commonjs/features/keyboard/constants/keyboard.helpers.js.map +1 -1
  5. package/dist/commonjs/features/keyboard/constants/keys/units.constants.js +0 -16
  6. package/dist/commonjs/features/keyboard/constants/keys/units.constants.js.map +1 -1
  7. package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +1 -2
  8. package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -1
  9. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js +18 -9
  10. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -1
  11. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js +65 -43
  12. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -1
  13. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +5 -5
  14. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -1
  15. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +5 -5
  16. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -1
  17. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js +5 -5
  18. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -1
  19. package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js +21 -13
  20. package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -1
  21. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +2 -2
  22. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
  23. package/dist/commonjs/features/pmProgress/components/standard/StandardTag.js +19 -13
  24. package/dist/commonjs/features/pmProgress/components/standard/StandardTag.js.map +1 -1
  25. package/dist/module/features/keyboard/constants/groups/currency.constants.js +0 -3
  26. package/dist/module/features/keyboard/constants/groups/currency.constants.js.map +1 -1
  27. package/dist/module/features/keyboard/constants/keyboard.helpers.js +1 -2
  28. package/dist/module/features/keyboard/constants/keyboard.helpers.js.map +1 -1
  29. package/dist/module/features/keyboard/constants/keys/units.constants.js +0 -16
  30. package/dist/module/features/keyboard/constants/keys/units.constants.js.map +1 -1
  31. package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +1 -2
  32. package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -1
  33. package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js +16 -8
  34. package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -1
  35. package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js +64 -43
  36. package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -1
  37. package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +3 -3
  38. package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -1
  39. package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +3 -3
  40. package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -1
  41. package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js +3 -3
  42. package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -1
  43. package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js +21 -13
  44. package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -1
  45. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +2 -2
  46. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
  47. package/dist/module/features/pmProgress/components/standard/StandardTag.js +20 -14
  48. package/dist/module/features/pmProgress/components/standard/StandardTag.js.map +1 -1
  49. package/dist/typescript/commonjs/features/keyboard/constants/groups/currency.constants.d.ts.map +1 -1
  50. package/dist/typescript/commonjs/features/keyboard/constants/keyboard.helpers.d.ts.map +1 -1
  51. package/dist/typescript/commonjs/features/keyboard/constants/keys/units.constants.d.ts.map +1 -1
  52. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts +3 -0
  53. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts.map +1 -1
  54. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +1 -3
  55. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -1
  56. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -1
  57. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +1 -1
  58. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -1
  59. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +1 -1
  60. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -1
  61. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +1 -1
  62. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -1
  63. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +3 -3
  64. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -1
  65. package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts +4 -2
  66. package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
  67. package/dist/typescript/module/features/keyboard/constants/groups/currency.constants.d.ts.map +1 -1
  68. package/dist/typescript/module/features/keyboard/constants/keyboard.helpers.d.ts.map +1 -1
  69. package/dist/typescript/module/features/keyboard/constants/keys/units.constants.d.ts.map +1 -1
  70. package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts +3 -0
  71. package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts.map +1 -1
  72. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +1 -3
  73. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -1
  74. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -1
  75. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +1 -1
  76. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -1
  77. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +1 -1
  78. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -1
  79. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +1 -1
  80. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -1
  81. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +3 -3
  82. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -1
  83. package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts +4 -2
  84. package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
  85. package/package.json +3 -3
  86. package/src/features/keyboard/constants/groups/currency.constants.ts +0 -3
  87. package/src/features/keyboard/constants/keyboard.helpers.ts +0 -1
  88. package/src/features/keyboard/constants/keys/units.constants.tsx +0 -12
  89. package/src/features/pmProgress/components/chart/chart.types.ts +3 -0
  90. package/src/features/pmProgress/components/chart/components/PracticeProgressPieChart.tsx +1 -1
  91. package/src/features/pmProgress/components/chart/components/SlicesClipPaths.tsx +16 -7
  92. package/src/features/pmProgress/components/chart/components/SlicesPaths.tsx +91 -47
  93. package/src/features/pmProgress/components/chart/components/layers/SliceArcPattern.tsx +3 -3
  94. package/src/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.tsx +3 -3
  95. package/src/features/pmProgress/components/chart/components/layers/SliceFillColor.tsx +3 -3
  96. package/src/features/pmProgress/components/chart/model/SliceShapeGenerator.ts +26 -15
  97. package/src/features/pmProgress/components/header/PmProgressHeader.tsx +2 -2
  98. package/src/features/pmProgress/components/standard/StandardTag.tsx +28 -18
  99. package/dist/commonjs/shared/icons/keyboard/GroszIcon.js +0 -34
  100. package/dist/commonjs/shared/icons/keyboard/GroszIcon.js.map +0 -1
  101. package/dist/commonjs/shared/icons/keyboard/ZlotyIcon.js +0 -34
  102. package/dist/commonjs/shared/icons/keyboard/ZlotyIcon.js.map +0 -1
  103. package/dist/module/shared/icons/keyboard/GroszIcon.js +0 -26
  104. package/dist/module/shared/icons/keyboard/GroszIcon.js.map +0 -1
  105. package/dist/module/shared/icons/keyboard/ZlotyIcon.js +0 -26
  106. package/dist/module/shared/icons/keyboard/ZlotyIcon.js.map +0 -1
  107. package/dist/typescript/commonjs/shared/icons/keyboard/GroszIcon.d.ts +0 -4
  108. package/dist/typescript/commonjs/shared/icons/keyboard/GroszIcon.d.ts.map +0 -1
  109. package/dist/typescript/commonjs/shared/icons/keyboard/ZlotyIcon.d.ts +0 -4
  110. package/dist/typescript/commonjs/shared/icons/keyboard/ZlotyIcon.d.ts.map +0 -1
  111. package/dist/typescript/module/shared/icons/keyboard/GroszIcon.d.ts +0 -4
  112. package/dist/typescript/module/shared/icons/keyboard/GroszIcon.d.ts.map +0 -1
  113. package/dist/typescript/module/shared/icons/keyboard/ZlotyIcon.d.ts +0 -4
  114. package/dist/typescript/module/shared/icons/keyboard/ZlotyIcon.d.ts.map +0 -1
  115. package/src/shared/icons/keyboard/GroszIcon.tsx +0 -20
  116. package/src/shared/icons/keyboard/ZlotyIcon.tsx +0 -20
@@ -9,6 +9,6 @@ type SliceFillColorProps = {
9
9
  borderColor?: string;
10
10
  borderWidth?: number;
11
11
  };
12
- export declare const SliceFillColor: ({ clipPathId, shapeSvg, fillSvg, fillBorderSvg, color, percent, borderColor, borderWidth, }: SliceFillColorProps) => React.JSX.Element | null;
12
+ export declare const SliceFillColor: React.MemoExoticComponent<({ clipPathId, shapeSvg, fillSvg, fillBorderSvg, color, percent, borderColor, borderWidth, }: SliceFillColorProps) => React.JSX.Element | null>;
13
13
  export {};
14
14
  //# sourceMappingURL=SliceFillColor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliceFillColor.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/features/pmProgress/components/chart/components/layers/SliceFillColor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,cAAc,gGASxB,mBAAmB,6BAmCrB,CAAA"}
1
+ {"version":3,"file":"SliceFillColor.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/features/pmProgress/components/chart/components/layers/SliceFillColor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAA;AAInC,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,cAAc,0HASxB,mBAAmB,8BAmCpB,CAAA"}
@@ -5,9 +5,9 @@ export declare class SliceShapeGenerator {
5
5
  private readonly d3Pie;
6
6
  constructor(config: PieChartManagerConfig);
7
7
  generateSlices(data: SliceInputData[]): SliceShape[];
8
- generateSlicePath(slice: SliceShape): string;
9
- generateFillPath(slice: SliceShape): string;
10
- generateFillBorderPath(slice: SliceShape): string;
8
+ private buildShapePath;
9
+ private buildFillPath;
10
+ private buildFillBorderPath;
11
11
  private getFillRadius;
12
12
  private getInnerRadius;
13
13
  private getCornerRadius;
@@ -1 +1 @@
1
- {"version":3,"file":"SliceShapeGenerator.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/pmProgress/components/chart/model/SliceShapeGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEvF,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAET;gBAEgB,MAAM,EAAE,qBAAqB;IAEnD,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE;IAepD,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAI5C,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAmB3C,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAOxD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAKvB,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,QAAQ;CAejB"}
1
+ {"version":3,"file":"SliceShapeGenerator.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/pmProgress/components/chart/model/SliceShapeGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIvF,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAET;gBAEgB,MAAM,EAAE,qBAAqB;IAEnD,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE;IAwB3D,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAKvB,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,QAAQ;CAejB"}
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
2
3
  import { PmProgressModel } from '@magmamath/students-features';
3
4
  type StandardTagProps = {
4
- skillId: string;
5
5
  model: PmProgressModel;
6
+ skillId: string;
7
+ style?: StyleProp<ViewStyle>;
6
8
  };
7
- export declare const StandardTag: ({ skillId, model }: StandardTagProps) => React.JSX.Element | null;
9
+ export declare const StandardTag: ({ model, skillId, style }: StandardTagProps) => React.JSX.Element | null;
8
10
  export {};
9
11
  //# sourceMappingURL=StandardTag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardTag.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/pmProgress/components/standard/StandardTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAgH9D,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,WAAW,uBAAwB,gBAAgB,6BA6B/D,CAAA"}
1
+ {"version":3,"file":"StandardTag.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/pmProgress/components/standard/StandardTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAA0B,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAiH9D,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,WAAW,8BAA+B,gBAAgB,6BAqCtE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.3.24",
3
+ "version": "1.3.25-rc.0",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -19,7 +19,7 @@
19
19
  "pull-translations": "node scripts/pullTranslations.mjs"
20
20
  },
21
21
  "peerDependencies": {
22
- "@magmamath/frontend-config": ">=1.3.5",
22
+ "@magmamath/frontend-config": ">=1.2.0",
23
23
  "@magmamath/react-native-draw-board": "*",
24
24
  "@magmamath/react-native-ui": "*",
25
25
  "@magmamath/students-qa": "*",
@@ -44,7 +44,7 @@
44
44
  "react-i18next": ">=15"
45
45
  },
46
46
  "devDependencies": {
47
- "@magmamath/frontend-config": "1.3.5",
47
+ "@magmamath/frontend-config": "1.3.2",
48
48
  "@magmamath/react-native-draw-board": "1.8.2",
49
49
  "@magmamath/react-native-ui": "0.4.83",
50
50
  "@magmamath/students-qa": "0.1.0",
@@ -14,7 +14,4 @@ export const KEYBOARD_CURRENCY: Record<string, KeyboardGroup> = {
14
14
  EURO_DOLLAR_POUND: {
15
15
  keys: [MATH_CURRENCY_UNITS.EURO, MATH_CURRENCY_UNITS.DOLLAR, MATH_CURRENCY_UNITS.POUND],
16
16
  },
17
- ZLOTY_GROSZ: {
18
- keys: [MATH_CURRENCY_UNITS.ZLOTY, MATH_CURRENCY_UNITS.GROSZ],
19
- },
20
17
  }
@@ -99,7 +99,6 @@ const CURRENCY_MAP: Record<KeyboardCurrencyVariant, KeyboardGroup> = {
99
99
  [KeyboardCurrencyVariant.POUND_PENCE]: KEYBOARD_CURRENCY.POUND_PENCE,
100
100
  [KeyboardCurrencyVariant.KRONE_EURO_POUND]: KEYBOARD_CURRENCY.KRONE_EURO_POUND,
101
101
  [KeyboardCurrencyVariant.EURO_DOLLAR_POUND]: KEYBOARD_CURRENCY.EURO_DOLLAR_POUND,
102
- [KeyboardCurrencyVariant.ZLOTY_GROSZ]: KEYBOARD_CURRENCY.ZLOTY_GROSZ,
103
102
  }
104
103
 
105
104
  const TIME_MAP: Record<KeyboardTimeVariant, KeyboardGroup> = {
@@ -8,8 +8,6 @@ import { PoundIcon } from '../../../../shared/icons/keyboard/PoundIcon'
8
8
  import { YenIcon } from '../../../../shared/icons/keyboard/YenIcon'
9
9
  import { PesoIcon } from '../../../../shared/icons/keyboard/PesoIcon'
10
10
  import { CentIcon } from '../../../../shared/icons/keyboard/CentIcon'
11
- import { ZlotyIcon } from '../../../../shared/icons/keyboard/ZlotyIcon'
12
- import { GroszIcon } from '../../../../shared/icons/keyboard/GroszIcon'
13
11
 
14
12
  export const MATH_CURRENCY_UNITS: MathOperatorsGroup = {
15
13
  KRONE: {
@@ -48,16 +46,6 @@ export const MATH_CURRENCY_UNITS: MathOperatorsGroup = {
48
46
  mathliveValue: '¢',
49
47
  katexValue: '¢',
50
48
  },
51
- ZLOTY: {
52
- icon: <ZlotyIcon {...DEFAULT_KEY_ICON_PROPS} />,
53
- mathliveValue: '\\mathrm{zł}',
54
- katexValue: 'zł',
55
- },
56
- GROSZ: {
57
- icon: <GroszIcon {...DEFAULT_KEY_ICON_PROPS} />,
58
- mathliveValue: '\\mathrm{gr}',
59
- katexValue: 'gr',
60
- },
61
49
  } as const
62
50
 
63
51
  export const MATH_LENGTH_UNITS: MathOperatorsGroup = {
@@ -14,6 +14,9 @@ export type SliceShape = {
14
14
  backgroundColor: string
15
15
  fillColor: string
16
16
  borderColor: string
17
+ shapeSvg: string
18
+ fillSvg: string
19
+ fillBorderSvg: string
17
20
  data: SliceInputData
18
21
  }
19
22
 
@@ -23,7 +23,7 @@ export const PracticeProgressPieChart = memo(({ data, config }: PracticeProgress
23
23
  <View>
24
24
  <Svg width={config.size} height={config.size}>
25
25
  <G x={center.x} y={center.y}>
26
- <SlicesClipPaths slices={slices} pieChartManager={pieChartManager} />
26
+ <SlicesClipPaths slices={slices} />
27
27
  <SlicesPaths slices={slices} pieChartManager={pieChartManager} config={config} />
28
28
  </G>
29
29
  </Svg>
@@ -1,22 +1,31 @@
1
- import React from 'react'
1
+ import React, { memo } from 'react'
2
2
  import { ClipPath, Defs, Path } from 'react-native-svg'
3
3
  import { getSliceClipId } from '../chart.helpers'
4
4
  import type { SliceShape } from '../chart.types'
5
- import type { PieChartManager } from '../model/PieChartManager'
6
5
 
7
6
  type SlicesClipPathsProps = {
8
7
  slices: SliceShape[]
9
- pieChartManager: PieChartManager
10
8
  }
11
9
 
12
- export const SlicesClipPaths = ({ slices, pieChartManager }: SlicesClipPathsProps) => {
10
+ export const SlicesClipPaths = ({ slices }: SlicesClipPathsProps) => {
13
11
  return (
14
12
  <Defs>
15
13
  {slices.map((slice) => (
16
- <ClipPath key={slice.index} id={getSliceClipId(slice.index)}>
17
- <Path d={pieChartManager.shape.generateSlicePath(slice)} />
18
- </ClipPath>
14
+ <SliceClipPath key={slice.index} index={slice.index} shapeSvg={slice.shapeSvg} />
19
15
  ))}
20
16
  </Defs>
21
17
  )
22
18
  }
19
+
20
+ type SliceClipPathProps = {
21
+ index: number
22
+ shapeSvg: string
23
+ }
24
+
25
+ const SliceClipPath = memo(({ index, shapeSvg }: SliceClipPathProps) => {
26
+ return (
27
+ <ClipPath id={getSliceClipId(index)}>
28
+ <Path d={shapeSvg} />
29
+ </ClipPath>
30
+ )
31
+ })
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { memo, useCallback } from 'react'
2
2
  import { Platform, StyleSheet, ViewStyle } from 'react-native'
3
3
  import { G, Path } from 'react-native-svg'
4
4
  import { useUnit } from 'effector-react'
@@ -28,58 +28,102 @@ export const SlicesPaths = ({ slices, pieChartManager, config }: SlicesPathsProp
28
28
  ? domains.findIndex(({ domainId }) => domainId === highlightedId)
29
29
  : null
30
30
 
31
+ const expand = useCallback(
32
+ (domainId: string) => model.highlight.expand(domainId),
33
+ [model],
34
+ )
35
+ const hover = useCallback(
36
+ (domainId: string | null) => model.highlight.hover(domainId),
37
+ [model],
38
+ )
39
+
31
40
  return (
32
41
  <>
33
- {slices.map((slice) => {
34
- const id = `${slice.index}`
35
- const shapeSvg = pieChartManager.shape.generateSlicePath(slice)
36
- const fillSvg = pieChartManager.shape.generateFillPath(slice)
37
- const fillBorderSvg = pieChartManager.shape.generateFillBorderPath(slice)
38
- const isHighlighted = highlightedIndex === slice.index
39
- const translateY = isHighlighted ? -config.pressOffset : 0
40
- const borderWidth = isHighlighted ? config.borderWidth : 0
41
- const domainId = domains[slice.index]?.domainId
42
-
43
- return (
44
- <G
45
- key={id}
46
- style={styles.container}
47
- onPress={() => domainId && model.highlight.expand(domainId)}
48
- onMouseEnter={() => domainId && model.highlight.hover(domainId)}
49
- onMouseLeave={() => model.highlight.hover(null)}
50
- >
51
- <Path d={shapeSvg} fill="transparent" />
52
- <G style={styles.visual} transform={`translate(0, ${translateY})`}>
53
- <SliceBackgroundColor
54
- path={shapeSvg}
55
- color={isHighlighted ? config.colors.highlightedBackground : slice.backgroundColor}
56
- />
57
-
58
- <SliceFillColor
59
- clipPathId={id}
60
- shapeSvg={shapeSvg}
61
- fillSvg={fillSvg}
62
- fillBorderSvg={fillBorderSvg}
63
- color={slice.fillColor}
64
- percent={slice.fillPercent}
65
- borderColor={isHighlighted ? slice.borderColor : undefined}
66
- borderWidth={borderWidth}
67
- />
68
-
69
- <SliceArcPattern
70
- clipPathId={id}
71
- slice={slice}
72
- config={config}
73
- pieChartManager={pieChartManager}
74
- />
75
- </G>
76
- </G>
77
- )
78
- })}
42
+ {slices.map((slice) => (
43
+ <SliceItem
44
+ key={slice.index}
45
+ slice={slice}
46
+ isHighlighted={highlightedIndex === slice.index}
47
+ domainId={domains[slice.index]?.domainId}
48
+ pieChartManager={pieChartManager}
49
+ config={config}
50
+ onExpand={expand}
51
+ onHover={hover}
52
+ />
53
+ ))}
79
54
  </>
80
55
  )
81
56
  }
82
57
 
58
+ type SliceItemProps = {
59
+ slice: SliceShape
60
+ isHighlighted: boolean
61
+ domainId: string | undefined
62
+ pieChartManager: PieChartManager
63
+ config: PieChartManagerConfig
64
+ onExpand: (domainId: string) => void
65
+ onHover: (domainId: string | null) => void
66
+ }
67
+
68
+ const SliceItem = memo(
69
+ ({
70
+ slice,
71
+ isHighlighted,
72
+ domainId,
73
+ pieChartManager,
74
+ config,
75
+ onExpand,
76
+ onHover,
77
+ }: SliceItemProps) => {
78
+ const id = `${slice.index}`
79
+ const translateY = isHighlighted ? -config.pressOffset : 0
80
+ const borderWidth = isHighlighted ? config.borderWidth : 0
81
+
82
+ const expandSlice = () => {
83
+ if (domainId) onExpand(domainId)
84
+ }
85
+ const hoverSlice = () => {
86
+ if (domainId) onHover(domainId)
87
+ }
88
+ const clearHover = () => onHover(null)
89
+
90
+ return (
91
+ <G
92
+ style={styles.container}
93
+ onPress={expandSlice}
94
+ onMouseEnter={hoverSlice}
95
+ onMouseLeave={clearHover}
96
+ >
97
+ <Path d={slice.shapeSvg} fill="transparent" />
98
+ <G style={styles.visual} transform={`translate(0, ${translateY})`}>
99
+ <SliceBackgroundColor
100
+ path={slice.shapeSvg}
101
+ color={isHighlighted ? config.colors.highlightedBackground : slice.backgroundColor}
102
+ />
103
+
104
+ <SliceFillColor
105
+ clipPathId={id}
106
+ shapeSvg={slice.shapeSvg}
107
+ fillSvg={slice.fillSvg}
108
+ fillBorderSvg={slice.fillBorderSvg}
109
+ color={slice.fillColor}
110
+ percent={slice.fillPercent}
111
+ borderColor={isHighlighted ? slice.borderColor : undefined}
112
+ borderWidth={borderWidth}
113
+ />
114
+
115
+ <SliceArcPattern
116
+ clipPathId={id}
117
+ slice={slice}
118
+ config={config}
119
+ pieChartManager={pieChartManager}
120
+ />
121
+ </G>
122
+ </G>
123
+ )
124
+ },
125
+ )
126
+
83
127
  const styles = StyleSheet.create({
84
128
  container: {
85
129
  ...Platform.select({ web: { cursor: 'pointer' } as ViewStyle }),
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { memo } from 'react'
2
2
  import { G, Path } from 'react-native-svg'
3
3
  import { getSliceClipId } from '../../chart.helpers'
4
4
  import type { PieChartManagerConfig, SliceShape } from '../../chart.types'
@@ -11,7 +11,7 @@ type SliceArcPatternProps = {
11
11
  config: PieChartManagerConfig
12
12
  }
13
13
 
14
- export const SliceArcPattern = ({
14
+ export const SliceArcPattern = memo(({
15
15
  clipPathId,
16
16
  slice,
17
17
  pieChartManager,
@@ -41,4 +41,4 @@ export const SliceArcPattern = ({
41
41
  })}
42
42
  </G>
43
43
  )
44
- }
44
+ })
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { memo } from 'react'
2
2
  import { Path } from 'react-native-svg'
3
3
 
4
4
  type BackgroundLayerProps = {
@@ -6,6 +6,6 @@ type BackgroundLayerProps = {
6
6
  color: string
7
7
  }
8
8
 
9
- export const SliceBackgroundColor = ({ path, color }: BackgroundLayerProps) => {
9
+ export const SliceBackgroundColor = memo(({ path, color }: BackgroundLayerProps) => {
10
10
  return <Path d={path} fill={color} />
11
- }
11
+ })
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { memo } from 'react'
2
2
  import { ClipPath, Defs, G, Path } from 'react-native-svg'
3
3
  import { getSliceClipId } from '../../chart.helpers'
4
4
 
@@ -13,7 +13,7 @@ type SliceFillColorProps = {
13
13
  borderWidth?: number
14
14
  }
15
15
 
16
- export const SliceFillColor = ({
16
+ export const SliceFillColor = memo(({
17
17
  clipPathId,
18
18
  shapeSvg,
19
19
  fillSvg,
@@ -57,4 +57,4 @@ export const SliceFillColor = ({
57
57
  </G>
58
58
  </>
59
59
  )
60
- }
60
+ })
@@ -1,6 +1,8 @@
1
1
  import { arc, pie } from 'd3-shape'
2
2
  import type { PieChartManagerConfig, SliceInputData, SliceShape } from '../chart.types'
3
3
 
4
+ type SliceGeometry = Pick<SliceShape, 'startAngle' | 'endAngle' | 'fillPercent'>
5
+
4
6
  export class SliceShapeGenerator {
5
7
  private innerRadius = 0
6
8
  private readonly d3Pie = pie<SliceInputData>()
@@ -12,23 +14,32 @@ export class SliceShapeGenerator {
12
14
  public generateSlices(data: SliceInputData[]): SliceShape[] {
13
15
  this.innerRadius = this.getInnerRadius(data.length)
14
16
 
15
- return this.d3Pie(data).map((datum, index) => ({
16
- index,
17
- startAngle: datum.startAngle,
18
- endAngle: datum.endAngle,
19
- fillPercent: datum.data.fillPercent ?? 0,
20
- backgroundColor: datum.data.backgroundColor ?? this.config.colors.background,
21
- fillColor: datum.data.fillColor,
22
- borderColor: datum.data.borderColor,
23
- data: datum.data,
24
- }))
17
+ return this.d3Pie(data).map((datum, index) => {
18
+ const base = {
19
+ index,
20
+ startAngle: datum.startAngle,
21
+ endAngle: datum.endAngle,
22
+ fillPercent: datum.data.fillPercent ?? 0,
23
+ backgroundColor: datum.data.backgroundColor ?? this.config.colors.background,
24
+ fillColor: datum.data.fillColor,
25
+ borderColor: datum.data.borderColor,
26
+ data: datum.data,
27
+ }
28
+
29
+ return {
30
+ ...base,
31
+ shapeSvg: this.buildShapePath(base),
32
+ fillSvg: this.buildFillPath(base),
33
+ fillBorderSvg: this.buildFillBorderPath(base),
34
+ }
35
+ })
25
36
  }
26
37
 
27
- public generateSlicePath(slice: SliceShape): string {
38
+ private buildShapePath(slice: SliceGeometry): string {
28
39
  return this.buildArc(slice, this.config.outerRadius, this.getCornerRadius(100))
29
40
  }
30
41
 
31
- public generateFillPath(slice: SliceShape): string {
42
+ private buildFillPath(slice: SliceGeometry): string {
32
43
  const fillRadius = this.getFillRadius(slice)
33
44
  const cornerRadius = this.getCornerRadius(slice.fillPercent)
34
45
 
@@ -47,14 +58,14 @@ export class SliceShapeGenerator {
47
58
  }) as string
48
59
  }
49
60
 
50
- public generateFillBorderPath(slice: SliceShape): string {
61
+ private buildFillBorderPath(slice: SliceGeometry): string {
51
62
  const fillRadius = this.getFillRadius(slice)
52
63
  const cornerRadius = this.getCornerRadius(slice.fillPercent)
53
64
  return this.buildArc(slice, fillRadius, cornerRadius)
54
65
  }
55
66
 
56
67
 
57
- private getFillRadius(slice: SliceShape): number {
68
+ private getFillRadius(slice: SliceGeometry): number {
58
69
  return this.innerRadius + (this.config.outerRadius - this.innerRadius) * (slice.fillPercent / 100)
59
70
  }
60
71
 
@@ -72,7 +83,7 @@ export class SliceShapeGenerator {
72
83
  return this.config.gapBetweenSlices / this.config.outerRadius
73
84
  }
74
85
 
75
- private buildArc(slice: SliceShape, outerRadius: number, cornerRadius: number): string {
86
+ private buildArc(slice: SliceGeometry, outerRadius: number, cornerRadius: number): string {
76
87
  const innerRadius = this.innerRadius
77
88
 
78
89
  return arc()
@@ -131,9 +131,9 @@ const styles = StyleSheet.create({
131
131
  },
132
132
  menu: {
133
133
  top: SPACING[100],
134
- minWidth: 110,
134
+ minWidth: 120,
135
135
  overflow: 'scroll',
136
- maxHeight: MENU_MAX_HEIGHT,
136
+ maxHeight: isWeb ? MENU_MAX_HEIGHT : 490,
137
137
  ...Platform.select({ web: { scrollbarWidth: 'none' } }),
138
138
  },
139
139
  })
@@ -1,10 +1,11 @@
1
1
  import React from 'react'
2
- import { StyleSheet, View, Text } from 'react-native'
2
+ import { StyleSheet, View, Text, StyleProp, ViewStyle } from 'react-native'
3
3
  import { PmProgressModel } from '@magmamath/students-features'
4
4
  import { SliceDiamondIcon } from '../../../../shared/icons/SliceDiamondIcon'
5
- import { COLORS, FONT_FAMILY, SHADOWS } from '@magmamath/react-native-ui'
5
+ import { BORDER_RADIUS, COLORS, FONT_FAMILY, SHADOWS, SPACING } from '@magmamath/react-native-ui'
6
6
  import { useStoreMap } from 'effector-react'
7
7
  import { isWeb } from '../../../../shared/common.constants'
8
+ import { findDomainBySkillId } from '../../shared/pmProgress.helpers'
8
9
 
9
10
  type ColorPreset = {
10
11
  background: string
@@ -113,36 +114,45 @@ const DOMAIN_COLOR_PRESETS: Record<string, ColorPreset> = {
113
114
  }
114
115
 
115
116
  type StandardTagProps = {
116
- skillId: string
117
117
  model: PmProgressModel
118
+ skillId: string
119
+ style?: StyleProp<ViewStyle>
118
120
  }
119
121
 
120
- export const StandardTag = ({ skillId, model }: StandardTagProps) => {
122
+ export const StandardTag = ({ model, skillId, style }: StandardTagProps) => {
121
123
  const standardInfo = useStoreMap({
122
- store: model.tree.$domainsInGrade,
124
+ store: model.tree.$domains,
123
125
  keys: [skillId],
124
- fn: (domains, [skillId]) => {
125
- const domain = domains.find((d) => d.standards.some((s) => s.skillIds.includes(skillId)))
126
- const standard = domain?.standards.find(({ skillIds }) => skillIds.includes(skillId))
127
- if (!standard || !domain) return null
126
+ fn: (domainsByGrade, [skillId]) => {
127
+ const allDomains = Object.values(domainsByGrade).flat()
128
+ const domain = findDomainBySkillId(skillId, allDomains)
129
+ if (!domain) return null
130
+
131
+ const standard = domain.standards.find(({ skillIds }) => skillIds.includes(skillId))
132
+ if (!standard) return null
128
133
  return { title: standard.title, tag: standard.subtitle, color: domain.color }
129
134
  },
130
135
  })
131
136
 
132
137
  if (!standardInfo) return null
133
138
 
139
+ const hasStandardTag = !!standardInfo.tag
140
+ const isTagDifferentFromTitle = standardInfo.title !== standardInfo.tag
141
+
134
142
  const preset = DOMAIN_COLOR_PRESETS[standardInfo.color]
135
143
 
136
144
  return (
137
- <View style={[styles.container, { backgroundColor: preset.background }]}>
145
+ <View style={[styles.container, { backgroundColor: preset.background }, style]}>
138
146
  <SliceDiamondIcon color={preset.tagColor} />
139
147
  <View style={styles.textContainer}>
140
148
  <Text numberOfLines={2} style={[styles.title, { color: preset.titleColor }]}>
141
149
  {standardInfo.title}
142
150
  </Text>
143
- <Text numberOfLines={1} style={[styles.tag, { color: preset.tagColor }]}>
144
- {standardInfo.tag}
145
- </Text>
151
+ {hasStandardTag && isTagDifferentFromTitle && (
152
+ <Text numberOfLines={1} style={[styles.tag, { color: preset.tagColor }]}>
153
+ {standardInfo.tag}
154
+ </Text>
155
+ )}
146
156
  </View>
147
157
  </View>
148
158
  )
@@ -150,14 +160,14 @@ export const StandardTag = ({ skillId, model }: StandardTagProps) => {
150
160
 
151
161
  const styles = StyleSheet.create({
152
162
  container: {
153
- minWidth: 110,
163
+ minWidth: 120,
154
164
  maxWidth: isWeb ? 350 : 280,
155
- paddingHorizontal: 8,
156
- paddingVertical: 4,
157
- borderRadius: 12,
165
+ paddingHorizontal: SPACING[200],
166
+ paddingVertical: SPACING[100],
167
+ borderRadius: BORDER_RADIUS[300],
158
168
  flexDirection: 'row',
159
169
  alignItems: 'center',
160
- gap: 8,
170
+ gap: SPACING[200],
161
171
  alignSelf: 'flex-start',
162
172
  ...SHADOWS[1],
163
173
  },
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GroszIcon = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
9
- var _jsxRuntime = require("react/jsx-runtime");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const GroszIcon = ({
14
- size = 20,
15
- color
16
- }) => {
17
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.default, {
18
- width: size,
19
- height: size,
20
- viewBox: "0 0 16 16",
21
- fill: "none",
22
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
23
- x: "8",
24
- y: "12",
25
- fill: color,
26
- fontSize: "10",
27
- fontWeight: "600",
28
- textAnchor: "middle",
29
- children: "gr"
30
- })
31
- });
32
- };
33
- exports.GroszIcon = GroszIcon;
34
- //# sourceMappingURL=GroszIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeSvg","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroszIcon","size","color","jsx","width","height","viewBox","fill","children","Text","x","y","fontSize","fontWeight","textAnchor","exports"],"sourceRoot":"../../../../../src","sources":["shared/icons/keyboard/GroszIcon.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAuD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAd,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAEhD,MAAMmB,SAAS,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAAiB,CAAC,KAAK;EAC5D,oBACE,IAAAvB,WAAA,CAAAwB,GAAA,EAAC1B,eAAA,CAAAS,OAAG;IAACkB,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,eAC7D,IAAA7B,WAAA,CAAAwB,GAAA,EAAC1B,eAAA,CAAAgC,IAAO;MACNC,CAAC,EAAC,GAAG;MACLC,CAAC,EAAC,IAAI;MACNJ,IAAI,EAAEL,KAAM;MACZU,QAAQ,EAAC,IAAI;MACbC,UAAU,EAAC,KAAK;MAChBC,UAAU,EAAC,QAAQ;MAAAN,QAAA,EACpB;IAED,CAAS;EAAC,CACP,CAAC;AAEV,CAAC;AAAAO,OAAA,CAAAf,SAAA,GAAAA,SAAA","ignoreList":[]}