@atlaskit/adf-schema 28.1.11 → 28.1.13

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 (218) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +1 -1
  3. package/build/tsconfig.json +0 -18
  4. package/index.ts +0 -275
  5. package/src/__tests__/unit/json-schema/v1.ts +0 -55
  6. package/src/__tests__/unit/schema/create-schema.ts +0 -214
  7. package/src/__tests__/unit/schema/default-schema.ts +0 -192
  8. package/src/__tests__/unit/schema/marks/annotation.ts +0 -46
  9. package/src/__tests__/unit/schema/marks/border.ts +0 -76
  10. package/src/__tests__/unit/schema/marks/breakout.ts +0 -24
  11. package/src/__tests__/unit/schema/marks/code.ts +0 -44
  12. package/src/__tests__/unit/schema/marks/confluence-inline-comment.ts +0 -25
  13. package/src/__tests__/unit/schema/marks/data-consumer.ts +0 -52
  14. package/src/__tests__/unit/schema/marks/em.ts +0 -37
  15. package/src/__tests__/unit/schema/marks/link.ts +0 -188
  16. package/src/__tests__/unit/schema/marks/strike.ts +0 -37
  17. package/src/__tests__/unit/schema/marks/strong.ts +0 -43
  18. package/src/__tests__/unit/schema/marks/subsup.ts +0 -50
  19. package/src/__tests__/unit/schema/marks/text-color.ts +0 -61
  20. package/src/__tests__/unit/schema/marks/underline.ts +0 -36
  21. package/src/__tests__/unit/schema/nodes/_consts.ts +0 -964
  22. package/src/__tests__/unit/schema/nodes/block-card.ts +0 -184
  23. package/src/__tests__/unit/schema/nodes/blockquote.ts +0 -44
  24. package/src/__tests__/unit/schema/nodes/bodied-extension.ts +0 -101
  25. package/src/__tests__/unit/schema/nodes/code-block.ts +0 -221
  26. package/src/__tests__/unit/schema/nodes/confluence-unsupported-block.ts +0 -32
  27. package/src/__tests__/unit/schema/nodes/confluence-unsupported-inline.ts +0 -35
  28. package/src/__tests__/unit/schema/nodes/date.ts +0 -51
  29. package/src/__tests__/unit/schema/nodes/decision-item.ts +0 -46
  30. package/src/__tests__/unit/schema/nodes/decision-list.ts +0 -52
  31. package/src/__tests__/unit/schema/nodes/embed-card.ts +0 -60
  32. package/src/__tests__/unit/schema/nodes/emoji.ts +0 -71
  33. package/src/__tests__/unit/schema/nodes/expand.ts +0 -51
  34. package/src/__tests__/unit/schema/nodes/extension.ts +0 -101
  35. package/src/__tests__/unit/schema/nodes/hard-break.ts +0 -24
  36. package/src/__tests__/unit/schema/nodes/heading.ts +0 -56
  37. package/src/__tests__/unit/schema/nodes/image.ts +0 -32
  38. package/src/__tests__/unit/schema/nodes/inline-card.ts +0 -106
  39. package/src/__tests__/unit/schema/nodes/inline-extension.ts +0 -79
  40. package/src/__tests__/unit/schema/nodes/layout-column.ts +0 -54
  41. package/src/__tests__/unit/schema/nodes/layout-section.ts +0 -95
  42. package/src/__tests__/unit/schema/nodes/list-item.ts +0 -49
  43. package/src/__tests__/unit/schema/nodes/media-group.ts +0 -67
  44. package/src/__tests__/unit/schema/nodes/media-single.ts +0 -171
  45. package/src/__tests__/unit/schema/nodes/media.ts +0 -384
  46. package/src/__tests__/unit/schema/nodes/mention.ts +0 -115
  47. package/src/__tests__/unit/schema/nodes/nestedExpand.ts +0 -72
  48. package/src/__tests__/unit/schema/nodes/ordered-list.ts +0 -49
  49. package/src/__tests__/unit/schema/nodes/panel.ts +0 -180
  50. package/src/__tests__/unit/schema/nodes/paragraph.ts +0 -25
  51. package/src/__tests__/unit/schema/nodes/placeholder.ts +0 -46
  52. package/src/__tests__/unit/schema/nodes/rule.ts +0 -24
  53. package/src/__tests__/unit/schema/nodes/status.ts +0 -120
  54. package/src/__tests__/unit/schema/nodes/tableNodes.ts +0 -555
  55. package/src/__tests__/unit/schema/nodes/task-item.ts +0 -39
  56. package/src/__tests__/unit/schema/nodes/task-list.ts +0 -45
  57. package/src/__tests__/unit/schema/nodes/unknown-block.ts +0 -42
  58. package/src/__tests__/unit/schema/nodes/unsupported-block.ts +0 -42
  59. package/src/__tests__/unit/schema/nodes/unsupported-inline.ts +0 -38
  60. package/src/__tests__/unit/utils/colors.ts +0 -42
  61. package/src/__tests__/unit/utils/url.ts +0 -209
  62. package/src/index.ts +0 -297
  63. package/src/json-schema/index.ts +0 -2
  64. package/src/schema/bitbucket-schema.ts +0 -43
  65. package/src/schema/confluence-schema.ts +0 -76
  66. package/src/schema/create-schema.ts +0 -337
  67. package/src/schema/default-schema.ts +0 -180
  68. package/src/schema/groups.ts +0 -30
  69. package/src/schema/index.ts +0 -238
  70. package/src/schema/inline-nodes.ts +0 -9
  71. package/src/schema/jira-schema.ts +0 -158
  72. package/src/schema/marks/__tests__/unit/annotation.ts +0 -18
  73. package/src/schema/marks/alignment.ts +0 -48
  74. package/src/schema/marks/annotation.ts +0 -107
  75. package/src/schema/marks/border.ts +0 -74
  76. package/src/schema/marks/breakout.ts +0 -42
  77. package/src/schema/marks/code.ts +0 -45
  78. package/src/schema/marks/confluence-inline-comment.ts +0 -32
  79. package/src/schema/marks/data-consumer.ts +0 -100
  80. package/src/schema/marks/em.ts +0 -19
  81. package/src/schema/marks/fragment.ts +0 -77
  82. package/src/schema/marks/indentation.ts +0 -47
  83. package/src/schema/marks/index.ts +0 -61
  84. package/src/schema/marks/link.ts +0 -139
  85. package/src/schema/marks/strike.ts +0 -26
  86. package/src/schema/marks/strong.ts +0 -45
  87. package/src/schema/marks/subsup.ts +0 -53
  88. package/src/schema/marks/text-color.ts +0 -172
  89. package/src/schema/marks/type-ahead-query.ts +0 -22
  90. package/src/schema/marks/underline.ts +0 -24
  91. package/src/schema/marks/unsupported-mark.ts +0 -9
  92. package/src/schema/marks/unsupported-node-attributes.ts +0 -8
  93. package/src/schema/nodes/block-card.ts +0 -121
  94. package/src/schema/nodes/blockquote.ts +0 -25
  95. package/src/schema/nodes/bodied-extension.ts +0 -75
  96. package/src/schema/nodes/bullet-list.ts +0 -17
  97. package/src/schema/nodes/caption.ts +0 -51
  98. package/src/schema/nodes/code-block.ts +0 -176
  99. package/src/schema/nodes/confluence-jira-issue.ts +0 -43
  100. package/src/schema/nodes/confluence-unsupported-block.ts +0 -29
  101. package/src/schema/nodes/confluence-unsupported-inline.ts +0 -30
  102. package/src/schema/nodes/date.ts +0 -38
  103. package/src/schema/nodes/decision-item.ts +0 -50
  104. package/src/schema/nodes/decision-list.ts +0 -56
  105. package/src/schema/nodes/doc.ts +0 -30
  106. package/src/schema/nodes/embed-card.ts +0 -62
  107. package/src/schema/nodes/emoji.ts +0 -89
  108. package/src/schema/nodes/expand.ts +0 -101
  109. package/src/schema/nodes/extension.ts +0 -60
  110. package/src/schema/nodes/hard-break.ts +0 -21
  111. package/src/schema/nodes/heading.ts +0 -64
  112. package/src/schema/nodes/image.ts +0 -32
  113. package/src/schema/nodes/index.ts +0 -184
  114. package/src/schema/nodes/inline-card.ts +0 -70
  115. package/src/schema/nodes/inline-extension.ts +0 -57
  116. package/src/schema/nodes/layout-column.ts +0 -68
  117. package/src/schema/nodes/layout-section.ts +0 -93
  118. package/src/schema/nodes/list-item.ts +0 -13
  119. package/src/schema/nodes/media-group.ts +0 -44
  120. package/src/schema/nodes/media-inline.ts +0 -19
  121. package/src/schema/nodes/media-single.ts +0 -179
  122. package/src/schema/nodes/media.ts +0 -253
  123. package/src/schema/nodes/mention.ts +0 -86
  124. package/src/schema/nodes/nested-expand.ts +0 -77
  125. package/src/schema/nodes/ordered-list.ts +0 -62
  126. package/src/schema/nodes/panel.ts +0 -133
  127. package/src/schema/nodes/paragraph.ts +0 -79
  128. package/src/schema/nodes/placeholder.ts +0 -40
  129. package/src/schema/nodes/rule.ts +0 -17
  130. package/src/schema/nodes/status.ts +0 -58
  131. package/src/schema/nodes/tableNodes.ts +0 -478
  132. package/src/schema/nodes/task-item.ts +0 -51
  133. package/src/schema/nodes/task-list.ts +0 -61
  134. package/src/schema/nodes/text.ts +0 -19
  135. package/src/schema/nodes/types/block-content.ts +0 -51
  136. package/src/schema/nodes/types/extensions.ts +0 -36
  137. package/src/schema/nodes/types/inline-content.ts +0 -56
  138. package/src/schema/nodes/types/list.ts +0 -54
  139. package/src/schema/nodes/types/mark.ts +0 -16
  140. package/src/schema/nodes/types/non-nestable-block-content.ts +0 -39
  141. package/src/schema/nodes/types/rich-media-common.ts +0 -51
  142. package/src/schema/nodes/unknown-block.ts +0 -13
  143. package/src/schema/nodes/unsupported-block.ts +0 -28
  144. package/src/schema/nodes/unsupported-inline.ts +0 -27
  145. package/src/schema/unsupported.ts +0 -4
  146. package/src/steps/__tests__/unit/analytics.ts +0 -72
  147. package/src/steps/__tests__/unit/link-meta-step.ts +0 -64
  148. package/src/steps/__tests__/unit/override-document-step.ts +0 -174
  149. package/src/steps/__tests__/unit/set-attrs.ts +0 -71
  150. package/src/steps/analytics.ts +0 -189
  151. package/src/steps/link-meta-step.ts +0 -105
  152. package/src/steps/override-document-step.ts +0 -97
  153. package/src/steps/set-attrs.tsx +0 -74
  154. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-0.json +0 -15
  155. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-1.json +0 -15
  156. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-2.json +0 -15
  157. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-3.json +0 -15
  158. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-0.json +0 -9
  159. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-1.json +0 -9
  160. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-2.json +0 -9
  161. package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row-inverted.json +0 -98
  162. package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row.json +0 -71
  163. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0-inverted.json +0 -19
  164. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0.json +0 -19
  165. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1-inverted.json +0 -21
  166. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1.json +0 -21
  167. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2-inverted.json +0 -21
  168. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2.json +0 -21
  169. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3-inverted.json +0 -19
  170. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3.json +0 -19
  171. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0-inverted.json +0 -63
  172. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0.json +0 -21
  173. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1-inverted.json +0 -64
  174. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1.json +0 -22
  175. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2-inverted.json +0 -63
  176. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2.json +0 -21
  177. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0-inverted.json +0 -19
  178. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0.json +0 -19
  179. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1-inverted.json +0 -19
  180. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1.json +0 -19
  181. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2-inverted.json +0 -19
  182. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2.json +0 -19
  183. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3-inverted.json +0 -19
  184. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3.json +0 -19
  185. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0-inverted.json +0 -52
  186. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0.json +0 -38
  187. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1-inverted.json +0 -52
  188. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1.json +0 -38
  189. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2-inverted.json +0 -25
  190. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2.json +0 -11
  191. package/src/steps/table/__tests__/_utils.ts +0 -102
  192. package/src/steps/table/__tests__/add-column-merge-columns.ts +0 -509
  193. package/src/steps/table/__tests__/add-column-merge-rows.ts +0 -466
  194. package/src/steps/table/__tests__/add-column.ts +0 -638
  195. package/src/steps/table/add-column.ts +0 -443
  196. package/src/steps/table/constants.ts +0 -4
  197. package/src/steps/table/sort-column.ts +0 -57
  198. package/src/steps/table/types.ts +0 -48
  199. package/src/steps/table/utils/cell-step.ts +0 -239
  200. package/src/steps/table/utils/cells-at-column.ts +0 -75
  201. package/src/steps/table/utils/find-column.ts +0 -90
  202. package/src/steps/table/utils/get-table-rect-from-doc.ts +0 -37
  203. package/src/steps/table/utils/side-effects/rows.ts +0 -327
  204. package/src/steps/table/utils/side-effects/side-effects.ts +0 -90
  205. package/src/steps/table/utils/side-effects/table.ts +0 -112
  206. package/src/steps/table/utils/side-effects/types.ts +0 -34
  207. package/src/steps/table/utils/table-map.ts +0 -28
  208. package/src/steps/type-ahead.ts +0 -100
  209. package/src/steps.ts +0 -16
  210. package/src/utils/colors.ts +0 -171
  211. package/src/utils/confluence/emoji.ts +0 -99
  212. package/src/utils/extensions.ts +0 -32
  213. package/src/utils/index.ts +0 -69
  214. package/src/utils/parseDOM.ts +0 -2
  215. package/src/utils/url.ts +0 -173
  216. package/src/utils/uuid.ts +0 -19
  217. package/src/version.json +0 -6
  218. package/tsconfig.json +0 -13
