@atlaskit/editor-json-transformer 8.24.5 → 8.25.1

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/editor-json-transformer
2
2
 
3
+ ## 8.25.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#195649](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/195649)
8
+ [`231bb33e06dfe`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/231bb33e06dfe) -
9
+ EDITOR-1131 Bump adf-schema version to 50.2.0
10
+ - Updated dependencies
11
+
12
+ ## 8.25.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#193192](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/193192)
17
+ [`8e0b7ecbc293f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8e0b7ecbc293f) -
18
+ [ux] EDITOR-1186 - keep nested table in adf
19
+
3
20
  ## 8.24.5
4
21
 
5
22
  ### Patch Changes
@@ -14,7 +14,13 @@
14
14
  "exclude": [
15
15
  "../src/**/__tests__/*",
16
16
  "../src/**/*.test.*",
17
- "../src/**/test.*"
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
18
24
  ],
19
25
  "references": [
20
26
  {
@@ -0,0 +1,30 @@
1
+ {
2
+ "extends": "../../../../tsconfig.entry-points.dev-agents.json",
3
+ "compilerOptions": {
4
+ "declaration": true,
5
+ "target": "es5",
6
+ "outDir": "../../../../../dev-agents/tsDist/@atlaskit__editor-json-transformer/app",
7
+ "rootDir": "../",
8
+ "composite": true
9
+ },
10
+ "include": [
11
+ "../src/**/*.ts",
12
+ "../src/**/*.tsx"
13
+ ],
14
+ "exclude": [
15
+ "../src/**/__tests__/*",
16
+ "../src/**/*.test.*",
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
24
+ ],
25
+ "references": [
26
+ {
27
+ "path": "../../adf-utils/afm-dev-agents/tsconfig.json"
28
+ }
29
+ ]
30
+ }
@@ -14,7 +14,13 @@
14
14
  "exclude": [
15
15
  "../src/**/__tests__/*",
16
16
  "../src/**/*.test.*",
17
- "../src/**/test.*"
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
18
24
  ],
19
25
  "references": [
20
26
  {
@@ -14,7 +14,13 @@
14
14
  "exclude": [
15
15
  "../src/**/__tests__/*",
16
16
  "../src/**/*.test.*",
17
- "../src/**/test.*"
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
18
24
  ],
19
25
  "references": [
20
26
  {
@@ -14,7 +14,13 @@
14
14
  "exclude": [
15
15
  "../src/**/__tests__/*",
16
16
  "../src/**/*.test.*",
17
- "../src/**/test.*"
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
18
24
  ],
19
25
  "references": [
20
26
  {
@@ -14,7 +14,13 @@
14
14
  "exclude": [
15
15
  "../src/**/__tests__/*",
16
16
  "../src/**/*.test.*",
17
- "../src/**/test.*"
17
+ "../src/**/test.*",
18
+ "../src/**/examples.*",
19
+ "../src/**/examples/*",
20
+ "../src/**/examples/**/*",
21
+ "../src/**/*.stories.*",
22
+ "../src/**/stories/*",
23
+ "../src/**/stories/**/*"
18
24
  ],
19
25
  "references": [
20
26
  {
@@ -12,6 +12,12 @@
12
12
  "exclude": [
13
13
  "../src/**/__tests__/*",
14
14
  "../src/**/*.test.*",
15
- "../src/**/test.*"
15
+ "../src/**/test.*",
16
+ "../src/**/examples.*",
17
+ "../src/**/examples/*",
18
+ "../src/**/examples/**/*",
19
+ "../src/**/*.stories.*",
20
+ "../src/**/stories/*",
21
+ "../src/**/stories/**/*"
16
22
  ]
17
- }
23
+ }
package/dist/cjs/index.js CHANGED
@@ -217,9 +217,10 @@ var JSONTransformer = exports.JSONTransformer = /*#__PURE__*/function () {
217
217
  key: "encode",
218
218
  value: function encode(node) {
219
219
  var _this = this;
220
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
220
221
  var content = [];
221
222
  node.content.forEach(function (child) {
222
- content.push((0, _sanitizeNode.sanitizeNode)(_toJSON(child, _this.mentionMap)));
223
+ content.push((0, _sanitizeNode.sanitizeNode)(_toJSON(child, _this.mentionMap), options));
223
224
  });
224
225
  if (!content || (0, _isEqual.default)(content, emptyDoc.content)) {
225
226
  return createDocFromContent([]);
@@ -18,6 +18,9 @@ var hasNestedTable = function hasNestedTable(tableCellNode) {
18
18
  });
19
19
  };
20
20
  function sanitizeNode(json) {
21
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
22
+ var _options$keepNestedTa = options.keepNestedTables,
23
+ keepNestedTables = _options$keepNestedTa === void 0 ? false : _options$keepNestedTa;
21
24
  var sanitizedJSON = (0, _traverse.traverse)(json, {
22
25
  text: function text(node) {
23
26
  if (!node || !Array.isArray(node.marks)) {
@@ -43,12 +46,12 @@ function sanitizeNode(json) {
43
46
  },
44
47
  tableCell: function tableCell(node) {
45
48
  if (hasNestedTable(node)) {
46
- return (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
49
+ return keepNestedTables ? node : (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
47
50
  }
48
51
  },
49
52
  tableHeader: function tableHeader(node) {
50
53
  if (hasNestedTable(node)) {
51
- return (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
54
+ return keepNestedTables ? node : (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
52
55
  }
53
56
  },
54
57
  emoji: _removeMarks.removeNonAnnotationMarks,
@@ -197,10 +197,10 @@ export class JSONTransformer {
197
197
  this.schema = schema;
198
198
  this.mentionMap = mentionMap;
199
199
  }
200
- encode(node) {
200
+ encode(node, options = {}) {
201
201
  const content = [];
202
202
  node.content.forEach(child => {
203
- content.push(sanitizeNode(toJSON(child, this.mentionMap)));
203
+ content.push(sanitizeNode(toJSON(child, this.mentionMap), options));
204
204
  });
205
205
  if (!content || isEqual(content, emptyDoc.content)) {
206
206
  return createDocFromContent([]);
@@ -5,7 +5,10 @@ const hasNestedTable = tableCellNode => {
5
5
  var _tableCellNode$conten;
6
6
  return (_tableCellNode$conten = tableCellNode.content) === null || _tableCellNode$conten === void 0 ? void 0 : _tableCellNode$conten.some(node => (node === null || node === void 0 ? void 0 : node.type) === 'table');
7
7
  };
8
- export function sanitizeNode(json) {
8
+ export function sanitizeNode(json, options = {}) {
9
+ const {
10
+ keepNestedTables = false
11
+ } = options;
9
12
  const sanitizedJSON = traverse(json, {
10
13
  text: node => {
11
14
  if (!node || !Array.isArray(node.marks)) {
@@ -30,12 +33,12 @@ export function sanitizeNode(json) {
30
33
  },
31
34
  tableCell: node => {
32
35
  if (hasNestedTable(node)) {
33
- return transformNestedTableNodeOutgoingDocument(node);
36
+ return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
34
37
  }
35
38
  },
36
39
  tableHeader: node => {
37
40
  if (hasNestedTable(node)) {
38
- return transformNestedTableNodeOutgoingDocument(node);
41
+ return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
39
42
  }
40
43
  },
41
44
  emoji: removeNonAnnotationMarks,
package/dist/esm/index.js CHANGED
@@ -211,9 +211,10 @@ export var JSONTransformer = /*#__PURE__*/function () {
211
211
  key: "encode",
212
212
  value: function encode(node) {
213
213
  var _this = this;
214
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
214
215
  var content = [];
215
216
  node.content.forEach(function (child) {
216
- content.push(sanitizeNode(_toJSON(child, _this.mentionMap)));
217
+ content.push(sanitizeNode(_toJSON(child, _this.mentionMap), options));
217
218
  });
218
219
  if (!content || isEqual(content, emptyDoc.content)) {
219
220
  return createDocFromContent([]);
@@ -11,6 +11,9 @@ var hasNestedTable = function hasNestedTable(tableCellNode) {
11
11
  });
12
12
  };
13
13
  export function sanitizeNode(json) {
14
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15
+ var _options$keepNestedTa = options.keepNestedTables,
16
+ keepNestedTables = _options$keepNestedTa === void 0 ? false : _options$keepNestedTa;
14
17
  var sanitizedJSON = traverse(json, {
15
18
  text: function text(node) {
16
19
  if (!node || !Array.isArray(node.marks)) {
@@ -36,12 +39,12 @@ export function sanitizeNode(json) {
36
39
  },
37
40
  tableCell: function tableCell(node) {
38
41
  if (hasNestedTable(node)) {
39
- return transformNestedTableNodeOutgoingDocument(node);
42
+ return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
40
43
  }
41
44
  },
42
45
  tableHeader: function tableHeader(node) {
43
46
  if (hasNestedTable(node)) {
44
- return transformNestedTableNodeOutgoingDocument(node);
47
+ return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
45
48
  }
46
49
  },
47
50
  emoji: removeNonAnnotationMarks,
@@ -1,4 +1,5 @@
1
1
  import type { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
2
+ import { type SanitizeNodeOptions } from './sanitize/sanitize-node';
2
3
  import type { JSONDocNode, JSONNode } from './types';
3
4
  export type { JSONDocNode, JSONNode } from './types';
4
5
  interface Transformer<T> {
@@ -18,7 +19,7 @@ export declare class JSONTransformer implements Transformer<JSONDocNode> {
18
19
  * mention node.attr.text values with mapped names.
19
20
  */
20
21
  constructor(schema?: Schema, mentionMap?: Record<string, string | undefined>);
21
- encode(node: PMNode): JSONDocNode;
22
+ encode(node: PMNode, options?: SanitizeNodeOptions): JSONDocNode;
22
23
  private internalParse;
23
24
  parse(content: JSONDocNode, stage?: SchemaStage): PMNode;
24
25
  /**
@@ -1,2 +1,9 @@
1
1
  import { type JSONNode } from '../types';
2
- export declare function sanitizeNode(json: JSONNode): JSONNode;
2
+ export interface SanitizeNodeOptions {
3
+ /**
4
+ * If true, nested tables will not be transformed to a extension.
5
+ * This is useful when you want to keep the nested structure for further processing.
6
+ */
7
+ keepNestedTables?: boolean;
8
+ }
9
+ export declare function sanitizeNode(json: JSONNode, options?: SanitizeNodeOptions): JSONNode;
@@ -1,4 +1,5 @@
1
1
  import type { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
2
+ import { type SanitizeNodeOptions } from './sanitize/sanitize-node';
2
3
  import type { JSONDocNode, JSONNode } from './types';
3
4
  export type { JSONDocNode, JSONNode } from './types';
4
5
  interface Transformer<T> {
@@ -18,7 +19,7 @@ export declare class JSONTransformer implements Transformer<JSONDocNode> {
18
19
  * mention node.attr.text values with mapped names.
19
20
  */
20
21
  constructor(schema?: Schema, mentionMap?: Record<string, string | undefined>);
21
- encode(node: PMNode): JSONDocNode;
22
+ encode(node: PMNode, options?: SanitizeNodeOptions): JSONDocNode;
22
23
  private internalParse;
23
24
  parse(content: JSONDocNode, stage?: SchemaStage): PMNode;
24
25
  /**
@@ -1,2 +1,9 @@
1
1
  import { type JSONNode } from '../types';
2
- export declare function sanitizeNode(json: JSONNode): JSONNode;
2
+ export interface SanitizeNodeOptions {
3
+ /**
4
+ * If true, nested tables will not be transformed to a extension.
5
+ * This is useful when you want to keep the nested structure for further processing.
6
+ */
7
+ keepNestedTables?: boolean;
8
+ }
9
+ export declare function sanitizeNode(json: JSONNode, options?: SanitizeNodeOptions): JSONNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-json-transformer",
3
- "version": "8.24.5",
3
+ "version": "8.25.1",
4
4
  "description": "JSON transformer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -35,7 +35,7 @@
35
35
  "./types": "./src/types.ts"
36
36
  },
37
37
  "dependencies": {
38
- "@atlaskit/adf-schema": "^50.0.1",
38
+ "@atlaskit/adf-schema": "^50.2.0",
39
39
  "@atlaskit/adf-utils": "^19.20.0",
40
40
  "@atlaskit/editor-prosemirror": "7.0.0",
41
41
  "@babel/runtime": "^7.0.0",
package/tsconfig.json CHANGED
@@ -1,13 +1,18 @@
1
1
  {
2
2
  "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- },
3
+ "compilerOptions": {},
5
4
  "include": [
6
5
  "./src/**/*.ts",
7
6
  "./src/**/*.tsx",
8
7
  "./docs/**/*.ts",
9
8
  "./docs/**/*.tsx",
10
9
  "./examples/**/*.ts",
11
- "./examples/**/*.tsx"
10
+ "./examples/**/*.tsx",
11
+ "**/stories.ts",
12
+ "**/stories.tsx",
13
+ "**/stories/*.ts",
14
+ "**/stories/*.tsx",
15
+ "**/stories/**/*.ts",
16
+ "**/stories/**/*.tsx"
12
17
  ]
13
- }
18
+ }