@atlaskit/adf-schema 49.0.6 → 50.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/index.js +132 -0
  3. package/dist/cjs/next-schema/generated/nodeTypes.js +140 -1
  4. package/dist/cjs/next-schema/nodes/blockCard.js +15 -0
  5. package/dist/cjs/next-schema/nodes/blockquote.js +16 -2
  6. package/dist/cjs/next-schema/nodes/caption.js +7 -0
  7. package/dist/cjs/next-schema/nodes/codeBlock.js +5 -0
  8. package/dist/cjs/next-schema/nodes/date.js +5 -0
  9. package/dist/cjs/next-schema/nodes/embedCard.js +5 -0
  10. package/dist/cjs/next-schema/nodes/emoji.js +5 -0
  11. package/dist/cjs/next-schema/nodes/expand.js +5 -0
  12. package/dist/cjs/next-schema/nodes/hardBreak.js +5 -0
  13. package/dist/cjs/next-schema/nodes/inlineCard.js +10 -0
  14. package/dist/cjs/next-schema/nodes/layoutColumn.js +5 -0
  15. package/dist/cjs/next-schema/nodes/layoutSection.js +12 -0
  16. package/dist/cjs/next-schema/nodes/list.js +20 -1
  17. package/dist/cjs/next-schema/nodes/media.js +10 -0
  18. package/dist/cjs/next-schema/nodes/mediaInline.js +5 -0
  19. package/dist/cjs/next-schema/nodes/mediaSingle.js +10 -0
  20. package/dist/cjs/next-schema/nodes/nestedExpand.js +5 -0
  21. package/dist/cjs/next-schema/nodes/panel.js +5 -0
  22. package/dist/cjs/next-schema/nodes/placeholder.js +5 -0
  23. package/dist/cjs/next-schema/nodes/rule.js +9 -1
  24. package/dist/cjs/next-schema/nodes/tableNodes.js +17 -0
  25. package/dist/cjs/schema/index.js +138 -0
  26. package/dist/cjs/schema/nodes/block-card.js +48 -1
  27. package/dist/cjs/schema/nodes/blockquote.js +20 -2
  28. package/dist/cjs/schema/nodes/bullet-list.js +20 -1
  29. package/dist/cjs/schema/nodes/caption.js +20 -1
  30. package/dist/cjs/schema/nodes/code-block.js +72 -2
  31. package/dist/cjs/schema/nodes/date.js +22 -1
  32. package/dist/cjs/schema/nodes/embed-card.js +36 -1
  33. package/dist/cjs/schema/nodes/emoji.js +73 -1
  34. package/dist/cjs/schema/nodes/expand.js +56 -1
  35. package/dist/cjs/schema/nodes/hard-break.js +18 -1
  36. package/dist/cjs/schema/nodes/index.js +138 -0
  37. package/dist/cjs/schema/nodes/inline-card.js +46 -1
  38. package/dist/cjs/schema/nodes/layout-column.js +37 -1
  39. package/dist/cjs/schema/nodes/layout-section.js +31 -1
  40. package/dist/cjs/schema/nodes/list-item.js +34 -1
  41. package/dist/cjs/schema/nodes/media-inline.js +12 -2
  42. package/dist/cjs/schema/nodes/media-single.js +22 -2
  43. package/dist/cjs/schema/nodes/media.js +21 -4
  44. package/dist/cjs/schema/nodes/nested-expand.js +34 -7
  45. package/dist/cjs/schema/nodes/ordered-list.js +54 -3
  46. package/dist/cjs/schema/nodes/panel.js +13 -5
  47. package/dist/cjs/schema/nodes/placeholder.js +24 -1
  48. package/dist/cjs/schema/nodes/rule.js +18 -1
  49. package/dist/cjs/schema/nodes/tableNodes.js +69 -6
  50. package/dist/cjs/validator-schema/generated/validatorSpec.js +159 -0
  51. package/dist/es2019/index.js +2 -2
  52. package/dist/es2019/next-schema/generated/nodeTypes.js +140 -1
  53. package/dist/es2019/next-schema/nodes/blockCard.js +15 -0
  54. package/dist/es2019/next-schema/nodes/blockquote.js +16 -2
  55. package/dist/es2019/next-schema/nodes/caption.js +7 -0
  56. package/dist/es2019/next-schema/nodes/codeBlock.js +5 -0
  57. package/dist/es2019/next-schema/nodes/date.js +5 -0
  58. package/dist/es2019/next-schema/nodes/embedCard.js +5 -0
  59. package/dist/es2019/next-schema/nodes/emoji.js +5 -0
  60. package/dist/es2019/next-schema/nodes/expand.js +5 -0
  61. package/dist/es2019/next-schema/nodes/hardBreak.js +5 -0
  62. package/dist/es2019/next-schema/nodes/inlineCard.js +10 -0
  63. package/dist/es2019/next-schema/nodes/layoutColumn.js +5 -0
  64. package/dist/es2019/next-schema/nodes/layoutSection.js +12 -0
  65. package/dist/es2019/next-schema/nodes/list.js +20 -1
  66. package/dist/es2019/next-schema/nodes/media.js +10 -0
  67. package/dist/es2019/next-schema/nodes/mediaInline.js +5 -0
  68. package/dist/es2019/next-schema/nodes/mediaSingle.js +10 -0
  69. package/dist/es2019/next-schema/nodes/nestedExpand.js +5 -0
  70. package/dist/es2019/next-schema/nodes/panel.js +5 -0
  71. package/dist/es2019/next-schema/nodes/placeholder.js +5 -0
  72. package/dist/es2019/next-schema/nodes/rule.js +9 -1
  73. package/dist/es2019/next-schema/nodes/tableNodes.js +17 -0
  74. package/dist/es2019/schema/default-schema.js +1 -1
  75. package/dist/es2019/schema/index.js +1 -1
  76. package/dist/es2019/schema/nodes/block-card.js +50 -0
  77. package/dist/es2019/schema/nodes/blockquote.js +19 -1
  78. package/dist/es2019/schema/nodes/bullet-list.js +19 -0
  79. package/dist/es2019/schema/nodes/caption.js +19 -0
  80. package/dist/es2019/schema/nodes/code-block.js +68 -0
  81. package/dist/es2019/schema/nodes/date.js +19 -0
  82. package/dist/es2019/schema/nodes/embed-card.js +34 -0
  83. package/dist/es2019/schema/nodes/emoji.js +71 -0
  84. package/dist/es2019/schema/nodes/expand.js +59 -0
  85. package/dist/es2019/schema/nodes/hard-break.js +15 -0
  86. package/dist/es2019/schema/nodes/index.js +20 -20
  87. package/dist/es2019/schema/nodes/inline-card.js +45 -0
  88. package/dist/es2019/schema/nodes/layout-column.js +38 -0
  89. package/dist/es2019/schema/nodes/layout-section.js +32 -0
  90. package/dist/es2019/schema/nodes/list-item.js +29 -0
  91. package/dist/es2019/schema/nodes/media-inline.js +8 -1
  92. package/dist/es2019/schema/nodes/media-single.js +20 -1
  93. package/dist/es2019/schema/nodes/media.js +17 -4
  94. package/dist/es2019/schema/nodes/nested-expand.js +21 -6
  95. package/dist/es2019/schema/nodes/ordered-list.js +51 -2
  96. package/dist/es2019/schema/nodes/panel.js +11 -5
  97. package/dist/es2019/schema/nodes/placeholder.js +23 -0
  98. package/dist/es2019/schema/nodes/rule.js +15 -0
  99. package/dist/es2019/schema/nodes/tableNodes.js +59 -3
  100. package/dist/es2019/validator-schema/generated/validatorSpec.js +159 -0
  101. package/dist/esm/index.js +2 -2
  102. package/dist/esm/next-schema/generated/nodeTypes.js +140 -1
  103. package/dist/esm/next-schema/nodes/blockCard.js +15 -0
  104. package/dist/esm/next-schema/nodes/blockquote.js +16 -2
  105. package/dist/esm/next-schema/nodes/caption.js +7 -0
  106. package/dist/esm/next-schema/nodes/codeBlock.js +5 -0
  107. package/dist/esm/next-schema/nodes/date.js +5 -0
  108. package/dist/esm/next-schema/nodes/embedCard.js +5 -0
  109. package/dist/esm/next-schema/nodes/emoji.js +5 -0
  110. package/dist/esm/next-schema/nodes/expand.js +5 -0
  111. package/dist/esm/next-schema/nodes/hardBreak.js +5 -0
  112. package/dist/esm/next-schema/nodes/inlineCard.js +10 -0
  113. package/dist/esm/next-schema/nodes/layoutColumn.js +5 -0
  114. package/dist/esm/next-schema/nodes/layoutSection.js +12 -0
  115. package/dist/esm/next-schema/nodes/list.js +20 -1
  116. package/dist/esm/next-schema/nodes/media.js +10 -0
  117. package/dist/esm/next-schema/nodes/mediaInline.js +5 -0
  118. package/dist/esm/next-schema/nodes/mediaSingle.js +10 -0
  119. package/dist/esm/next-schema/nodes/nestedExpand.js +5 -0
  120. package/dist/esm/next-schema/nodes/panel.js +5 -0
  121. package/dist/esm/next-schema/nodes/placeholder.js +5 -0
  122. package/dist/esm/next-schema/nodes/rule.js +9 -1
  123. package/dist/esm/next-schema/nodes/tableNodes.js +17 -0
  124. package/dist/esm/schema/default-schema.js +1 -1
  125. package/dist/esm/schema/index.js +1 -1
  126. package/dist/esm/schema/nodes/block-card.js +47 -0
  127. package/dist/esm/schema/nodes/blockquote.js +19 -1
  128. package/dist/esm/schema/nodes/bullet-list.js +19 -0
  129. package/dist/esm/schema/nodes/caption.js +19 -0
  130. package/dist/esm/schema/nodes/code-block.js +71 -1
  131. package/dist/esm/schema/nodes/date.js +21 -0
  132. package/dist/esm/schema/nodes/embed-card.js +35 -0
  133. package/dist/esm/schema/nodes/emoji.js +71 -0
  134. package/dist/esm/schema/nodes/expand.js +55 -0
  135. package/dist/esm/schema/nodes/hard-break.js +17 -0
  136. package/dist/esm/schema/nodes/index.js +20 -20
  137. package/dist/esm/schema/nodes/inline-card.js +45 -0
  138. package/dist/esm/schema/nodes/layout-column.js +36 -0
  139. package/dist/esm/schema/nodes/layout-section.js +30 -0
  140. package/dist/esm/schema/nodes/list-item.js +33 -0
  141. package/dist/esm/schema/nodes/media-inline.js +10 -1
  142. package/dist/esm/schema/nodes/media-single.js +21 -1
  143. package/dist/esm/schema/nodes/media.js +19 -3
  144. package/dist/esm/schema/nodes/nested-expand.js +32 -6
  145. package/dist/esm/schema/nodes/ordered-list.js +53 -2
  146. package/dist/esm/schema/nodes/panel.js +12 -4
  147. package/dist/esm/schema/nodes/placeholder.js +23 -0
  148. package/dist/esm/schema/nodes/rule.js +17 -0
  149. package/dist/esm/schema/nodes/tableNodes.js +68 -5
  150. package/dist/esm/validator-schema/generated/validatorSpec.js +159 -0
  151. package/dist/json-schema/v1/full.json +140 -2
  152. package/dist/json-schema/v1/stage-0.json +152 -2
  153. package/dist/types/index.d.ts +2 -2
  154. package/dist/types/next-schema/generated/nodeTypes.d.ts +72 -0
  155. package/dist/types/next-schema/groups/nonNestableBlockContentGroup.d.ts +7 -0
  156. package/dist/types/next-schema/groups/tableCellContentPseudoGroup.d.ts +7 -0
  157. package/dist/types/next-schema/nodes/blockquote.d.ts +7 -0
  158. package/dist/types/next-schema/nodes/layoutSection.d.ts +5 -0
  159. package/dist/types/schema/index.d.ts +1 -1
  160. package/dist/types/schema/nodes/block-card.d.ts +4 -0
  161. package/dist/types/schema/nodes/blockquote.d.ts +4 -0
  162. package/dist/types/schema/nodes/bullet-list.d.ts +1 -0
  163. package/dist/types/schema/nodes/caption.d.ts +4 -0
  164. package/dist/types/schema/nodes/code-block.d.ts +2 -0
  165. package/dist/types/schema/nodes/date.d.ts +2 -0
  166. package/dist/types/schema/nodes/embed-card.d.ts +2 -0
  167. package/dist/types/schema/nodes/emoji.d.ts +2 -0
  168. package/dist/types/schema/nodes/expand.d.ts +2 -0
  169. package/dist/types/schema/nodes/hard-break.d.ts +2 -0
  170. package/dist/types/schema/nodes/index.d.ts +20 -20
  171. package/dist/types/schema/nodes/inline-card.d.ts +1 -0
  172. package/dist/types/schema/nodes/layout-column.d.ts +2 -0
  173. package/dist/types/schema/nodes/layout-section.d.ts +4 -0
  174. package/dist/types/schema/nodes/list-item.d.ts +2 -0
  175. package/dist/types/schema/nodes/media-inline.d.ts +1 -0
  176. package/dist/types/schema/nodes/media-single.d.ts +3 -1
  177. package/dist/types/schema/nodes/media.d.ts +3 -1
  178. package/dist/types/schema/nodes/nested-expand.d.ts +2 -0
  179. package/dist/types/schema/nodes/ordered-list.d.ts +2 -0
  180. package/dist/types/schema/nodes/panel.d.ts +2 -0
  181. package/dist/types/schema/nodes/placeholder.d.ts +2 -0
  182. package/dist/types/schema/nodes/rule.d.ts +4 -0
  183. package/dist/types/schema/nodes/tableNodes.d.ts +6 -0
  184. package/dist/types/schema/nodes/types/list.d.ts +7 -0
  185. package/dist/types/schema/nodes/types/rich-media-common.d.ts +1 -0
  186. package/dist/types/validator-schema/generated/validatorSpec.d.ts +159 -0
  187. package/json-schema/v1/full.json +140 -2
  188. package/json-schema/v1/stage-0.json +152 -2
  189. package/package.json +2 -2
  190. package/schema-generators/__tests__/unit/adfToValidatorSpec.unit.ts +1 -0
