@pie-element/categorize 13.2.2-beta.4 → 13.2.2-beta.6

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 (99) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/configure/CHANGELOG.md +8 -0
  3. package/configure/package.json +3 -3
  4. package/controller/CHANGELOG.md +8 -0
  5. package/controller/package.json +1 -1
  6. package/package.json +3 -3
  7. package/configure/lib/__tests__/main.test.js +0 -100
  8. package/configure/lib/__tests__/utils.js +0 -39
  9. package/configure/lib/defaults.js +0 -220
  10. package/configure/lib/defaults.js.map +0 -1
  11. package/configure/lib/design/__tests__/builder.test.js +0 -34
  12. package/configure/lib/design/__tests__/buttons.test.js +0 -36
  13. package/configure/lib/design/__tests__/header.test.js +0 -37
  14. package/configure/lib/design/__tests__/index.test.js +0 -269
  15. package/configure/lib/design/__tests__/input-header.test.js +0 -41
  16. package/configure/lib/design/builder.js +0 -55
  17. package/configure/lib/design/builder.js.map +0 -1
  18. package/configure/lib/design/buttons.js +0 -59
  19. package/configure/lib/design/buttons.js.map +0 -1
  20. package/configure/lib/design/categories/RowLabel.js +0 -66
  21. package/configure/lib/design/categories/RowLabel.js.map +0 -1
  22. package/configure/lib/design/categories/__tests__/alternateResponses.test.js +0 -93
  23. package/configure/lib/design/categories/__tests__/category.test.js +0 -65
  24. package/configure/lib/design/categories/__tests__/choice-preview.test.js +0 -52
  25. package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +0 -63
  26. package/configure/lib/design/categories/__tests__/index.test.js +0 -91
  27. package/configure/lib/design/categories/alternateResponses.js +0 -116
  28. package/configure/lib/design/categories/alternateResponses.js.map +0 -1
  29. package/configure/lib/design/categories/category.js +0 -153
  30. package/configure/lib/design/categories/category.js.map +0 -1
  31. package/configure/lib/design/categories/choice-preview.js +0 -79
  32. package/configure/lib/design/categories/choice-preview.js.map +0 -1
  33. package/configure/lib/design/categories/droppable-placeholder.js +0 -93
  34. package/configure/lib/design/categories/droppable-placeholder.js.map +0 -1
  35. package/configure/lib/design/categories/index.js +0 -256
  36. package/configure/lib/design/categories/index.js.map +0 -1
  37. package/configure/lib/design/choices/__tests__/choice.test.js +0 -62
  38. package/configure/lib/design/choices/__tests__/config.test.js +0 -66
  39. package/configure/lib/design/choices/__tests__/index.test.js +0 -70
  40. package/configure/lib/design/choices/choice.js +0 -187
  41. package/configure/lib/design/choices/choice.js.map +0 -1
  42. package/configure/lib/design/choices/config.js +0 -58
  43. package/configure/lib/design/choices/config.js.map +0 -1
  44. package/configure/lib/design/choices/index.js +0 -197
  45. package/configure/lib/design/choices/index.js.map +0 -1
  46. package/configure/lib/design/header.js +0 -71
  47. package/configure/lib/design/header.js.map +0 -1
  48. package/configure/lib/design/index.js +0 -741
  49. package/configure/lib/design/index.js.map +0 -1
  50. package/configure/lib/design/input-header.js +0 -105
  51. package/configure/lib/design/input-header.js.map +0 -1
  52. package/configure/lib/design/utils.js +0 -12
  53. package/configure/lib/design/utils.js.map +0 -1
  54. package/configure/lib/index.js +0 -148
  55. package/configure/lib/index.js.map +0 -1
  56. package/configure/lib/main.js +0 -44
  57. package/configure/lib/main.js.map +0 -1
  58. package/configure/lib/utils.js +0 -43
  59. package/configure/lib/utils.js.map +0 -1
  60. package/controller/lib/__tests__/index.test.js +0 -526
  61. package/controller/lib/defaults.js +0 -31
  62. package/controller/lib/defaults.js.map +0 -1
  63. package/controller/lib/index.js +0 -506
  64. package/controller/lib/index.js.map +0 -1
  65. package/controller/lib/utils.js +0 -69
  66. package/controller/lib/utils.js.map +0 -1
  67. package/docs/demo/.pie/.configure/package.json +0 -10
  68. package/docs/demo/.pie/.configure/yarn.lock +0 -2122
  69. package/docs/demo/.pie/.controllers/package.json +0 -10
  70. package/docs/demo/.pie/.controllers/yarn.lock +0 -110
  71. package/docs/demo/.pie/info.entry.js +0 -89
  72. package/docs/demo/.pie/info.webpack.config.js +0 -119
  73. package/docs/demo/.pie/package.json +0 -10
  74. package/docs/demo/.pie/yarn.lock +0 -2137
  75. package/docs/demo/pie.manifest.json +0 -11
  76. package/lib/__tests__/index.test.js +0 -197
  77. package/lib/categorize/__tests__/categories.test.js +0 -138
  78. package/lib/categorize/__tests__/category.test.js +0 -137
  79. package/lib/categorize/__tests__/choice.test.js +0 -88
  80. package/lib/categorize/__tests__/choices.test.js +0 -118
  81. package/lib/categorize/__tests__/droppable-placeholder.test.js +0 -96
  82. package/lib/categorize/__tests__/grid-content.test.js +0 -48
  83. package/lib/categorize/__tests__/index.test.js +0 -250
  84. package/lib/categorize/categories.js +0 -135
  85. package/lib/categorize/categories.js.map +0 -1
  86. package/lib/categorize/category.js +0 -67
  87. package/lib/categorize/category.js.map +0 -1
  88. package/lib/categorize/choice.js +0 -140
  89. package/lib/categorize/choice.js.map +0 -1
  90. package/lib/categorize/choices.js +0 -99
  91. package/lib/categorize/choices.js.map +0 -1
  92. package/lib/categorize/droppable-placeholder.js +0 -84
  93. package/lib/categorize/droppable-placeholder.js.map +0 -1
  94. package/lib/categorize/grid-content.js +0 -55
  95. package/lib/categorize/grid-content.js.map +0 -1
  96. package/lib/categorize/index.js +0 -450
  97. package/lib/categorize/index.js.map +0 -1
  98. package/lib/index.js +0 -316
  99. package/lib/index.js.map +0 -1
