@pie-element/complex-rubric 5.3.4-next.3 → 6.0.0-beta.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 (145) hide show
  1. package/configure/lib/defaults.js +52 -24
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +103 -194
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +140 -199
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.json +1 -0
  8. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.md +2491 -0
  9. package/configure/node_modules/@pie-element/multi-trait-rubric/README.md +55 -0
  10. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.json +1 -0
  11. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.md +2333 -0
  12. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js +429 -0
  13. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js.map +1 -0
  14. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js +181 -0
  15. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js.map +1 -0
  16. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js +157 -0
  17. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js.map +1 -0
  18. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js +455 -0
  19. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js.map +1 -0
  20. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js +206 -0
  21. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js.map +1 -0
  22. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js +451 -0
  23. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js.map +1 -0
  24. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js +275 -0
  25. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js.map +1 -0
  26. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js +233 -0
  27. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js.map +1 -0
  28. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js +87 -0
  29. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/package.json +24 -0
  31. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.json +1 -0
  32. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.md +1571 -0
  33. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js +18 -0
  34. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js.map +1 -0
  35. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js +158 -0
  36. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js.map +1 -0
  37. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js +11 -0
  38. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js.map +1 -0
  39. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/package.json +14 -0
  40. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json +1628 -0
  41. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json.md +1202 -0
  42. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/config.js +8 -0
  43. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/generate.js +117 -0
  44. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/index.html +1 -0
  45. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/session.js +6 -0
  46. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json +861 -0
  47. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json.md +614 -0
  48. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js +54 -0
  49. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js.map +1 -0
  50. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js +123 -0
  51. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js.map +1 -0
  52. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js +248 -0
  53. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js.map +1 -0
  54. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js +83 -0
  55. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js.map +1 -0
  56. package/configure/node_modules/@pie-element/multi-trait-rubric/package.json +32 -0
  57. package/configure/node_modules/@pie-element/rubric/CHANGELOG.json +257 -0
  58. package/configure/node_modules/@pie-element/rubric/CHANGELOG.md +2774 -0
  59. package/configure/node_modules/@pie-element/rubric/README.md +3 -0
  60. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.json +197 -0
  61. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.md +2541 -0
  62. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js +67 -0
  63. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js.map +1 -0
  64. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js +135 -0
  65. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js.map +1 -0
  66. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js +103 -0
  67. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js.map +1 -0
  68. package/configure/node_modules/@pie-element/rubric/configure/package.json +24 -0
  69. package/configure/node_modules/@pie-element/rubric/configure/src/__tests__/index.test.jsx +178 -0
  70. package/configure/node_modules/@pie-element/rubric/configure/src/defaults.js +42 -0
  71. package/configure/node_modules/@pie-element/rubric/configure/src/index.js +139 -0
  72. package/configure/node_modules/@pie-element/rubric/configure/src/main.jsx +87 -0
  73. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.json +17 -0
  74. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.md +1564 -0
  75. package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js +15 -0
  76. package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js.map +1 -0
  77. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js +46 -0
  78. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js.map +1 -0
  79. package/configure/node_modules/@pie-element/rubric/controller/package.json +12 -0
  80. package/configure/node_modules/@pie-element/rubric/controller/src/__tests__/index.test.js +33 -0
  81. package/configure/node_modules/@pie-element/rubric/controller/src/defaults.js +8 -0
  82. package/configure/node_modules/@pie-element/rubric/controller/src/index.js +41 -0
  83. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json +712 -0
  84. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json.md +532 -0
  85. package/configure/node_modules/@pie-element/rubric/docs/demo/config.js +8 -0
  86. package/configure/node_modules/@pie-element/rubric/docs/demo/generate.js +8 -0
  87. package/configure/node_modules/@pie-element/rubric/docs/demo/index.html +2 -0
  88. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json +391 -0
  89. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json.md +281 -0
  90. package/configure/node_modules/@pie-element/rubric/lib/index.js +52 -0
  91. package/configure/node_modules/@pie-element/rubric/lib/index.js.map +1 -0
  92. package/configure/node_modules/@pie-element/rubric/lib/main.js +210 -0
  93. package/configure/node_modules/@pie-element/rubric/lib/main.js.map +1 -0
  94. package/configure/node_modules/@pie-element/rubric/lib/print.js +71 -0
  95. package/configure/node_modules/@pie-element/rubric/lib/print.js.map +1 -0
  96. package/configure/node_modules/@pie-element/rubric/package.json +30 -0
  97. package/configure/node_modules/@pie-element/rubric/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2641 -0
  98. package/configure/node_modules/@pie-element/rubric/src/__tests__/rubric-view.test.jsx +49 -0
  99. package/configure/node_modules/@pie-element/rubric/src/index.js +48 -0
  100. package/configure/node_modules/@pie-element/rubric/src/main.jsx +226 -0
  101. package/configure/node_modules/@pie-element/rubric/src/print.js +74 -0
  102. package/configure/node_modules/clsx/clsx.d.ts +6 -0
  103. package/configure/node_modules/clsx/dist/clsx.js +1 -0
  104. package/configure/node_modules/clsx/dist/clsx.m.js +1 -0
  105. package/configure/node_modules/clsx/dist/clsx.min.js +1 -0
  106. package/configure/node_modules/clsx/license +9 -0
  107. package/configure/node_modules/clsx/package.json +37 -0
  108. package/configure/node_modules/clsx/readme.md +88 -0
  109. package/configure/package.json +12 -9
  110. package/configure/src/__tests__/index.test.js +30 -5
  111. package/configure/src/__tests__/main.test.jsx +39 -23
  112. package/configure/src/index.js +13 -6
  113. package/configure/src/main.jsx +16 -15
  114. package/controller/lib/defaults.js +11 -15
  115. package/controller/lib/defaults.js.map +1 -1
  116. package/controller/lib/index.js +117 -180
  117. package/controller/lib/index.js.map +1 -1
  118. package/controller/lib/utils.js +1 -3
  119. package/controller/lib/utils.js.map +1 -1
  120. package/controller/package.json +1 -1
  121. package/lib/index.js +113 -204
  122. package/lib/index.js.map +1 -1
  123. package/lib/print.js +96 -190
  124. package/lib/print.js.map +1 -1
  125. package/package.json +10 -14
  126. package/src/__tests__/index.test.js +25 -7
  127. package/configure/src/__tests__/__snapshots__/main.test.jsx.snap +0 -193
  128. package/esm/configure.js +0 -15856
  129. package/esm/configure.js.map +0 -1
  130. package/esm/controller.js +0 -281
  131. package/esm/controller.js.map +0 -1
  132. package/esm/element.js +0 -179
  133. package/esm/element.js.map +0 -1
  134. package/esm/package.json +0 -3
  135. package/esm/print.js +0 -163
  136. package/esm/print.js.map +0 -1
  137. package/module/configure.js +0 -1
  138. package/module/controller.js +0 -262
  139. package/module/demo.js +0 -221
  140. package/module/element.js +0 -1
  141. package/module/index.html +0 -21
  142. package/module/manifest.json +0 -22
  143. package/module/print-demo.js +0 -259
  144. package/module/print.html +0 -18
  145. package/module/print.js +0 -1
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _debug = _interopRequireDefault(require("debug"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
+ var _core = require("@dnd-kit/core");
14
+ var _styles = require("@mui/material/styles");
15
+ var _renderUi = require("@pie-lib/render-ui");
16
+ var _common = require("./common");
17
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
18
+ var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
19
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
20
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
21
+ var _DragIndicator = _interopRequireDefault(require("@mui/icons-material/DragIndicator"));
22
+ const log = (0, _debug.default)('@pie-element:placement-ordering:configure:trait-tile');
23
+ const ActionsIcon = (0, _styles.styled)(_DragIndicator.default)({
24
+ color: _renderUi.color.text()
25
+ });
26
+ const StyledPrimaryBlock = (0, _styles.styled)(_common.PrimaryBlock)(({
27
+ theme
28
+ }) => ({
29
+ display: 'flex',
30
+ flexDirection: 'column',
31
+ justifyContent: 'space-between',
32
+ marginBottom: theme.spacing(5)
33
+ }));
34
+ const Controls = (0, _styles.styled)('div')({
35
+ display: 'flex',
36
+ alignItems: 'center',
37
+ width: '100%',
38
+ cursor: 'pointer'
39
+ });
40
+ const Options = (0, _styles.styled)(_IconButton.default)({
41
+ marginLeft: 'auto'
42
+ });
43
+ const RemoveLabel = (0, _styles.styled)('div')({
44
+ display: 'flex',
45
+ whiteSpace: 'break-spaces'
46
+ });
47
+ const ErrorText = (0, _styles.styled)('div')(({
48
+ theme
49
+ }) => ({
50
+ fontSize: theme.typography.fontSize - 2,
51
+ color: theme.palette.error.main,
52
+ paddingBottom: theme.spacing(1)
53
+ }));
54
+ function TraitTile({
55
+ error,
56
+ trait: {
57
+ name,
58
+ standards,
59
+ description,
60
+ scorePointsDescriptors
61
+ },
62
+ traitLabel,
63
+ scorePointsValues,
64
+ showStandards,
65
+ showDescription,
66
+ enableDragAndDrop,
67
+ currentPosition,
68
+ secondaryBlockWidth,
69
+ spellCheck,
70
+ maxPoints,
71
+ uploadSoundSupport,
72
+ mathMlOptions = {},
73
+ expandedPluginProps = {},
74
+ labelPluginProps = {},
75
+ imageSupport = {},
76
+ index,
77
+ onTraitChanged,
78
+ onTraitRemoved,
79
+ onTraitDropped
80
+ }) {
81
+ const [anchorEl, setAnchorEl] = _react.default.useState(null);
82
+ const secondaryBlockRef = _react.default.useRef(null);
83
+ const {
84
+ attributes,
85
+ listeners,
86
+ setNodeRef: setDragRef,
87
+ transform,
88
+ isDragging
89
+ } = (0, _core.useDraggable)({
90
+ id: `trait-${index}`,
91
+ data: {
92
+ type: 'trait',
93
+ index,
94
+ name
95
+ }
96
+ });
97
+ const {
98
+ setNodeRef: setDropRef
99
+ } = (0, _core.useDroppable)({
100
+ id: `trait-drop-${index}`,
101
+ data: {
102
+ type: 'trait',
103
+ index
104
+ }
105
+ });
106
+ _react.default.useEffect(() => {
107
+ if (currentPosition !== undefined && secondaryBlockRef.current && secondaryBlockRef.current.scrollLeft !== currentPosition) {
108
+ scrollToPosition(currentPosition);
109
+ }
110
+ }, [currentPosition]);
111
+ const onTraitChangedHandler = params => {
112
+ if ((0, _isEmpty.default)(params)) return;
113
+ const updatedTrait = {
114
+ ...{
115
+ name,
116
+ standards,
117
+ description,
118
+ scorePointsDescriptors
119
+ },
120
+ ...params
121
+ };
122
+ onTraitChanged(updatedTrait);
123
+ };
124
+ const onScorePointDescriptorChange = ({
125
+ descriptor,
126
+ value
127
+ }) => {
128
+ if (value < 0 || value >= scorePointsDescriptors.length) return;
129
+ const newDescriptors = [...scorePointsDescriptors];
130
+ newDescriptors[value] = descriptor;
131
+ onTraitChangedHandler({
132
+ scorePointsDescriptors: newDescriptors
133
+ });
134
+ };
135
+ const handleClick = event => setAnchorEl(event.currentTarget);
136
+ const handleClose = () => setAnchorEl(null);
137
+ const scrollToPosition = position => secondaryBlockRef.current?.scrollTo({
138
+ left: position
139
+ });
140
+ const openMenu = () => {
141
+ onTraitRemoved();
142
+ handleClose();
143
+ };
144
+ const dragStyle = transform ? {
145
+ transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,
146
+ opacity: isDragging ? 0.5 : 1
147
+ } : {};
148
+ return /*#__PURE__*/_react.default.createElement("div", {
149
+ ref: setDropRef,
150
+ style: dragStyle
151
+ }, /*#__PURE__*/_react.default.createElement(_common.Row, null, /*#__PURE__*/_react.default.createElement(StyledPrimaryBlock, null, /*#__PURE__*/_react.default.createElement(Controls, null, enableDragAndDrop && /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
152
+ ref: setDragRef
153
+ }, attributes, listeners), /*#__PURE__*/_react.default.createElement(ActionsIcon, null)), /*#__PURE__*/_react.default.createElement(Options, {
154
+ "aria-label": "more",
155
+ "aria-controls": "long-menu",
156
+ "aria-haspopup": "true",
157
+ onClick: handleClick,
158
+ size: "large"
159
+ }, /*#__PURE__*/_react.default.createElement(_MoreVert.default, null)), /*#__PURE__*/_react.default.createElement(_Menu.default, {
160
+ id: "long-menu",
161
+ anchorEl: anchorEl,
162
+ keepMounted: true,
163
+ open: !!anchorEl,
164
+ onClose: handleClose,
165
+ transitionDuration: {
166
+ enter: 225,
167
+ exit: 195
168
+ }
169
+ }, /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
170
+ onClick: openMenu
171
+ }, /*#__PURE__*/_react.default.createElement(RemoveLabel, {
172
+ dangerouslySetInnerHTML: {
173
+ __html: `Remove ${name || traitLabel}`
174
+ }
175
+ })))), /*#__PURE__*/_react.default.createElement(_common.UnderlinedInput, {
176
+ markup: name,
177
+ error: error?.name || '',
178
+ onChange: name => onTraitChangedHandler({
179
+ name
180
+ }),
181
+ pluginProps: labelPluginProps,
182
+ placeholder: `Enter ${traitLabel}`,
183
+ spellCheck: spellCheck,
184
+ uploadSoundSupport: uploadSoundSupport,
185
+ mathMlOptions: mathMlOptions,
186
+ imageSupport: imageSupport
187
+ }), error && /*#__PURE__*/_react.default.createElement(ErrorText, null, error.name || '')), /*#__PURE__*/_react.default.createElement(_common.SecondaryBlock, {
188
+ setRef: ref => {
189
+ secondaryBlockRef.current = ref;
190
+ },
191
+ width: `${secondaryBlockWidth}px`
192
+ }, showStandards && standards && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
193
+ placeholder: "Standards",
194
+ markup: standards.join(','),
195
+ onChange: standards => onTraitChangedHandler({
196
+ standards: standards.split(',')
197
+ }),
198
+ pluginProps: expandedPluginProps,
199
+ spellCheck: spellCheck,
200
+ uploadSoundSupport: uploadSoundSupport,
201
+ mathMlOptions: mathMlOptions,
202
+ imageSupport: imageSupport
203
+ })), showDescription && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
204
+ placeholder: "Enter Description",
205
+ markup: description,
206
+ error: error?.description || '',
207
+ onChange: description => onTraitChangedHandler({
208
+ description
209
+ }),
210
+ pluginProps: expandedPluginProps,
211
+ spellCheck: spellCheck,
212
+ uploadSoundSupport: uploadSoundSupport,
213
+ mathMlOptions: mathMlOptions,
214
+ imageSupport: imageSupport
215
+ }), error && /*#__PURE__*/_react.default.createElement(ErrorText, null, error.description || '')), (scorePointsValues || []).map((scorePointsValue, scoreIndex) => {
216
+ const adjustedBlockWidth = _common.BlockWidth + 2 * 8; // 8 is padding
217
+ const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * scoreIndex + currentPosition - 98;
218
+ const value = scorePointsValues.length - scoreIndex - 1;
219
+ let scoreDescriptor;
220
+ try {
221
+ scoreDescriptor = scorePointsDescriptors[value] || '';
222
+ } catch (e) {
223
+ scoreDescriptor = '';
224
+ }
225
+ return /*#__PURE__*/_react.default.createElement(_common.Block, {
226
+ key: `key-key-${scoreIndex}`
227
+ }, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
228
+ placeholder: "Enter Descriptor",
229
+ markup: scoreDescriptor,
230
+ onChange: descriptor => onScorePointDescriptorChange({
231
+ descriptor,
232
+ value
233
+ }),
234
+ pluginProps: expandedPluginProps,
235
+ alignToRight: remainingSpace < 296 && scorePointsValue < maxPoints // 296 is the space required for the toolbar
236
+ ,
237
+ spellCheck: spellCheck,
238
+ uploadSoundSupport: uploadSoundSupport,
239
+ mathMlOptions: mathMlOptions,
240
+ imageSupport: imageSupport
241
+ }));
242
+ }))));
243
+ }
244
+ TraitTile.propTypes = {
245
+ error: _propTypes.default.object,
246
+ index: _propTypes.default.number.isRequired,
247
+ onTraitChanged: _propTypes.default.func.isRequired,
248
+ onTraitRemoved: _propTypes.default.func.isRequired,
249
+ onTraitDropped: _propTypes.default.func,
250
+ trait: _propTypes.default.shape({
251
+ name: _propTypes.default.string,
252
+ standards: _propTypes.default.arrayOf(_propTypes.default.string),
253
+ scorePointsDescriptors: _propTypes.default.arrayOf(_propTypes.default.string),
254
+ description: _propTypes.default.string
255
+ }),
256
+ traitLabel: _propTypes.default.string,
257
+ scorePointsValues: _propTypes.default.arrayOf(_propTypes.default.number),
258
+ showStandards: _propTypes.default.bool,
259
+ showDescription: _propTypes.default.bool,
260
+ maxPoints: _propTypes.default.number,
261
+ enableDragAndDrop: _propTypes.default.bool,
262
+ currentPosition: _propTypes.default.number,
263
+ secondaryBlockWidth: _propTypes.default.number,
264
+ spellCheck: _propTypes.default.bool,
265
+ uploadSoundSupport: _propTypes.default.object,
266
+ mathMlOptions: _propTypes.default.object,
267
+ expandedPluginProps: _propTypes.default.object,
268
+ labelPluginProps: _propTypes.default.object,
269
+ imageSupport: _propTypes.default.shape({
270
+ add: _propTypes.default.func.isRequired,
271
+ delete: _propTypes.default.func.isRequired
272
+ })
273
+ };
274
+ var _default = exports.default = TraitTile;
275
+ //# sourceMappingURL=trait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trait.js","names":["_react","_interopRequireDefault","require","_debug","_propTypes","_isEmpty","_core","_styles","_renderUi","_common","_IconButton","_MoreVert","_Menu","_MenuItem","_DragIndicator","log","debug","ActionsIcon","styled","DragIndicatorIcon","color","text","StyledPrimaryBlock","PrimaryBlock","theme","display","flexDirection","justifyContent","marginBottom","spacing","Controls","alignItems","width","cursor","Options","IconButton","marginLeft","RemoveLabel","whiteSpace","ErrorText","fontSize","typography","palette","error","main","paddingBottom","TraitTile","trait","name","standards","description","scorePointsDescriptors","traitLabel","scorePointsValues","showStandards","showDescription","enableDragAndDrop","currentPosition","secondaryBlockWidth","spellCheck","maxPoints","uploadSoundSupport","mathMlOptions","expandedPluginProps","labelPluginProps","imageSupport","index","onTraitChanged","onTraitRemoved","onTraitDropped","anchorEl","setAnchorEl","React","useState","secondaryBlockRef","useRef","attributes","listeners","setNodeRef","setDragRef","transform","isDragging","useDraggable","id","data","type","setDropRef","useDroppable","useEffect","undefined","current","scrollLeft","scrollToPosition","onTraitChangedHandler","params","isEmpty","updatedTrait","onScorePointDescriptorChange","descriptor","value","length","newDescriptors","handleClick","event","currentTarget","handleClose","position","scrollTo","left","openMenu","dragStyle","x","y","opacity","default","createElement","ref","style","Row","_extends2","onClick","size","keepMounted","open","onClose","transitionDuration","enter","exit","dangerouslySetInnerHTML","__html","UnderlinedInput","markup","onChange","pluginProps","placeholder","SecondaryBlock","setRef","Block","ExpandedInput","join","split","map","scorePointsValue","scoreIndex","adjustedBlockWidth","BlockWidth","remainingSpace","scoreDescriptor","e","key","alignToRight","propTypes","PropTypes","object","number","isRequired","func","shape","string","arrayOf","bool","add","delete","_default","exports"],"sources":["../src/trait.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\n\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\n\nimport { Block, BlockWidth, ExpandedInput, PrimaryBlock, Row, SecondaryBlock, UnderlinedInput } from './common';\n\nimport IconButton from '@mui/material/IconButton';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\n\nconst log = debug('@pie-element:placement-ordering:configure:trait-tile');\n\nconst ActionsIcon = styled(DragIndicatorIcon)({\n color: color.text(),\n});\n\nconst StyledPrimaryBlock = styled(PrimaryBlock)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(5),\n}));\n\nconst Controls = styled('div')({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n cursor: 'pointer',\n});\n\nconst Options = styled(IconButton)({\n marginLeft: 'auto',\n});\n\nconst RemoveLabel = styled('div')({\n display: 'flex',\n whiteSpace: 'break-spaces',\n});\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nfunction TraitTile({\n error,\n trait: { name, standards, description, scorePointsDescriptors },\n traitLabel,\n scorePointsValues,\n showStandards,\n showDescription,\n enableDragAndDrop,\n currentPosition,\n secondaryBlockWidth,\n spellCheck,\n maxPoints,\n uploadSoundSupport,\n mathMlOptions = {},\n expandedPluginProps = {},\n labelPluginProps = {},\n imageSupport = {},\n index,\n onTraitChanged,\n onTraitRemoved,\n onTraitDropped,\n}) {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const secondaryBlockRef = React.useRef(null);\n\n const { attributes, listeners, setNodeRef: setDragRef, transform, isDragging } = useDraggable({\n id: `trait-${index}`,\n data: {\n type: 'trait',\n index,\n name,\n },\n });\n\n const { setNodeRef: setDropRef } = useDroppable({\n id: `trait-drop-${index}`,\n data: {\n type: 'trait',\n index,\n },\n });\n\n React.useEffect(() => {\n if (currentPosition !== undefined && secondaryBlockRef.current && secondaryBlockRef.current.scrollLeft !== currentPosition) {\n scrollToPosition(currentPosition);\n }\n }, [currentPosition]);\n\n const onTraitChangedHandler = (params) => {\n if (isEmpty(params)) return;\n\n const updatedTrait = { ...{ name, standards, description, scorePointsDescriptors }, ...params };\n onTraitChanged(updatedTrait);\n };\n\n const onScorePointDescriptorChange = ({ descriptor, value }) => {\n if (value < 0 || value >= scorePointsDescriptors.length) return;\n\n const newDescriptors = [...scorePointsDescriptors];\n newDescriptors[value] = descriptor;\n\n onTraitChangedHandler({ scorePointsDescriptors: newDescriptors });\n };\n\n const handleClick = (event) => setAnchorEl(event.currentTarget);\n\n const handleClose = () => setAnchorEl(null);\n\n const scrollToPosition = (position) => secondaryBlockRef.current?.scrollTo({ left: position });\n\n const openMenu = () => {\n onTraitRemoved();\n handleClose();\n };\n\n const dragStyle = transform ? {\n transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\n opacity: isDragging ? 0.5 : 1,\n } : {};\n\n return (\n <div ref={setDropRef} style={dragStyle}>\n <Row>\n <StyledPrimaryBlock>\n <Controls>\n {enableDragAndDrop && (\n <span ref={setDragRef} {...attributes} {...listeners}>\n <ActionsIcon />\n </span>\n )}\n\n <Options\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={handleClick}\n size=\"large\">\n <MoreVertIcon />\n </Options>\n\n <Menu\n id=\"long-menu\"\n anchorEl={anchorEl}\n keepMounted\n open={!!anchorEl}\n onClose={handleClose}\n transitionDuration={{ enter: 225, exit: 195 }}\n >\n <MenuItem onClick={openMenu}>\n <RemoveLabel\n dangerouslySetInnerHTML={{ __html: `Remove ${name || traitLabel}` }}\n />\n </MenuItem>\n </Menu>\n </Controls>\n\n <UnderlinedInput\n markup={name}\n error={error?.name || ''}\n onChange={(name) => onTraitChangedHandler({ name })}\n pluginProps={labelPluginProps}\n placeholder={`Enter ${traitLabel}`}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n {error && <ErrorText>{error.name || ''}</ErrorText>}\n </StyledPrimaryBlock>\n\n <SecondaryBlock\n setRef={(ref) => {\n secondaryBlockRef.current = ref;\n }}\n width={`${secondaryBlockWidth}px`}\n >\n {showStandards && standards && (\n <Block>\n <ExpandedInput\n placeholder=\"Standards\"\n markup={standards.join(',')}\n onChange={(standards) => onTraitChangedHandler({ standards: standards.split(',') })}\n pluginProps={expandedPluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n </Block>\n )}\n\n {showDescription && (\n <Block>\n <ExpandedInput\n placeholder=\"Enter Description\"\n markup={description}\n error={error?.description || ''}\n onChange={(description) => onTraitChangedHandler({ description })}\n pluginProps={expandedPluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n {error && <ErrorText>{error.description || ''}</ErrorText>}\n </Block>\n )}\n\n {(scorePointsValues || []).map((scorePointsValue, scoreIndex) => {\n const adjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * scoreIndex + currentPosition - 98;\n const value = scorePointsValues.length - scoreIndex - 1;\n let scoreDescriptor;\n\n try {\n scoreDescriptor = scorePointsDescriptors[value] || '';\n } catch (e) {\n scoreDescriptor = '';\n }\n\n return (\n <Block key={`key-key-${scoreIndex}`}>\n <ExpandedInput\n placeholder=\"Enter Descriptor\"\n markup={scoreDescriptor}\n onChange={(descriptor) => onScorePointDescriptorChange({ descriptor, value })}\n pluginProps={expandedPluginProps}\n alignToRight={remainingSpace < 296 && scorePointsValue < maxPoints} // 296 is the space required for the toolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n </Block>\n );\n })}\n </SecondaryBlock>\n </Row>\n </div>\n );\n}\n\nTraitTile.propTypes = {\n error: PropTypes.object,\n index: PropTypes.number.isRequired,\n onTraitChanged: PropTypes.func.isRequired,\n onTraitRemoved: PropTypes.func.isRequired,\n onTraitDropped: PropTypes.func,\n trait: PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n traitLabel: PropTypes.string,\n scorePointsValues: PropTypes.arrayOf(PropTypes.number),\n showStandards: PropTypes.bool,\n showDescription: PropTypes.bool,\n maxPoints: PropTypes.number,\n enableDragAndDrop: PropTypes.bool,\n currentPosition: PropTypes.number,\n secondaryBlockWidth: PropTypes.number,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n mathMlOptions: PropTypes.object,\n expandedPluginProps: PropTypes.object,\n labelPluginProps: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n};\n\nexport default TraitTile;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.TraitsHeaderTile = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _styles = require("@mui/material/styles");
12
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
13
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
14
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
+ var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
16
+ var _renderUi = require("@pie-lib/render-ui");
17
+ var _common = require("./common");
18
+ const Label = (0, _styles.styled)('div')(({
19
+ theme
20
+ }) => ({
21
+ width: '140px',
22
+ border: 'none',
23
+ padding: '10px 0',
24
+ display: 'flex',
25
+ alignItems: 'center',
26
+ justifyContent: 'space-around'
27
+ }));
28
+ const GreyHeaderRow = (0, _styles.styled)('div')(({
29
+ height,
30
+ theme
31
+ }) => ({
32
+ background: _renderUi.color.secondaryBackground(),
33
+ borderRadius: '4px',
34
+ position: 'relative',
35
+ marginBottom: theme.spacing(2),
36
+ display: 'flex',
37
+ height: height
38
+ }));
39
+ const PrimaryBlockGreyHeader = (0, _styles.styled)('div')(({
40
+ theme
41
+ }) => ({
42
+ width: `${_common.PrimaryBlockWidth}px`,
43
+ minWidth: `${_common.PrimaryBlockWidth}px`,
44
+ position: 'relative',
45
+ padding: '0 10px',
46
+ boxSizing: 'border-box',
47
+ paddingTop: theme.spacing(1.5),
48
+ alignSelf: 'center'
49
+ }));
50
+ const ScorePointErrorText = (0, _styles.styled)('div')(({
51
+ theme
52
+ }) => ({
53
+ position: 'absolute',
54
+ fontSize: theme.typography.fontSize - 2,
55
+ color: theme.palette.error.main,
56
+ paddingTop: theme.spacing(0.5)
57
+ }));
58
+ class TraitsHeaderTile extends _react.default.Component {
59
+ constructor(...args) {
60
+ super(...args);
61
+ (0, _defineProperty2.default)(this, "state", {
62
+ anchorEl: null
63
+ });
64
+ (0, _defineProperty2.default)(this, "onScorePointLabelChange", ({
65
+ scorePointLabel,
66
+ value
67
+ }) => {
68
+ const {
69
+ scorePointsLabels,
70
+ onScaleChange
71
+ } = this.props;
72
+ if (value < 0 || value >= scorePointsLabels.length) return;
73
+ scorePointsLabels[value] = scorePointLabel;
74
+ onScaleChange({
75
+ scorePointsLabels
76
+ });
77
+ });
78
+ (0, _defineProperty2.default)(this, "handleClick", event => this.setState({
79
+ anchorEl: event.currentTarget
80
+ }));
81
+ (0, _defineProperty2.default)(this, "handleClose", () => this.setState({
82
+ anchorEl: null
83
+ }));
84
+ (0, _defineProperty2.default)(this, "scrollToPosition", position => this.secondaryBlock.scrollTo({
85
+ left: position
86
+ }));
87
+ (0, _defineProperty2.default)(this, "openMenu", () => {
88
+ this.props.showDeleteScaleModal();
89
+ this.handleClose();
90
+ });
91
+ }
92
+ UNSAFE_componentWillReceiveProps(nextProps) {
93
+ if (nextProps.currentPosition !== this.props.currentPosition) {
94
+ this.scrollToPosition(nextProps.currentPosition);
95
+ }
96
+ }
97
+ render() {
98
+ const {
99
+ scorePointsValues,
100
+ scorePointsLabels,
101
+ traitLabel,
102
+ currentPosition,
103
+ showStandards,
104
+ onTraitLabelChange,
105
+ showDescription,
106
+ showLevelTagInput,
107
+ maxPoints,
108
+ updateMaxPointsFieldValue,
109
+ scaleIndex,
110
+ showScorePointLabels,
111
+ secondaryBlockWidth,
112
+ setSecondaryBlockRef,
113
+ spellCheck,
114
+ uploadSoundSupport,
115
+ maxPointsEnabled,
116
+ mathMlOptions = {},
117
+ errors = {},
118
+ maxMaxPoints,
119
+ labelPluginProps = {},
120
+ imageSupport = {}
121
+ } = this.props;
122
+ const {
123
+ anchorEl
124
+ } = this.state;
125
+ return /*#__PURE__*/_react.default.createElement(GreyHeaderRow, {
126
+ height: showLevelTagInput ? _common.HeaderHeightLarge : _common.HeaderHeight
127
+ }, /*#__PURE__*/_react.default.createElement(PrimaryBlockGreyHeader, null, showLevelTagInput && /*#__PURE__*/_react.default.createElement(_common.SimpleInput, {
128
+ markup: traitLabel || 'Trait',
129
+ onChange: onTraitLabelChange,
130
+ pluginProps: labelPluginProps,
131
+ spellCheck: spellCheck,
132
+ label: "Level Label",
133
+ uploadSoundSupport: uploadSoundSupport,
134
+ mathMlOptions: mathMlOptions,
135
+ imageSupport: imageSupport
136
+ }), /*#__PURE__*/_react.default.createElement(_common.ScaleSettings, null, /*#__PURE__*/_react.default.createElement("div", null, "Scale ", scaleIndex + 1), maxPointsEnabled && /*#__PURE__*/_react.default.createElement(_common.MaxPointsPicker, {
137
+ maxPoints: maxPoints,
138
+ maxMaxPoints: maxMaxPoints,
139
+ onChange: updateMaxPointsFieldValue
140
+ }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
141
+ "aria-label": "more",
142
+ "aria-controls": "long-menu",
143
+ "aria-haspopup": "true",
144
+ onClick: this.handleClick,
145
+ size: "large"
146
+ }, /*#__PURE__*/_react.default.createElement(_MoreVert.default, null)), /*#__PURE__*/_react.default.createElement(_Menu.default, {
147
+ id: "long-menu",
148
+ anchorEl: anchorEl,
149
+ keepMounted: true,
150
+ open: !!anchorEl,
151
+ onClose: this.handleClose,
152
+ transitionDuration: {
153
+ enter: 225,
154
+ exit: 195
155
+ }
156
+ }, ['Remove Scale'].map(option => /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
157
+ key: option,
158
+ onClick: this.openMenu
159
+ }, option)))))), /*#__PURE__*/_react.default.createElement(_common.SecondaryBlock, {
160
+ setRef: ref => {
161
+ if (ref) {
162
+ this.secondaryBlock = ref;
163
+ setSecondaryBlockRef(ref);
164
+ }
165
+ },
166
+ width: `${secondaryBlockWidth}px`
167
+ }, showStandards && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(Label, null, "Standard(s)")), showDescription && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(Label, null, "Description")), scorePointsValues.map((scorePointsValue, index) => {
168
+ const adjustedBlockWidth = _common.BlockWidth + 2 * 8; // 8 is padding
169
+ const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * index + currentPosition - 128;
170
+ const value = scorePointsValues.length - index - 1;
171
+ let scoreDescriptor;
172
+ let error;
173
+ try {
174
+ scoreDescriptor = scorePointsLabels[value] || '';
175
+ error = errors[value] || '';
176
+ } catch (e) {
177
+ scoreDescriptor = '';
178
+ }
179
+ return /*#__PURE__*/_react.default.createElement(_common.Block, {
180
+ key: `secondary-block-part-${index}`
181
+ }, /*#__PURE__*/_react.default.createElement(_common.ScorePoint, {
182
+ scorePointsValue: scorePointsValue,
183
+ error: error,
184
+ scoreDescriptor: scoreDescriptor,
185
+ pluginProps: labelPluginProps,
186
+ showScorePointLabels: showScorePointLabels,
187
+ onChange: scorePointLabel => this.onScorePointLabelChange({
188
+ scorePointLabel,
189
+ value
190
+ }),
191
+ alignToRight: remainingSpace < 296 && scorePointsValue < maxPoints // 296 is the space required for the toolbar
192
+ ,
193
+ spellCheck: spellCheck,
194
+ uploadSoundSupport: uploadSoundSupport,
195
+ mathMlOptions: mathMlOptions,
196
+ imageSupport: imageSupport
197
+ }), error && /*#__PURE__*/_react.default.createElement(ScorePointErrorText, null, error));
198
+ })));
199
+ }
200
+ }
201
+ exports.TraitsHeaderTile = TraitsHeaderTile;
202
+ (0, _defineProperty2.default)(TraitsHeaderTile, "propTypes", {
203
+ maxPointsEnabled: _propTypes.default.bool,
204
+ spellCheck: _propTypes.default.bool,
205
+ errors: _propTypes.default.object
206
+ });
207
+ TraitsHeaderTile.propTypes = {
208
+ onTraitLabelChange: _propTypes.default.func,
209
+ onScaleChange: _propTypes.default.func,
210
+ scorePointsValues: _propTypes.default.arrayOf(_propTypes.default.number),
211
+ scorePointsLabels: _propTypes.default.arrayOf(_propTypes.default.string),
212
+ traitLabel: _propTypes.default.string,
213
+ showStandards: _propTypes.default.bool,
214
+ showLevelTagInput: _propTypes.default.bool,
215
+ showDescription: _propTypes.default.bool,
216
+ maxPoints: _propTypes.default.number,
217
+ updateMaxPointsFieldValue: _propTypes.default.func,
218
+ scaleIndex: _propTypes.default.number,
219
+ currentPosition: _propTypes.default.number,
220
+ secondaryBlockWidth: _propTypes.default.number,
221
+ showDeleteScaleModal: _propTypes.default.func,
222
+ showScorePointLabels: _propTypes.default.bool,
223
+ setSecondaryBlockRef: _propTypes.default.func,
224
+ uploadSoundSupport: _propTypes.default.object,
225
+ maxMaxPoints: _propTypes.default.number,
226
+ labelPluginProps: _propTypes.default.object,
227
+ imageSupport: _propTypes.default.shape({
228
+ add: _propTypes.default.func.isRequired,
229
+ delete: _propTypes.default.func.isRequired
230
+ })
231
+ };
232
+ var _default = exports.default = TraitsHeaderTile;
233
+ //# sourceMappingURL=traitsHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traitsHeader.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_IconButton","_Menu","_MenuItem","_MoreVert","_renderUi","_common","Label","styled","theme","width","border","padding","display","alignItems","justifyContent","GreyHeaderRow","height","background","color","secondaryBackground","borderRadius","position","marginBottom","spacing","PrimaryBlockGreyHeader","PrimaryBlockWidth","minWidth","boxSizing","paddingTop","alignSelf","ScorePointErrorText","fontSize","typography","palette","error","main","TraitsHeaderTile","React","Component","constructor","args","_defineProperty2","default","anchorEl","scorePointLabel","value","scorePointsLabels","onScaleChange","props","length","event","setState","currentTarget","secondaryBlock","scrollTo","left","showDeleteScaleModal","handleClose","UNSAFE_componentWillReceiveProps","nextProps","currentPosition","scrollToPosition","render","scorePointsValues","traitLabel","showStandards","onTraitLabelChange","showDescription","showLevelTagInput","maxPoints","updateMaxPointsFieldValue","scaleIndex","showScorePointLabels","secondaryBlockWidth","setSecondaryBlockRef","spellCheck","uploadSoundSupport","maxPointsEnabled","mathMlOptions","errors","maxMaxPoints","labelPluginProps","imageSupport","state","createElement","HeaderHeightLarge","HeaderHeight","SimpleInput","markup","onChange","pluginProps","label","ScaleSettings","MaxPointsPicker","onClick","handleClick","size","id","keepMounted","open","onClose","transitionDuration","enter","exit","map","option","key","openMenu","SecondaryBlock","setRef","ref","Block","scorePointsValue","index","adjustedBlockWidth","BlockWidth","remainingSpace","scoreDescriptor","e","ScorePoint","onScorePointLabelChange","alignToRight","exports","PropTypes","bool","object","propTypes","func","arrayOf","number","string","shape","add","isRequired","delete","_default"],"sources":["../src/traitsHeader.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport { color } from '@pie-lib/render-ui';\n\nimport {\n Block,\n BlockWidth,\n PrimaryBlockWidth,\n SecondaryBlock,\n ScorePoint,\n MaxPointsPicker,\n SimpleInput,\n ScaleSettings,\n HeaderHeight,\n HeaderHeightLarge,\n} from './common';\n\nconst Label = styled('div')(({ theme }) => ({\n width: '140px',\n border: 'none',\n padding: '10px 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-around',\n}));\n\nconst GreyHeaderRow = styled('div')(({ height, theme }) => ({\n background: color.secondaryBackground(),\n borderRadius: '4px',\n position: 'relative',\n marginBottom: theme.spacing(2),\n display: 'flex',\n height: height,\n}));\n\nconst PrimaryBlockGreyHeader = styled('div')(({ theme }) => ({\n width: `${PrimaryBlockWidth}px`,\n minWidth: `${PrimaryBlockWidth}px`,\n position: 'relative',\n padding: '0 10px',\n boxSizing: 'border-box',\n paddingTop: theme.spacing(1.5),\n alignSelf: 'center'\n}));\n\nconst ScorePointErrorText = styled('div')(({ theme }) => ({\n position: 'absolute',\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class TraitsHeaderTile extends React.Component {\n static propTypes = {\n maxPointsEnabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n errors: PropTypes.object,\n };\n\n state = {\n anchorEl: null,\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.currentPosition !== this.props.currentPosition) {\n this.scrollToPosition(nextProps.currentPosition);\n }\n }\n\n onScorePointLabelChange = ({ scorePointLabel, value }) => {\n const { scorePointsLabels, onScaleChange } = this.props;\n\n if (value < 0 || value >= scorePointsLabels.length) return;\n\n scorePointsLabels[value] = scorePointLabel;\n\n onScaleChange({ scorePointsLabels });\n };\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => this.setState({ anchorEl: null });\n\n scrollToPosition = (position) => this.secondaryBlock.scrollTo({ left: position });\n\n openMenu = () => {\n this.props.showDeleteScaleModal();\n this.handleClose();\n };\n\n render() {\n const {\n scorePointsValues,\n scorePointsLabels,\n traitLabel,\n currentPosition,\n showStandards,\n onTraitLabelChange,\n showDescription,\n showLevelTagInput,\n maxPoints,\n updateMaxPointsFieldValue,\n scaleIndex,\n showScorePointLabels,\n secondaryBlockWidth,\n setSecondaryBlockRef,\n spellCheck,\n uploadSoundSupport,\n maxPointsEnabled,\n mathMlOptions = {},\n errors = {},\n maxMaxPoints,\n labelPluginProps = {},\n imageSupport = {},\n } = this.props;\n const { anchorEl } = this.state;\n\n return (\n <GreyHeaderRow height={showLevelTagInput ? HeaderHeightLarge : HeaderHeight}>\n <PrimaryBlockGreyHeader>\n {showLevelTagInput && (\n <SimpleInput\n markup={traitLabel || 'Trait'}\n onChange={onTraitLabelChange}\n pluginProps={labelPluginProps}\n spellCheck={spellCheck}\n label=\"Level Label\"\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n )}\n\n <ScaleSettings>\n <div>Scale {scaleIndex + 1}</div>\n\n {maxPointsEnabled && (\n <MaxPointsPicker maxPoints={maxPoints} maxMaxPoints={maxMaxPoints} onChange={updateMaxPointsFieldValue} />\n )}\n\n <div>\n <IconButton\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={this.handleClick}\n size=\"large\">\n <MoreVertIcon />\n </IconButton>\n <Menu\n id=\"long-menu\"\n anchorEl={anchorEl}\n keepMounted\n open={!!anchorEl}\n onClose={this.handleClose}\n transitionDuration={{ enter: 225, exit: 195 }}\n >\n {['Remove Scale'].map((option) => (\n <MenuItem key={option} onClick={this.openMenu}>\n {option}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </ScaleSettings>\n </PrimaryBlockGreyHeader>\n <SecondaryBlock\n setRef={(ref) => {\n if (ref) {\n this.secondaryBlock = ref;\n setSecondaryBlockRef(ref);\n }\n }}\n width={`${secondaryBlockWidth}px`}\n >\n {showStandards && (\n <Block>\n <Label>Standard(s)</Label>\n </Block>\n )}\n\n {showDescription && (\n <Block>\n <Label>Description</Label>\n </Block>\n )}\n\n {scorePointsValues.map((scorePointsValue, index) => {\n const adjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * index + currentPosition - 128;\n const value = scorePointsValues.length - index - 1;\n let scoreDescriptor;\n let error;\n\n try {\n scoreDescriptor = scorePointsLabels[value] || '';\n error = errors[value] || '';\n } catch (e) {\n scoreDescriptor = '';\n }\n\n return (\n <Block key={`secondary-block-part-${index}`}>\n <ScorePoint\n scorePointsValue={scorePointsValue}\n error={error}\n scoreDescriptor={scoreDescriptor}\n pluginProps={labelPluginProps}\n showScorePointLabels={showScorePointLabels}\n onChange={(scorePointLabel) => this.onScorePointLabelChange({ scorePointLabel, value })}\n alignToRight={remainingSpace < 296 && scorePointsValue < maxPoints} // 296 is the space required for the toolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n {error && <ScorePointErrorText>{error}</ScorePointErrorText>}\n </Block>\n );\n })}\n </SecondaryBlock>\n </GreyHeaderRow>\n );\n }\n}\n\nTraitsHeaderTile.propTypes = {\n onTraitLabelChange: PropTypes.func,\n onScaleChange: PropTypes.func,\n scorePointsValues: PropTypes.arrayOf(PropTypes.number),\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n showStandards: PropTypes.bool,\n showLevelTagInput: PropTypes.bool,\n showDescription: PropTypes.bool,\n maxPoints: PropTypes.number,\n updateMaxPointsFieldValue: PropTypes.func,\n scaleIndex: PropTypes.number,\n currentPosition: PropTypes.number,\n secondaryBlockWidth: PropTypes.number,\n showDeleteScaleModal: PropTypes.func,\n showScorePointLabels: PropTypes.bool,\n setSecondaryBlockRef: PropTypes.func,\n uploadSoundSupport: PropTypes.object,\n maxMaxPoints: PropTypes.number,\n labelPluginProps: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n};\n\nexport default TraitsHeaderTile;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AAaA,MAAMS,KAAK,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC1CC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE;AAClB,CAAC,CAAC,CAAC;AAEH,MAAMC,aAAa,GAAG,IAAAR,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAES,MAAM;EAAER;AAAM,CAAC,MAAM;EAC1DS,UAAU,EAAEC,eAAK,CAACC,mBAAmB,CAAC,CAAC;EACvCC,YAAY,EAAE,KAAK;EACnBC,QAAQ,EAAE,UAAU;EACpBC,YAAY,EAAEd,KAAK,CAACe,OAAO,CAAC,CAAC,CAAC;EAC9BX,OAAO,EAAE,MAAM;EACfI,MAAM,EAAEA;AACV,CAAC,CAAC,CAAC;AAEH,MAAMQ,sBAAsB,GAAG,IAAAjB,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC3DC,KAAK,EAAE,GAAGgB,yBAAiB,IAAI;EAC/BC,QAAQ,EAAE,GAAGD,yBAAiB,IAAI;EAClCJ,QAAQ,EAAE,UAAU;EACpBV,OAAO,EAAE,QAAQ;EACjBgB,SAAS,EAAE,YAAY;EACvBC,UAAU,EAAEpB,KAAK,CAACe,OAAO,CAAC,GAAG,CAAC;EAC9BM,SAAS,EAAE;AACb,CAAC,CAAC,CAAC;AAEH,MAAMC,mBAAmB,GAAG,IAAAvB,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACxDa,QAAQ,EAAE,UAAU;EACpBU,QAAQ,EAAEvB,KAAK,CAACwB,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCb,KAAK,EAAEV,KAAK,CAACyB,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BP,UAAU,EAAEpB,KAAK,CAACe,OAAO,CAAC,GAAG;AAC/B,CAAC,CAAC,CAAC;AAEI,MAAMa,gBAAgB,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAO5C;MACNC,QAAQ,EAAE;IACZ,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,mCAQyB,CAAC;MAAEE,eAAe;MAAEC;IAAM,CAAC,KAAK;MACxD,MAAM;QAAEC,iBAAiB;QAAEC;MAAc,CAAC,GAAG,IAAI,CAACC,KAAK;MAEvD,IAAIH,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIC,iBAAiB,CAACG,MAAM,EAAE;MAEpDH,iBAAiB,CAACD,KAAK,CAAC,GAAGD,eAAe;MAE1CG,aAAa,CAAC;QAAED;MAAkB,CAAC,CAAC;IACtC,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,uBAEcQ,KAAK,IAAK,IAAI,CAACC,QAAQ,CAAC;MAAER,QAAQ,EAAEO,KAAK,CAACE;IAAc,CAAC,CAAC;IAAA,IAAAX,gBAAA,CAAAC,OAAA,uBAE3D,MAAM,IAAI,CAACS,QAAQ,CAAC;MAAER,QAAQ,EAAE;IAAK,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,4BAEjCrB,QAAQ,IAAK,IAAI,CAACgC,cAAc,CAACC,QAAQ,CAAC;MAAEC,IAAI,EAAElC;IAAS,CAAC,CAAC;IAAA,IAAAoB,gBAAA,CAAAC,OAAA,oBAEtE,MAAM;MACf,IAAI,CAACM,KAAK,CAACQ,oBAAoB,CAAC,CAAC;MACjC,IAAI,CAACC,WAAW,CAAC,CAAC;IACpB,CAAC;EAAA;EAzBDC,gCAAgCA,CAACC,SAAS,EAAE;IAC1C,IAAIA,SAAS,CAACC,eAAe,KAAK,IAAI,CAACZ,KAAK,CAACY,eAAe,EAAE;MAC5D,IAAI,CAACC,gBAAgB,CAACF,SAAS,CAACC,eAAe,CAAC;IAClD;EACF;EAuBAE,MAAMA,CAAA,EAAG;IACP,MAAM;MACJC,iBAAiB;MACjBjB,iBAAiB;MACjBkB,UAAU;MACVJ,eAAe;MACfK,aAAa;MACbC,kBAAkB;MAClBC,eAAe;MACfC,iBAAiB;MACjBC,SAAS;MACTC,yBAAyB;MACzBC,UAAU;MACVC,oBAAoB;MACpBC,mBAAmB;MACnBC,oBAAoB;MACpBC,UAAU;MACVC,kBAAkB;MAClBC,gBAAgB;MAChBC,aAAa,GAAG,CAAC,CAAC;MAClBC,MAAM,GAAG,CAAC,CAAC;MACXC,YAAY;MACZC,gBAAgB,GAAG,CAAC,CAAC;MACrBC,YAAY,GAAG,CAAC;IAClB,CAAC,GAAG,IAAI,CAAClC,KAAK;IACd,MAAM;MAAEL;IAAS,CAAC,GAAG,IAAI,CAACwC,KAAK;IAE/B,oBACExF,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAACrE,aAAa;MAACC,MAAM,EAAEoD,iBAAiB,GAAGiB,yBAAiB,GAAGC;IAAa,gBAC1E3F,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC5D,sBAAsB,QACpB4C,iBAAiB,iBAChBzE,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAAkF,WAAW;MACVC,MAAM,EAAExB,UAAU,IAAI,OAAQ;MAC9ByB,QAAQ,EAAEvB,kBAAmB;MAC7BwB,WAAW,EAAET,gBAAiB;MAC9BN,UAAU,EAAEA,UAAW;MACvBgB,KAAK,EAAC,aAAa;MACnBf,kBAAkB,EAAEA,kBAAmB;MACvCE,aAAa,EAAEA,aAAc;MAC7BI,YAAY,EAAEA;IAAa,CAC5B,CACF,eAEDvF,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAAuF,aAAa,qBACZjG,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,cAAK,QAAM,EAACb,UAAU,GAAG,CAAO,CAAC,EAEhCM,gBAAgB,iBACflF,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAAwF,eAAe;MAACxB,SAAS,EAAEA,SAAU;MAACW,YAAY,EAAEA,YAAa;MAACS,QAAQ,EAAEnB;IAA0B,CAAE,CAC1G,eAED3E,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,2BACEzF,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAACpF,WAAA,CAAA0C,OAAU;MACT,cAAW,MAAM;MACjB,iBAAc,WAAW;MACzB,iBAAc,MAAM;MACpBoD,OAAO,EAAE,IAAI,CAACC,WAAY;MAC1BC,IAAI,EAAC;IAAO,gBACZrG,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAACjF,SAAA,CAAAuC,OAAY,MAAE,CACL,CAAC,eACb/C,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAACnF,KAAA,CAAAyC,OAAI;MACHuD,EAAE,EAAC,WAAW;MACdtD,QAAQ,EAAEA,QAAS;MACnBuD,WAAW;MACXC,IAAI,EAAE,CAAC,CAACxD,QAAS;MACjByD,OAAO,EAAE,IAAI,CAAC3C,WAAY;MAC1B4C,kBAAkB,EAAE;QAAEC,KAAK,EAAE,GAAG;QAAEC,IAAI,EAAE;MAAI;IAAE,GAE7C,CAAC,cAAc,CAAC,CAACC,GAAG,CAAEC,MAAM,iBAC3B9G,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAClF,SAAA,CAAAwC,OAAQ;MAACgE,GAAG,EAAED,MAAO;MAACX,OAAO,EAAE,IAAI,CAACa;IAAS,GAC3CF,MACO,CACX,CACG,CACH,CACQ,CACO,CAAC,eACzB9G,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAAuG,cAAc;MACbC,MAAM,EAAGC,GAAG,IAAK;QACf,IAAIA,GAAG,EAAE;UACP,IAAI,CAACzD,cAAc,GAAGyD,GAAG;UACzBpC,oBAAoB,CAACoC,GAAG,CAAC;QAC3B;MACF,CAAE;MACFrG,KAAK,EAAE,GAAGgE,mBAAmB;IAAK,GAEjCR,aAAa,iBACZtE,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAA0G,KAAK,qBACJpH,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC9E,KAAK,QAAC,aAAkB,CACpB,CACR,EAEA6D,eAAe,iBACdxE,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAA0G,KAAK,qBACJpH,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC9E,KAAK,QAAC,aAAkB,CACpB,CACR,EAEAyD,iBAAiB,CAACyC,GAAG,CAAC,CAACQ,gBAAgB,EAAEC,KAAK,KAAK;MAClD,MAAMC,kBAAkB,GAAGC,kBAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/C,MAAMC,cAAc,GAAG3C,mBAAmB,GAAGyC,kBAAkB,GAAGD,KAAK,GAAGrD,eAAe,GAAG,GAAG;MAC/F,MAAMf,KAAK,GAAGkB,iBAAiB,CAACd,MAAM,GAAGgE,KAAK,GAAG,CAAC;MAClD,IAAII,eAAe;MACnB,IAAInF,KAAK;MAET,IAAI;QACFmF,eAAe,GAAGvE,iBAAiB,CAACD,KAAK,CAAC,IAAI,EAAE;QAChDX,KAAK,GAAG6C,MAAM,CAAClC,KAAK,CAAC,IAAI,EAAE;MAC7B,CAAC,CAAC,OAAOyE,CAAC,EAAE;QACVD,eAAe,GAAG,EAAE;MACtB;MAEA,oBACE1H,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAA0G,KAAK;QAACL,GAAG,EAAE,wBAAwBO,KAAK;MAAG,gBAC1CtH,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAAC/E,OAAA,CAAAkH,UAAU;QACTP,gBAAgB,EAAEA,gBAAiB;QACnC9E,KAAK,EAAEA,KAAM;QACbmF,eAAe,EAAEA,eAAgB;QACjC3B,WAAW,EAAET,gBAAiB;QAC9BT,oBAAoB,EAAEA,oBAAqB;QAC3CiB,QAAQ,EAAG7C,eAAe,IAAK,IAAI,CAAC4E,uBAAuB,CAAC;UAAE5E,eAAe;UAAEC;QAAM,CAAC,CAAE;QACxF4E,YAAY,EAAEL,cAAc,GAAG,GAAG,IAAIJ,gBAAgB,GAAG3C,SAAU,CAAC;QAAA;QACpEM,UAAU,EAAEA,UAAW;QACvBC,kBAAkB,EAAEA,kBAAmB;QACvCE,aAAa,EAAEA,aAAc;QAC7BI,YAAY,EAAEA;MAAa,CAC5B,CAAC,EACDhD,KAAK,iBAAIvC,MAAA,CAAA+C,OAAA,CAAA0C,aAAA,CAACtD,mBAAmB,QAAEI,KAA2B,CACtD,CAAC;IAEZ,CAAC,CACa,CACH,CAAC;EAEpB;AACF;AAACwF,OAAA,CAAAtF,gBAAA,GAAAA,gBAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EA5KYN,gBAAgB,eACR;EACjByC,gBAAgB,EAAE8C,kBAAS,CAACC,IAAI;EAChCjD,UAAU,EAAEgD,kBAAS,CAACC,IAAI;EAC1B7C,MAAM,EAAE4C,kBAAS,CAACE;AACpB,CAAC;AAyKHzF,gBAAgB,CAAC0F,SAAS,GAAG;EAC3B5D,kBAAkB,EAAEyD,kBAAS,CAACI,IAAI;EAClChF,aAAa,EAAE4E,kBAAS,CAACI,IAAI;EAC7BhE,iBAAiB,EAAE4D,kBAAS,CAACK,OAAO,CAACL,kBAAS,CAACM,MAAM,CAAC;EACtDnF,iBAAiB,EAAE6E,kBAAS,CAACK,OAAO,CAACL,kBAAS,CAACO,MAAM,CAAC;EACtDlE,UAAU,EAAE2D,kBAAS,CAACO,MAAM;EAC5BjE,aAAa,EAAE0D,kBAAS,CAACC,IAAI;EAC7BxD,iBAAiB,EAAEuD,kBAAS,CAACC,IAAI;EACjCzD,eAAe,EAAEwD,kBAAS,CAACC,IAAI;EAC/BvD,SAAS,EAAEsD,kBAAS,CAACM,MAAM;EAC3B3D,yBAAyB,EAAEqD,kBAAS,CAACI,IAAI;EACzCxD,UAAU,EAAEoD,kBAAS,CAACM,MAAM;EAC5BrE,eAAe,EAAE+D,kBAAS,CAACM,MAAM;EACjCxD,mBAAmB,EAAEkD,kBAAS,CAACM,MAAM;EACrCzE,oBAAoB,EAAEmE,kBAAS,CAACI,IAAI;EACpCvD,oBAAoB,EAAEmD,kBAAS,CAACC,IAAI;EACpClD,oBAAoB,EAAEiD,kBAAS,CAACI,IAAI;EACpCnD,kBAAkB,EAAE+C,kBAAS,CAACE,MAAM;EACpC7C,YAAY,EAAE2C,kBAAS,CAACM,MAAM;EAC9BhD,gBAAgB,EAAE0C,kBAAS,CAACE,MAAM;EAClC3C,YAAY,EAAEyC,kBAAS,CAACQ,KAAK,CAAC;IAC5BC,GAAG,EAAET,kBAAS,CAACI,IAAI,CAACM,UAAU;IAC9BC,MAAM,EAAEX,kBAAS,CAACI,IAAI,CAACM;EACzB,CAAC;AACH,CAAC;AAAC,IAAAE,QAAA,GAAAb,OAAA,CAAAhF,OAAA,GAEaN,gBAAgB","ignoreList":[]}