@@ -1,4 +1,5 @@
1
1
  import { inlineCard as inlineCardFactory } from '../../next-schema/generated/nodeTypes';
2
+ import { uuid } from '../../utils/uuid';
2
3
 
3
4
  /**
4
5
  * @name inlineCard_node
@@ -44,4 +45,48 @@ export var inlineCard = inlineCardFactory({
44
45
  return ['a', attrs];
45
46
  }
46
47
  }
48
+ });
49
+ export var inlineCardWithLocalId = inlineCardFactory({
50
+ parseDOM: [{
51
+ tag: 'a[data-inline-card], span[data-inline-card]',
52
+ // bump priority higher than hyperlink
53
+ priority: 100,
54
+ getAttrs: function getAttrs(dom) {
55
+ var anchor = dom;
56
+ var data = anchor.getAttribute('data-card-data');
57
+
58
+ /* Support attrs from Editor and Renderer */
59
+ return {
60
+ url: anchor.getAttribute('href') || anchor.getAttribute('data-card-url') || null,
61
+ data: data ? JSON.parse(data) : null
62
+ };
63
+ }
64
+ },
65
+ // for renderer
66
+ {
67
+ tag: 'div[data-inline-card]',
68
+ getAttrs: function getAttrs(dom) {
69
+ var anchor = dom;
70
+ var data = anchor.getAttribute('data-card-data');
71
+ return {
72
+ url: anchor.getAttribute('data-card-url'),
73
+ data: data ? JSON.parse(data) : null,
74
+ localId: uuid.generate()
75
+ };
76
+ }
77
+ }],
78
+ toDOM: function toDOM(node) {
79
+ var _node$attrs;
80
+ var attrs = {
81
+ 'data-inline-card': '',
82
+ href: node.attrs.url || '',
83
+ 'data-card-data': node.attrs.data ? JSON.stringify(node.attrs.data) : '',
84
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
85
+ };
86
+ if (node.attrs.url) {
87
+ return ['a', attrs, node.attrs.url];
88
+ } else {
89
+ return ['a', attrs];
90
+ }
91
+ }
47
92
  });
