@digabi/exam-engine-core 22.0.5-editor-ee-to-em.0 → 22.0.7-alpha.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 (47) hide show
  1. package/dist/__tests__/editor/undoRedo.test.d.ts +2 -0
  2. package/dist/__tests__/editor/undoRedo.test.d.ts.map +1 -0
  3. package/dist/__tests__/editor/undoRedo.test.js +61 -0
  4. package/dist/__tests__/editor/undoRedo.test.js.map +1 -0
  5. package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
  6. package/dist/components/context/GradingInstructionContext.d.ts +11 -6
  7. package/dist/components/context/GradingInstructionContext.d.ts.map +1 -1
  8. package/dist/components/context/GradingInstructionContext.js.map +1 -1
  9. package/dist/components/grading-instructions/AnswerGradingInstruction.d.ts.map +1 -1
  10. package/dist/components/grading-instructions/AnswerGradingInstruction.js +3 -4
  11. package/dist/components/grading-instructions/AnswerGradingInstruction.js.map +1 -1
  12. package/dist/components/grading-instructions/EditableGradingInstruction.d.ts.map +1 -1
  13. package/dist/components/grading-instructions/EditableGradingInstruction.js +18 -3
  14. package/dist/components/grading-instructions/EditableGradingInstruction.js.map +1 -1
  15. package/dist/components/grading-instructions/GradingInstructionProvider.d.ts +1 -1
  16. package/dist/components/grading-instructions/GradingInstructionProvider.d.ts.map +1 -1
  17. package/dist/components/grading-instructions/GradingInstructionProvider.js +4 -1
  18. package/dist/components/grading-instructions/GradingInstructionProvider.js.map +1 -1
  19. package/dist/components/grading-instructions/GradingInstructions.d.ts +2 -6
  20. package/dist/components/grading-instructions/GradingInstructions.d.ts.map +1 -1
  21. package/dist/components/grading-instructions/GradingInstructions.js +3 -2
  22. package/dist/components/grading-instructions/GradingInstructions.js.map +1 -1
  23. package/dist/components/grading-instructions/editor/FormulaPopup.js +5 -5
  24. package/dist/components/grading-instructions/editor/FormulaPopup.js.map +1 -1
  25. package/dist/components/grading-instructions/editor/UndoRedoButtons.d.ts +6 -0
  26. package/dist/components/grading-instructions/editor/UndoRedoButtons.d.ts.map +1 -0
  27. package/dist/components/grading-instructions/editor/UndoRedoButtons.js +19 -0
  28. package/dist/components/grading-instructions/editor/UndoRedoButtons.js.map +1 -0
  29. package/dist/main-bundle.js +1 -1
  30. package/dist/main.css +1 -1
  31. package/package.json +12 -2
  32. package/dist/__tests__/EditableGradingInstruction.test.d.ts +0 -2
  33. package/dist/__tests__/EditableGradingInstruction.test.d.ts.map +0 -1
  34. package/dist/__tests__/EditableGradingInstruction.test.js +0 -174
  35. package/dist/__tests__/EditableGradingInstruction.test.js.map +0 -1
  36. package/dist/__tests__/FormatButton.test.d.ts +0 -2
  37. package/dist/__tests__/FormatButton.test.d.ts.map +0 -1
  38. package/dist/__tests__/FormatButton.test.js +0 -94
  39. package/dist/__tests__/FormatButton.test.js.map +0 -1
  40. package/dist/components/grading-instructions/editor/schemas/image-schema.d.ts +0 -4
  41. package/dist/components/grading-instructions/editor/schemas/image-schema.d.ts.map +0 -1
  42. package/dist/components/grading-instructions/editor/schemas/image-schema.js +0 -47
  43. package/dist/components/grading-instructions/editor/schemas/image-schema.js.map +0 -1
  44. package/dist/components/grading-instructions/localization.d.ts +0 -3
  45. package/dist/components/grading-instructions/localization.d.ts.map +0 -1
  46. package/dist/components/grading-instructions/localization.js +0 -41
  47. package/dist/components/grading-instructions/localization.js.map +0 -1
