@pie-lib/editable-html-tip-tap 2.1.10 → 2.2.0-beta
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/CHANGELOG.md +0 -75
- package/lib/__tests__/EditableHtml.test.js +831 -0
- package/lib/__tests__/EditableHtml.test.js.map +1 -0
- package/lib/__tests__/constants.test.js +21 -0
- package/lib/__tests__/constants.test.js.map +1 -0
- package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
- package/lib/__tests__/div-to-paragraph-conversion.test.js.map +1 -0
- package/lib/__tests__/extensions.test.js +209 -0
- package/lib/__tests__/extensions.test.js.map +1 -0
- package/lib/__tests__/index.test.js +250 -0
- package/lib/__tests__/index.test.js.map +1 -0
- package/lib/__tests__/size-utils.test.js +57 -0
- package/lib/__tests__/size-utils.test.js.map +1 -0
- package/lib/__tests__/theme.test.js +17 -0
- package/lib/__tests__/theme.test.js.map +1 -0
- package/lib/components/EditableHtml.js +4 -2
- package/lib/components/EditableHtml.js.map +1 -1
- package/lib/components/__tests__/AltDialog.test.js +201 -0
- package/lib/components/__tests__/AltDialog.test.js.map +1 -0
- package/lib/components/__tests__/CharacterPicker.test.js +455 -0
- package/lib/components/__tests__/CharacterPicker.test.js.map +1 -0
- package/lib/components/__tests__/CssIcon.test.js +58 -0
- package/lib/components/__tests__/CssIcon.test.js.map +1 -0
- package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
- package/lib/components/__tests__/DragInTheBlank.test.js.map +1 -0
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +1 -0
- package/lib/components/__tests__/ImageToolbar.test.js +185 -0
- package/lib/components/__tests__/ImageToolbar.test.js.map +1 -0
- package/lib/components/__tests__/InlineDropdown.test.js +839 -0
- package/lib/components/__tests__/InlineDropdown.test.js.map +1 -0
- package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
- package/lib/components/__tests__/InsertImageHandler.test.js.map +1 -0
- package/lib/components/__tests__/MediaDialog.test.js +433 -0
- package/lib/components/__tests__/MediaDialog.test.js.map +1 -0
- package/lib/components/__tests__/MediaToolbar.test.js +126 -0
- package/lib/components/__tests__/MediaToolbar.test.js.map +1 -0
- package/lib/components/__tests__/MediaWrapper.test.js +96 -0
- package/lib/components/__tests__/MediaWrapper.test.js.map +1 -0
- package/lib/components/__tests__/MenuBar.test.js +502 -0
- package/lib/components/__tests__/MenuBar.test.js.map +1 -0
- package/lib/components/__tests__/RespArea.test.js +171 -0
- package/lib/components/__tests__/RespArea.test.js.map +1 -0
- package/lib/components/__tests__/TableIcons.test.js +153 -0
- package/lib/components/__tests__/TableIcons.test.js.map +1 -0
- package/lib/components/__tests__/TextAlign.test.js +209 -0
- package/lib/components/__tests__/TextAlign.test.js.map +1 -0
- package/lib/components/__tests__/TiptapContainer.test.js +196 -0
- package/lib/components/__tests__/TiptapContainer.test.js.map +1 -0
- package/lib/components/__tests__/characterUtils.test.js +178 -0
- package/lib/components/__tests__/characterUtils.test.js.map +1 -0
- package/lib/components/__tests__/choice.test.js +213 -0
- package/lib/components/__tests__/choice.test.js.map +1 -0
- package/lib/components/__tests__/custom-popper.test.js +108 -0
- package/lib/components/__tests__/custom-popper.test.js.map +1 -0
- package/lib/components/__tests__/done-button.test.js +72 -0
- package/lib/components/__tests__/done-button.test.js.map +1 -0
- package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
- package/lib/components/__tests__/toolbar-buttons.test.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/choice.js +3 -0
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
- package/lib/components/respArea/MathTemplated.js +2 -2
- package/lib/components/respArea/MathTemplated.js.map +1 -1
- package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
- package/lib/components/respArea/__tests__/MathTemplated.test.js.map +1 -0
- package/lib/extensions/__tests__/css.test.js +214 -0
- package/lib/extensions/__tests__/css.test.js.map +1 -0
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +1 -0
- package/lib/extensions/__tests__/divNode.test.js +108 -0
- package/lib/extensions/__tests__/divNode.test.js.map +1 -0
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +1 -0
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
- package/lib/extensions/__tests__/extended-list-item.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
- package/lib/extensions/__tests__/extended-table-cell.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-table.test.js +200 -0
- package/lib/extensions/__tests__/extended-table.test.js.map +1 -0
- package/lib/extensions/__tests__/image-component.test.js +432 -0
- package/lib/extensions/__tests__/image-component.test.js.map +1 -0
- package/lib/extensions/__tests__/image.test.js +313 -0
- package/lib/extensions/__tests__/image.test.js.map +1 -0
- package/lib/extensions/__tests__/math.test.js +1399 -0
- package/lib/extensions/__tests__/math.test.js.map +1 -0
- package/lib/extensions/__tests__/media-node-view.test.js +307 -0
- package/lib/extensions/__tests__/media-node-view.test.js.map +1 -0
- package/lib/extensions/__tests__/media.test.js +292 -0
- package/lib/extensions/__tests__/media.test.js.map +1 -0
- package/lib/extensions/__tests__/responseArea.test.js +736 -0
- package/lib/extensions/__tests__/responseArea.test.js.map +1 -0
- package/lib/extensions/image-component.js +9 -6
- package/lib/extensions/image-component.js.map +1 -1
- package/lib/extensions/responseArea.js +7 -1
- package/lib/extensions/responseArea.js.map +1 -1
- package/lib/utils/__tests__/helper.test.js +107 -0
- package/lib/utils/__tests__/helper.test.js.map +1 -0
- package/lib/utils/__tests__/toolbar.test.js +38 -0
- package/lib/utils/__tests__/toolbar.test.js.map +1 -0
- package/package.json +7 -7
- package/src/components/EditableHtml.jsx +5 -3
- package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +72 -0
- package/src/components/respArea/DragInTheBlank/choice.jsx +3 -0
- package/src/components/respArea/MathTemplated.jsx +1 -1
- package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
- package/src/extensions/__tests__/image-component.test.jsx +1 -0
- package/src/extensions/__tests__/responseArea.test.js +57 -3
- package/src/extensions/image-component.jsx +8 -6
- package/src/extensions/responseArea.js +7 -1
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ensureListItemContentIsDiv = require("../ensure-list-item-content-is-div");
|
|
4
|
+
describe('EnsureListItemContentIsDiv', function () {
|
|
5
|
+
it('registers a ProseMirror plugin that rewrites listItem paragraph children to div', function () {
|
|
6
|
+
var plugins = _ensureListItemContentIsDiv.EnsureListItemContentIsDiv.config.addProseMirrorPlugins();
|
|
7
|
+
expect(Array.isArray(plugins)).toBe(true);
|
|
8
|
+
expect(plugins).toHaveLength(1);
|
|
9
|
+
var plugin = plugins[0];
|
|
10
|
+
var divType = {
|
|
11
|
+
name: 'div'
|
|
12
|
+
};
|
|
13
|
+
var tr = {
|
|
14
|
+
setNodeMarkup: jest.fn()
|
|
15
|
+
};
|
|
16
|
+
var paragraphChild = {
|
|
17
|
+
type: {
|
|
18
|
+
name: 'paragraph'
|
|
19
|
+
},
|
|
20
|
+
attrs: {
|
|
21
|
+
"class": 'x'
|
|
22
|
+
},
|
|
23
|
+
nodeSize: 6
|
|
24
|
+
};
|
|
25
|
+
var listItemNode = {
|
|
26
|
+
type: {
|
|
27
|
+
name: 'listItem'
|
|
28
|
+
},
|
|
29
|
+
forEach: function forEach(cb) {
|
|
30
|
+
return cb(paragraphChild);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var newState = {
|
|
34
|
+
schema: {
|
|
35
|
+
nodes: {
|
|
36
|
+
div: divType
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
tr: tr,
|
|
40
|
+
doc: {
|
|
41
|
+
descendants: function descendants(cb) {
|
|
42
|
+
return cb(listItemNode, 10);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var result = plugin.spec.appendTransaction([{
|
|
47
|
+
docChanged: true
|
|
48
|
+
}], {}, newState);
|
|
49
|
+
expect(tr.setNodeMarkup).toHaveBeenCalledWith(11, divType, paragraphChild.attrs);
|
|
50
|
+
expect(result).toBe(tr);
|
|
51
|
+
});
|
|
52
|
+
it('returns null when there is no document change', function () {
|
|
53
|
+
var plugin = _ensureListItemContentIsDiv.EnsureListItemContentIsDiv.config.addProseMirrorPlugins()[0];
|
|
54
|
+
var result = plugin.spec.appendTransaction([{
|
|
55
|
+
docChanged: false
|
|
56
|
+
}], {}, {});
|
|
57
|
+
expect(result).toBeNull();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=ensure-list-item-content-is-div.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-list-item-content-is-div.test.js","names":["_ensureListItemContentIsDiv","require","describe","it","plugins","EnsureListItemContentIsDiv","config","addProseMirrorPlugins","expect","Array","isArray","toBe","toHaveLength","plugin","divType","name","tr","setNodeMarkup","jest","fn","paragraphChild","type","attrs","nodeSize","listItemNode","forEach","cb","newState","schema","nodes","div","doc","descendants","result","spec","appendTransaction","docChanged","toHaveBeenCalledWith","toBeNull"],"sources":["../../../src/extensions/__tests__/ensure-list-item-content-is-div.test.js"],"sourcesContent":["import { EnsureListItemContentIsDiv } from '../ensure-list-item-content-is-div';\n\ndescribe('EnsureListItemContentIsDiv', () => {\n it('registers a ProseMirror plugin that rewrites listItem paragraph children to div', () => {\n const plugins = EnsureListItemContentIsDiv.config.addProseMirrorPlugins();\n expect(Array.isArray(plugins)).toBe(true);\n expect(plugins).toHaveLength(1);\n\n const plugin = plugins[0];\n const divType = { name: 'div' };\n const tr = { setNodeMarkup: jest.fn() };\n\n const paragraphChild = {\n type: { name: 'paragraph' },\n attrs: { class: 'x' },\n nodeSize: 6,\n };\n\n const listItemNode = {\n type: { name: 'listItem' },\n forEach: (cb) => cb(paragraphChild),\n };\n\n const newState = {\n schema: { nodes: { div: divType } },\n tr,\n doc: {\n descendants: (cb) => cb(listItemNode, 10),\n },\n };\n\n const result = plugin.spec.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.setNodeMarkup).toHaveBeenCalledWith(11, divType, paragraphChild.attrs);\n expect(result).toBe(tr);\n });\n\n it('returns null when there is no document change', () => {\n const plugin = EnsureListItemContentIsDiv.config.addProseMirrorPlugins()[0];\n\n const result = plugin.spec.appendTransaction([{ docChanged: false }], {}, {});\n expect(result).toBeNull();\n });\n});\n"],"mappings":";;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,4BAA4B,EAAE,YAAM;EAC3CC,EAAE,CAAC,iFAAiF,EAAE,YAAM;IAC1F,IAAMC,OAAO,GAAGC,sDAA0B,CAACC,MAAM,CAACC,qBAAqB,CAAC,CAAC;IACzEC,MAAM,CAACC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,CAAC,CAACO,IAAI,CAAC,IAAI,CAAC;IACzCH,MAAM,CAACJ,OAAO,CAAC,CAACQ,YAAY,CAAC,CAAC,CAAC;IAE/B,IAAMC,MAAM,GAAGT,OAAO,CAAC,CAAC,CAAC;IACzB,IAAMU,OAAO,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC;IAC/B,IAAMC,EAAE,GAAG;MAAEC,aAAa,EAAEC,IAAI,CAACC,EAAE,CAAC;IAAE,CAAC;IAEvC,IAAMC,cAAc,GAAG;MACrBC,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAY,CAAC;MAC3BO,KAAK,EAAE;QAAE,SAAO;MAAI,CAAC;MACrBC,QAAQ,EAAE;IACZ,CAAC;IAED,IAAMC,YAAY,GAAG;MACnBH,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAW,CAAC;MAC1BU,OAAO,EAAE,SAATA,OAAOA,CAAGC,EAAE;QAAA,OAAKA,EAAE,CAACN,cAAc,CAAC;MAAA;IACrC,CAAC;IAED,IAAMO,QAAQ,GAAG;MACfC,MAAM,EAAE;QAAEC,KAAK,EAAE;UAAEC,GAAG,EAAEhB;QAAQ;MAAE,CAAC;MACnCE,EAAE,EAAFA,EAAE;MACFe,GAAG,EAAE;QACHC,WAAW,EAAE,SAAbA,WAAWA,CAAGN,EAAE;UAAA,OAAKA,EAAE,CAACF,YAAY,EAAE,EAAE,CAAC;QAAA;MAC3C;IACF,CAAC;IAED,IAAMS,MAAM,GAAGpB,MAAM,CAACqB,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAAEC,UAAU,EAAE;IAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAET,QAAQ,CAAC;IAElFnB,MAAM,CAACQ,EAAE,CAACC,aAAa,CAAC,CAACoB,oBAAoB,CAAC,EAAE,EAAEvB,OAAO,EAAEM,cAAc,CAACE,KAAK,CAAC;IAChFd,MAAM,CAACyB,MAAM,CAAC,CAACtB,IAAI,CAACK,EAAE,CAAC;EACzB,CAAC,CAAC;EAEFb,EAAE,CAAC,+CAA+C,EAAE,YAAM;IACxD,IAAMU,MAAM,GAAGR,sDAA0B,CAACC,MAAM,CAACC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAM0B,MAAM,GAAGpB,MAAM,CAACqB,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E5B,MAAM,CAACyB,MAAM,CAAC,CAACK,QAAQ,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _extendedListItem = require("../extended-list-item");
|
|
4
|
+
describe('ExtendedListItem', function () {
|
|
5
|
+
it('extends listItem and prefers div over paragraph in content spec', function () {
|
|
6
|
+
var _ref, _ExtendedListItem$opt, _ExtendedListItem$opt2, _ExtendedListItem$con, _ExtendedListItem$ext;
|
|
7
|
+
expect(_extendedListItem.ExtendedListItem.name).toBe('listItem');
|
|
8
|
+
var content = (_ref = (_ExtendedListItem$opt = (_ExtendedListItem$opt2 = _extendedListItem.ExtendedListItem.options) === null || _ExtendedListItem$opt2 === void 0 ? void 0 : _ExtendedListItem$opt2.content) !== null && _ExtendedListItem$opt !== void 0 ? _ExtendedListItem$opt : (_ExtendedListItem$con = _extendedListItem.ExtendedListItem.config) === null || _ExtendedListItem$con === void 0 ? void 0 : _ExtendedListItem$con.content) !== null && _ref !== void 0 ? _ref : (_ExtendedListItem$ext = _extendedListItem.ExtendedListItem.extendOptions) === null || _ExtendedListItem$ext === void 0 ? void 0 : _ExtendedListItem$ext.content;
|
|
9
|
+
expect(String(content)).toMatch(/^\(div \| paragraph/);
|
|
10
|
+
expect(String(content)).toContain('imageUploadNode');
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=extended-list-item.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended-list-item.test.js","names":["_extendedListItem","require","describe","it","_ref","_ExtendedListItem$opt","_ExtendedListItem$opt2","_ExtendedListItem$con","_ExtendedListItem$ext","expect","ExtendedListItem","name","toBe","content","options","config","extendOptions","String","toMatch","toContain"],"sources":["../../../src/extensions/__tests__/extended-list-item.test.js"],"sourcesContent":["import { ExtendedListItem } from '../extended-list-item';\n\ndescribe('ExtendedListItem', () => {\n it('extends listItem and prefers div over paragraph in content spec', () => {\n expect(ExtendedListItem.name).toBe('listItem');\n\n const content =\n ExtendedListItem.options?.content ?? ExtendedListItem.config?.content ?? ExtendedListItem.extendOptions?.content;\n\n expect(String(content)).toMatch(/^\\(div \\| paragraph/);\n expect(String(content)).toContain('imageUploadNode');\n });\n});\n"],"mappings":";;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,kBAAkB,EAAE,YAAM;EACjCC,EAAE,CAAC,iEAAiE,EAAE,YAAM;IAAA,IAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IAC1EC,MAAM,CAACC,kCAAgB,CAACC,IAAI,CAAC,CAACC,IAAI,CAAC,UAAU,CAAC;IAE9C,IAAMC,OAAO,IAAAT,IAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACXI,kCAAgB,CAACI,OAAO,cAAAR,sBAAA,uBAAxBA,sBAAA,CAA0BO,OAAO,cAAAR,qBAAA,cAAAA,qBAAA,IAAAE,qBAAA,GAAIG,kCAAgB,CAACK,MAAM,cAAAR,qBAAA,uBAAvBA,qBAAA,CAAyBM,OAAO,cAAAT,IAAA,cAAAA,IAAA,IAAAI,qBAAA,GAAIE,kCAAgB,CAACM,aAAa,cAAAR,qBAAA,uBAA9BA,qBAAA,CAAgCK,OAAO;IAElHJ,MAAM,CAACQ,MAAM,CAACJ,OAAO,CAAC,CAAC,CAACK,OAAO,CAAC,qBAAqB,CAAC;IACtDT,MAAM,CAACQ,MAAM,CAACJ,OAAO,CAAC,CAAC,CAACM,SAAS,CAAC,iBAAiB,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _extendedTableCell = require("../extended-table-cell");
|
|
4
|
+
describe('ExtendedTableCell / ExtendedTableHeader', function () {
|
|
5
|
+
it('exports cell and header extensions with div preferred over paragraph in content spec', function () {
|
|
6
|
+
var _ref, _ExtendedTableCell$op, _ExtendedTableCell$op2, _ExtendedTableCell$co, _ExtendedTableCell$ex, _ref2, _ExtendedTableHeader$, _ExtendedTableHeader$2, _ExtendedTableHeader$3, _ExtendedTableHeader$4;
|
|
7
|
+
expect(_extendedTableCell.ExtendedTableCell.name).toBe('tableCell');
|
|
8
|
+
expect(_extendedTableCell.ExtendedTableHeader.name).toBe('tableHeader');
|
|
9
|
+
var cellContent = (_ref = (_ExtendedTableCell$op = (_ExtendedTableCell$op2 = _extendedTableCell.ExtendedTableCell.options) === null || _ExtendedTableCell$op2 === void 0 ? void 0 : _ExtendedTableCell$op2.content) !== null && _ExtendedTableCell$op !== void 0 ? _ExtendedTableCell$op : (_ExtendedTableCell$co = _extendedTableCell.ExtendedTableCell.config) === null || _ExtendedTableCell$co === void 0 ? void 0 : _ExtendedTableCell$co.content) !== null && _ref !== void 0 ? _ref : (_ExtendedTableCell$ex = _extendedTableCell.ExtendedTableCell.extendOptions) === null || _ExtendedTableCell$ex === void 0 ? void 0 : _ExtendedTableCell$ex.content;
|
|
10
|
+
expect(String(cellContent)).toMatch(/^\(div \| paragraph/);
|
|
11
|
+
var headerContent = (_ref2 = (_ExtendedTableHeader$ = (_ExtendedTableHeader$2 = _extendedTableCell.ExtendedTableHeader.options) === null || _ExtendedTableHeader$2 === void 0 ? void 0 : _ExtendedTableHeader$2.content) !== null && _ExtendedTableHeader$ !== void 0 ? _ExtendedTableHeader$ : (_ExtendedTableHeader$3 = _extendedTableCell.ExtendedTableHeader.config) === null || _ExtendedTableHeader$3 === void 0 ? void 0 : _ExtendedTableHeader$3.content) !== null && _ref2 !== void 0 ? _ref2 : (_ExtendedTableHeader$4 = _extendedTableCell.ExtendedTableHeader.extendOptions) === null || _ExtendedTableHeader$4 === void 0 ? void 0 : _ExtendedTableHeader$4.content;
|
|
12
|
+
expect(headerContent).toBe(cellContent);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=extended-table-cell.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended-table-cell.test.js","names":["_extendedTableCell","require","describe","it","_ref","_ExtendedTableCell$op","_ExtendedTableCell$op2","_ExtendedTableCell$co","_ExtendedTableCell$ex","_ref2","_ExtendedTableHeader$","_ExtendedTableHeader$2","_ExtendedTableHeader$3","_ExtendedTableHeader$4","expect","ExtendedTableCell","name","toBe","ExtendedTableHeader","cellContent","options","content","config","extendOptions","String","toMatch","headerContent"],"sources":["../../../src/extensions/__tests__/extended-table-cell.test.js"],"sourcesContent":["import { ExtendedTableCell, ExtendedTableHeader } from '../extended-table-cell';\n\ndescribe('ExtendedTableCell / ExtendedTableHeader', () => {\n it('exports cell and header extensions with div preferred over paragraph in content spec', () => {\n expect(ExtendedTableCell.name).toBe('tableCell');\n expect(ExtendedTableHeader.name).toBe('tableHeader');\n\n const cellContent =\n ExtendedTableCell.options?.content ??\n ExtendedTableCell.config?.content ??\n ExtendedTableCell.extendOptions?.content;\n\n expect(String(cellContent)).toMatch(/^\\(div \\| paragraph/);\n\n const headerContent =\n ExtendedTableHeader.options?.content ??\n ExtendedTableHeader.config?.content ??\n ExtendedTableHeader.extendOptions?.content;\n\n expect(headerContent).toBe(cellContent);\n });\n});\n"],"mappings":";;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,yCAAyC,EAAE,YAAM;EACxDC,EAAE,CAAC,sFAAsF,EAAE,YAAM;IAAA,IAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC/FC,MAAM,CAACC,oCAAiB,CAACC,IAAI,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;IAChDH,MAAM,CAACI,sCAAmB,CAACF,IAAI,CAAC,CAACC,IAAI,CAAC,aAAa,CAAC;IAEpD,IAAME,WAAW,IAAAf,IAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACfS,oCAAiB,CAACK,OAAO,cAAAd,sBAAA,uBAAzBA,sBAAA,CAA2Be,OAAO,cAAAhB,qBAAA,cAAAA,qBAAA,IAAAE,qBAAA,GAClCQ,oCAAiB,CAACO,MAAM,cAAAf,qBAAA,uBAAxBA,qBAAA,CAA0Bc,OAAO,cAAAjB,IAAA,cAAAA,IAAA,IAAAI,qBAAA,GACjCO,oCAAiB,CAACQ,aAAa,cAAAf,qBAAA,uBAA/BA,qBAAA,CAAiCa,OAAO;IAE1CP,MAAM,CAACU,MAAM,CAACL,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC,qBAAqB,CAAC;IAE1D,IAAMC,aAAa,IAAAjB,KAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACjBO,sCAAmB,CAACE,OAAO,cAAAT,sBAAA,uBAA3BA,sBAAA,CAA6BU,OAAO,cAAAX,qBAAA,cAAAA,qBAAA,IAAAE,sBAAA,GACpCM,sCAAmB,CAACI,MAAM,cAAAV,sBAAA,uBAA1BA,sBAAA,CAA4BS,OAAO,cAAAZ,KAAA,cAAAA,KAAA,IAAAI,sBAAA,GACnCK,sCAAmB,CAACK,aAAa,cAAAV,sBAAA,uBAAjCA,sBAAA,CAAmCQ,OAAO;IAE5CP,MAAM,CAACY,aAAa,CAAC,CAACT,IAAI,CAACE,WAAW,CAAC;EACzC,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
7
|
+
var _extendedTable = _interopRequireWildcard(require("../extended-table"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
9
|
+
var mockTableViewState = {
|
|
10
|
+
updateReturns: true
|
|
11
|
+
};
|
|
12
|
+
jest.mock('@tiptap/extension-table', function () {
|
|
13
|
+
return {
|
|
14
|
+
Table: {
|
|
15
|
+
extend: jest.fn(function (config) {
|
|
16
|
+
return config;
|
|
17
|
+
})
|
|
18
|
+
},
|
|
19
|
+
TableView: /*#__PURE__*/function () {
|
|
20
|
+
function TableView() {
|
|
21
|
+
(0, _classCallCheck2["default"])(this, TableView);
|
|
22
|
+
this.table = {
|
|
23
|
+
style: {
|
|
24
|
+
setProperty: jest.fn()
|
|
25
|
+
},
|
|
26
|
+
setAttribute: jest.fn()
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return (0, _createClass2["default"])(TableView, [{
|
|
30
|
+
key: "update",
|
|
31
|
+
value: function update() {
|
|
32
|
+
return mockTableViewState.updateReturns;
|
|
33
|
+
}
|
|
34
|
+
}]);
|
|
35
|
+
}()
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
describe('ExtendedTable', function () {
|
|
39
|
+
beforeEach(function () {
|
|
40
|
+
mockTableViewState.updateReturns = true;
|
|
41
|
+
});
|
|
42
|
+
describe('applyPresentationToTableElement', function () {
|
|
43
|
+
it('sets default border and theme styles', function () {
|
|
44
|
+
var table = document.createElement('table');
|
|
45
|
+
var setProperty = jest.spyOn(table.style, 'setProperty');
|
|
46
|
+
(0, _extendedTable.applyPresentationToTableElement)(table, {});
|
|
47
|
+
expect(table.getAttribute('border')).toBe('1');
|
|
48
|
+
expect(setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');
|
|
49
|
+
expect(setProperty).toHaveBeenCalledWith('background-color', 'var(--pie-background, rgba(255, 255, 255))');
|
|
50
|
+
setProperty.mockRestore();
|
|
51
|
+
});
|
|
52
|
+
it('uses explicit border from attrs', function () {
|
|
53
|
+
var table = document.createElement('table');
|
|
54
|
+
(0, _extendedTable.applyPresentationToTableElement)(table, {
|
|
55
|
+
border: '0'
|
|
56
|
+
});
|
|
57
|
+
expect(table.getAttribute('border')).toBe('0');
|
|
58
|
+
});
|
|
59
|
+
it('treats empty border as default', function () {
|
|
60
|
+
var table = document.createElement('table');
|
|
61
|
+
(0, _extendedTable.applyPresentationToTableElement)(table, {
|
|
62
|
+
border: ''
|
|
63
|
+
});
|
|
64
|
+
expect(table.getAttribute('border')).toBe('1');
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('ExtendedTableView', function () {
|
|
68
|
+
it('applies presentation after construction', function () {
|
|
69
|
+
var node = {
|
|
70
|
+
attrs: {
|
|
71
|
+
border: '2'
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var view = new _extendedTable.ExtendedTableView(node, 25);
|
|
75
|
+
expect(view.table.setAttribute).toHaveBeenCalledWith('border', '2');
|
|
76
|
+
expect(view.table.style.setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');
|
|
77
|
+
expect(view.table.style.setProperty).toHaveBeenCalledWith('background-color', 'var(--pie-background, rgba(255, 255, 255))');
|
|
78
|
+
});
|
|
79
|
+
it('reapplies presentation when super.update returns true', function () {
|
|
80
|
+
var view = new _extendedTable.ExtendedTableView({
|
|
81
|
+
attrs: {
|
|
82
|
+
border: '1'
|
|
83
|
+
}
|
|
84
|
+
}, 25);
|
|
85
|
+
view.table.setAttribute.mockClear();
|
|
86
|
+
view.table.style.setProperty.mockClear();
|
|
87
|
+
view.update({
|
|
88
|
+
attrs: {
|
|
89
|
+
border: '0'
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
expect(view.table.setAttribute).toHaveBeenCalledWith('border', '0');
|
|
93
|
+
expect(view.table.style.setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');
|
|
94
|
+
expect(view.table.style.setProperty).toHaveBeenCalledWith('background-color', 'var(--pie-background, rgba(255, 255, 255))');
|
|
95
|
+
});
|
|
96
|
+
it('does not reapply presentation when super.update returns false', function () {
|
|
97
|
+
mockTableViewState.updateReturns = false;
|
|
98
|
+
var view = new _extendedTable.ExtendedTableView({
|
|
99
|
+
attrs: {
|
|
100
|
+
border: '1'
|
|
101
|
+
}
|
|
102
|
+
}, 25);
|
|
103
|
+
view.table.setAttribute.mockClear();
|
|
104
|
+
view.table.style.setProperty.mockClear();
|
|
105
|
+
var ok = view.update({
|
|
106
|
+
attrs: {
|
|
107
|
+
border: '0'
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
expect(ok).toBe(false);
|
|
111
|
+
expect(view.table.setAttribute).not.toHaveBeenCalled();
|
|
112
|
+
expect(view.table.style.setProperty).not.toHaveBeenCalled();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('addOptions', function () {
|
|
116
|
+
it('enables resizable table view with zero handle width for colgroup sync', function () {
|
|
117
|
+
var options = _extendedTable["default"].addOptions();
|
|
118
|
+
expect(options.resizable).toBe(true);
|
|
119
|
+
expect(options.handleWidth).toBe(0);
|
|
120
|
+
expect(options.View).toBe(_extendedTable.ExtendedTableView);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('addAttributes', function () {
|
|
124
|
+
it('returns border attribute with default value', function () {
|
|
125
|
+
var attributes = _extendedTable["default"].addAttributes();
|
|
126
|
+
expect(attributes).toHaveProperty('border');
|
|
127
|
+
expect(attributes.border).toEqual({
|
|
128
|
+
"default": '1'
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('renderHTML', function () {
|
|
133
|
+
it('renders table with default border', function () {
|
|
134
|
+
var props = {
|
|
135
|
+
HTMLAttributes: {}
|
|
136
|
+
};
|
|
137
|
+
var mockParent = jest.fn(function () {
|
|
138
|
+
return ['table', {
|
|
139
|
+
style: ''
|
|
140
|
+
}];
|
|
141
|
+
});
|
|
142
|
+
var context = {
|
|
143
|
+
parent: mockParent
|
|
144
|
+
};
|
|
145
|
+
var result = _extendedTable["default"].renderHTML.call(context, props);
|
|
146
|
+
expect(mockParent).toHaveBeenCalledWith(props);
|
|
147
|
+
expect(result[0]).toBe('table');
|
|
148
|
+
expect(result[1]).toHaveProperty('style');
|
|
149
|
+
});
|
|
150
|
+
it('renders table with custom border', function () {
|
|
151
|
+
var props = {
|
|
152
|
+
HTMLAttributes: {
|
|
153
|
+
border: '2'
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
var mockParent = jest.fn(function () {
|
|
157
|
+
return ['table', {
|
|
158
|
+
style: ''
|
|
159
|
+
}];
|
|
160
|
+
});
|
|
161
|
+
var context = {
|
|
162
|
+
parent: mockParent
|
|
163
|
+
};
|
|
164
|
+
var result = _extendedTable["default"].renderHTML.call(context, props);
|
|
165
|
+
expect(result[1].border).toBe('2');
|
|
166
|
+
});
|
|
167
|
+
it('handles styles ending with semicolon', function () {
|
|
168
|
+
var props = {
|
|
169
|
+
HTMLAttributes: {}
|
|
170
|
+
};
|
|
171
|
+
var mockParent = jest.fn(function () {
|
|
172
|
+
return ['table', {
|
|
173
|
+
style: 'padding: 5px;'
|
|
174
|
+
}];
|
|
175
|
+
});
|
|
176
|
+
var context = {
|
|
177
|
+
parent: mockParent
|
|
178
|
+
};
|
|
179
|
+
var result = _extendedTable["default"].renderHTML.call(context, props);
|
|
180
|
+
expect(result[1].style).toContain('padding: 5px;');
|
|
181
|
+
});
|
|
182
|
+
it('includes CSS custom properties', function () {
|
|
183
|
+
var props = {
|
|
184
|
+
HTMLAttributes: {}
|
|
185
|
+
};
|
|
186
|
+
var mockParent = jest.fn(function () {
|
|
187
|
+
return ['table', {
|
|
188
|
+
style: ''
|
|
189
|
+
}];
|
|
190
|
+
});
|
|
191
|
+
var context = {
|
|
192
|
+
parent: mockParent
|
|
193
|
+
};
|
|
194
|
+
var result = _extendedTable["default"].renderHTML.call(context, props);
|
|
195
|
+
expect(result[1].style).toContain('color: var(--pie-text, black)');
|
|
196
|
+
expect(result[1].style).toContain('background-color: var(--pie-background, rgba(255, 255, 255))');
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
//# sourceMappingURL=extended-table.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended-table.test.js","names":["_extendedTable","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","mockTableViewState","updateReturns","jest","mock","Table","extend","fn","config","TableView","_classCallCheck2","table","style","setProperty","setAttribute","_createClass2","key","value","update","describe","beforeEach","it","document","createElement","spyOn","applyPresentationToTableElement","expect","getAttribute","toBe","toHaveBeenCalledWith","mockRestore","border","node","attrs","view","ExtendedTableView","mockClear","ok","not","toHaveBeenCalled","options","ExtendedTable","addOptions","resizable","handleWidth","View","attributes","addAttributes","toHaveProperty","toEqual","props","HTMLAttributes","mockParent","context","parent","result","renderHTML","toContain"],"sources":["../../../src/extensions/__tests__/extended-table.test.js"],"sourcesContent":["import ExtendedTable, { applyPresentationToTableElement, ExtendedTableView } from '../extended-table';\n\nconst mockTableViewState = { updateReturns: true };\n\njest.mock('@tiptap/extension-table', () => ({\n Table: {\n extend: jest.fn((config) => config),\n },\n TableView: class TableView {\n constructor() {\n this.table = {\n style: { setProperty: jest.fn() },\n setAttribute: jest.fn(),\n };\n }\n\n update() {\n return mockTableViewState.updateReturns;\n }\n },\n}));\n\ndescribe('ExtendedTable', () => {\n beforeEach(() => {\n mockTableViewState.updateReturns = true;\n });\n\n describe('applyPresentationToTableElement', () => {\n it('sets default border and theme styles', () => {\n const table = document.createElement('table');\n const setProperty = jest.spyOn(table.style, 'setProperty');\n\n applyPresentationToTableElement(table, {});\n\n expect(table.getAttribute('border')).toBe('1');\n expect(setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');\n expect(setProperty).toHaveBeenCalledWith('background-color', 'var(--pie-background, rgba(255, 255, 255))');\n setProperty.mockRestore();\n });\n\n it('uses explicit border from attrs', () => {\n const table = document.createElement('table');\n applyPresentationToTableElement(table, { border: '0' });\n\n expect(table.getAttribute('border')).toBe('0');\n });\n\n it('treats empty border as default', () => {\n const table = document.createElement('table');\n applyPresentationToTableElement(table, { border: '' });\n\n expect(table.getAttribute('border')).toBe('1');\n });\n });\n\n describe('ExtendedTableView', () => {\n it('applies presentation after construction', () => {\n const node = { attrs: { border: '2' } };\n const view = new ExtendedTableView(node, 25);\n\n expect(view.table.setAttribute).toHaveBeenCalledWith('border', '2');\n expect(view.table.style.setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');\n expect(view.table.style.setProperty).toHaveBeenCalledWith(\n 'background-color',\n 'var(--pie-background, rgba(255, 255, 255))',\n );\n });\n\n it('reapplies presentation when super.update returns true', () => {\n const view = new ExtendedTableView({ attrs: { border: '1' } }, 25);\n view.table.setAttribute.mockClear();\n view.table.style.setProperty.mockClear();\n\n view.update({ attrs: { border: '0' } });\n\n expect(view.table.setAttribute).toHaveBeenCalledWith('border', '0');\n expect(view.table.style.setProperty).toHaveBeenCalledWith('color', 'var(--pie-text, black)');\n expect(view.table.style.setProperty).toHaveBeenCalledWith(\n 'background-color',\n 'var(--pie-background, rgba(255, 255, 255))',\n );\n });\n\n it('does not reapply presentation when super.update returns false', () => {\n mockTableViewState.updateReturns = false;\n const view = new ExtendedTableView({ attrs: { border: '1' } }, 25);\n view.table.setAttribute.mockClear();\n view.table.style.setProperty.mockClear();\n\n const ok = view.update({ attrs: { border: '0' } });\n\n expect(ok).toBe(false);\n expect(view.table.setAttribute).not.toHaveBeenCalled();\n expect(view.table.style.setProperty).not.toHaveBeenCalled();\n });\n });\n\n describe('addOptions', () => {\n it('enables resizable table view with zero handle width for colgroup sync', () => {\n const options = ExtendedTable.addOptions();\n expect(options.resizable).toBe(true);\n expect(options.handleWidth).toBe(0);\n expect(options.View).toBe(ExtendedTableView);\n });\n });\n\n describe('addAttributes', () => {\n it('returns border attribute with default value', () => {\n const attributes = ExtendedTable.addAttributes();\n expect(attributes).toHaveProperty('border');\n expect(attributes.border).toEqual({ default: '1' });\n });\n });\n\n describe('renderHTML', () => {\n it('renders table with default border', () => {\n const props = {\n HTMLAttributes: {},\n };\n\n const mockParent = jest.fn(() => ['table', { style: '' }]);\n\n const context = {\n parent: mockParent,\n };\n\n const result = ExtendedTable.renderHTML.call(context, props);\n\n expect(mockParent).toHaveBeenCalledWith(props);\n expect(result[0]).toBe('table');\n expect(result[1]).toHaveProperty('style');\n });\n\n it('renders table with custom border', () => {\n const props = {\n HTMLAttributes: { border: '2' },\n };\n\n const mockParent = jest.fn(() => ['table', { style: '' }]);\n\n const context = {\n parent: mockParent,\n };\n\n const result = ExtendedTable.renderHTML.call(context, props);\n\n expect(result[1].border).toBe('2');\n });\n\n it('handles styles ending with semicolon', () => {\n const props = {\n HTMLAttributes: {},\n };\n\n const mockParent = jest.fn(() => ['table', { style: 'padding: 5px;' }]);\n\n const context = {\n parent: mockParent,\n };\n\n const result = ExtendedTable.renderHTML.call(context, props);\n\n expect(result[1].style).toContain('padding: 5px;');\n });\n\n it('includes CSS custom properties', () => {\n const props = {\n HTMLAttributes: {},\n };\n\n const mockParent = jest.fn(() => ['table', { style: '' }]);\n\n const context = {\n parent: mockParent,\n };\n\n const result = ExtendedTable.renderHTML.call(context, props);\n\n expect(result[1].style).toContain('color: var(--pie-text, black)');\n expect(result[1].style).toContain('background-color: var(--pie-background, rgba(255, 255, 255))');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|