@@ -1,4 +1,5 @@
1
1
  import { layoutColumn as layoutColumnFactory } from '../../next-schema/generated/nodeTypes';
2
+ import { uuid } from '../../utils/uuid';
2
3
 
3
4
  /**
4
5
  * @name layoutColumn_node
@@ -28,6 +29,41 @@ export var layoutColumn = layoutColumnFactory({
28
29
  attrs['data-column-width'] = "".concat(width);
29
30
  }
30
31
 
32
+ // We need to apply a attribute to the inner most child to help
33
+ // ProseMirror identify its boundaries better.
34
+ var contentAttrs = {
35
+ 'data-layout-content': 'true'
36
+ };
37
+ return ['div', attrs, ['div', contentAttrs, 0]];
38
+ }
39
+ });
40
+ export var layoutColumnWithLocalId = layoutColumnFactory({
41
+ parseDOM: [{
42
+ context: 'layoutColumn//',
43
+ tag: 'div[data-layout-column]',
44
+ skip: true
45
+ }, {
46
+ tag: 'div[data-layout-column]',
47
+ getAttrs: function getAttrs(domNode) {
48
+ var dom = domNode;
49
+ return {
50
+ width: Number(dom.getAttribute('data-column-width')) || undefined,
51
+ localId: uuid.generate()
52
+ };
53
+ }
54
+ }],
55
+ toDOM: function toDOM(node) {
56
+ var _node$attrs;
57
+ var attrs = {
58
+ 'data-layout-column': 'true',
59
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
60
+ };
61
+ var width = node.attrs.width;
62
+ if (width) {
63
+ attrs['style'] = "flex-basis: ".concat(width, "%");
64
+ attrs['data-column-width'] = "".concat(width);
65
+ }
66
+
31
67
  // We need to apply a attribute to the inner most child to help
32
68
  // ProseMirror identify its boundaries better.
33
69
  var contentAttrs = {
@@ -1,5 +1,6 @@
1
1
  import { layoutSection as layoutSectionFactory, layoutSectionWithSingleColumnStage0 as layoutSectionWithSingleColumnStage0Factory } from '../../next-schema/generated/nodeTypes';
2
2
  import { layoutSectionFull as layoutSectionFullFactory } from '../../next-schema/generated/nodeTypes';
3
+ import { uuid } from '../../utils/uuid';
3
4
 
4
5
  /**
5
6
  * @name layoutSection_node
@@ -72,4 +73,33 @@ export var layoutSectionWithSingleColumn = layoutSectionWithSingleColumnStage0Fa
72
73
  };
73
74
  return ['div', attrs, 0];
74
75
  }
76
+ });
77
+ export var layoutSectionWithSingleColumnLocalId = layoutSectionWithSingleColumnStage0Factory({
78
+ parseDOM: [{
79
+ context: 'layoutSection//|layoutColumn//',
80
+ tag: 'div[data-layout-section]',
81
+ skip: true
82
+ }, {
83
+ tag: 'div[data-layout-section]',
84
+ getAttrs: function getAttrs(dom) {
85
+ var columnRuleStyle = dom.getAttribute('data-column-rule-style');
86
+ var localId = uuid.generate();
87
+ return columnRuleStyle ? {
88
+ columnRuleStyle: columnRuleStyle,
89
+ localId: localId
90
+ } : {
91
+ localId: localId
92
+ };
93
+ }
94
+ }],
95
+ toDOM: function toDOM(node) {
96
+ var _node$attrs;
97
+ var columnRuleStyle = node.attrs.columnRuleStyle;
98
+ var attrs = {
99
+ 'data-layout-section': 'true',
100
+ 'data-column-rule-style': columnRuleStyle || undefined,
101
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
102
+ };
103
+ return ['div', attrs, 0];
104
+ }
75
105
  });
@@ -1,3 +1,4 @@
1
+ import { uuid } from '../../utils';
1
2
  import { listItem as listItemFactory, listItemWithNestedDecisionStage0 as listItemWithNestedDecisionStage0Factory } from '../../next-schema/generated/nodeTypes';
2
3
 
3
4
  /**
@@ -12,6 +13,22 @@ export var listItem = listItemFactory({
12
13
  return ['li', 0];
13
14
  }
14
15
  });
16
+ export var listItemWithLocalId = listItemFactory({
17
+ parseDOM: [{
18
+ tag: 'li',
19
+ getAttrs: function getAttrs() {
20
+ return {
21
+ localId: uuid.generate()
22
+ };
23
+ }
24
+ }],
25
+ toDOM: function toDOM(node) {
26
+ var _node$attrs;
27
+ return ['li', {
28
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
29
+ }, 0];
30
+ }
31
+ });
15
32
 
16
33
  /**
17
34
  * @name list_item_with_decision_stage0
@@ -24,4 +41,20 @@ export var listItemWithDecisionStage0 = listItemWithNestedDecisionStage0Factory(
24
41
  toDOM: function toDOM() {
25
42
  return ['li', 0];
26
43
  }
44
+ });
45
+ export var listItemWithNestedDecisionAndLocalIdStage0 = listItemWithNestedDecisionStage0Factory({
46
+ parseDOM: [{
47
+ tag: 'li',
48
+ getAttrs: function getAttrs() {
49
+ return {
50
+ localId: uuid.generate()
51
+ };
52
+ }
53
+ }],
54
+ toDOM: function toDOM(node) {
55
+ var _node$attrs2;
56
+ return ['li', {
57
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.localId) || undefined
58
+ }, 0];
59
+ }
27
60
  });
@@ -1,8 +1,17 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
4
  import { createMediaSpec } from './media';
5
+ import { uuid } from '../../utils/uuid';
2
6
  import { mediaInline as mediaInlineFactory } from '../../next-schema/generated/nodeTypes';
3
7
 
4
8
  /**
5
9
  * @name mediaInline_node
6
10
  */
