@pie-element/select-text 13.4.0-beta.6 → 14.0.0-next.20261002094057
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.
- package/README.md +29 -3
- package/author.js +2 -0
- package/configure.js +2 -0
- package/controller.js +1 -0
- package/dist/author/defaultConfiguration.d.ts +179 -0
- package/dist/author/defaultConfiguration.js +141 -0
- package/dist/author/design.d.ts +38 -0
- package/dist/author/design.js +263 -0
- package/dist/author/index.d.ts +27 -0
- package/dist/author/index.js +74 -0
- package/dist/author/utils.d.ts +10 -0
- package/dist/author/utils.js +50 -0
- package/dist/browser/Check-Ci4LDjFB.js +9399 -0
- package/dist/browser/Check-Ci4LDjFB.js.map +1 -0
- package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
- package/dist/browser/author/index.js +36509 -0
- package/dist/browser/author/index.js.map +1 -0
- package/dist/browser/controller/index.js +194 -0
- package/dist/browser/controller/index.js.map +1 -0
- package/dist/browser/delivery/index.js +89 -0
- package/dist/browser/delivery/index.js.map +1 -0
- package/dist/browser/dist-BamN0-DG.js +323 -0
- package/dist/browser/dist-BamN0-DG.js.map +1 -0
- package/dist/browser/editor-runtime/Check-YttKR25j.js +9399 -0
- package/dist/browser/editor-runtime/Check-YttKR25j.js.map +1 -0
- package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
- package/dist/browser/editor-runtime/author/index.js +20100 -0
- package/dist/browser/editor-runtime/author/index.js.map +1 -0
- package/dist/browser/editor-runtime/controller/index.js +194 -0
- package/dist/browser/editor-runtime/controller/index.js.map +1 -0
- package/dist/browser/editor-runtime/delivery/index.js +89 -0
- package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
- package/dist/browser/editor-runtime/dist-CMfXI_t0.js +323 -0
- package/dist/browser/editor-runtime/dist-CMfXI_t0.js.map +1 -0
- package/dist/browser/editor-runtime/main-DkSwljhi.js +4914 -0
- package/dist/browser/editor-runtime/main-DkSwljhi.js.map +1 -0
- package/dist/browser/editor-runtime/print/index.js +43 -0
- package/dist/browser/editor-runtime/print/index.js.map +1 -0
- package/dist/browser/main-KepLpD8x.js +4914 -0
- package/dist/browser/main-KepLpD8x.js.map +1 -0
- package/dist/browser/print/index.js +43 -0
- package/dist/browser/print/index.js.map +1 -0
- package/dist/controller/defaults.d.ts +27 -0
- package/dist/controller/defaults.js +21 -0
- package/dist/controller/index.d.ts +25 -0
- package/dist/controller/index.js +121 -0
- package/dist/delivery/index.d.ts +19 -0
- package/dist/delivery/index.js +60 -0
- package/dist/delivery/main.d.ts +36 -0
- package/dist/delivery/main.js +145 -0
- package/dist/delivery/utils.d.ts +10 -0
- package/dist/delivery/utils.js +47 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.iife.d.ts +8 -0
- package/dist/index.iife.js +167 -0
- package/dist/index.js +2 -0
- package/dist/print/index.d.ts +15 -0
- package/dist/print/index.js +43 -0
- package/dist/runtime-support.d.ts +12 -0
- package/dist/runtime-support.js +12 -0
- package/module/print.js +20364 -0
- package/module/print.js.map +1 -0
- package/package.json +108 -22
- package/print.js +2 -0
- package/CHANGELOG.json +0 -1422
- package/CHANGELOG.md +0 -2328
- package/LICENSE.md +0 -5
- package/configure/CHANGELOG.json +0 -1032
- package/configure/CHANGELOG.md +0 -2062
- package/configure/lib/__tests__/design.test.js +0 -173
- package/configure/lib/defaultConfiguration.js +0 -177
- package/configure/lib/defaultConfiguration.js.map +0 -1
- package/configure/lib/design.js +0 -406
- package/configure/lib/design.js.map +0 -1
- package/configure/lib/index.js +0 -129
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/utils.js +0 -92
- package/configure/lib/utils.js.map +0 -1
- package/configure/package.json +0 -25
- package/controller/CHANGELOG.json +0 -442
- package/controller/CHANGELOG.md +0 -1506
- package/controller/lib/__tests__/index.test.js +0 -627
- package/controller/lib/defaults.js +0 -25
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -258
- package/controller/lib/index.js.map +0 -1
- package/controller/package.json +0 -16
- package/docs/config-schema.json +0 -2135
- package/docs/config-schema.json.md +0 -1579
- package/docs/demo/config.js +0 -8
- package/docs/demo/generate.js +0 -823
- package/docs/demo/index.html +0 -1
- package/docs/demo/pie.manifest.json +0 -11
- package/docs/demo/session.js +0 -24
- package/docs/pie-schema.json +0 -1248
- package/docs/pie-schema.json.md +0 -711
- package/lib/__tests__/index.test.js +0 -86
- package/lib/__tests__/main.test.js +0 -89
- package/lib/index.js +0 -104
- package/lib/index.js.map +0 -1
- package/lib/main.js +0 -203
- package/lib/main.js.map +0 -1
- package/lib/print.js +0 -87
- package/lib/print.js.map +0 -1
- package/lib/utils.js +0 -80
- package/lib/utils.js.map +0 -1
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _ = _interopRequireDefault(require(".."));
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
var _client = require("react-dom/client");
|
|
7
|
-
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
8
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
9
|
-
jest.mock('@pie-lib/math-rendering', () => ({
|
|
10
|
-
renderMath: jest.fn()
|
|
11
|
-
}));
|
|
12
|
-
jest.mock('../main', () => jest.fn());
|
|
13
|
-
jest.mock('react', () => ({
|
|
14
|
-
createElement: jest.fn()
|
|
15
|
-
}));
|
|
16
|
-
const mockRender = jest.fn();
|
|
17
|
-
const mockUnmount = jest.fn();
|
|
18
|
-
jest.mock('react-dom/client', () => ({
|
|
19
|
-
createRoot: jest.fn(() => ({
|
|
20
|
-
render: mockRender,
|
|
21
|
-
unmount: mockUnmount
|
|
22
|
-
}))
|
|
23
|
-
}));
|
|
24
|
-
describe('select-text', () => {
|
|
25
|
-
let c;
|
|
26
|
-
beforeAll(() => {
|
|
27
|
-
if (!customElements.get('select-text')) {
|
|
28
|
-
customElements.define('select-text', _.default);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
beforeEach(() => {
|
|
32
|
-
c = new _.default();
|
|
33
|
-
c.dispatchEvent = jest.fn();
|
|
34
|
-
c.model = {};
|
|
35
|
-
c.session = {};
|
|
36
|
-
});
|
|
37
|
-
describe('init', () => {
|
|
38
|
-
it('calls createElement', () => {
|
|
39
|
-
expect(_react.default.createElement).toBeCalled();
|
|
40
|
-
});
|
|
41
|
-
it('calls createRoot and render', () => {
|
|
42
|
-
expect(_client.createRoot).toHaveBeenCalled();
|
|
43
|
-
expect(mockRender).toHaveBeenCalledWith(undefined);
|
|
44
|
-
});
|
|
45
|
-
it('calls renderMath', async () => {
|
|
46
|
-
await new Promise(resolve => setTimeout(resolve, 0));
|
|
47
|
-
expect(_mathRendering.renderMath).toHaveBeenCalled();
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe('isSessionComplete', () => {
|
|
51
|
-
it('returns true for non empty selectedTokens', () => {
|
|
52
|
-
c.session = {
|
|
53
|
-
selectedTokens: [{
|
|
54
|
-
start: 0,
|
|
55
|
-
end: 1,
|
|
56
|
-
text: 'f'
|
|
57
|
-
}]
|
|
58
|
-
};
|
|
59
|
-
expect(c.isSessionComplete()).toEqual(true);
|
|
60
|
-
});
|
|
61
|
-
it('returns false for empty selectedTokens', () => {
|
|
62
|
-
c.session = {
|
|
63
|
-
selectedTokens: []
|
|
64
|
-
};
|
|
65
|
-
expect(c.isSessionComplete()).toEqual(false);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('selectionChanged', () => {
|
|
69
|
-
let newTokens;
|
|
70
|
-
beforeEach(() => {
|
|
71
|
-
newTokens = [{
|
|
72
|
-
start: 2,
|
|
73
|
-
end: 3,
|
|
74
|
-
text: 'f'
|
|
75
|
-
}];
|
|
76
|
-
c.selectionChanged(newTokens);
|
|
77
|
-
});
|
|
78
|
-
it('sets the tokens', () => {
|
|
79
|
-
expect(c._session.selectedTokens).toEqual(newTokens);
|
|
80
|
-
});
|
|
81
|
-
it('calls dispatchEvent', () => {
|
|
82
|
-
expect(c.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('select-text', true));
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfY2xpZW50IiwiX3BpZVBsYXllckV2ZW50cyIsIl9tYXRoUmVuZGVyaW5nIiwiamVzdCIsIm1vY2siLCJyZW5kZXJNYXRoIiwiZm4iLCJjcmVhdGVFbGVtZW50IiwibW9ja1JlbmRlciIsIm1vY2tVbm1vdW50IiwiY3JlYXRlUm9vdCIsInJlbmRlciIsInVubW91bnQiLCJkZXNjcmliZSIsImMiLCJiZWZvcmVBbGwiLCJjdXN0b21FbGVtZW50cyIsImdldCIsImRlZmluZSIsIlNlbGVjdFRleHQiLCJiZWZvcmVFYWNoIiwiZGlzcGF0Y2hFdmVudCIsIm1vZGVsIiwic2Vzc2lvbiIsIml0IiwiZXhwZWN0IiwiUmVhY3QiLCJ0b0JlQ2FsbGVkIiwidG9IYXZlQmVlbkNhbGxlZCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0Iiwic2VsZWN0ZWRUb2tlbnMiLCJzdGFydCIsImVuZCIsInRleHQiLCJpc1Nlc3Npb25Db21wbGV0ZSIsInRvRXF1YWwiLCJuZXdUb2tlbnMiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiX3Nlc3Npb24iLCJ0b0JlQ2FsbGVkV2l0aCIsIlNlc3Npb25DaGFuZ2VkRXZlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNlbGVjdFRleHQgZnJvbSAnLi4nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCB7IFNlc3Npb25DaGFuZ2VkRXZlbnQgfSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtcGxheWVyLWV2ZW50cyc7XG5cbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJywgKCkgPT4gKHtcbiAgcmVuZGVyTWF0aDogamVzdC5mbigpLFxufSkpO1xuamVzdC5tb2NrKCcuLi9tYWluJywgKCkgPT4gamVzdC5mbigpKTtcblxuamVzdC5tb2NrKCdyZWFjdCcsICgpID0+ICh7XG4gIGNyZWF0ZUVsZW1lbnQ6IGplc3QuZm4oKSxcbn0pKTtcblxuY29uc3QgbW9ja1JlbmRlciA9IGplc3QuZm4oKTtcbmNvbnN0IG1vY2tVbm1vdW50ID0gamVzdC5mbigpO1xuamVzdC5tb2NrKCdyZWFjdC1kb20vY2xpZW50JywgKCkgPT4gKHtcbiAgY3JlYXRlUm9vdDogamVzdC5mbigoKSA9PiAoe1xuICAgIHJlbmRlcjogbW9ja1JlbmRlcixcbiAgICB1bm1vdW50OiBtb2NrVW5tb3VudCxcbiAgfSkpLFxufSkpO1xuXG5kZXNjcmliZSgnc2VsZWN0LXRleHQnLCAoKSA9PiB7XG4gIGxldCBjO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoJ3NlbGVjdC10ZXh0JykpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc2VsZWN0LXRleHQnLCBTZWxlY3RUZXh0KTtcbiAgICB9XG4gIH0pO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGMgPSBuZXcgU2VsZWN0VGV4dCgpO1xuICAgIGMuZGlzcGF0Y2hFdmVudCA9IGplc3QuZm4oKTtcbiAgICBjLm1vZGVsID0ge307XG4gICAgYy5zZXNzaW9uID0ge307XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbml0JywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBjcmVhdGVFbGVtZW50JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KFJlYWN0LmNyZWF0ZUVsZW1lbnQpLnRvQmVDYWxsZWQoKTtcbiAgICB9KTtcbiAgICBpdCgnY2FsbHMgY3JlYXRlUm9vdCBhbmQgcmVuZGVyJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNyZWF0ZVJvb3QpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChtb2NrUmVuZGVyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIHJlbmRlck1hdGgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMCkpO1xuICAgICAgZXhwZWN0KHJlbmRlck1hdGgpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2lzU2Vzc2lvbkNvbXBsZXRlJywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIHRydWUgZm9yIG5vbiBlbXB0eSBzZWxlY3RlZFRva2VucycsICgpID0+IHtcbiAgICAgIGMuc2Vzc2lvbiA9IHsgc2VsZWN0ZWRUb2tlbnM6IFt7IHN0YXJ0OiAwLCBlbmQ6IDEsIHRleHQ6ICdmJyB9XSB9O1xuICAgICAgZXhwZWN0KGMuaXNTZXNzaW9uQ29tcGxldGUoKSkudG9FcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGZhbHNlIGZvciBlbXB0eSBzZWxlY3RlZFRva2VucycsICgpID0+IHtcbiAgICAgIGMuc2Vzc2lvbiA9IHsgc2VsZWN0ZWRUb2tlbnM6IFtdIH07XG4gICAgICBleHBlY3QoYy5pc1Nlc3Npb25Db21wbGV0ZSgpKS50b0VxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NlbGVjdGlvbkNoYW5nZWQnLCAoKSA9PiB7XG4gICAgbGV0IG5ld1Rva2VucztcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIG5ld1Rva2VucyA9IFt7IHN0YXJ0OiAyLCBlbmQ6IDMsIHRleHQ6ICdmJyB9XTtcbiAgICAgIGMuc2VsZWN0aW9uQ2hhbmdlZChuZXdUb2tlbnMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3NldHMgdGhlIHRva2VucycsICgpID0+IHtcbiAgICAgIGV4cGVjdChjLl9zZXNzaW9uLnNlbGVjdGVkVG9rZW5zKS50b0VxdWFsKG5ld1Rva2Vucyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgZGlzcGF0Y2hFdmVudCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChjLmRpc3BhdGNoRXZlbnQpLnRvQmVDYWxsZWRXaXRoKG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KCdzZWxlY3QtdGV4dCcsIHRydWUpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsQ0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUNBSyxJQUFJLENBQUNDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPO0VBQzFDQyxVQUFVLEVBQUVGLElBQUksQ0FBQ0csRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBQ0hILElBQUksQ0FBQ0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNRCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFckNILElBQUksQ0FBQ0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPO0VBQ3hCRyxhQUFhLEVBQUVKLElBQUksQ0FBQ0csRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUUsVUFBVSxHQUFHTCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO0FBQzVCLE1BQU1HLFdBQVcsR0FBR04sSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztBQUM3QkgsSUFBSSxDQUFDQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsT0FBTztFQUNuQ00sVUFBVSxFQUFFUCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxPQUFPO0lBQ3pCSyxNQUFNLEVBQUVILFVBQVU7SUFDbEJJLE9BQU8sRUFBRUg7RUFDWCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVISSxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUIsSUFBSUMsQ0FBQztFQUVMQyxTQUFTLENBQUMsTUFBTTtJQUNkLElBQUksQ0FBQ0MsY0FBYyxDQUFDQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7TUFDdENELGNBQWMsQ0FBQ0UsTUFBTSxDQUFDLGFBQWEsRUFBRUMsU0FBVSxDQUFDO0lBQ2xEO0VBQ0YsQ0FBQyxDQUFDO0VBRUZDLFVBQVUsQ0FBQyxNQUFNO0lBQ2ZOLENBQUMsR0FBRyxJQUFJSyxTQUFVLENBQUMsQ0FBQztJQUNwQkwsQ0FBQyxDQUFDTyxhQUFhLEdBQUdsQixJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO0lBQzNCUSxDQUFDLENBQUNRLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDWlIsQ0FBQyxDQUFDUyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0VBQ2hCLENBQUMsQ0FBQztFQUVGVixRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU07SUFDckJXLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxNQUFNO01BQzlCQyxNQUFNLENBQUNDLGNBQUssQ0FBQ25CLGFBQWEsQ0FBQyxDQUFDb0IsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBQ0ZILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNO01BQ3RDQyxNQUFNLENBQUNmLGtCQUFVLENBQUMsQ0FBQ2tCLGdCQUFnQixDQUFDLENBQUM7TUFDckNILE1BQU0sQ0FBQ2pCLFVBQVUsQ0FBQyxDQUFDcUIsb0JBQW9CLENBQUNDLFNBQVMsQ0FBQztJQUNwRCxDQUFDLENBQUM7SUFFRk4sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFlBQVk7TUFDakMsTUFBTSxJQUFJTyxPQUFPLENBQUNDLE9BQU8sSUFBSUMsVUFBVSxDQUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7TUFDcERQLE1BQU0sQ0FBQ3BCLHlCQUFVLENBQUMsQ0FBQ3VCLGdCQUFnQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZmLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNO0lBQ2xDVyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsTUFBTTtNQUNwRFYsQ0FBQyxDQUFDUyxPQUFPLEdBQUc7UUFBRVcsY0FBYyxFQUFFLENBQUM7VUFBRUMsS0FBSyxFQUFFLENBQUM7VUFBRUMsR0FBRyxFQUFFLENBQUM7VUFBRUMsSUFBSSxFQUFFO1FBQUksQ0FBQztNQUFFLENBQUM7TUFDakVaLE1BQU0sQ0FBQ1gsQ0FBQyxDQUFDd0IsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQyxDQUFDO0lBRUZmLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNO01BQ2pEVixDQUFDLENBQUNTLE9BQU8sR0FBRztRQUFFVyxjQUFjLEVBQUU7TUFBRyxDQUFDO01BQ2xDVCxNQUFNLENBQUNYLENBQUMsQ0FBQ3dCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGMUIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU07SUFDakMsSUFBSTJCLFNBQVM7SUFDYnBCLFVBQVUsQ0FBQyxNQUFNO01BQ2ZvQixTQUFTLEdBQUcsQ0FBQztRQUFFTCxLQUFLLEVBQUUsQ0FBQztRQUFFQyxHQUFHLEVBQUUsQ0FBQztRQUFFQyxJQUFJLEVBQUU7TUFBSSxDQUFDLENBQUM7TUFDN0N2QixDQUFDLENBQUMyQixnQkFBZ0IsQ0FBQ0QsU0FBUyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUVGaEIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLE1BQU07TUFDMUJDLE1BQU0sQ0FBQ1gsQ0FBQyxDQUFDNEIsUUFBUSxDQUFDUixjQUFjLENBQUMsQ0FBQ0ssT0FBTyxDQUFDQyxTQUFTLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0lBRUZoQixFQUFFLENBQUMscUJBQXFCLEVBQUUsTUFBTTtNQUM5QkMsTUFBTSxDQUFDWCxDQUFDLENBQUNPLGFBQWEsQ0FBQyxDQUFDc0IsY0FBYyxDQUFDLElBQUlDLG9DQUFtQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,89 +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 = require("@testing-library/react");
|
|
6
|
-
var _react2 = _interopRequireDefault(require("react"));
|
|
7
|
-
var _main = require("../main");
|
|
8
|
-
jest.mock('@pie-lib/text-select', () => ({
|
|
9
|
-
prepareText: jest.fn(),
|
|
10
|
-
TextSelect: props => /*#__PURE__*/_react2.default.createElement("div", (0, _extends2.default)({
|
|
11
|
-
"data-testid": "text-select"
|
|
12
|
-
}, props)),
|
|
13
|
-
Legend: props => /*#__PURE__*/_react2.default.createElement("div", (0, _extends2.default)({
|
|
14
|
-
"data-testid": "legend"
|
|
15
|
-
}, props))
|
|
16
|
-
}));
|
|
17
|
-
describe('main', () => {
|
|
18
|
-
const getWrapper = props => {
|
|
19
|
-
return (0, _react.render)(/*#__PURE__*/_react2.default.createElement(_main.Main, (0, _extends2.default)({
|
|
20
|
-
onSelectionChange: jest.fn(),
|
|
21
|
-
model: {
|
|
22
|
-
text: 'foo',
|
|
23
|
-
tokens: [{
|
|
24
|
-
start: 0,
|
|
25
|
-
end: 1,
|
|
26
|
-
text: 'f'
|
|
27
|
-
}]
|
|
28
|
-
},
|
|
29
|
-
session: {
|
|
30
|
-
selectedTokens: [{
|
|
31
|
-
start: 0,
|
|
32
|
-
end: 1,
|
|
33
|
-
text: 'f'
|
|
34
|
-
}]
|
|
35
|
-
},
|
|
36
|
-
classes: {}
|
|
37
|
-
}, props)));
|
|
38
|
-
};
|
|
39
|
-
const createInstance = (props = {}) => {
|
|
40
|
-
const defaultProps = {
|
|
41
|
-
onSelectionChange: jest.fn(),
|
|
42
|
-
model: {
|
|
43
|
-
text: 'foo',
|
|
44
|
-
tokens: [{
|
|
45
|
-
start: 0,
|
|
46
|
-
end: 1,
|
|
47
|
-
text: 'f'
|
|
48
|
-
}]
|
|
49
|
-
},
|
|
50
|
-
session: {
|
|
51
|
-
selectedTokens: [{
|
|
52
|
-
start: 0,
|
|
53
|
-
end: 1,
|
|
54
|
-
text: 'f'
|
|
55
|
-
}]
|
|
56
|
-
},
|
|
57
|
-
classes: {},
|
|
58
|
-
...props
|
|
59
|
-
};
|
|
60
|
-
const instance = new _main.Main(defaultProps);
|
|
61
|
-
instance.setState = jest.fn((state, callback) => {
|
|
62
|
-
Object.assign(instance.state, typeof state === 'function' ? state(instance.state) : state);
|
|
63
|
-
if (callback) callback();
|
|
64
|
-
});
|
|
65
|
-
instance.props = defaultProps;
|
|
66
|
-
return instance;
|
|
67
|
-
};
|
|
68
|
-
describe('logic', () => {
|
|
69
|
-
it('shows correct answer', () => {
|
|
70
|
-
const correctTokens = [{
|
|
71
|
-
start: 0,
|
|
72
|
-
end: 1,
|
|
73
|
-
text: 'f',
|
|
74
|
-
correct: true,
|
|
75
|
-
oldStart: 0,
|
|
76
|
-
oldEnd: 1
|
|
77
|
-
}];
|
|
78
|
-
const instance = createInstance({
|
|
79
|
-
model: {
|
|
80
|
-
text: 'foo',
|
|
81
|
-
tokens: correctTokens
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
const result = instance.correctAnswer();
|
|
85
|
-
expect(result).toEqual(correctTokens);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFpbiIsImplc3QiLCJtb2NrIiwicHJlcGFyZVRleHQiLCJmbiIsIlRleHRTZWxlY3QiLCJwcm9wcyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiTGVnZW5kIiwiZGVzY3JpYmUiLCJnZXRXcmFwcGVyIiwicmVuZGVyIiwiTWFpbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwibW9kZWwiLCJ0ZXh0IiwidG9rZW5zIiwic3RhcnQiLCJlbmQiLCJzZXNzaW9uIiwic2VsZWN0ZWRUb2tlbnMiLCJjbGFzc2VzIiwiY3JlYXRlSW5zdGFuY2UiLCJkZWZhdWx0UHJvcHMiLCJpbnN0YW5jZSIsInNldFN0YXRlIiwic3RhdGUiLCJjYWxsYmFjayIsIk9iamVjdCIsImFzc2lnbiIsIml0IiwiY29ycmVjdFRva2VucyIsImNvcnJlY3QiLCJvbGRTdGFydCIsIm9sZEVuZCIsInJlc3VsdCIsImNvcnJlY3RBbnN3ZXIiLCJleHBlY3QiLCJ0b0VxdWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYWluLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1haW4gfSBmcm9tICcuLi9tYWluJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi90ZXh0LXNlbGVjdCcsICgpID0+ICh7XG4gIHByZXBhcmVUZXh0OiBqZXN0LmZuKCksXG4gIFRleHRTZWxlY3Q6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInRleHQtc2VsZWN0XCIgey4uLnByb3BzfSAvPixcbiAgTGVnZW5kOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJsZWdlbmRcIiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuXG5kZXNjcmliZSgnbWFpbicsICgpID0+IHtcbiAgY29uc3QgZ2V0V3JhcHBlciA9IChwcm9wcykgPT4ge1xuICAgIHJldHVybiByZW5kZXIoXG4gICAgICA8TWFpblxuICAgICAgICBvblNlbGVjdGlvbkNoYW5nZT17amVzdC5mbigpfVxuICAgICAgICBtb2RlbD17e1xuICAgICAgICAgIHRleHQ6ICdmb28nLFxuICAgICAgICAgIHRva2VuczogW3sgc3RhcnQ6IDAsIGVuZDogMSwgdGV4dDogJ2YnIH1dLFxuICAgICAgICB9fVxuICAgICAgICBzZXNzaW9uPXt7XG4gICAgICAgICAgc2VsZWN0ZWRUb2tlbnM6IFt7IHN0YXJ0OiAwLCBlbmQ6IDEsIHRleHQ6ICdmJyB9XSxcbiAgICAgICAgfX1cbiAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+LFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlSW5zdGFuY2UgPSAocHJvcHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlOiBqZXN0LmZuKCksXG4gICAgICBtb2RlbDoge1xuICAgICAgICB0ZXh0OiAnZm9vJyxcbiAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sXG4gICAgICB9LFxuICAgICAgc2Vzc2lvbjoge1xuICAgICAgICBzZWxlY3RlZFRva2VuczogW3sgc3RhcnQ6IDAsIGVuZDogMSwgdGV4dDogJ2YnIH1dLFxuICAgICAgfSxcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBNYWluKGRlZmF1bHRQcm9wcyk7XG4gICAgaW5zdGFuY2Uuc2V0U3RhdGUgPSBqZXN0LmZuKChzdGF0ZSwgY2FsbGJhY2spID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2Uuc3RhdGUsIHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlKGluc3RhbmNlLnN0YXRlKSA6IHN0YXRlKTtcbiAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgICBpbnN0YW5jZS5wcm9wcyA9IGRlZmF1bHRQcm9wcztcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGl0KCdzaG93cyBjb3JyZWN0IGFuc3dlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvcnJlY3RUb2tlbnMgPSBbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicsIGNvcnJlY3Q6IHRydWUsIG9sZFN0YXJ0OiAwLCBvbGRFbmQ6IDEgfV07XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKHtcbiAgICAgICAgbW9kZWw6IHsgdGV4dDogJ2ZvbycsIHRva2VuczogY29ycmVjdFRva2VucyB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBpbnN0YW5jZS5jb3JyZWN0QW5zd2VyKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGNvcnJlY3RUb2tlbnMpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBRUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFLE9BQU87RUFDdkNDLFdBQVcsRUFBRUYsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztFQUN0QkMsVUFBVSxFQUFHQyxLQUFLLGlCQUFLUixPQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxZQUFBQyxTQUFBLENBQUFGLE9BQUE7SUFBSyxlQUFZO0VBQWEsR0FBS0QsS0FBSyxDQUFHLENBQUM7RUFDbkVJLE1BQU0sRUFBR0osS0FBSyxpQkFBS1Is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
|
package/lib/index.js
DELETED
|
@@ -1,104 +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.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _client = require("react-dom/client");
|
|
10
|
-
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
11
|
-
var _main = _interopRequireDefault(require("./main"));
|
|
12
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
13
|
-
var _utils = _interopRequireDefault(require("./utils"));
|
|
14
|
-
class SelectText extends HTMLElement {
|
|
15
|
-
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
this._root = null;
|
|
18
|
-
}
|
|
19
|
-
set model(m) {
|
|
20
|
-
this._model = m;
|
|
21
|
-
this.render();
|
|
22
|
-
this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined));
|
|
23
|
-
}
|
|
24
|
-
set session(s) {
|
|
25
|
-
this._session = s;
|
|
26
|
-
if (this._model) {
|
|
27
|
-
const generatedModel = (0, _utils.default)(this._model) || {};
|
|
28
|
-
const {
|
|
29
|
-
tokens
|
|
30
|
-
} = generatedModel;
|
|
31
|
-
let {
|
|
32
|
-
selectedTokens
|
|
33
|
-
} = s || {};
|
|
34
|
-
selectedTokens = selectedTokens || [];
|
|
35
|
-
|
|
36
|
-
// This case was introduced mostly for createCorrectSession:
|
|
37
|
-
// make sure initial session tokens are parsed and have correct start and end (according to the regenerated model)
|
|
38
|
-
const selectedTokenExistsInGeneratedTokens = s => tokens.find(({
|
|
39
|
-
start: tStart,
|
|
40
|
-
end: tEnd
|
|
41
|
-
}) => s.start === tStart && s.end === tEnd);
|
|
42
|
-
|
|
43
|
-
// check if ALL the selectedTokens have the correct start and end
|
|
44
|
-
const allAreCorrect = selectedTokens.reduce((acc, selectedToken) => acc && selectedTokenExistsInGeneratedTokens(selectedToken), true);
|
|
45
|
-
if (!allAreCorrect) {
|
|
46
|
-
// otherwise, make sure to parse selectedTokens as well
|
|
47
|
-
const generatedModel = (0, _utils.default)({
|
|
48
|
-
...this._model,
|
|
49
|
-
tokens: selectedTokens
|
|
50
|
-
}) || {};
|
|
51
|
-
const {
|
|
52
|
-
tokens
|
|
53
|
-
} = generatedModel;
|
|
54
|
-
if (tokens) {
|
|
55
|
-
this._session.selectedTokens = tokens;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (!Array.isArray(this._session.selectedTokens)) {
|
|
60
|
-
this._session.selectedTokens = [];
|
|
61
|
-
}
|
|
62
|
-
this.render();
|
|
63
|
-
}
|
|
64
|
-
get session() {
|
|
65
|
-
return this._session;
|
|
66
|
-
}
|
|
67
|
-
isSessionComplete() {
|
|
68
|
-
const {
|
|
69
|
-
selectedTokens
|
|
70
|
-
} = this._session || {};
|
|
71
|
-
return Array.isArray(selectedTokens) && selectedTokens.length > 0;
|
|
72
|
-
}
|
|
73
|
-
selectionChanged(selection) {
|
|
74
|
-
this._session.selectedTokens = selection;
|
|
75
|
-
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isSessionComplete()));
|
|
76
|
-
}
|
|
77
|
-
connectedCallback() {
|
|
78
|
-
this.render();
|
|
79
|
-
}
|
|
80
|
-
render() {
|
|
81
|
-
if (this._model && this._session) {
|
|
82
|
-
const el = /*#__PURE__*/_react.default.createElement(_main.default, {
|
|
83
|
-
model: this._model,
|
|
84
|
-
session: this._session,
|
|
85
|
-
onSelectionChange: this.selectionChanged.bind(this)
|
|
86
|
-
});
|
|
87
|
-
if (!this._root) {
|
|
88
|
-
this._root = (0, _client.createRoot)(this);
|
|
89
|
-
}
|
|
90
|
-
this._root.render(el);
|
|
91
|
-
queueMicrotask(() => {
|
|
92
|
-
(0, _mathRendering.renderMath)(this);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
disconnectedCallback() {
|
|
97
|
-
if (this._root) {
|
|
98
|
-
this._root.unmount();
|
|
99
|
-
this._root = null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
exports.default = SelectText;
|
|
104
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_mathRendering","_utils","SelectText","HTMLElement","constructor","_root","model","m","_model","render","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isSessionComplete","undefined","session","s","_session","generatedModel","generateModel","tokens","selectedTokens","selectedTokenExistsInGeneratedTokens","find","start","tStart","end","tEnd","allAreCorrect","reduce","acc","selectedToken","Array","isArray","length","selectionChanged","selection","SessionChangedEvent","connectedCallback","el","React","createElement","Main","onSelectionChange","bind","createRoot","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent, ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport generateModel from './utils';\n\nexport default class SelectText extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n set session(s) {\n this._session = s;\n\n if (this._model) {\n const generatedModel = generateModel(this._model) || {};\n const { tokens } = generatedModel;\n let { selectedTokens } = s || {};\n\n selectedTokens = selectedTokens || [];\n\n // This case was introduced mostly for createCorrectSession:\n // make sure initial session tokens are parsed and have correct start and end (according to the regenerated model)\n const selectedTokenExistsInGeneratedTokens = (s) =>\n tokens.find(({ start: tStart, end: tEnd }) => s.start === tStart && s.end === tEnd);\n\n // check if ALL the selectedTokens have the correct start and end\n const allAreCorrect = selectedTokens.reduce(\n (acc, selectedToken) => acc && selectedTokenExistsInGeneratedTokens(selectedToken),\n true,\n );\n\n if (!allAreCorrect) {\n // otherwise, make sure to parse selectedTokens as well\n const generatedModel = generateModel({ ...this._model, tokens: selectedTokens }) || {};\n const { tokens } = generatedModel;\n\n if (tokens) {\n this._session.selectedTokens = tokens;\n }\n }\n }\n\n if (!Array.isArray(this._session.selectedTokens)) {\n this._session.selectedTokens = [];\n }\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n const { selectedTokens } = this._session || {};\n return Array.isArray(selectedTokens) && selectedTokens.length > 0;\n }\n\n selectionChanged(selection) {\n this._session.selectedTokens = selection;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isSessionComplete()));\n }\n\n connectedCallback() {\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSelectionChange: this.selectionChanged.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/main.js
DELETED
|
@@ -1,203 +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.default = exports.Main = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
11
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
-
var _textSelect = require("@pie-lib/text-select");
|
|
13
|
-
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
|
|
14
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
15
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
16
|
-
var _styles = require("@mui/material/styles");
|
|
17
|
-
var _utils = _interopRequireDefault(require("./utils"));
|
|
18
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
19
|
-
const log = (0, _debug.default)('@pie-ui:select-text');
|
|
20
|
-
const StyledUiLayout = (0, _styles.styled)(_renderUi.UiLayout)({
|
|
21
|
-
color: _renderUi.color.text(),
|
|
22
|
-
backgroundColor: _renderUi.color.background()
|
|
23
|
-
});
|
|
24
|
-
const StyledTextSelect = (0, _styles.styled)(_textSelect.TextSelect)(({
|
|
25
|
-
theme
|
|
26
|
-
}) => ({
|
|
27
|
-
marginBottom: theme.spacing(1),
|
|
28
|
-
marginTop: theme.spacing(2),
|
|
29
|
-
whiteSpace: 'normal'
|
|
30
|
-
}));
|
|
31
|
-
const Prompt = (0, _styles.styled)('div')(({
|
|
32
|
-
theme
|
|
33
|
-
}) => ({
|
|
34
|
-
verticalAlign: 'middle',
|
|
35
|
-
marginBottom: theme.spacing(1)
|
|
36
|
-
}));
|
|
37
|
-
const StyledCollapsible = (0, _styles.styled)(_renderUi.Collapsible)(({
|
|
38
|
-
theme
|
|
39
|
-
}) => ({
|
|
40
|
-
marginBottom: theme.spacing(2)
|
|
41
|
-
}));
|
|
42
|
-
const Types = {
|
|
43
|
-
model: _propTypes.default.object,
|
|
44
|
-
session: _propTypes.default.object,
|
|
45
|
-
onSelectionChange: _propTypes.default.func.isRequired
|
|
46
|
-
};
|
|
47
|
-
class Main extends _react.default.Component {
|
|
48
|
-
constructor(props) {
|
|
49
|
-
super(props);
|
|
50
|
-
(0, _defineProperty2.default)(this, "toggleShowCorrect", () => {
|
|
51
|
-
this.setState({
|
|
52
|
-
showCorrectAnswer: !this.state.showCorrectAnswer
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
(0, _defineProperty2.default)(this, "correctAnswer", () => {
|
|
56
|
-
const {
|
|
57
|
-
model
|
|
58
|
-
} = this.state;
|
|
59
|
-
return model.tokens.filter(t => t.correct);
|
|
60
|
-
});
|
|
61
|
-
this.state = {
|
|
62
|
-
showCorrectAnswer: this.props.model.alwaysShowCorrect || false,
|
|
63
|
-
model: (0, _utils.default)(props.model)
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
67
|
-
this.setState({
|
|
68
|
-
showCorrectAnswer: !!nextProps.model.alwaysShowCorrect,
|
|
69
|
-
model: (0, _utils.default)(nextProps.model)
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
componentDidMount() {
|
|
73
|
-
// eslint-disable-next-line react/no-find-dom-node
|
|
74
|
-
const domNode = _reactDom.default.findDOMNode(this);
|
|
75
|
-
(0, _mathRendering.renderMath)(domNode);
|
|
76
|
-
}
|
|
77
|
-
componentDidUpdate() {
|
|
78
|
-
// eslint-disable-next-line react/no-find-dom-node
|
|
79
|
-
const domNode = _reactDom.default.findDOMNode(this);
|
|
80
|
-
(0, _mathRendering.renderMath)(domNode);
|
|
81
|
-
}
|
|
82
|
-
render() {
|
|
83
|
-
const {
|
|
84
|
-
session,
|
|
85
|
-
onSelectionChange
|
|
86
|
-
} = this.props;
|
|
87
|
-
const {
|
|
88
|
-
showCorrectAnswer,
|
|
89
|
-
model
|
|
90
|
-
} = this.state;
|
|
91
|
-
const {
|
|
92
|
-
env,
|
|
93
|
-
extraCSSRules
|
|
94
|
-
} = model;
|
|
95
|
-
const {
|
|
96
|
-
mode
|
|
97
|
-
} = env || {};
|
|
98
|
-
const selectedTokens = showCorrectAnswer ? this.correctAnswer() : session.selectedTokens;
|
|
99
|
-
const showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
|
|
100
|
-
const showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
|
|
101
|
-
log('[render] selectedTokens:', selectedTokens);
|
|
102
|
-
return /*#__PURE__*/_react.default.createElement(StyledUiLayout, {
|
|
103
|
-
extraCSSRules: extraCSSRules
|
|
104
|
-
}, showTeacherInstructions && (!model.animationsDisabled ? /*#__PURE__*/_react.default.createElement(StyledCollapsible, {
|
|
105
|
-
labels: {
|
|
106
|
-
hidden: 'Show Teacher Instructions',
|
|
107
|
-
visible: 'Hide Teacher Instructions'
|
|
108
|
-
}
|
|
109
|
-
}, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
110
|
-
prompt: model.teacherInstructions
|
|
111
|
-
})) : /*#__PURE__*/_react.default.createElement(Prompt, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
112
|
-
prompt: model.teacherInstructions
|
|
113
|
-
}))), /*#__PURE__*/_react.default.createElement(Prompt, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
114
|
-
prompt: model.prompt
|
|
115
|
-
})), !model.alwaysShowCorrect && /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
|
|
116
|
-
show: model.disabled && model.incorrect,
|
|
117
|
-
toggled: showCorrectAnswer,
|
|
118
|
-
onToggle: this.toggleShowCorrect,
|
|
119
|
-
language: model.language
|
|
120
|
-
}), /*#__PURE__*/_react.default.createElement(StyledTextSelect, {
|
|
121
|
-
disabled: model.disabled,
|
|
122
|
-
text: model.text,
|
|
123
|
-
tokens: model.tokens,
|
|
124
|
-
selectedTokens: selectedTokens,
|
|
125
|
-
onChange: selection => {
|
|
126
|
-
const newSelections = selection.map(select => {
|
|
127
|
-
const token = model.tokens.find(({
|
|
128
|
-
start,
|
|
129
|
-
end
|
|
130
|
-
}) => select.start === start && select.end === end);
|
|
131
|
-
|
|
132
|
-
// needed for getScore when tokens position is recalculated, to keep oldStart and oldEnd
|
|
133
|
-
if (token) {
|
|
134
|
-
return token;
|
|
135
|
-
}
|
|
136
|
-
return select;
|
|
137
|
-
});
|
|
138
|
-
onSelectionChange(newSelections);
|
|
139
|
-
},
|
|
140
|
-
highlightChoices: model.highlightChoices,
|
|
141
|
-
maxNoOfSelections: model.maxSelections,
|
|
142
|
-
animationsDisabled: model.animationsDisabled
|
|
143
|
-
}), mode === 'evaluate' && /*#__PURE__*/_react.default.createElement(_textSelect.Legend, {
|
|
144
|
-
language: model.language,
|
|
145
|
-
showOnlyCorrect: showCorrectAnswer
|
|
146
|
-
}), showRationale && (!model.animationsDisabled ? /*#__PURE__*/_react.default.createElement(StyledCollapsible, {
|
|
147
|
-
labels: {
|
|
148
|
-
hidden: 'Show Rationale',
|
|
149
|
-
visible: 'Hide Rationale'
|
|
150
|
-
}
|
|
151
|
-
}, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
152
|
-
prompt: model.rationale
|
|
153
|
-
})) : /*#__PURE__*/_react.default.createElement(Prompt, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
154
|
-
prompt: model.rationale
|
|
155
|
-
}))), model.correctness && model.feedback && !showCorrectAnswer && /*#__PURE__*/_react.default.createElement(_renderUi.Feedback, {
|
|
156
|
-
correctness: model.correctness,
|
|
157
|
-
feedback: model.feedback
|
|
158
|
-
}));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
exports.Main = Main;
|
|
162
|
-
(0, _defineProperty2.default)(Main, "propTypes", Types);
|
|
163
|
-
(0, _defineProperty2.default)(Main, "defaultProps", {});
|
|
164
|
-
class Stateful extends _react.default.Component {
|
|
165
|
-
constructor(props) {
|
|
166
|
-
super(props);
|
|
167
|
-
(0, _defineProperty2.default)(this, "change", selectedTokens => {
|
|
168
|
-
const session = {
|
|
169
|
-
...this.state.session,
|
|
170
|
-
selectedTokens
|
|
171
|
-
};
|
|
172
|
-
this.setState({
|
|
173
|
-
session
|
|
174
|
-
}, () => {
|
|
175
|
-
this.props.onSelectionChange(this.state.session.selectedTokens);
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
this.state = {
|
|
179
|
-
model: props.model,
|
|
180
|
-
session: props.session
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
184
|
-
this.setState({
|
|
185
|
-
model: nextProps.model,
|
|
186
|
-
session: nextProps.session
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
render() {
|
|
190
|
-
const {
|
|
191
|
-
model,
|
|
192
|
-
session
|
|
193
|
-
} = this.state;
|
|
194
|
-
return /*#__PURE__*/_react.default.createElement(Main, {
|
|
195
|
-
model: model,
|
|
196
|
-
session: session,
|
|
197
|
-
onSelectionChange: this.change
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
exports.default = Stateful;
|
|
202
|
-
(0, _defineProperty2.default)(Stateful, "propTypes", Types);
|
|
203
|
-
//# sourceMappingURL=main.js.map
|
package/lib/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_reactDom","_propTypes","_textSelect","_correctAnswerToggle","_renderUi","_mathRendering","_styles","_utils","_debug","log","debug","StyledUiLayout","styled","UiLayout","color","text","backgroundColor","background","StyledTextSelect","TextSelect","theme","marginBottom","spacing","marginTop","whiteSpace","Prompt","verticalAlign","StyledCollapsible","Collapsible","Types","model","PropTypes","object","session","onSelectionChange","func","isRequired","Main","React","Component","constructor","props","_defineProperty2","default","setState","showCorrectAnswer","state","tokens","filter","t","correct","alwaysShowCorrect","generateModel","UNSAFE_componentWillReceiveProps","nextProps","componentDidMount","domNode","ReactDOM","findDOMNode","renderMath","componentDidUpdate","render","env","extraCSSRules","mode","selectedTokens","correctAnswer","showRationale","rationale","hasText","hasMedia","showTeacherInstructions","teacherInstructions","createElement","animationsDisabled","labels","hidden","visible","PreviewPrompt","prompt","show","disabled","incorrect","toggled","onToggle","toggleShowCorrect","language","onChange","selection","newSelections","map","select","token","find","start","end","highlightChoices","maxNoOfSelections","maxSelections","Legend","showOnlyCorrect","correctness","feedback","Feedback","exports","Stateful","change"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { TextSelect, Legend } from '@pie-lib/text-select';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { color, Feedback, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport generateModel from './utils';\n\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:select-text');\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nconst StyledTextSelect = styled(TextSelect)(({ theme }) => ({\n marginBottom: theme.spacing(1),\n marginTop: theme.spacing(2),\n whiteSpace: 'normal',\n}));\n\nconst Prompt = styled('div')(({ theme }) => ({\n verticalAlign: 'middle',\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Types = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSelectionChange: PropTypes.func.isRequired,\n};\n\nexport class Main extends React.Component {\n static propTypes = Types;\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrectAnswer: this.props.model.alwaysShowCorrect || false,\n model: generateModel(props.model),\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({\n showCorrectAnswer: !!nextProps.model.alwaysShowCorrect,\n model: generateModel(nextProps.model),\n });\n }\n\n componentDidMount() {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n componentDidUpdate() {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n correctAnswer = () => {\n const { model } = this.state;\n\n return model.tokens.filter((t) => t.correct);\n };\n\n render() {\n const { session, onSelectionChange } = this.props;\n const { showCorrectAnswer, model } = this.state;\n const { env, extraCSSRules } = model;\n const { mode } = env || {};\n\n const selectedTokens = showCorrectAnswer ? this.correctAnswer() : session.selectedTokens;\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n\n log('[render] selectedTokens:', selectedTokens);\n\n return (\n <StyledUiLayout extraCSSRules={extraCSSRules}>\n {showTeacherInstructions &&\n (!model.animationsDisabled ? (\n <StyledCollapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </StyledCollapsible>\n ) : (\n <Prompt>\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Prompt>\n ))}\n\n <Prompt>\n <PreviewPrompt prompt={model.prompt} />\n </Prompt>\n\n {!model.alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={model.disabled && model.incorrect}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={model.language}\n />\n )}\n\n <StyledTextSelect\n disabled={model.disabled}\n text={model.text}\n tokens={model.tokens}\n selectedTokens={selectedTokens}\n onChange={(selection) => {\n const newSelections = selection.map((select) => {\n const token = model.tokens.find(({ start, end }) => select.start === start && select.end === end);\n\n // needed for getScore when tokens position is recalculated, to keep oldStart and oldEnd\n if (token) {\n return token;\n }\n\n return select;\n });\n\n onSelectionChange(newSelections);\n }}\n highlightChoices={model.highlightChoices}\n maxNoOfSelections={model.maxSelections}\n animationsDisabled={model.animationsDisabled}\n />\n {mode === 'evaluate' && <Legend language={model.language} showOnlyCorrect={showCorrectAnswer} />}\n\n {showRationale &&\n (!model.animationsDisabled ? (\n <StyledCollapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <PreviewPrompt prompt={model.rationale} />\n </StyledCollapsible>\n ) : (\n <Prompt>\n <PreviewPrompt prompt={model.rationale} />\n </Prompt>\n ))}\n\n {model.correctness && model.feedback && !showCorrectAnswer && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n </StyledUiLayout>\n );\n }\n}\n\nexport default class Stateful extends React.Component {\n static propTypes = Types;\n\n constructor(props) {\n super(props);\n this.state = {\n model: props.model,\n session: props.session,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({ model: nextProps.model, session: nextProps.session });\n }\n\n change = (selectedTokens) => {\n const session = { ...this.state.session, selectedTokens };\n this.setState({ session }, () => {\n this.props.onSelectionChange(this.state.session.selectedTokens);\n });\n };\n\n render() {\n const { model, session } = this.state;\n return <Main model={model} session={session} onSelectionChange={this.change} />;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/print.js
DELETED
|
@@ -1,87 +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.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _client = require("react-dom/client");
|
|
10
|
-
var _lodashEs = require("lodash-es");
|
|
11
|
-
var _main = _interopRequireDefault(require("./main"));
|
|
12
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
13
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
14
|
-
const log = (0, _debug.default)('pie-element:select-text:print');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Live in same package as main element - so we can access some of the shared comps!
|
|
18
|
-
*
|
|
19
|
-
* - update pslb to build print if src/print.js is there
|
|
20
|
-
* - update demo el
|
|
21
|
-
* - get configure/controller building
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
const preparePrintModel = (model, opts) => {
|
|
25
|
-
const instr = opts.role === 'instructor';
|
|
26
|
-
model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
|
|
27
|
-
model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
|
|
28
|
-
model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;
|
|
29
|
-
model.showTeacherInstructions = instr;
|
|
30
|
-
model.alwaysShowCorrect = instr;
|
|
31
|
-
model.mode = instr ? 'evaluate' : model.mode;
|
|
32
|
-
model.disabled = true;
|
|
33
|
-
model.animationsDisabled = true;
|
|
34
|
-
model.highlightChoices = true;
|
|
35
|
-
model.feedback = undefined;
|
|
36
|
-
return model;
|
|
37
|
-
};
|
|
38
|
-
class SelectTextPrint extends HTMLElement {
|
|
39
|
-
constructor() {
|
|
40
|
-
super();
|
|
41
|
-
this._options = null;
|
|
42
|
-
this._model = null;
|
|
43
|
-
this._session = {};
|
|
44
|
-
this._session.selectedTokens = [];
|
|
45
|
-
this._root = null;
|
|
46
|
-
this._rerender = (0, _lodashEs.debounce)(() => {
|
|
47
|
-
if (this._model && this._session) {
|
|
48
|
-
const printModel = preparePrintModel(this._model, this._options);
|
|
49
|
-
const element = this._options && /*#__PURE__*/_react.default.createElement(_main.default, {
|
|
50
|
-
model: printModel,
|
|
51
|
-
session: {
|
|
52
|
-
selectedTokens: []
|
|
53
|
-
},
|
|
54
|
-
onSelectionChange: () => {}
|
|
55
|
-
});
|
|
56
|
-
if (!this._root) {
|
|
57
|
-
this._root = (0, _client.createRoot)(this);
|
|
58
|
-
}
|
|
59
|
-
this._root.render(element);
|
|
60
|
-
queueMicrotask(() => {
|
|
61
|
-
log('render complete - render math');
|
|
62
|
-
(0, _mathRendering.renderMath)(this);
|
|
63
|
-
});
|
|
64
|
-
} else {
|
|
65
|
-
log('skip');
|
|
66
|
-
}
|
|
67
|
-
}, 50, {
|
|
68
|
-
leading: false,
|
|
69
|
-
trailing: true
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
set options(o) {
|
|
73
|
-
this._options = o;
|
|
74
|
-
}
|
|
75
|
-
set model(s) {
|
|
76
|
-
this._model = s;
|
|
77
|
-
this._rerender();
|
|
78
|
-
}
|
|
79
|
-
connectedCallback() {}
|
|
80
|
-
disconnectedCallback() {
|
|
81
|
-
if (this._root) {
|
|
82
|
-
this._root.unmount();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
exports.default = SelectTextPrint;
|
|
87
|
-
//# sourceMappingURL=print.js.map
|
package/lib/print.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_main","_mathRendering","_debug","log","debug","preparePrintModel","model","opts","instr","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","rationale","rationaleEnabled","showTeacherInstructions","alwaysShowCorrect","mode","disabled","animationsDisabled","highlightChoices","feedback","SelectTextPrint","HTMLElement","constructor","_options","_model","_session","selectedTokens","_root","_rerender","debounce","printModel","element","React","createElement","Main","session","onSelectionChange","createRoot","render","queueMicrotask","renderMath","leading","trailing","options","o","s","connectedCallback","disconnectedCallback","unmount","exports","default"],"sources":["../src/print.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { debounce } from 'lodash-es';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:select-text:print');\n\n/**\n * Live in same package as main element - so we can access some of the shared comps!\n *\n * - update pslb to build print if src/print.js is there\n * - update demo el\n * - get configure/controller building\n */\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions =\n instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;\n model.showTeacherInstructions = instr;\n model.alwaysShowCorrect = instr;\n model.mode = instr ? 'evaluate' : model.mode;\n\n model.disabled = true;\n model.animationsDisabled = true;\n model.highlightChoices = true;\n model.feedback = undefined;\n\n return model;\n};\n\nexport default class SelectTextPrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = {};\n this._session.selectedTokens = [];\n this._root = null;\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n model: printModel,\n session: { selectedTokens: [] },\n onSelectionChange: () => {},\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n queueMicrotask(() => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|