@@ -1,189 +0,0 @@
1
- import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
- import {
3
- Step,
4
- StepResult,
5
- StepMap,
6
- ReplaceStep,
7
- Mappable,
8
- } from '@atlaskit/editor-prosemirror/transform';
9
- import { Slice } from '@atlaskit/editor-prosemirror/model';
10
-
11
- export const analyticsStepType = 'atlaskit-analytics';
12
- export const analyticsInvertStepType = 'atlaskit-analytics-invert';
13
-
14
- export interface AnalyticsPayload {
15
- action: string;
16
- actionSubject: string;
17
- actionSubjectId?: string | null;
18
- attributes?: Record<string, any>;
19
- eventType: string;
20
- }
21
-
22
- export interface AnalyticsWithChannel<P extends AnalyticsPayload> {
23
- payload: P;
24
- channel: string;
25
- }
26
-
27
- enum HISTORY_ACTIONS {
28
- UNDID = 'undid',
29
- REDID = 'redid',
30
- }
31
- interface UndoAnalyticsEventPayload {
32
- action: HISTORY_ACTIONS.UNDID;
33
- actionSubject: string;
34
- actionSubjectId?: string;
35
- attributes?: Record<string, any>;
36
- eventType: string;
37
- }
38
- interface RedoAnalyticsEventPayload {
39
- action: HISTORY_ACTIONS.REDID;
40
- actionSubject: string;
41
- actionSubjectId?: string;
42
- attributes?: Record<string, any>;
43
- eventType: string;
44
- }
45
-
46
- type AnalyticsInvertPayload =
47
- | UndoAnalyticsEventPayload
48
- | RedoAnalyticsEventPayload;
49
- type AnalyticsInvert = AnalyticsWithChannel<AnalyticsInvertPayload>;
50
-
51
- /** Creates undo event from a normal analytics event */
52
- function createUndoEvent<P extends AnalyticsPayload>(
53
- analyticsEvent: AnalyticsWithChannel<P>,
54
- ): AnalyticsWithChannel<UndoAnalyticsEventPayload> {
55
- return {
56
- ...analyticsEvent,
57
- payload: {
58
- action: HISTORY_ACTIONS.UNDID,
59
- actionSubject: analyticsEvent.payload.actionSubject,
60
- actionSubjectId: analyticsEvent.payload.action,
61
- attributes: {
62
- ...analyticsEvent.payload.attributes,
63
- actionSubjectId: analyticsEvent.payload.actionSubjectId,
64
- inputMethod: analyticsEvent.payload.attributes?.inputMethod || '',
65
- },
66
- eventType: 'track',
67
- },
68
- };
69
- }
70
-
71
- /** Toggles event action between undo & redo */
72
- const toggleEventAction = (
73
- analyticsEvent: AnalyticsWithChannel<
74
- UndoAnalyticsEventPayload | RedoAnalyticsEventPayload
75
- >,
76
- ): AnalyticsInvert => ({
77
- ...analyticsEvent,
78
- payload: {
79
- ...analyticsEvent.payload,
80
- action:
81
- analyticsEvent.payload.action === HISTORY_ACTIONS.UNDID
82
- ? HISTORY_ACTIONS.REDID
83
- : HISTORY_ACTIONS.UNDID,
84
- },
85
- });
86
-
87
- function isHistoryAnalyticsEvent(
88
- event: AnalyticsWithChannel<AnalyticsPayload>,
89
- ): event is AnalyticsWithChannel<
90
- UndoAnalyticsEventPayload | RedoAnalyticsEventPayload
91
- > {
92
- return (
93
- event.payload.action === HISTORY_ACTIONS.UNDID ||
94
- event.payload.action === HISTORY_ACTIONS.REDID
95
- );
96
- }
97
-
98
- export type AnalyticsInvertStep = AnalyticsStep<AnalyticsInvertPayload>;
99
-
100
- /**
101
- * Custom Prosemirror Step to fire our GAS V3 analytics events
102
- * Using a Step means that it will work with prosemirror-history and we get
103
- * undo/redo events for free
104
- */
105
- export class AnalyticsStep<P extends AnalyticsPayload> extends Step {
106
- public analyticsEvents: AnalyticsWithChannel<P>[] = [];
107
- pos?: number;
108
- private actionsToIgnore: string[] = [];
109
-
110
- constructor(
111
- analyticsEvents: AnalyticsWithChannel<P>[],
112
- actionsToIgnore: string[] = [],
113
- pos?: number, // Used to create the map, prevent splitting history.
114
- ) {
115
- super();
116
- this.analyticsEvents = analyticsEvents;
117
- this.actionsToIgnore = actionsToIgnore;
118
- this.pos = pos;
119
- }
120
-
121
- /**
122
- * Generate new undo/redo analytics event when step is inverted
123
- */
124
- invert() {
125
- const analyticsEvents: AnalyticsInvert[] = this.analyticsEvents
126
- .filter(
127
- (analyticsEvent) =>
128
- this.actionsToIgnore.indexOf(analyticsEvent.payload.action) === -1,
129
- )
130
- .map((analyticsEvent) => {
131
- if (isHistoryAnalyticsEvent(analyticsEvent)) {
132
- return toggleEventAction(analyticsEvent);
133
- } else {
134
- return createUndoEvent(analyticsEvent);
135
- }
136
- });
137
-
138
- return new AnalyticsStep(analyticsEvents, []);
139
- }
140
-
141
- apply(doc: PMNode) {
142
- return StepResult.ok(doc);
143
- }
144
-
145
- map(mapping: Mappable) {
146
- let newPos = this.pos;
147
- if (typeof newPos === 'number') {
148
- newPos = mapping.map(newPos);
149
- }
150
- // Return the same events, this step will never be removed
151
- return new AnalyticsStep(
152
- this.analyticsEvents,
153
- this.actionsToIgnore,
154
- newPos,
155
- );
156
- }
157
-
158
- getMap() {
159
- if (typeof this.pos === 'number') {
160
- return new StepMap([this.pos, 0, 0]);
161
- }
162
- return new StepMap([]);
163
- }
164
-
165
- merge(other: Step): AnalyticsStep<P> | null {
166
- if (other instanceof AnalyticsStep) {
167
- const otherAnalyticsEvents = (other as AnalyticsStep<P>)
168
- .analyticsEvents as AnalyticsWithChannel<P>[];
169
- return new AnalyticsStep([
170
- ...otherAnalyticsEvents,
171
- ...this.analyticsEvents,
172
- ]);
173
- }
174
- return null;
175
- }
176
-
177
- toJSON() {
178
- return {
179
- stepType: analyticsStepType,
180
- };
181
- }
182
-
183
- static fromJSON() {
184
- return new ReplaceStep(0, 0, Slice.empty);
185
- }
186
- }
187
-
188
- /** Register this step with Prosemirror */
189
- Step.jsonID(analyticsStepType, AnalyticsStep);
@@ -1,105 +0,0 @@
1
- import {
2
- Node as PMNode,
3
- Schema,
4
- Slice,
5
- } from '@atlaskit/editor-prosemirror/model';
6
- import {
7
- ReplaceStep,
8
- Step,
9
- StepMap,
10
- StepResult,
11
- Mappable,
12
- } from '@atlaskit/editor-prosemirror/transform';
13
-
14
- export const stepType = 'editor-linking-meta';
15
- export const invertStepType = 'editor-linking-meta-invert';
16
-
17
- export type LinkStepMetadata = {
18
- /**
19
- * Editor action performed
20
- */
21
- action?: string;
22
- /**
23
- * Editor input method that triggered the transaction
24
- */
25
- inputMethod?: string;
26
- /**
27
- * The applicable card action for this step
28
- * if is RESOLVE then the undo/redo steps should be considered "updates" of a link
29
- */
30
- cardAction?: 'RESOLVE';
31
- /**
32
- * Source UI that tiggered this step, if available/applicable
33
- */
34
- sourceEvent?: unknown;
35
- };
36
-
37
- /**
38
- * Custom Prosemirror Step to attach metadata about user interactions with links
39
- * Using a Step means that it will work with prosemirror-history and we get utilise when
40
- * firing events on history change
41
- */
42
- export class LinkMetaStep extends Step {
43
- constructor(
44
- private pos: number | null,
45
- private metadata: LinkStepMetadata,
46
- private isInverted: boolean = false,
47
- ) {
48
- super();
49
- }
50
-
51
- public getMetadata() {
52
- return this.metadata;
53
- }
54
-
55
- /**
56
- * Generate new undo/redo analytics event when step is inverted
57
- */
58
- invert() {
59
- /**
60
- * Omit sourceEvent in history
61
- */
62
- const { sourceEvent, ...metadata } = this.metadata;
63
- return new LinkMetaStep(this.pos, metadata, true);
64
- }
65
-
66
- // Should make no modifications to the doc
67
- apply(doc: PMNode) {
68
- return StepResult.ok(doc);
69
- }
70
-
71
- map(mapping: Mappable) {
72
- let newPos = this.pos;
73
- if (typeof newPos === 'number') {
74
- newPos = mapping.map(newPos);
75
- }
76
- // Return the same events, this step will never be removed
77
- return new LinkMetaStep(newPos, this.metadata, this.isInverted);
78
- }
79
- getMap() {
80
- return new StepMap([this.pos || 0, 0, 0]);
81
- }
82
-
83
- // Return null to avoid merging events
84
- merge(): null {
85
- return null;
86
- }
87
-
88
- toJSON() {
89
- // When serialized we should create a noop Replace step
90
- return {
91
- stepType: 'replace',
92
- from: 0,
93
- to: 0,
94
- };
95
- }
96
-
97
- static fromJSON<S extends Schema = any>(_: S, __: { [key: string]: any }) {
98
- // This is a "local custom step" once serialized
99
- // we need to transform it in a no-operation action
100
- return new ReplaceStep(0, 0, Slice.empty);
101
- }
102
- }
103
-
104
- /** Register this step with Prosemirror */
105
- Step.jsonID(stepType, LinkMetaStep);
@@ -1,97 +0,0 @@
1
- import {
2
- Step,
3
- StepResult,
4
- StepMap,
5
- } from '@atlaskit/editor-prosemirror/transform';
6
- import { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
7
-
8
- type Options = {
9
- nextDocument: PMNode;
10
- inverted?: boolean;
11
- };
12
-
13
- export const overrideDocumentStepType = 'override-document';
14
-
15
- export class OverrideDocumentStep extends Step {
16
- public inverted = false;
17
- private nextDocument: PMNode;
18
- private oldDocumentSize: number = 0;
19
-
20
- constructor(opts: Options) {
21
- super();
22
-
23
- const { inverted, nextDocument } = opts;
24
-
25
- if (nextDocument.type.name !== 'doc') {
26
- throw new Error(
27
- 'nextDocument should be the entire prosemirror doc node and not only its content.',
28
- );
29
- }
30
-
31
- this.nextDocument = nextDocument;
32
- this.inverted = Boolean(inverted);
33
- }
34
-
35
- apply(doc: PMNode): StepResult {
36
- this.oldDocumentSize = doc.content.size;
37
-
38
- return StepResult.ok(this.nextDocument);
39
- }
40
-
41
- map(): OverrideDocumentStep {
42
- return new OverrideDocumentStep({
43
- nextDocument: this.nextDocument,
44
- inverted: this.inverted,
45
- });
46
- }
47
-
48
- getMap(): StepMap {
49
- if (!this.nextDocument || !this.oldDocumentSize) {
50
- return new StepMap([0, 0, 0]);
51
- }
52
-
53
- const oldSize = this.oldDocumentSize;
54
- const nextDocumentSize = this.nextDocument.content.size;
55
-
56
- return new StepMap([0, oldSize, nextDocumentSize]);
57
- }
58
-
59
- invert(doc: PMNode): OverrideDocumentStep {
60
- return new OverrideDocumentStep({
61
- nextDocument: doc,
62
- inverted: true,
63
- });
64
- }
65
-
66
- toJSON(): OverrideDocumentStepJSON {
67
- return {
68
- stepType: overrideDocumentStepType,
69
- inverted: this.inverted,
70
- nextDocument: this.nextDocument.toJSON(),
71
- };
72
- }
73
-
74
- static fromJSON(
75
- schema: Schema,
76
- json: OverrideDocumentStepJSON,
77
- ): OverrideDocumentStep {
78
- if (!json || json.stepType !== overrideDocumentStepType) {
79
- throw new RangeError(
80
- 'Invalid overrideDocument step OverrideDocumentStep.fromJSON',
81
- );
82
- }
83
-
84
- return new OverrideDocumentStep({
85
- inverted: json.inverted,
86
- nextDocument: schema.nodeFromJSON(json.nextDocument),
87
- });
88
- }
89
- }
90
-
91
- export type OverrideDocumentStepJSON = {
92
- stepType: 'override-document';
93
- inverted: boolean;
94
- nextDocument: { [key: string]: any };
95
- };
96
-
97
- Step.jsonID(overrideDocumentStepType, OverrideDocumentStep);
@@ -1,74 +0,0 @@
1
- import {
2
- Mappable,
3
- Step,
4
- StepResult,
5
- } from '@atlaskit/editor-prosemirror/transform';
6
- import {
7
- Node as ProseMirrorNode,
8
- Slice,
9
- Fragment,
10
- Schema,
11
- } from '@atlaskit/editor-prosemirror/model';
12
-
13
- /**
14
- * For more context on what this is about:
15
- * @see https://discuss.prosemirror.net/t/preventing-image-placeholder-replacement-from-being-undone/1394
16
- */
17
- export class SetAttrsStep extends Step {
18
- pos: number;
19
- attrs: object;
20
-
21
- constructor(pos: number, attrs: object) {
22
- super();
23
- this.pos = pos;
24
- this.attrs = attrs;
25
- }
26
-
27
- apply(doc: ProseMirrorNode) {
28
- let target = doc.nodeAt(this.pos);
29
- if (!target) {
30
- return StepResult.fail('No node at given position');
31
- }
32
-
33
- if (target.isText) {
34
- return StepResult.fail(
35
- 'Target is a text node. Attributes are not allowed.',
36
- );
37
- }
38
-
39
- const attrs = {
40
- ...(target.attrs || {}),
41
- ...(this.attrs || {}),
42
- };
43
-
44
- let newNode = target.type.create(attrs, Fragment.empty, target.marks);
45
- let slice = new Slice(Fragment.from(newNode), 0, target.isLeaf ? 0 : 1);
46
- return StepResult.fromReplace(doc, this.pos, this.pos + 1, slice);
47
- }
48
-
49
- invert(doc: ProseMirrorNode) {
50
- let target = doc.nodeAt(this.pos);
51
- return new SetAttrsStep(this.pos, target ? target.attrs : {});
52
- }
53
-
54
- map(mapping: Mappable): SetAttrsStep | null {
55
- let result = mapping.mapResult(this.pos, 1);
56
- return result.deleted ? null : new SetAttrsStep(result.pos, this.attrs);
57
- }
58
-
59
- toJSON() {
60
- return { stepType: 'setAttrs', pos: this.pos, attrs: this.attrs };
61
- }
62
-
63
- static fromJSON(_schema: Schema, json: { pos?: number; attrs: object }) {
64
- if (
65
- typeof json.pos !== 'number' ||
66
- (json.attrs !== null && typeof json.attrs !== 'object')
67
- ) {
68
- throw new RangeError('Invalid input for SetAttrsStep.fromJSON');
69
- }
70
- return new SetAttrsStep(json.pos, json.attrs);
71
- }
72
- }
73
-
74
- Step.jsonID('setAttrs', SetAttrsStep);
@@ -1,15 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "isDelete": false,
5
- "cells": [
6
- {
7
- "from": 2,
8
- "to":6
9
- },
10
- {
11
- "from": 16,
12
- "to": 20
13
- }
14
- ]
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "isDelete": false,
5
- "cells": [
6
- {
7
- "from": 6,
8
- "to":10
9
- },
10
- {
11
- "from": 20,
12
- "to": 24
13
- }
14
- ]
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "isDelete": false,
5
- "cells": [
6
- {
7
- "from": 10,
8
- "to":14
9
- },
10
- {
11
- "from": 24,
12
- "to": 28
13
- }
14
- ]
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "isDelete": false,
5
- "cells": [
6
- {
7
- "from": 14,
8
- "to":14
9
- },
10
- {
11
- "from": 28,
12
- "to": 28
13
- }
14
- ]
15
- }
@@ -1,9 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "cells": [
5
- { "from": 2, "to": 6 },
6
- { "from": 16, "to": 20 }
7
- ],
8
- "isDelete": true
9
- }
@@ -1,9 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "cells": [
5
- { "from": 6, "to": 10 },
6
- { "from": 20, "to": 24 }
7
- ],
8
- "isDelete": true
9
- }
@@ -1,9 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 0,
4
- "cells": [
5
- { "from": 10, "to": 14 },
6
- { "from": 24, "to": 28 }
7
- ],
8
- "isDelete": true
9
- }
@@ -1,98 +0,0 @@
1
- {
2
- "stepType": "ak-add-column",
3
- "tablePos": 2,
4
- "cells": [
5
- {
6
- "from": 2,
7
- "to": 6,
8
- "newCell": {
9
- "type": "tableCell",
10
- "attrs": {
11
- "colspan": 1,
12
- "rowspan": 1,
13
- "colwidth": null,
14
- "background": "#AAAAAA"
15
- },
16
- "content": [
17
- {
18
- "type": "paragraph"
19
- }
20
- ]
21
- }
22
- }
23
- ],
24
- "isDelete": false,
25
- "sideEffects": {
26
- "table": {
27
- "from": 2,
28
- "to": 22,
29
- "node": {
30
- "type": "table",
31
- "attrs": {
32
- "isNumberColumnEnabled": false,
33
- "layout": "default",
34
- "__autoSize": false
35
- },
36
- "content": [
37
- {
38
- "type": "tableRow",
39
- "content": [
40
- {
41
- "type": "tableCell",
42
- "attrs": {
43
- "colspan": 1,
44
- "rowspan": 1,
45
- "colwidth": null,
46
- "background": "#AAAAAA"
47
- },
48
- "content": [
49
- {
50
- "type": "paragraph"
51
- }
52
- ]
53
- }
54
- ]
55
- },
56
- {
57
- "type": "tableRow",
58
- "content": [
59
- {
60
- "type": "tableCell",
61
- "attrs": {
62
- "colspan": 1,
63
- "rowspan": 1,
64
- "colwidth": null,
65
- "background": "#AAAAAA"
66
- },
67
- "content": [
68
- {
69
- "type": "paragraph"
70
- }
71
- ]
72
- }
73
- ]
74
- },
75
- {
76
- "type": "tableRow",
77
- "content": [
78
- {
79
- "type": "tableCell",
80
- "attrs": {
81
- "colspan": 1,
82
- "rowspan": 1,
83
- "colwidth": null,
84
- "background": "#AAAAAA"
85
- },
86
- "content": [
87
- {
88
- "type": "paragraph"
89
- }
90
- ]
91
- }
92
- ]
93
- }
94
- ]
95
- }
96
- }
97
- }
98
- }