7
11
 
8
- export var mediaInline = createMediaSpec(mediaInlineFactory({}).attrs, true);
12
+ export var mediaInline = createMediaSpec(mediaInlineFactory({}).attrs, true);
13
+ export var mediaInlineWithLocalId = createMediaSpec(_objectSpread(_objectSpread({}, mediaInlineFactory({}).attrs), {}, {
14
+ localId: {
15
+ default: uuid.generate()
16
+ }
17
+ }), true, true);
@@ -4,6 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { WidthType } from './types/rich-media-common';
5
5
  import { isDOMElement } from '../../utils/parseDOM';
6
6
  import { mediaSingle as mediaSingleFactory, mediaSingleCaption as mediaSingleCaptionFactory, mediaSingleFull as mediaSingleFullFactory, mediaSingleWidthType as mediaSingleWidthTypeFactory } from '../../next-schema/generated/nodeTypes';
7
+ import { uuid } from '../../utils/uuid';
7
8
 
8
9
  /**
9
10
  * @name mediaSingle_node
@@ -39,7 +40,9 @@ export var mediaSingleSpec = function mediaSingleSpec(_ref) {
39
40
  var _ref$withCaption = _ref.withCaption,
40
41
  withCaption = _ref$withCaption === void 0 ? false : _ref$withCaption,
41
42
  _ref$withExtendedWidt = _ref.withExtendedWidthTypes,
42
- withExtendedWidthTypes = _ref$withExtendedWidt === void 0 ? false : _ref$withExtendedWidt;
43
+ withExtendedWidthTypes = _ref$withExtendedWidt === void 0 ? false : _ref$withExtendedWidt,
44
+ _ref$generateLocalId = _ref.generateLocalId,
45
+ generateLocalId = _ref$generateLocalId === void 0 ? false : _ref$generateLocalId;
43
46
  var getAttrs = function getAttrs(dom) {
44
47
  if (!isDOMElement(dom)) {
45
48
  // this should never happen
@@ -50,6 +53,14 @@ export var mediaSingleSpec = function mediaSingleSpec(_ref) {
50
53
  var layout = dom.getAttribute('data-layout') || 'center';
51
54
  var width = Number(dom.getAttribute('data-width')) || null;
52
55
  var widthType = dom.getAttribute('data-width-type');
56
+ if (generateLocalId) {
57
+ return {
58
+ layout: layout,
59
+ width: width,
60
+ widthType: widthType,
61
+ localId: uuid.generate()
62
+ };
63
+ }
53
64
  if (withExtendedWidthTypes) {
54
65
  return {
55
66
  layout: layout,
@@ -78,6 +89,10 @@ export var mediaSingleSpec = function mediaSingleSpec(_ref) {
78
89
  'data-layout': layout,
79
90
  'data-width': ''
80
91
  };
92
+ if (generateLocalId) {
93
+ var _node$attrs2;
94
+ attrs['data-local-id'] = (node === null || node === void 0 ? void 0 : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.localId) || undefined;
95
+ }
81
96
  if (width) {
82
97
  attrs['data-width'] = isFinite(width) && Math.floor(width) === width ? width : width.toFixed(2);
83
98
  }
@@ -148,6 +163,11 @@ export var mediaSingleFull = mediaSingleSpec({
148
163
  withCaption: true,
149
164
  withExtendedWidthTypes: true
150
165
  });
166
+ export var mediaSingleFullWithLocalId = mediaSingleSpec({
167
+ withCaption: true,
168
+ withExtendedWidthTypes: true,
169
+ generateLocalId: true
170
+ });
151
171
  export var toJSON = function toJSON(node) {
152
172
  return {
153
173
  attrs: Object.keys(node.attrs).reduce(function (obj, key) {
@@ -1,6 +1,10 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
4
  import { N30 } from '../../utils/colors';
2
5
  import { media as mediaFactory } from '../../next-schema/generated/nodeTypes';
3
6
  import { mediaInline as mediaInlineFactory } from '../../next-schema/generated/nodeTypes';
7
+ import { uuid } from '../../utils/uuid';
4
8
 
5
9
  /**
6
10
  * @name media_node
@@ -9,6 +13,7 @@ import { mediaInline as mediaInlineFactory } from '../../next-schema/generated/n
9
13
  export var defaultAttrs = mediaFactory({}).attrs;
10
14
  export var createMediaSpec = function createMediaSpec(attributes) {
11
15
  var inline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
16
+ var generateLocalId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
12
17
  var domNodeType = inline ? 'span' : 'div';
13
18
  var nodeName = inline ? 'mediaInline' : 'media';
14
19
  var parseDOM = [{
@@ -46,6 +51,7 @@ export var createMediaSpec = function createMediaSpec(attributes) {
46
51
  ignore: true
47
52
  }];
48
53
  var toDOM = function toDOM(node) {
54
+ var _node$attrs;
49
55
  var attrs = {
50
56
  'data-id': node.attrs.id,
51
57
  'data-node-type': "".concat(nodeName),
@@ -62,7 +68,8 @@ export var createMediaSpec = function createMediaSpec(attributes) {
62
68
  title: 'Attachment',
63
69
  // Manually kept in sync with the style of media cards. The goal is to render a plain gray
64
70
  // rectangle that provides an affordance for media.
65
- style: "display: inline-block; border-radius: 3px; background: ".concat(N30, "; box-shadow: 0 1px 1px rgba(9, 30, 66, 0.2), 0 0 1px 0 rgba(9, 30, 66, 0.24);")
71
+ style: "display: inline-block; border-radius: 3px; background: ".concat(N30, "; box-shadow: 0 1px 1px rgba(9, 30, 66, 0.2), 0 0 1px 0 rgba(9, 30, 66, 0.24);"),
72
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
66
73
  };
67
74
  copyPrivateAttributes(node.attrs, attrs, function (key) {
68
75
  return "data-".concat(camelCaseToKebabCase(key.slice(2)));
@@ -82,17 +89,26 @@ export var createMediaSpec = function createMediaSpec(attributes) {
82
89
  // https://product-fabric.atlassian.net/browse/EDM-2996
83
90
  tag: 'img:not(.smart-link-icon)',
84
91
  getAttrs: function getAttrs(dom) {
85
- return {
92
+ var attrs = {
86
93
  type: 'external',
87
94
  url: dom.getAttribute('src') || '',
88
95
  alt: dom.getAttribute('alt') || ''
89
96
  };
97
+ if (generateLocalId) {
98
+ attrs.localId = uuid.generate();
99
+ }
100
+ return attrs;
90
101
  }
91
102
  }]),
92
103
  toDOM: toDOM
93
104
  });
94
105
  };
95
- export var media = createMediaSpec(defaultAttrs, false);
106
+ export var media = createMediaSpec(defaultAttrs, false, false);
107
+ export var mediaWithLocalId = createMediaSpec(_objectSpread(_objectSpread({}, defaultAttrs), {}, {
108
+ localId: {
109
+ default: uuid.generate()
110
+ }
111
+ }), false, true);
96
112
  export var camelCaseToKebabCase = function camelCaseToKebabCase(str) {
97
113
  return str.replace(/([^A-Z]+)([A-Z])/g, function (_, x, y) {
98
114
  return "".concat(x, "-").concat(y.toLowerCase());
@@ -1,4 +1,9 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
5
  import { nestedExpand as nestedExpandFactory } from '../../next-schema/generated/nodeTypes';
6
+ import { uuid } from '../../utils/uuid';
2
7
 
3
8
  /**
4
9
  * @name nestedExpand_content
@@ -14,18 +19,21 @@ import { nestedExpand as nestedExpandFactory } from '../../next-schema/generated
14
19
  * @name nestedExpand_with_no_marks_node
15
20
  */