@@ -1,174 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("@testing-library/react");
7
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
8
- const renderEditableGradingInstruction_1 = require("./utils/renderEditableGradingInstruction");
9
- const util_1 = require("./utils/util");
10
- require("@testing-library/jest-dom");
11
- const act = react_1.act;
12
- describe('EditableGradingInstruction', () => {
13
- let cleanup;
14
- let onContentChangeMock;
15
- beforeEach(() => {
16
- onContentChangeMock = jest.fn();
17
- });
18
- afterEach(() => {
19
- if (cleanup) {
20
- cleanup();
21
- }
22
- cleanup = null;
23
- });
24
- describe('table', () => {
25
- it('Table is rendered as expected', () => {
26
- const inputData = '<table class="e-table"><tbody><tr><td>foo</td></tr></tbody></table>';
27
- const expectedOutput = '<table class="e-table"><tbody><tr><td>foo</td></tr></tbody></table>';
28
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
29
- const table = result.container.querySelector('.ProseMirror');
30
- expect(table.innerHTML).toBe(expectedOutput);
31
- });
32
- it('Change in table is returned as expected', async () => {
33
- cleanup = mockCreateRange();
34
- const inputData = '<table class="e-table"><tbody><tr><td>foo</td></tr></tbody></table>';
35
- const expectedOutput = '<table class="e-table"><tbody><tr><td>bar</td></tr></tbody></table>';
36
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
37
- await act(async () => {
38
- (0, util_1.insertText)(await result.findByText('foo'), 'bar');
39
- });
40
- expect(onContentChangeMock).toHaveBeenCalledTimes(1);
41
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
42
- });
43
- it('Insert table adds expected table', async () => {
44
- const inputData = '';
45
- const expectedOutput = '<table class="e-table e-width-half"><tbody><tr><td></td><td></td></tr><tr><td></td><td></td></tr></tbody></table>';
46
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
47
- await act(async () => {
48
- await user_event_1.default.click(await result.findByTestId('editor-menu-add-table'));
49
- });
50
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
51
- });
52
- it('Remove table removes table', async () => {
53
- const inputData = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
54
- const expectedOutput = '<p></p>';
55
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
56
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista taulukko');
57
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
58
- });
59
- it('Insert column adds column', async () => {
60
- const inputData = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
61
- const expectedOutput = '<table><tbody><tr><td>foo</td><td></td></tr></tbody></table>';
62
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
63
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää sarake');
64
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
65
- });
66
- it('Remove column removes column', async () => {
67
- const inputData = '<table><tbody><tr><td>foo</td><td>bar</td></tr></tbody></table>';
68
- const expectedOutput = '<table><tbody><tr><td>bar</td></tr></tbody></table>';
69
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
70
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista sarake');
71
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
72
- });
73
- it('Insert row adds row', async () => {
74
- const inputData = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
75
- const expectedOutput = '<table><tbody><tr><td>foo</td></tr><tr><td></td></tr></tbody></table>';
76
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
77
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää rivi');
78
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
79
- });
80
- it('Remove row removes row', async () => {
81
- const inputData = '<table><tbody><tr><td>foo</td></tr><tr><td>bar</td></tr></tbody></table>';
82
- const expectedOutput = '<table><tbody><tr><td>bar</td></tr></tbody></table>';
83
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
84
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista rivi');
85
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
86
- });
87
- it('Full width changes full width class to table', async () => {
88
- const inputData = '<table class="e-width-half"><tbody><tr><td>foo</td></tr></tbody></table>';
89
- const expectedOutput = '<table class="e-width-full"><tbody><tr><td>foo</td></tr></tbody></table>';
90
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
91
- expect(result.queryByText('Puolikas leveys')).not.toBeInTheDocument();
92
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Täysi leveys');
93
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
94
- });
95
- it('Half width changes half width class to table', async () => {
96
- const inputData = '<table class="e-width-full"><tbody><tr><td>foo</td></tr></tbody></table>';
97
- const expectedOutput = '<table class="e-width-half"><tbody><tr><td>foo</td></tr></tbody></table>';
98
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
99
- expect(result.queryByText('Täysi leveys')).not.toBeInTheDocument();
100
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Puolikas leveys');
101
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
102
- });
103
- it('Remove borders adds e-table--borderless class to table', async () => {
104
- const inputData = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
105
- const expectedOutput = '<table class="e-table--borderless"><tbody><tr><td>foo</td></tr></tbody></table>';
106
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
107
- expect(result.queryByText('Lisää reunat')).not.toBeInTheDocument();
108
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista reunat');
109
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
110
- });
111
- it('Add borders removes e-table--borderless class from table', async () => {
112
- const inputData = '<table class="e-table--borderless"><tbody><tr><td>foo</td></tr></tbody></table>';
113
- const expectedOutput = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
114
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
115
- expect(result.queryByText('Poista reunat')).not.toBeInTheDocument();
116
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää reunat');
117
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
118
- });
119
- it('Remove zebra removes class from table', async () => {
120
- const inputData = '<table class="e-table--zebra"><tbody><tr><td>foo</td></tr></tbody></table>';
121
- const expectedOutput = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
122
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
123
- expect(result.queryByText('Lisää raidat')).not.toBeInTheDocument();
124
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista raidat');
125
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
126
- });
127
- it('Add zebra adds e-table--zebra class to table', async () => {
128
- const inputData = '<table><tbody><tr><td>foo</td></tr></tbody></table>';
129
- const expectedOutput = '<table class="e-table--zebra"><tbody><tr><td>foo</td></tr></tbody></table>';
130
- const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
131
- expect(result.queryByText('Poista raidat')).not.toBeInTheDocument();
132
- await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää raidat');
133
- expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
134
- });
135
- });
136
- });
137
- async function clickTableMenuButtonWithFocusOnCell(result, cellText, buttonText) {
138
- await act(async () => {
139
- await focusOnTablesCell(result, cellText);
140
- await user_event_1.default.click(await result.findByText(buttonText));
141
- });
142
- }
143
- async function focusOnTablesCell(result, text) {
144
- // Replace cell's text with same text
145
- // Hack to get focus on cell without need to mock createRange
146
- (0, util_1.insertText)(await result.findByText(text), text);
147
- }
148
- function mockCreateRange() {
149
- const originalCreateRange = global.window.document.createRange;
150
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
151
- // @ts-expect-error
152
- global.Range = function Range() { };
153
- const createContextualFragment = (html) => {
154
- const div = document.createElement('div');
155
- div.innerHTML = html;
156
- return div.children[0];
157
- };
158
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
159
- // @ts-expect-error
160
- Range.prototype.createContextualFragment = (html) => createContextualFragment(html);
161
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
162
- // @ts-expect-error
163
- global.window.document.createRange = function createRange() {
164
- return {
165
- setEnd: () => { },
166
- setStart: () => { },
167
- getBoundingClientRect: () => ({ right: 0 }),
168
- getClientRects: () => [],
169
- createContextualFragment
170
- };
171
- };
172
- return () => (global.window.document.createRange = originalCreateRange);
173
- }
174
- //# sourceMappingURL=EditableGradingInstruction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditableGradingInstruction.test.js","sourceRoot":"","sources":["../../__tests__/EditableGradingInstruction.test.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import '@testing-library/jest-dom';
2
- //# sourceMappingURL=FormatButton.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormatButton.test.d.ts","sourceRoot":"","sources":["../../__tests__/FormatButton.test.tsx"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAA"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- require("@testing-library/jest-dom");
8
- const react_2 = require("@testing-library/react");
9
- const ProseMirrorWrapper_1 = __importDefault(require("./utils/ProseMirrorWrapper"));
10
- const prosemirror_1 = require("./utils/prosemirror");
11
- const FormatButton_1 = __importDefault(require("../src/components/grading-instructions/editor/FormatButton"));
12
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
13
- const act = react_2.act;
14
- describe('FormatButton', () => {
15
- beforeAll(() => {
16
- (0, prosemirror_1.mockCreateRange)();
17
- });
18
- afterEach(() => {
19
- (0, react_2.cleanup)();
20
- });
21
- describe('Italics', () => {
22
- it('Renders italics button', () => {
23
- const props = { markName: 'em', displayName: 'Italic' };
24
- const { button } = renderEditorWithFormatButton(props);
25
- expect(button).toHaveTextContent(props.displayName);
26
- });
27
- it('Toggles button active state when clicked', async () => {
28
- const props = { markName: 'em', displayName: 'Italic' };
29
- const { button } = renderEditorWithFormatButton(props);
30
- expect(button).toHaveStyle('font-weight: normal');
31
- await user_event_1.default.click(button);
32
- expect(button).toHaveStyle('font-weight: bold');
33
- await user_event_1.default.click(button);
34
- expect(button).toHaveStyle('font-weight: normal');
35
- });
36
- it('formats text', async () => {
37
- const props = { markName: 'em', displayName: 'Italic' };
38
- const { button, paragraph } = renderEditorWithFormatButton(props);
39
- await user_event_1.default.click(button);
40
- await act(async () => await (0, prosemirror_1.promisifiedFireEventInput)(paragraph, { target: { innerHTML: 'hello' } }));
41
- expect((0, react_2.within)(paragraph).getByRole('emphasis')).toHaveTextContent('hello');
42
- });
43
- it('em tags are rendered as italic', () => {
44
- const props = { markName: 'em', displayName: 'Italic', innerHtml: '<em>Italic text</em>' };
45
- const { paragraph } = renderEditorWithFormatButton(props);
46
- expect((0, react_2.within)(paragraph).getByRole('emphasis')).toHaveTextContent('Italic text');
47
- });
48
- it('i tags are rendered as italic', () => {
49
- const props = { markName: 'em', displayName: 'Italic', innerHtml: '<i>Italic text</i>' };
50
- const { paragraph } = renderEditorWithFormatButton(props);
51
- expect((0, react_2.within)(paragraph).getByRole('emphasis')).toHaveTextContent('Italic text');
52
- });
53
- });
54
- describe('Bold', () => {
55
- it('Renders bold button', () => {
56
- const props = { markName: 'strong', displayName: 'Bold' };
57
- const { button } = renderEditorWithFormatButton(props);
58
- expect(button).toHaveTextContent(props.displayName);
59
- });
60
- it('Toggles button active state when clicked', async () => {
61
- const props = { markName: 'strong', displayName: 'Bold' };
62
- const { button } = renderEditorWithFormatButton(props);
63
- expect(button).toHaveStyle('font-weight: normal');
64
- await user_event_1.default.click(button);
65
- expect(button).toHaveStyle('font-weight: bold');
66
- await user_event_1.default.click(button);
67
- expect(button).toHaveStyle('font-weight: normal');
68
- });
69
- it('formats text', async () => {
70
- const props = { markName: 'strong', displayName: 'Bold' };
71
- const { button, paragraph } = renderEditorWithFormatButton(props);
72
- await user_event_1.default.click(button);
73
- await act(async () => await (0, prosemirror_1.promisifiedFireEventInput)(paragraph, { target: { innerHTML: 'hello' } }));
74
- expect((0, react_2.within)(paragraph).getByRole('strong')).toHaveTextContent('hello');
75
- });
76
- it('b tags are rendered as bold', () => {
77
- const props = { markName: 'strong', displayName: 'bold', innerHtml: '<b>Bold text</b>' };
78
- const { paragraph } = renderEditorWithFormatButton(props);
79
- expect((0, react_2.within)(paragraph).getByRole('strong')).toHaveTextContent('Bold text');
80
- });
81
- it('strong tags are rendered as bold', () => {
82
- const props = { markName: 'strong', displayName: 'bold', innerHtml: '<strong>Bold text</strong>' };
83
- const { paragraph } = renderEditorWithFormatButton(props);
84
- expect((0, react_2.within)(paragraph).getByRole('strong')).toHaveTextContent('Bold text');
85
- });
86
- });
87
- function renderEditorWithFormatButton(props) {
88
- const { markName, displayName, innerHtml = '' } = props;
89
- const { getByRole } = (0, react_2.render)(react_1.default.createElement(ProseMirrorWrapper_1.default, { innerHtml: innerHtml },
90
- react_1.default.createElement(FormatButton_1.default, { markName: markName, displayName: displayName })));
91
- return { button: getByRole('button'), paragraph: getByRole('paragraph') };
92
- }
93
- });
94
- //# sourceMappingURL=FormatButton.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormatButton.test.js","sourceRoot":"","sources":["../../__tests__/FormatButton.test.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { NodeSpec } from 'prosemirror-model';
2
- export declare const imageInputSchema: (resolveAttachment: (filename: string) => string) => NodeSpec;
3
- export declare const imageOutputSchema: NodeSpec;
4
- //# sourceMappingURL=image-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-schema.d.ts","sourceRoot":"","sources":["../../../../../src/components/grading-instructions/editor/schemas/image-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAK5C,eAAO,MAAM,gBAAgB,sBAAuB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,KAAG,QA6BjF,CAAA;AAIF,eAAO,MAAM,iBAAiB,EAAE,QAY/B,CAAA"}
@@ -1,47 +0,0 @@
1
- import * as _ from 'lodash-es';
2
- import { schema as baseSchema } from 'prosemirror-schema-basic';
3
- const existingImageNode = baseSchema.spec.nodes.get('image');
4
- export const imageInputSchema = (resolveAttachment) => ({
5
- ...existingImageNode,
6
- attrs: {
7
- ...existingImageNode === null || existingImageNode === void 0 ? void 0 : existingImageNode.attrs,
8
- width: { default: null },
9
- height: { default: null },
10
- class: { default: null },
11
- lang: { default: null }
12
- },
13
- parseDOM: [
14
- {
15
- tag: '[data-editor-id="e-image"], img',
16
- getAttrs(element) {
17
- const src = element.getAttribute('src');
18
- if (!src || src.startsWith('data:')) {
19
- return false;
20
- }
21
- const attrs = {
22
- ...Object.fromEntries(Array.from(element.attributes).map(attr => [attr.name, attr.value])),
23
- src: resolveAttachment(element.getAttribute('src') || '')
24
- };
25
- return attrs;
26
- }
27
- }
28
- ],
29
- toDOM(node) {
30
- return ['img', node.attrs];
31
- }
32
- });
33
- const pathToFilename = (path) => path.split('/').pop();
34
- export const imageOutputSchema = {
35
- toDOM(node) {
36
- const attrs = _.pick(node.attrs, ['lang', 'class', 'src']);
37
- const filteredAttrs = _.pickBy(attrs, _.isString);
38
- const attributes = _.mapValues(filteredAttrs, (value, key) => {
39
- if (key === 'src') {
40
- return pathToFilename(value);
41
- }
42
- return value;
43
- });
44
- return ['e:image', attributes];
45
- }
46
- };
47
- //# sourceMappingURL=image-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-schema.js","sourceRoot":"","sources":["../../../../../src/components/grading-instructions/editor/schemas/image-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAE9B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE/D,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,iBAA+C,EAAY,EAAE,CAAC,CAAC;IAC9F,GAAG,iBAAiB;IACpB,KAAK,EAAE;QACL,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK;QAC3B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACxB;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,iCAAiC;YACtC,QAAQ,CAAC,OAAO;gBACd,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBAEvC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,OAAO,KAAK,CAAA;gBACd,CAAC;gBACD,MAAM,KAAK,GAAG;oBACZ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1F,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC1D,CAAA;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF;KACF;IACD,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC3D,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAChC,CAAC;CACF,CAAA"}
@@ -1,3 +0,0 @@
1
- import { NodeSpec } from 'prosemirror-model';
2
- export declare function localization(hideable: boolean): NodeSpec;
3
- //# sourceMappingURL=localization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instructions/localization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAElD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAsCxD"}
@@ -1,41 +0,0 @@
1
- export function localization(hideable) {
2
- return {
3
- localization: {
4
- content: 'inline*',
5
- inline: true,
6
- group: 'inline',
7
- attrs: {
8
- lang: { default: null },
9
- examType: { default: null },
10
- hidden: { default: null }
11
- },
12
- parseDOM: [
13
- {
14
- tag: '[e-localization]',
15
- getAttrs(dom) {
16
- var _a, _b, _c;
17
- console.log('🚀 ~ getAttrs ~ dom:', dom);
18
- return {
19
- lang: (_a = dom.getAttribute('lang')) !== null && _a !== void 0 ? _a : null,
20
- examType: (_b = dom.getAttribute('exam-type')) !== null && _b !== void 0 ? _b : null,
21
- hidden: hideable ? ((_c = dom.getAttribute('hidden')) !== null && _c !== void 0 ? _c : null) : null
22
- };
23
- }
24
- }
25
- ],
26
- toDOM(node) {
27
- console.log('🚀 ~ toDOM ~ node:', node);
28
- return [
29
- 'e:localization',
30
- {
31
- lang: node.attrs.lang,
32
- 'exam-type': node.attrs.examType,
33
- hidden: hideable ? node.attrs.hidden : null
34
- },
35
- 0
36
- ];
37
- }
38
- }
39
- };
40
- }
41
- //# sourceMappingURL=localization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localization.js","sourceRoot":"","sources":["../../../src/components/grading-instructions/localization.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,QAAiB;IAC5C,OAAO;QACL,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACvB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC3B,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC1B;YACD,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,kBAAkB;oBACvB,QAAQ,CAAC,GAAgB;;wBACvB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;wBACxC,OAAO;4BACL,IAAI,EAAE,MAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,mCAAI,IAAI;4BACtC,QAAQ,EAAE,MAAA,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,mCAAI,IAAI;4BAC/C,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;yBAC/D,CAAA;oBACH,CAAC;iBACF;aACF;YACD,KAAK,CAAC,IAAU;gBACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;gBACvC,OAAO;oBACL,gBAAgB;oBAChB;wBACE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAc;wBAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAkB;wBAC1C,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,MAAiB,CAAC,CAAC,CAAC,IAAI;qBACxD;oBACD,CAAC;iBACF,CAAA;YACH,CAAC;SACF;KACF,CAAA;AACH,CAAC"}