@@ -1,269 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var _react = _interopRequireDefault(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _styles = require("@mui/material/styles");
8
- var _index = require("../index");
9
- const model = extras => ({
10
- choices: [{
11
- id: '1',
12
- content: 'content'
13
- }],
14
- correctResponse: [{
15
- category: '1',
16
- choices: ['1']
17
- }],
18
- categories: [{
19
- id: '1',
20
- label: 'Category Title'
21
- }],
22
- ...extras
23
- });
24
- jest.mock('@pie-lib/config-ui', () => {
25
- const React = require('react');
26
- const InputContainer = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
27
- ref: ref
28
- }, props)));
29
- InputContainer.displayName = 'InputContainer';
30
- return {
31
- layout: {
32
- ConfigLayout: props => /*#__PURE__*/React.createElement("div", props)
33
- },
34
- choiceUtils: {
35
- firstAvailableIndex: jest.fn()
36
- },
37
- settings: {
38
- Panel: props => /*#__PURE__*/React.createElement("div", props),
39
- toggle: jest.fn(),
40
- radio: jest.fn()
41
- },
42
- FeedbackConfig: props => /*#__PURE__*/React.createElement("div", props),
43
- AlertDialog: props => /*#__PURE__*/React.createElement("div", props),
44
- InputContainer
45
- };
46
- });
47
- jest.mock('@pie-lib/categorize', () => ({
48
- ensureNoExtraChoicesInAlternate: jest.fn(),
49
- countInAnswer: jest.fn().mockReturnValue(1),
50
- ensureNoExtraChoicesInAnswer: jest.fn()
51
- }));
52
- jest.mock('@pie-lib/drag', () => ({
53
- DragProvider: ({
54
- children
55
- }) => /*#__PURE__*/_react.default.createElement("div", null, children),
56
- uid: {
57
- generateId: jest.fn(() => 'test-uid'),
58
- Provider: ({
59
- children
60
- }) => /*#__PURE__*/_react.default.createElement("div", null, children),
61
- withUid: Component => Component
62
- }
63
- }));
64
- jest.mock('@pie-lib/editable-html-tip-tap', () => props => /*#__PURE__*/_react.default.createElement("div", props));
65
- jest.mock('@pie-lib/math-rendering', () => ({
66
- renderMath: jest.fn()
67
- }));
68
- jest.mock('@pie-lib/translator', () => {
69
- const translator = {
70
- t: key => key
71
- };
72
- return {
73
- __esModule: true,
74
- default: {
75
- translator
76
- }
77
- };
78
- });
79
- jest.mock('../categories', () => ({
80
- __esModule: true,
81
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
82
- }));
83
- jest.mock('../categories/alternateResponses', () => ({
84
- __esModule: true,
85
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
86
- }));
87
- jest.mock('../choices', () => ({
88
- __esModule: true,
89
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
90
- }));
91
- const theme = (0, _styles.createTheme)();
92
- describe('Design', () => {
93
- let onChange = jest.fn();
94
- beforeEach(() => {
95
- onChange = jest.fn();
96
- });
97
- const renderDesign = extras => {
98
- const defaults = {
99
- classes: {
100
- design: 'design',
101
- text: 'text'
102
- },
103
- className: 'className',
104
- onChange,
105
- model: model(),
106
- uid: '1'
107
- };
108
- const props = {
109
- ...defaults,
110
- ...extras
111
- };
112
- return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
113
- theme: theme
114
- }, /*#__PURE__*/_react.default.createElement(_index.Design, props)));
115
- };
116
- describe('renders', () => {
117
- it('renders without crashing', () => {
118
- const {
119
- container
120
- } = renderDesign();
121
- expect(container).toBeInTheDocument();
122
- });
123
- });
124
- describe('onDragEnd', () => {
125
- const createInstance = (modelExtras = {}) => {
126
- const instance = new _index.Design({
127
- model: model({
128
- allowAlternateEnabled: true,
129
- ...modelExtras
130
- }),
131
- onChange
132
- });
133
- instance.setState = jest.fn();
134
- instance.removeChoiceFromSource = jest.fn();
135
- instance.moveChoice = jest.fn();
136
- instance.addChoiceToCategory = jest.fn();
137
- instance.moveChoiceInAlternate = jest.fn();
138
- instance.addChoiceToAlternateCategory = jest.fn();
139
- return instance;
140
- };
141
- const eventFor = ({
142
- activeData,
143
- overData
144
- }) => ({
145
- active: activeData ? {
146
- data: {
147
- current: activeData
148
- }
149
- } : null,
150
- over: overData ? {
151
- data: {
152
- current: overData
153
- }
154
- } : null
155
- });
156
- it('routes choice-preview with no target to removeChoiceFromSource', () => {
157
- const instance = createInstance();
158
- const activeData = {
159
- type: 'choice-preview',
160
- id: 'c1-cat1-0',
161
- categoryId: '1',
162
- choiceIndex: 0
163
- };
164
- instance.onDragEnd(eventFor({
165
- activeData
166
- }));
167
- expect(instance.removeChoiceFromSource).toHaveBeenCalledWith(activeData, 0, expect.objectContaining({
168
- allowAlternateEnabled: true,
169
- categories: expect.any(Array),
170
- choices: expect.any(Array)
171
- }));
172
- });
173
- it('routes choice-preview dropped on choice pool to removeChoiceFromSource', () => {
174
- const instance = createInstance();
175
- const activeData = {
176
- type: 'choice-preview',
177
- id: 'c1-cat1-0',
178
- categoryId: '1',
179
- choiceIndex: 0
180
- };
181
- const overData = {
182
- type: 'choice'
183
- };
184
- instance.onDragEnd(eventFor({
185
- activeData,
186
- overData
187
- }));
188
- expect(instance.removeChoiceFromSource).toHaveBeenCalled();
189
- expect(instance.moveChoice).not.toHaveBeenCalled();
190
- });
191
- it('routes choice-preview dropped on category to moveChoice', () => {
192
- const instance = createInstance();
193
- const activeData = {
194
- type: 'choice-preview',
195
- id: 'c1-cat1-0',
196
- categoryId: '1',
197
- choiceIndex: 2
198
- };
199
- const overData = {
200
- type: 'category',
201
- id: '2'
202
- };
203
- instance.onDragEnd(eventFor({
204
- activeData,
205
- overData
206
- }));
207
- expect(instance.moveChoice).toHaveBeenCalledWith('c1', '1', '2', 2);
208
- });
209
- it('routes new choice dropped on category to addChoiceToCategory', () => {
210
- const instance = createInstance();
211
- const activeData = {
212
- type: 'choice',
213
- id: '9'
214
- };
215
- const overData = {
216
- type: 'category',
217
- id: '2'
218
- };
219
- instance.onDragEnd(eventFor({
220
- activeData,
221
- overData
222
- }));
223
- expect(instance.addChoiceToCategory).toHaveBeenCalledWith({
224
- id: '9'
225
- }, '2');
226
- });
227
- it('routes choice-preview dropped on category-alternate to moveChoiceInAlternate', () => {
228
- const instance = createInstance();
229
- const activeData = {
230
- type: 'choice-preview',
231
- id: 'c1-cat1-0',
232
- categoryId: '1',
233
- choiceIndex: 1
234
- };
235
- const overData = {
236
- type: 'category-alternate',
237
- id: '2',
238
- alternateResponseIndex: 3
239
- };
240
- instance.onDragEnd(eventFor({
241
- activeData,
242
- overData
243
- }));
244
- expect(instance.moveChoiceInAlternate).toHaveBeenCalledWith('c1', '1', '2', 1, 3);
245
- });
246
- it('routes new choice dropped on category-alternate to addChoiceToAlternateCategory', () => {
247
- const instance = createInstance({
248
- allowAlternateEnabled: true
249
- });
250
- const activeData = {
251
- type: 'choice',
252
- id: '11'
253
- };
254
- const overData = {
255
- type: 'category-alternate',
256
- id: '2',
257
- alternateResponseIndex: 4
258
- };
259
- instance.onDragEnd(eventFor({
260
- activeData,
261
- overData
262
- }));
263
- expect(instance.addChoiceToAlternateCategory).toHaveBeenCalledWith({
264
- id: '11'
265
- }, '2', 4);
266
- });
267
- });
268
- });
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4IiwibW9kZWwiLCJleHRyYXMiLCJjaG9pY2VzIiwiaWQiLCJjb250ZW50IiwiY29ycmVjdFJlc3BvbnNlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwibGFiZWwiLCJqZXN0IiwibW9jayIsIlJlYWN0IiwiSW5wdXRDb250YWluZXIiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiZGVmYXVsdCIsImRpc3BsYXlOYW1lIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwiY2hvaWNlVXRpbHMiLCJmaXJzdEF2YWlsYWJsZUluZGV4IiwiZm4iLCJzZXR0aW5ncyIsIlBhbmVsIiwidG9nZ2xlIiwicmFkaW8iLCJGZWVkYmFja0NvbmZpZyIsIkFsZXJ0RGlhbG9nIiwiZW5zdXJlTm9FeHRyYUNob2ljZXNJbkFsdGVybmF0ZSIsImNvdW50SW5BbnN3ZXIiLCJtb2NrUmV0dXJuVmFsdWUiLCJlbnN1cmVOb0V4dHJhQ2hvaWNlc0luQW5zd2VyIiwiRHJhZ1Byb3ZpZGVyIiwiY2hpbGRyZW4iLCJ1aWQiLCJnZW5lcmF0ZUlkIiwiUHJvdmlkZXIiLCJ3aXRoVWlkIiwiQ29tcG9uZW50IiwicmVuZGVyTWF0aCIsInRyYW5zbGF0b3IiLCJ0Iiwia2V5IiwiX19lc01vZHVsZSIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiYmVmb3JlRWFjaCIsInJlbmRlckRlc2lnbiIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImRlc2lnbiIsInRleHQiLCJjbGFzc05hbWUiLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiRGVzaWduIiwiaXQiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsImNyZWF0ZUluc3RhbmNlIiwibW9kZWxFeHRyYXMiLCJpbnN0YW5jZSIsImFsbG93QWx0ZXJuYXRlRW5hYmxlZCIsInNldFN0YXRlIiwicmVtb3ZlQ2hvaWNlRnJvbVNvdXJjZSIsIm1vdmVDaG9pY2UiLCJhZGRDaG9pY2VUb0NhdGVnb3J5IiwibW92ZUNob2ljZUluQWx0ZXJuYXRlIiwiYWRkQ2hvaWNlVG9BbHRlcm5hdGVDYXRlZ29yeSIsImV2ZW50Rm9yIiwiYWN0aXZlRGF0YSIsIm92ZXJEYXRhIiwiYWN0aXZlIiwiZGF0YSIsImN1cnJlbnQiLCJvdmVyIiwidHlwZSIsImNhdGVnb3J5SWQiLCJjaG9pY2VJbmRleCIsIm9uRHJhZ0VuZCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsImFueSIsIkFycmF5IiwidG9IYXZlQmVlbkNhbGxlZCIsIm5vdCIsImFsdGVybmF0ZVJlc3BvbnNlSW5kZXgiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzaWduL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IERlc2lnbiB9IGZyb20gJy4uL2luZGV4JztcblxuY29uc3QgbW9kZWwgPSAoZXh0cmFzKSA9PiAoe1xuICBjaG9pY2VzOiBbeyBpZDogJzEnLCBjb250ZW50OiAnY29udGVudCcgfV0sXG4gIGNvcnJlY3RSZXNwb25zZTogW3sgY2F0ZWdvcnk6ICcxJywgY2hvaWNlczogWycxJ10gfV0sXG4gIGNhdGVnb3JpZXM6IFt7IGlkOiAnMScsIGxhYmVsOiAnQ2F0ZWdvcnkgVGl0bGUnIH1dLFxuICAuLi5leHRyYXMsXG59KTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiB7XG4gIGNvbnN0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbiAgY29uc3QgSW5wdXRDb250YWluZXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiA8ZGl2IHJlZj17cmVmfSB7Li4ucHJvcHN9IC8+KTtcbiAgSW5wdXRDb250YWluZXIuZGlzcGxheU5hbWUgPSAnSW5wdXRDb250YWluZXInO1xuXG4gIHJldHVybiB7XG4gICAgbGF5b3V0OiB7XG4gICAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICAgIH0sXG4gICAgY2hvaWNlVXRpbHM6IHtcbiAgICAgIGZpcnN0QXZhaWxhYmxlSW5kZXg6IGplc3QuZm4oKSxcbiAgICB9LFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBQYW5lbDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG4gICAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICAgIHJhZGlvOiBqZXN0LmZuKCksXG4gICAgfSxcbiAgICBGZWVkYmFja0NvbmZpZzogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG4gICAgQWxlcnREaWFsb2c6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICAgIElucHV0Q29udGFpbmVyLFxuICB9O1xufSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY2F0ZWdvcml6ZScsICgpID0+ICh7XG4gIGVuc3VyZU5vRXh0cmFDaG9pY2VzSW5BbHRlcm5hdGU6IGplc3QuZm4oKSxcbiAgY291bnRJbkFuc3dlcjogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSgxKSxcbiAgZW5zdXJlTm9FeHRyYUNob2ljZXNJbkFuc3dlcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgdWlkOiB7XG4gICAgZ2VuZXJhdGVJZDogamVzdC5mbigoKSA9PiAndGVzdC11aWQnKSxcbiAgICBQcm92aWRlcjogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdj57Y2hpbGRyZW59PC9kaXY+LFxuICAgIHdpdGhVaWQ6IChDb21wb25lbnQpID0+IENvbXBvbmVudCxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnLCAoKSA9PiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPik7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJywgKCkgPT4gKHsgcmVuZGVyTWF0aDogamVzdC5mbigpIH0pKTtcbmplc3QubW9jaygnQHBpZS1saWIvdHJhbnNsYXRvcicsICgpID0+IHtcbiAgY29uc3QgdHJhbnNsYXRvciA9IHtcbiAgICB0OiAoa2V5KSA9PiBrZXksXG4gIH07XG4gIHJldHVybiB7XG4gICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICBkZWZhdWx0OiB7IHRyYW5zbGF0b3IgfSxcbiAgfTtcbn0pO1xuXG5qZXN0Lm1vY2soJy4uL2NhdGVnb3JpZXMnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbn0pKTtcbmplc3QubW9jaygnLi4vY2F0ZWdvcmllcy9hbHRlcm5hdGVSZXNwb25zZXMnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbn0pKTtcbmplc3QubW9jaygnLi4vY2hvaWNlcycsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdEZXNpZ24nLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyRGVzaWduID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3NlczogeyBkZXNpZ246ICdkZXNpZ24nLCB0ZXh0OiAndGV4dCcgfSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG1vZGVsOiBtb2RlbCgpLFxuICAgICAgdWlkOiAnMScsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxEZXNpZ24gey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJEZXNpZ24oKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdvbkRyYWdFbmQnLCAoKSA9PiB7XG4gICAgY29uc3QgY3JlYXRlSW5zdGFuY2UgPSAobW9kZWxFeHRyYXMgPSB7fSkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgRGVzaWduKHtcbiAgICAgICAgbW9kZWw6IG1vZGVsKHtcbiAgICAgICAgICBhbGxvd0FsdGVybmF0ZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgLi4ubW9kZWxFeHRyYXMsXG4gICAgICAgIH0pLFxuICAgICAgICBvbkNoYW5nZSxcbiAgICAgIH0pO1xuXG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSA9IGplc3QuZm4oKTtcbiAgICAgIGluc3RhbmNlLnJlbW92ZUNob2ljZUZyb21Tb3VyY2UgPSBqZXN0LmZuKCk7XG4gICAgICBpbnN0YW5jZS5tb3ZlQ2hvaWNlID0gamVzdC5mbigpO1xuICAgICAgaW5zdGFuY2UuYWRkQ2hvaWNlVG9DYXRlZ29yeSA9IGplc3QuZm4oKTtcbiAgICAgIGluc3RhbmNlLm1vdmVDaG9pY2VJbkFsdGVybmF0ZSA9IGplc3QuZm4oKTtcbiAgICAgIGluc3RhbmNlLmFkZENob2ljZVRvQWx0ZXJuYXRlQ2F0ZWdvcnkgPSBqZXN0LmZuKCk7XG5cbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgY29uc3QgZXZlbnRGb3IgPSAoeyBhY3RpdmVEYXRhLCBvdmVyRGF0YSB9KSA9PiAoe1xuICAgICAgYWN0aXZlOiBhY3RpdmVEYXRhID8geyBkYXRhOiB7IGN1cnJlbnQ6IGFjdGl2ZURhdGEgfSB9IDogbnVsbCxcbiAgICAgIG92ZXI6IG92ZXJEYXRhID8geyBkYXRhOiB7IGN1cnJlbnQ6IG92ZXJEYXRhIH0gfSA6IG51bGwsXG4gICAgfSk7XG5cbiAgICBpdCgncm91dGVzIGNob2ljZS1wcmV2aWV3IHdpdGggbm8gdGFyZ2V0IHRvIHJlbW92ZUNob2ljZUZyb21Tb3VyY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICBjb25zdCBhY3RpdmVEYXRhID0ge1xuICAgICAgICB0eXBlOiAnY2hvaWNlLXByZXZpZXcnLFxuICAgICAgICBpZDogJ2MxLWNhdDEtMCcsXG4gICAgICAgIGNhdGVnb3J5SWQ6ICcxJyxcbiAgICAgICAgY2hvaWNlSW5kZXg6IDAsXG4gICAgICB9O1xuXG4gICAgICBpbnN0YW5jZS5vbkRyYWdFbmQoZXZlbnRGb3IoeyBhY3RpdmVEYXRhIH0pKTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLnJlbW92ZUNob2ljZUZyb21Tb3VyY2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICBhY3RpdmVEYXRhLFxuICAgICAgICAwLFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgYWxsb3dBbHRlcm5hdGVFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIGNhdGVnb3JpZXM6IGV4cGVjdC5hbnkoQXJyYXkpLFxuICAgICAgICAgIGNob2ljZXM6IGV4cGVjdC5hbnkoQXJyYXkpLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgncm91dGVzIGNob2ljZS1wcmV2aWV3IGRyb3BwZWQgb24gY2hvaWNlIHBvb2wgdG8gcmVtb3ZlQ2hvaWNlRnJvbVNvdXJjZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgIGNvbnN0IGFjdGl2ZURhdGEgPSB7XG4gICAgICAgIHR5cGU6ICdjaG9pY2UtcHJldmlldycsXG4gICAgICAgIGlkOiAnYzEtY2F0MS0wJyxcbiAgICAgICAgY2F0ZWdvcnlJZDogJzEnLFxuICAgICAgICBjaG9pY2VJbmRleDogMCxcbiAgICAgIH07XG4gICAgICBjb25zdCBvdmVyRGF0YSA9IHsgdHlwZTogJ2Nob2ljZScgfTtcblxuICAgICAgaW5zdGFuY2Uub25EcmFnRW5kKGV2ZW50Rm9yKHsgYWN0aXZlRGF0YSwgb3ZlckRhdGEgfSkpO1xuXG4gICAgICBleHBlY3QoaW5zdGFuY2UucmVtb3ZlQ2hvaWNlRnJvbVNvdXJjZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLm1vdmVDaG9pY2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgncm91dGVzIGNob2ljZS1wcmV2aWV3IGRyb3BwZWQgb24gY2F0ZWdvcnkgdG8gbW92ZUNob2ljZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgIGNvbnN0IGFjdGl2ZURhdGEgPSB7XG4gICAgICAgIHR5cGU6ICdjaG9pY2UtcHJldmlldycsXG4gICAgICAgIGlkOiAnYzEtY2F0MS0wJyxcbiAgICAgICAgY2F0ZWdvcnlJZDogJzEnLFxuICAgICAgICBjaG9pY2VJbmRleDogMixcbiAgICAgIH07XG4gICAgICBjb25zdCBvdmVyRGF0YSA9IHsgdHlwZTogJ2NhdGVnb3J5JywgaWQ6ICcyJyB9O1xuXG4gICAgICBpbnN0YW5jZS5vbkRyYWdFbmQoZXZlbnRGb3IoeyBhY3RpdmVEYXRhLCBvdmVyRGF0YSB9KSk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5tb3ZlQ2hvaWNlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnYzEnLCAnMScsICcyJywgMik7XG4gICAgfSk7XG5cbiAgICBpdCgncm91dGVzIG5ldyBjaG9pY2UgZHJvcHBlZCBvbiBjYXRlZ29yeSB0byBhZGRDaG9pY2VUb0NhdGVnb3J5JywgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgY29uc3QgYWN0aXZlRGF0YSA9IHsgdHlwZTogJ2Nob2ljZScsIGlkOiAnOScgfTtcbiAgICAgIGNvbnN0IG92ZXJEYXRhID0geyB0eXBlOiAnY2F0ZWdvcnknLCBpZDogJzInIH07XG5cbiAgICAgIGluc3RhbmNlLm9uRHJhZ0VuZChldmVudEZvcih7IGFjdGl2ZURhdGEsIG92ZXJEYXRhIH0pKTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLmFkZENob2ljZVRvQ2F0ZWdvcnkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgaWQ6ICc5JyB9LCAnMicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JvdXRlcyBjaG9pY2UtcHJldmlldyBkcm9wcGVkIG9uIGNhdGVnb3J5LWFsdGVybmF0ZSB0byBtb3ZlQ2hvaWNlSW5BbHRlcm5hdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICBjb25zdCBhY3RpdmVEYXRhID0ge1xuICAgICAgICB0eXBlOiAnY2hvaWNlLXByZXZpZXcnLFxuICAgICAgICBpZDogJ2MxLWNhdDEtMCcsXG4gICAgICAgIGNhdGVnb3J5SWQ6ICcxJyxcbiAgICAgICAgY2hvaWNlSW5kZXg6IDEsXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3ZlckRhdGEgPSB7IHR5cGU6ICdjYXRlZ29yeS1hbHRlcm5hdGUnLCBpZDogJzInLCBhbHRlcm5hdGVSZXNwb25zZUluZGV4OiAzIH07XG5cbiAgICAgIGluc3RhbmNlLm9uRHJhZ0VuZChldmVudEZvcih7IGFjdGl2ZURhdGEsIG92ZXJEYXRhIH0pKTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLm1vdmVDaG9pY2VJbkFsdGVybmF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2MxJywgJzEnLCAnMicsIDEsIDMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JvdXRlcyBuZXcgY2hvaWNlIGRyb3BwZWQgb24gY2F0ZWdvcnktYWx0ZXJuYXRlIHRvIGFkZENob2ljZVRvQWx0ZXJuYXRlQ2F0ZWdvcnknLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKHsgYWxsb3dBbHRlcm5hdGVFbmFibGVkOiB0cnVlIH0pO1xuICAgICAgY29uc3QgYWN0aXZlRGF0YSA9IHsgdHlwZTogJ2Nob2ljZScsIGlkOiAnMTEnIH07XG4gICAgICBjb25zdCBvdmVyRGF0YSA9IHsgdHlwZTogJ2NhdGVnb3J5LWFsdGVybmF0ZScsIGlkOiAnMicsIGFsdGVybmF0ZVJlc3BvbnNlSW5kZXg6IDQgfTtcblxuICAgICAgaW5zdGFuY2Uub25EcmFnRW5kKGV2ZW50Rm9yKHsgYWN0aXZlRGF0YSwgb3ZlckRhdGEgfSkpO1xuXG4gICAgICBleHBlY3QoaW5zdGFuY2UuYWRkQ2hvaWNlVG9BbHRlcm5hdGVDYXRlZ29yeSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBpZDogJzExJyB9LCAnMicsIDQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxH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
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _styles = require("@mui/material/styles");
7
- var _inputHeader = require("../input-header");
8
- jest.mock('@pie-lib/editable-html-tip-tap', () => props => /*#__PURE__*/_react.default.createElement("div", props));
9
- const theme = (0, _styles.createTheme)();
10
- describe('InputHeader', () => {
11
- let onChange = jest.fn();
12
- let onDelete = jest.fn();
13
- const renderInputHeader = extras => {
14
- const defaults = {
15
- classes: {
16
- inputHeader: 'inputHeader',
17
- editor: 'editor'
18
- },
19
- className: 'className',
20
- onChange,
21
- onDelete
22
- };
23
- const props = {
24
- ...defaults,
25
- ...extras,
26
- configuration: {}
27
- };
28
- return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
29
- theme: theme
30
- }, /*#__PURE__*/_react.default.createElement(_inputHeader.InputHeader, props)));
31
- };
32
- describe('renders', () => {
33
- it('renders without crashing', () => {
34
- const {
35
- container
36
- } = renderInputHeader();
37
- expect(container).toBeInTheDocument();
38
- });
39
- });
40
- });
41
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2lucHV0SGVhZGVyIiwiamVzdCIsIm1vY2siLCJwcm9wcyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwidGhlbWUiLCJjcmVhdGVUaGVtZSIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJmbiIsIm9uRGVsZXRlIiwicmVuZGVySW5wdXRIZWFkZXIiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJpbnB1dEhlYWRlciIsImVkaXRvciIsImNsYXNzTmFtZSIsImNvbmZpZ3VyYXRpb24iLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiSW5wdXRIZWFkZXIiLCJpdCIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2lnbi9fX3Rlc3RzX18vaW5wdXQtaGVhZGVyLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgSW5wdXRIZWFkZXIgfSBmcm9tICcuLi9pbnB1dC1oZWFkZXInO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwtdGlwLXRhcCcsICgpID0+IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+KTtcblxuY29uc3QgdGhlbWUgPSBjcmVhdGVUaGVtZSgpO1xuXG5kZXNjcmliZSgnSW5wdXRIZWFkZXInLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IG9uRGVsZXRlID0gamVzdC5mbigpO1xuICBjb25zdCByZW5kZXJJbnB1dEhlYWRlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHsgaW5wdXRIZWFkZXI6ICdpbnB1dEhlYWRlcicsIGVkaXRvcjogJ2VkaXRvcicgfSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMsIGNvbmZpZ3VyYXRpb246IHt9IH07XG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxJbnB1dEhlYWRlciB7Li4ucHJvcHN9IC8+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJJbnB1dEhlYWRlcigpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLE1BQU9DLEtBQUssaUJBQUtSLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLFFBQVNGLEtBQVEsQ0FBQyxDQUFDO0FBRWhGLE1BQU1HLEtBQUssR0FBRyxJQUFBQyxtQkFBVyxFQUFDLENBQUM7QUFFM0JDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTTtFQUM1QixJQUFJQyxRQUFRLEdBQUdSLElBQUksQ0FBQ1MsRUFBRSxDQUFDLENBQUM7RUFDeEIsSUFBSUMsUUFBUSxHQUFHVixJQUFJLENBQUNTLEVBQUUsQ0FBQyxDQUFDO0VBQ3hCLE1BQU1FLGlCQUFpQixHQUFJQyxNQUFNLElBQUs7SUFDcEMsTUFBTUMsUUFBUSxHQUFHO01BQ2ZDLE9BQU8sRUFBRTtRQUFFQyxXQUFXLEVBQUUsYUFBYTtRQUFFQyxNQUFNLEVBQUU7TUFBUyxDQUFDO01BQ3pEQyxTQUFTLEVBQUUsV0FBVztNQUN0QlQsUUFBUTtNQUNSRTtJQUNGLENBQUM7SUFDRCxNQUFNUixLQUFLLEdBQUc7TUFBRSxHQUFHVyxRQUFRO01BQUUsR0FBR0QsTUFBTTtNQUFFTSxhQUFhLEVBQUUsQ0FBQztJQUFFLENBQUM7SUFDM0QsT0FBTyxJQUFBQyxjQUFNLGVBQ1h6QixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxDQUFDTixPQUFBLENBQUFzQixhQUFhO01BQUNmLEtBQUssRUFBRUE7SUFBTSxnQkFDMUJYLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLENBQUNMLFlBQUEsQ0FBQXNCLFdBQVcsRUFBS25CLEtBQVEsQ0FDWixDQUNqQixDQUFDO0VBQ0gsQ0FBQztFQUNESyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07SUFDeEJlLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxNQUFNO01BQ25DLE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUdaLGlCQUFpQixDQUFDLENBQUM7TUFDekNhLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildCategories = exports.buildAlternateResponses = void 0;
7
- var _lodashEs = require("lodash-es");
8
- const buildCategories = (categories, choices, correctResponse) => {
9
- const clonedCategories = (0, _lodashEs.cloneDeep)(categories);
10
- return clonedCategories.map(category => {
11
- const cr = correctResponse.find(cr => cr.category === category.id);
12
- if (cr) {
13
- category.choices = (cr.choices || []).map(choiceId => {
14
- const choice = choices.find(h => h.id === choiceId);
15
- if (choice) {
16
- return Object.assign({}, {
17
- id: choice.id,
18
- content: choice.content
19
- });
20
- }
21
- });
22
- }
23
- return category;
24
- });
25
- };
26
- exports.buildCategories = buildCategories;
27
- const getChoices = (cat, choices, index) => {
28
- if (!cat.alternateResponses || cat.alternateResponses.length === 0) {
29
- return [];
30
- }
31
- return (cat.alternateResponses[index] || []).map(alt => {
32
- return choices.find(ch => ch.id === alt);
33
- });
34
- };
35
- const buildAlternateResponses = (categories, choices, correctResponse) => {
36
- const mostAlternates = correctResponse.reduce((mostAlt, cat) => {
37
- if (cat.alternateResponses && cat.alternateResponses.length >= mostAlt) {
38
- return cat.alternateResponses.length;
39
- }
40
- return mostAlt;
41
- }, 0);
42
- const alternatesArray = new Array(mostAlternates).fill(0);
43
- return alternatesArray.map((val, index) => {
44
- return correctResponse.map((cat, catIndex) => {
45
- const currentCategory = categories[catIndex];
46
- return {
47
- id: currentCategory.id,
48
- label: currentCategory.label,
49
- choices: getChoices(cat, choices, index)
50
- };
51
- });
52
- });
53
- };
54
- exports.buildAlternateResponses = buildAlternateResponses;
55
- //# sourceMappingURL=builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.js","names":["_lodashEs","require","buildCategories","categories","choices","correctResponse","clonedCategories","cloneDeep","map","category","cr","find","id","choiceId","choice","h","Object","assign","content","exports","getChoices","cat","index","alternateResponses","length","alt","ch","buildAlternateResponses","mostAlternates","reduce","mostAlt","alternatesArray","Array","fill","val","catIndex","currentCategory","label"],"sources":["../../src/design/builder.js"],"sourcesContent":["import { cloneDeep } from 'lodash-es';\n\nexport const buildCategories = (categories, choices, correctResponse) => {\n const clonedCategories = cloneDeep(categories);\n\n return clonedCategories.map((category) => {\n const cr = correctResponse.find((cr) => cr.category === category.id);\n\n if (cr) {\n category.choices = (cr.choices || []).map((choiceId) => {\n const choice = choices.find((h) => h.id === choiceId);\n if (choice) {\n return Object.assign({}, { id: choice.id, content: choice.content });\n }\n });\n }\n\n return category;\n });\n};\n\nconst getChoices = (cat, choices, index) => {\n if (!cat.alternateResponses || cat.alternateResponses.length === 0) {\n return [];\n }\n\n return (cat.alternateResponses[index] || []).map((alt) => {\n return choices.find((ch) => ch.id === alt);\n });\n};\n\nexport const buildAlternateResponses = (categories, choices, correctResponse) => {\n const mostAlternates = correctResponse.reduce((mostAlt, cat) => {\n if (cat.alternateResponses && cat.alternateResponses.length >= mostAlt) {\n return cat.alternateResponses.length;\n }\n\n return mostAlt;\n }, 0);\n const alternatesArray = new Array(mostAlternates).fill(0);\n\n return alternatesArray.map((val, index) => {\n return correctResponse.map((cat, catIndex) => {\n const currentCategory = categories[catIndex];\n\n return {\n id: currentCategory.id,\n label: currentCategory.label,\n choices: getChoices(cat, choices, index),\n };\n });\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAGA,CAACC,UAAU,EAAEC,OAAO,EAAEC,eAAe,KAAK;EACvE,MAAMC,gBAAgB,GAAG,IAAAC,mBAAS,EAACJ,UAAU,CAAC;EAE9C,OAAOG,gBAAgB,CAACE,GAAG,CAAEC,QAAQ,IAAK;IACxC,MAAMC,EAAE,GAAGL,eAAe,CAACM,IAAI,CAAED,EAAE,IAAKA,EAAE,CAACD,QAAQ,KAAKA,QAAQ,CAACG,EAAE,CAAC;IAEpE,IAAIF,EAAE,EAAE;MACND,QAAQ,CAACL,OAAO,GAAG,CAACM,EAAE,CAACN,OAAO,IAAI,EAAE,EAAEI,GAAG,CAAEK,QAAQ,IAAK;QACtD,MAAMC,MAAM,GAAGV,OAAO,CAACO,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACH,EAAE,KAAKC,QAAQ,CAAC;QACrD,IAAIC,MAAM,EAAE;UACV,OAAOE,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE;YAAEL,EAAE,EAAEE,MAAM,CAACF,EAAE;YAAEM,OAAO,EAAEJ,MAAM,CAACI;UAAQ,CAAC,CAAC;QACtE;MACF,CAAC,CAAC;IACJ;IAEA,OAAOT,QAAQ;EACjB,CAAC,CAAC;AACJ,CAAC;AAACU,OAAA,CAAAjB,eAAA,GAAAA,eAAA;AAEF,MAAMkB,UAAU,GAAGA,CAACC,GAAG,EAAEjB,OAAO,EAAEkB,KAAK,KAAK;EAC1C,IAAI,CAACD,GAAG,CAACE,kBAAkB,IAAIF,GAAG,CAACE,kBAAkB,CAACC,MAAM,KAAK,CAAC,EAAE;IAClE,OAAO,EAAE;EACX;EAEA,OAAO,CAACH,GAAG,CAACE,kBAAkB,CAACD,KAAK,CAAC,IAAI,EAAE,EAAEd,GAAG,CAAEiB,GAAG,IAAK;IACxD,OAAOrB,OAAO,CAACO,IAAI,CAAEe,EAAE,IAAKA,EAAE,CAACd,EAAE,KAAKa,GAAG,CAAC;EAC5C,CAAC,CAAC;AACJ,CAAC;AAEM,MAAME,uBAAuB,GAAGA,CAACxB,UAAU,EAAEC,OAAO,EAAEC,eAAe,KAAK;EAC/E,MAAMuB,cAAc,GAAGvB,eAAe,CAACwB,MAAM,CAAC,CAACC,OAAO,EAAET,GAAG,KAAK;IAC9D,IAAIA,GAAG,CAACE,kBAAkB,IAAIF,GAAG,CAACE,kBAAkB,CAACC,MAAM,IAAIM,OAAO,EAAE;MACtE,OAAOT,GAAG,CAACE,kBAAkB,CAACC,MAAM;IACtC;IAEA,OAAOM,OAAO;EAChB,CAAC,EAAE,CAAC,CAAC;EACL,MAAMC,eAAe,GAAG,IAAIC,KAAK,CAACJ,cAAc,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;EAEzD,OAAOF,eAAe,CAACvB,GAAG,CAAC,CAAC0B,GAAG,EAAEZ,KAAK,KAAK;IACzC,OAAOjB,eAAe,CAACG,GAAG,CAAC,CAACa,GAAG,EAAEc,QAAQ,KAAK;MAC5C,MAAMC,eAAe,GAAGjC,UAAU,CAACgC,QAAQ,CAAC;MAE5C,OAAO;QACLvB,EAAE,EAAEwB,eAAe,CAACxB,EAAE;QACtByB,KAAK,EAAED,eAAe,CAACC,KAAK;QAC5BjC,OAAO,EAAEgB,UAAU,CAACC,GAAG,EAAEjB,OAAO,EAAEkB,KAAK;MACzC,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAACH,OAAA,CAAAQ,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.RawAddButton = exports.DeleteButton = exports.AddButton = 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 _Button = _interopRequireDefault(require("@mui/material/Button"));
13
- const StyledAddButton = (0, _styles.styled)(_Button.default)(({
14
- theme
15
- }) => ({
16
- height: theme.spacing(4)
17
- }));
18
- class RawAddButton extends _react.default.Component {
19
- render() {
20
- const {
21
- label,
22
- onClick,
23
- disabled
24
- } = this.props;
25
- return /*#__PURE__*/_react.default.createElement(StyledAddButton, {
26
- onClick: onClick,
27
- disabled: disabled,
28
- size: "small",
29
- variant: "contained",
30
- color: "primary"
31
- }, label);
32
- }
33
- }
34
- exports.RawAddButton = RawAddButton;
35
- (0, _defineProperty2.default)(RawAddButton, "propTypes", {
36
- label: _propTypes.default.string,
37
- onClick: _propTypes.default.func,
38
- disabled: _propTypes.default.bool
39
- });
40
- (0, _defineProperty2.default)(RawAddButton, "defaultProps", {
41
- label: 'Add'
42
- });
43
- const AddButton = exports.AddButton = RawAddButton;
44
- const StyledDeleteButton = (0, _styles.styled)(_Button.default)({
45
- margin: 0,
46
- padding: 0
47
- });
48
- const DeleteButton = ({
49
- label,
50
- onClick,
51
- disabled
52
- }) => /*#__PURE__*/_react.default.createElement(StyledDeleteButton, {
53
- onClick: onClick,
54
- size: "small",
55
- color: "primary",
56
- disabled: disabled
57
- }, label);
58
- exports.DeleteButton = DeleteButton;
59
- //# sourceMappingURL=buttons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buttons.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Button","StyledAddButton","styled","Button","theme","height","spacing","RawAddButton","React","Component","render","label","onClick","disabled","props","default","createElement","size","variant","color","exports","_defineProperty2","PropTypes","string","func","bool","AddButton","StyledDeleteButton","margin","padding","DeleteButton"],"sources":["../../src/design/buttons.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\n\nconst StyledAddButton = styled(Button)(({ theme }) => ({\n height: theme.spacing(4),\n}));\n\nexport class RawAddButton extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n };\n\n static defaultProps = {\n label: 'Add',\n };\n\n render() {\n const { label, onClick, disabled } = this.props;\n return (\n <StyledAddButton\n onClick={onClick}\n disabled={disabled}\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n >\n {label}\n </StyledAddButton>\n );\n }\n}\n\nconst AddButton = RawAddButton;\n\nconst StyledDeleteButton = styled(Button)({\n margin: 0,\n padding: 0,\n});\n\nconst DeleteButton = ({ label, onClick, disabled }) => (\n <StyledDeleteButton onClick={onClick} size=\"small\" color=\"primary\" disabled={disabled}>\n {label}\n </StyledDeleteButton>\n);\n\nexport { AddButton, DeleteButton };\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,MAAMI,eAAe,GAAG,IAAAC,cAAM,EAACC,eAAM,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACrDC,MAAM,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEI,MAAMC,YAAY,SAASC,cAAK,CAACC,SAAS,CAAC;EAWhDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,OAAO;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACC,KAAK;IAC/C,oBACEnB,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACf,eAAe;MACdW,OAAO,EAAEA,OAAQ;MACjBC,QAAQ,EAAEA,QAAS;MACnBI,IAAI,EAAC,OAAO;MACZC,OAAO,EAAC,WAAW;MACnBC,KAAK,EAAC;IAAS,GAEdR,KACc,CAAC;EAEtB;AACF;AAACS,OAAA,CAAAb,YAAA,GAAAA,YAAA;AAAA,IAAAc,gBAAA,CAAAN,OAAA,EAzBYR,YAAY,eACJ;EACjBI,KAAK,EAAEW,kBAAS,CAACC,MAAM;EACvBX,OAAO,EAAEU,kBAAS,CAACE,IAAI;EACvBX,QAAQ,EAAES,kBAAS,CAACG;AACtB,CAAC;AAAA,IAAAJ,gBAAA,CAAAN,OAAA,EALUR,YAAY,kBAOD;EACpBI,KAAK,EAAE;AACT,CAAC;AAkBH,MAAMe,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAGnB,YAAY;AAE9B,MAAMoB,kBAAkB,GAAG,IAAAzB,cAAM,EAACC,eAAM,CAAC,CAAC;EACxCyB,MAAM,EAAE,CAAC;EACTC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMC,YAAY,GAAGA,CAAC;EAAEnB,KAAK;EAAEC,OAAO;EAAEC;AAAS,CAAC,kBAChDlB,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACW,kBAAkB;EAACf,OAAO,EAAEA,OAAQ;EAACK,IAAI,EAAC,OAAO;EAACE,KAAK,EAAC,SAAS;EAACN,QAAQ,EAAEA;AAAS,GACnFF,KACiB,CACrB;AAACS,OAAA,CAAAU,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.RowLabel = void 0;
8
- var _utils = require("../utils");
9
- var _react = _interopRequireDefault(require("react"));
10
- var _styles = require("@mui/material/styles");
11
- var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
12
- var _renderUi = require("@pie-lib/render-ui");
13
- const RowLabelContainer = (0, _styles.styled)(_renderUi.InputContainer)(({
14
- theme
15
- }) => ({
16
- width: '100%',
17
- paddingTop: theme.spacing(1),
18
- marginTop: theme.spacing(1)
19
- }));
20
- const RowLabel = ({
21
- categoriesPerRow,
22
- configuration,
23
- disabled,
24
- markup,
25
- imageSupport,
26
- onChange,
27
- toolbarOpts,
28
- spellCheck,
29
- maxImageWidth,
30
- maxImageHeight,
31
- uploadSoundSupport,
32
- mathMlOptions = {}
33
- }) => {
34
- const {
35
- rowLabels,
36
- baseInputConfiguration
37
- } = configuration;
38
- return /*#__PURE__*/_react.default.createElement("div", {
39
- style: {
40
- gridColumn: `1/${categoriesPerRow + 1}`,
41
- width: '100%'
42
- }
43
- }, /*#__PURE__*/_react.default.createElement(RowLabelContainer, {
44
- label: "Row Label"
45
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
46
- disabled: disabled,
47
- markup: markup,
48
- onChange: onChange,
49
- imageSupport: imageSupport,
50
- nonEmpty: false,
51
- toolbarOpts: toolbarOpts,
52
- pluginProps: (0, _utils.getPluginProps)(rowLabels?.inputConfiguration, baseInputConfiguration),
53
- spellCheck: spellCheck,
54
- maxImageWidth: maxImageWidth,
55
- maxImageHeight: maxImageHeight,
56
- uploadSoundSupport: uploadSoundSupport,
57
- languageCharactersProps: [{
58
- language: 'spanish'
59
- }, {
60
- language: 'special'
61
- }],
62
- mathMlOptions: mathMlOptions
63
- })));
64
- };
65
- exports.RowLabel = RowLabel;
66
- //# sourceMappingURL=RowLabel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RowLabel.js","names":["_utils","require","_react","_interopRequireDefault","_styles","_editableHtmlTipTap","_renderUi","RowLabelContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginTop","RowLabel","categoriesPerRow","configuration","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","rowLabels","baseInputConfiguration","default","createElement","style","gridColumn","label","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","exports"],"sources":["../../../src/design/categories/RowLabel.jsx"],"sourcesContent":["import { getPluginProps } from '../utils';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/render-ui';\n\nconst RowLabelContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(1),\n}));\n\nexport const RowLabel = ({\n categoriesPerRow,\n configuration,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const { rowLabels, baseInputConfiguration } = configuration;\n\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <RowLabelContainer label=\"Row Label\">\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rowLabels?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </RowLabelContainer>\n </div>\n );\n };\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,MAAMM,iBAAiB,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC/DC,KAAK,EAAE,MAAM;EACbC,UAAU,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC,CAAC;EAC5BC,SAAS,EAAEJ,KAAK,CAACG,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEI,MAAME,QAAQ,GAAGA,CAAC;EACrBC,gBAAgB;EAChBC,aAAa;EACbC,QAAQ;EACRC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa,GAAG,CAAC;AACnB,CAAC,KAAK;EACJ,MAAM;IAAEC,SAAS;IAAEC;EAAuB,CAAC,GAAGZ,aAAa;EAE3D,oBACEf,MAAA,CAAA4B,OAAA,CAAAC,aAAA;IACEC,KAAK,EAAE;MACLC,UAAU,EAAE,KAAKjB,gBAAgB,GAAG,CAAC,EAAE;MACvCL,KAAK,EAAE;IACT;EAAE,gBAEFT,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACxB,iBAAiB;IAAC2B,KAAK,EAAC;EAAW,gBAClChC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,mBAAA,CAAAyB,OAAY;IACXZ,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBD,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAE,KAAM;IAChBb,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAE,IAAAC,qBAAc,EAACT,SAAS,EAAEU,kBAAkB,EAAET,sBAAsB,CAAE;IACnFN,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCa,uBAAuB,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAU,CAAC,EAAE;MAAEA,QAAQ,EAAE;IAAU,CAAC,CAAE;IAC5Eb,aAAa,EAAEA;EAAc,CAC9B,CACgB,CAChB,CAAC;AAEV,CAAC;AAACc,OAAA,CAAA1B,QAAA,GAAAA,QAAA","ignoreList":[]}