16
21
 
17
- function getExpandAttrs(domNode) {
22
+ function getExpandAttrs(domNode, generateLocalId) {
18
23
  var dom = domNode;
19
24
  return {
20
25
  title: dom.getAttribute('data-title'),
21
- __expanded: true
26
+ __expanded: true,
27
+ localId: generateLocalId ? uuid.generate() : undefined
22
28
  };
23
29
  }
24
30
  var nestedExpandFactoryOptions = {
25
31
  parseDOM: [{
26
32
  context: 'nestedExpand//',
27
33
  tag: '[data-node-type="nestedExpand"]',
28
- getAttrs: getExpandAttrs
34
+ getAttrs: function getAttrs(domNode) {
35
+ return getExpandAttrs(domNode, false);
36
+ }
29
37
  }, {
30
38
  tag: '[data-node-type="nestedExpand"] button',
31
39
  ignore: true
@@ -34,13 +42,17 @@ var nestedExpandFactoryOptions = {
34
42
  ignore: true
35
43
  }, {
36
44
  tag: 'div[data-node-type="nestedExpand"]',
37
- getAttrs: getExpandAttrs
45
+ getAttrs: function getAttrs(domNode) {
46
+ return getExpandAttrs(domNode, false);
47
+ }
38
48
  }],
39
49
  toDOM: function toDOM(node) {
50
+ var _node$attrs;
40
51
  var attrs = {
41
52
  'data-node-type': 'nestedExpand',
42
53
  'data-title': node.attrs.title,
43
- 'data-expanded': node.attrs.__expanded
54
+ 'data-expanded': node.attrs.__expanded,
55
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
44
56
  };
45
57
  return ['div', attrs, 0];
46
58
  }
@@ -50,4 +62,18 @@ var nestedExpandFactoryOptions = {
50
62
  * @name nestedExpand
51
63
  * @description an expand that can be nested (eg. inside table, layout).
52
64
  */
53
- export var nestedExpand = nestedExpandFactory(nestedExpandFactoryOptions);
65
+ export var nestedExpand = nestedExpandFactory(nestedExpandFactoryOptions);
66
+ export var nestedExpandWithLocalId = nestedExpandFactory(_objectSpread(_objectSpread({}, nestedExpandFactoryOptions), {}, {
67
+ parseDOM: [].concat(_toConsumableArray(nestedExpandFactoryOptions.parseDOM), [{
68
+ context: 'nestedExpand//',
69
+ tag: '[data-node-type="nestedExpand"]',
70
+ getAttrs: function getAttrs(domNode) {
71
+ return getExpandAttrs(domNode, true);
72
+ }
73
+ }, {
74
+ tag: '[data-node-type="nestedExpand"]',
75
+ getAttrs: function getAttrs(domNode) {
76
+ return getExpandAttrs(domNode, true);
77
+ }
78
+ }])
79
+ }));
@@ -1,3 +1,4 @@
1
+ import { uuid } from '../../utils';
1
2
  import { orderedList as orderedListFactory } from '../../next-schema/generated/nodeTypes';
2
3
  export var orderedListSelector = '.ak-ol';
3
4
  export var orderedList = orderedListFactory({
@@ -11,6 +12,24 @@ export var orderedList = orderedListFactory({
11
12
  return ['ol', attrs, 0];
12
13
  }
13
14
  });
15
+ export var orderedListWithLocalId = orderedListFactory({
16
+ parseDOM: [{
17
+ tag: 'ol',
18
+ getAttrs: function getAttrs() {
19
+ return {
20
+ localId: uuid.generate()
21
+ };
22
+ }
23
+ }],
24
+ toDOM: function toDOM(node) {
25
+ var _node$attrs;
26
+ var attrs = {
27
+ class: orderedListSelector.substr(1),
28
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
29
+ };
30
+ return ['ol', attrs, 0];
31
+ }
32
+ });
14
33
 
15
34
  // resolve "start" to a safe, 0+ integer, otherwise return undefined
16
35
  // Note: Any changes to this function should also be made to "resolveOrder"
@@ -43,12 +62,44 @@ export var orderedListWithOrder = orderedListFactory({
43
62
  }
44
63
  }],
45
64
  toDOM: function toDOM(node) {
46
- var _node$attrs;
47
- var start = resolveStart(node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.order);
65
+ var _node$attrs2;
66
+ var start = resolveStart(node === null || node === void 0 ? void 0 : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.order);
48
67
  var attrs = {
49
68
  start: typeof start === 'number' ? String(start) : undefined,
50
69
  class: orderedListSelector.substr(1)
51
70
  };
52
71
  return ['ol', attrs, 0];
53
72
  }
73
+ });
74
+ export var orderedListWithOrderAndLocalId = orderedListFactory({
75
+ parseDOM: [{
76
+ tag: 'ol',
77
+ getAttrs: function getAttrs(domNode) {
78
+ var dom = domNode;
79
+ var startDOMAttr = dom.getAttribute('start');
80
+ var localId = uuid.generate();
81
+ if (startDOMAttr) {
82
+ var start = resolveStart(startDOMAttr);
83
+ if (typeof start === 'number') {
84
+ return {
85
+ order: start,
86
+ localId: localId
87
+ };
88
+ }
89
+ }
90
+ return {
91
+ localId: localId
92
+ };
93
+ }
94
+ }],
95
+ toDOM: function toDOM(node) {
96
+ var _node$attrs3, _node$attrs4;
97
+ var start = resolveStart(node === null || node === void 0 ? void 0 : (_node$attrs3 = node.attrs) === null || _node$attrs3 === void 0 ? void 0 : _node$attrs3.order);
98
+ var attrs = {
99
+ start: typeof start === 'number' ? String(start) : undefined,
100
+ class: orderedListSelector.substr(1),
101
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs4 = node.attrs) === null || _node$attrs4 === void 0 ? void 0 : _node$attrs4.localId) || undefined
102
+ };
103
+ return ['ol', attrs, 0];
104
+ }
54
105
  });
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  import { panel as panelFactory } from '../../next-schema/generated/nodeTypes';
5
+ import { uuid } from '../../utils/uuid';
5
6
  export var PanelType = /*#__PURE__*/function (PanelType) {
6
7
  PanelType["INFO"] = "info";
7
8
  PanelType["NOTE"] = "note";
@@ -23,14 +24,18 @@ var getDomAttrs = function getDomAttrs(nodeAttrs) {
23
24
  'data-panel-icon': nodeAttrs.panelIcon,
24
25
  'data-panel-icon-id': nodeAttrs.panelIconId,
25
26
  'data-panel-icon-text': nodeAttrs.panelIconText,
26
- 'data-panel-color': nodeAttrs.panelColor
27
+ 'data-panel-color': nodeAttrs.panelColor,
28
+ 'data-local-id': (nodeAttrs === null || nodeAttrs === void 0 ? void 0 : nodeAttrs.localId) || undefined
27
29
  };
28
30
  return attrs;
29
31
  };
