@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.
Files changed (114) hide show
  1. package/CHANGELOG.md +0 -75
  2. package/lib/__tests__/EditableHtml.test.js +831 -0
  3. package/lib/__tests__/EditableHtml.test.js.map +1 -0
  4. package/lib/__tests__/constants.test.js +21 -0
  5. package/lib/__tests__/constants.test.js.map +1 -0
  6. package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
  7. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +1 -0
  8. package/lib/__tests__/extensions.test.js +209 -0
  9. package/lib/__tests__/extensions.test.js.map +1 -0
  10. package/lib/__tests__/index.test.js +250 -0
  11. package/lib/__tests__/index.test.js.map +1 -0
  12. package/lib/__tests__/size-utils.test.js +57 -0
  13. package/lib/__tests__/size-utils.test.js.map +1 -0
  14. package/lib/__tests__/theme.test.js +17 -0
  15. package/lib/__tests__/theme.test.js.map +1 -0
  16. package/lib/components/EditableHtml.js +4 -2
  17. package/lib/components/EditableHtml.js.map +1 -1
  18. package/lib/components/__tests__/AltDialog.test.js +201 -0
  19. package/lib/components/__tests__/AltDialog.test.js.map +1 -0
  20. package/lib/components/__tests__/CharacterPicker.test.js +455 -0
  21. package/lib/components/__tests__/CharacterPicker.test.js.map +1 -0
  22. package/lib/components/__tests__/CssIcon.test.js +58 -0
  23. package/lib/components/__tests__/CssIcon.test.js.map +1 -0
  24. package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
  25. package/lib/components/__tests__/DragInTheBlank.test.js.map +1 -0
  26. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
  27. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +1 -0
  28. package/lib/components/__tests__/ImageToolbar.test.js +185 -0
  29. package/lib/components/__tests__/ImageToolbar.test.js.map +1 -0
  30. package/lib/components/__tests__/InlineDropdown.test.js +839 -0
  31. package/lib/components/__tests__/InlineDropdown.test.js.map +1 -0
  32. package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
  33. package/lib/components/__tests__/InsertImageHandler.test.js.map +1 -0
  34. package/lib/components/__tests__/MediaDialog.test.js +433 -0
  35. package/lib/components/__tests__/MediaDialog.test.js.map +1 -0
  36. package/lib/components/__tests__/MediaToolbar.test.js +126 -0
  37. package/lib/components/__tests__/MediaToolbar.test.js.map +1 -0
  38. package/lib/components/__tests__/MediaWrapper.test.js +96 -0
  39. package/lib/components/__tests__/MediaWrapper.test.js.map +1 -0
  40. package/lib/components/__tests__/MenuBar.test.js +502 -0
  41. package/lib/components/__tests__/MenuBar.test.js.map +1 -0
  42. package/lib/components/__tests__/RespArea.test.js +171 -0
  43. package/lib/components/__tests__/RespArea.test.js.map +1 -0
  44. package/lib/components/__tests__/TableIcons.test.js +153 -0
  45. package/lib/components/__tests__/TableIcons.test.js.map +1 -0
  46. package/lib/components/__tests__/TextAlign.test.js +209 -0
  47. package/lib/components/__tests__/TextAlign.test.js.map +1 -0
  48. package/lib/components/__tests__/TiptapContainer.test.js +196 -0
  49. package/lib/components/__tests__/TiptapContainer.test.js.map +1 -0
  50. package/lib/components/__tests__/characterUtils.test.js +178 -0
  51. package/lib/components/__tests__/characterUtils.test.js.map +1 -0
  52. package/lib/components/__tests__/choice.test.js +213 -0
  53. package/lib/components/__tests__/choice.test.js.map +1 -0
  54. package/lib/components/__tests__/custom-popper.test.js +108 -0
  55. package/lib/components/__tests__/custom-popper.test.js.map +1 -0
  56. package/lib/components/__tests__/done-button.test.js +72 -0
  57. package/lib/components/__tests__/done-button.test.js.map +1 -0
  58. package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
  59. package/lib/components/__tests__/toolbar-buttons.test.js.map +1 -0
  60. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
  61. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +1 -0
  62. package/lib/components/respArea/DragInTheBlank/choice.js +3 -0
  63. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  64. package/lib/components/respArea/MathTemplated.js +2 -2
  65. package/lib/components/respArea/MathTemplated.js.map +1 -1
  66. package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
  67. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +1 -0
  68. package/lib/extensions/__tests__/css.test.js +214 -0
  69. package/lib/extensions/__tests__/css.test.js.map +1 -0
  70. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
  71. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +1 -0
  72. package/lib/extensions/__tests__/divNode.test.js +108 -0
  73. package/lib/extensions/__tests__/divNode.test.js.map +1 -0
  74. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
  75. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +1 -0
  76. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
  77. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +1 -0
  78. package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
  79. package/lib/extensions/__tests__/extended-list-item.test.js.map +1 -0
  80. package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
  81. package/lib/extensions/__tests__/extended-table-cell.test.js.map +1 -0
  82. package/lib/extensions/__tests__/extended-table.test.js +200 -0
  83. package/lib/extensions/__tests__/extended-table.test.js.map +1 -0
  84. package/lib/extensions/__tests__/image-component.test.js +432 -0
  85. package/lib/extensions/__tests__/image-component.test.js.map +1 -0
  86. package/lib/extensions/__tests__/image.test.js +313 -0
  87. package/lib/extensions/__tests__/image.test.js.map +1 -0
  88. package/lib/extensions/__tests__/math.test.js +1399 -0
  89. package/lib/extensions/__tests__/math.test.js.map +1 -0
  90. package/lib/extensions/__tests__/media-node-view.test.js +307 -0
  91. package/lib/extensions/__tests__/media-node-view.test.js.map +1 -0
  92. package/lib/extensions/__tests__/media.test.js +292 -0
  93. package/lib/extensions/__tests__/media.test.js.map +1 -0
  94. package/lib/extensions/__tests__/responseArea.test.js +736 -0
  95. package/lib/extensions/__tests__/responseArea.test.js.map +1 -0
  96. package/lib/extensions/image-component.js +9 -6
  97. package/lib/extensions/image-component.js.map +1 -1
  98. package/lib/extensions/responseArea.js +7 -1
  99. package/lib/extensions/responseArea.js.map +1 -1
  100. package/lib/utils/__tests__/helper.test.js +107 -0
  101. package/lib/utils/__tests__/helper.test.js.map +1 -0
  102. package/lib/utils/__tests__/toolbar.test.js +38 -0
  103. package/lib/utils/__tests__/toolbar.test.js.map +1 -0
  104. package/package.json +7 -7
  105. package/src/components/EditableHtml.jsx +5 -3
  106. package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +72 -0
  107. package/src/components/respArea/DragInTheBlank/choice.jsx +3 -0
  108. package/src/components/respArea/MathTemplated.jsx +1 -1
  109. package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
  110. package/src/extensions/__tests__/image-component.test.jsx +1 -0
  111. package/src/extensions/__tests__/responseArea.test.js +57 -3
  112. package/src/extensions/image-component.jsx +8 -6
  113. package/src/extensions/responseArea.js +7 -1
  114. 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":[]}