30
- var getParseDOMAttrs = function getParseDOMAttrs(allowCustomPanel, dom) {
32
+ var getParseDOMAttrs = function getParseDOMAttrs(allowCustomPanel, dom, generateLocalId) {
31
33
  var parseDOMAttrs = {
32
34
  panelType: dom.getAttribute('data-panel-type')
33
35
  };
36
+ if (generateLocalId) {
37
+ parseDOMAttrs.localId = uuid.generate();
38
+ }
34
39
  if (allowCustomPanel) {
35
40
  parseDOMAttrs = _objectSpread(_objectSpread({}, parseDOMAttrs), {}, {
36
41
  panelIcon: dom.getAttribute('data-panel-icon'),
@@ -43,12 +48,12 @@ var getParseDOMAttrs = function getParseDOMAttrs(allowCustomPanel, dom) {
43
48
  }
44
49
  return parseDOMAttrs;
45
50
  };
46
- var createPanelNodeSpecOptions = function createPanelNodeSpecOptions(allowCustomPanel) {
51
+ var createPanelNodeSpecOptions = function createPanelNodeSpecOptions(allowCustomPanel, generateLocalId) {
47
52
  return {
48
53
  parseDOM: [{
49
54
  tag: 'div[data-panel-type]',
50
55
  getAttrs: function getAttrs(dom) {
51
- return getParseDOMAttrs(allowCustomPanel, dom);
56
+ return getParseDOMAttrs(allowCustomPanel, dom, generateLocalId);
52
57
  }
53
58
  }],
54
59
  toDOM: function toDOM(node) {
@@ -69,4 +74,7 @@ var createPanelNodeSpecOptions = function createPanelNodeSpecOptions(allowCustom
69
74
  */
70
75
  export var extendedPanel = function extendedPanel(allowCustomPanel) {
71
76
  return panelFactory(createPanelNodeSpecOptions(allowCustomPanel));
77
+ };
78
+ export var extendedPanelWithLocalId = function extendedPanelWithLocalId(allowCustomPanel) {
79
+ return panelFactory(createPanelNodeSpecOptions(allowCustomPanel, true));
72
80
  };
@@ -1,4 +1,5 @@
1
1
  import { placeholder as placeholderFactory } from '../../next-schema/generated/nodeTypes';
2
+ import { uuid } from '../../utils/uuid';
2
3
 
3
4
  /**
4
5
  * @name placeholder_node
@@ -22,4 +23,26 @@ export var placeholder = placeholderFactory({
22
23
  };
23
24
  return ['span', attrs, text];
24
25
  }
26
+ });
27
+ export var placeholderWithLocalId = placeholderFactory({
28
+ parseDOM: [{
29
+ tag: 'span[data-placeholder]',
30
+ getAttrs: function getAttrs(dom) {
31
+ return {
32
+ text: dom.getAttribute('data-placeholder') || placeholder.attrs.text.default,
33
+ localId: uuid.generate()
34
+ };
35
+ }
36
+ }],
37
+ toDOM: function toDOM(node) {
38
+ var _node$attrs;
39
+ var text = node.attrs.text;
40
+ var attrs = {
41
+ 'data-placeholder': text,
42
+ // Needs to be edtiable for mobile to not close keyboard
43
+ contenteditable: 'true',
44
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
45
+ };
46
+ return ['span', attrs, text];
47
+ }
25
48
  });
@@ -1,4 +1,5 @@
1
1
  import { rule as ruleFactory } from '../../next-schema/generated/nodeTypes';
2
+ import { uuid } from '../../utils/uuid';
2
3
 
3
4
  /**
4
5
  * @name rule_node
@@ -12,4 +13,20 @@ export var rule = ruleFactory({
12
13
  toDOM: function toDOM() {
13
14
  return hrDOM;
14
15
  }
16
+ });
17
+ export var ruleWithLocalId = ruleFactory({
18
+ parseDOM: [{
19
+ tag: 'hr',
20
+ getAttrs: function getAttrs() {
21
+ return {
22
+ localId: uuid.generate()
23
+ };
24
+ }
25
+ }],
26
+ toDOM: function toDOM(node) {
27
+ var _node$attrs;
28
+ return ['hr', {
29
+ 'data-local-id': (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) || undefined
30
+ }];
31
+ }
15
32
  });