@atlaskit/editor-core 187.8.10 → 187.8.11

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,12 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 187.8.11
4
+
5
+ ### Patch Changes
6
+
7
+ - [`2b54c3b0d24`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2b54c3b0d24) - [ED-19203] Decouple text-formatting plugin and editor-core
8
+ - Updated dependencies
9
+
3
10
  ## 187.8.10
4
11
 
5
12
  ### Patch Changes
@@ -57,52 +57,54 @@ var textFormatting = function textFormatting() {
57
57
  }
58
58
  }, {
59
59
  name: 'textFormattingInputRule',
60
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
60
61
  plugin: function plugin(_ref2) {
62
+ var _api$dependencies$ana2;
61
63
  var schema = _ref2.schema,
62
64
  featureFlags = _ref2.featureFlags;
63
- return (0, _inputRule.default)(schema, featureFlags);
65
+ return (0, _inputRule.default)(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
64
66
  }
65
67
  }, {
66
68
  name: 'textFormattingSmartRule',
67
- plugin: function plugin(_ref3) {
68
- var featureFlags = _ref3.featureFlags;
69
- return !options.disableSmartTextCompletion ? (0, _smartInputRule.default)(featureFlags) : undefined;
69
+ plugin: function plugin() {
70
+ var _api$dependencies$ana3;
71
+ return !options.disableSmartTextCompletion ? (0, _smartInputRule.default)(api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions) : undefined;
70
72
  }
71
73
  }, {
72
74
  name: 'textFormattingClear',
73
- plugin: function plugin(_ref4) {
74
- var dispatch = _ref4.dispatch;
75
+ plugin: function plugin(_ref3) {
76
+ var dispatch = _ref3.dispatch;
75
77
  return (0, _clearFormatting.plugin)(dispatch);
76
78
  }
77
79
  }, {
78
80
  name: 'textFormattingClearKeymap',
79
81
  plugin: function plugin() {
80
- var _api$dependencies$ana2;
81
- return (0, _clearFormattingKeymap.default)(api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
82
+ var _api$dependencies$ana4;
83
+ return (0, _clearFormattingKeymap.default)(api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions);
82
84
  }
83
85
  }, {
84
86
  name: 'textFormattingKeymap',
85
- plugin: function plugin(_ref5) {
86
- var _api$dependencies$ana3;
87
- var schema = _ref5.schema;
88
- return (0, _keymap.default)(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions);
87
+ plugin: function plugin(_ref4) {
88
+ var _api$dependencies$ana5;
89
+ var schema = _ref4.schema;
90
+ return (0, _keymap.default)(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana5 = api.dependencies.analytics) === null || _api$dependencies$ana5 === void 0 ? void 0 : _api$dependencies$ana5.actions);
89
91
  }
90
92
  }];
91
93
  },
92
- primaryToolbarComponent: function primaryToolbarComponent(_ref6) {
93
- var editorView = _ref6.editorView,
94
- popupsMountPoint = _ref6.popupsMountPoint,
95
- popupsScrollableElement = _ref6.popupsScrollableElement,
96
- isToolbarReducedSpacing = _ref6.isToolbarReducedSpacing,
97
- toolbarSize = _ref6.toolbarSize,
98
- disabled = _ref6.disabled;
94
+ primaryToolbarComponent: function primaryToolbarComponent(_ref5) {
95
+ var editorView = _ref5.editorView,
96
+ popupsMountPoint = _ref5.popupsMountPoint,
97
+ popupsScrollableElement = _ref5.popupsScrollableElement,
98
+ isToolbarReducedSpacing = _ref5.isToolbarReducedSpacing,
99
+ toolbarSize = _ref5.toolbarSize,
100
+ disabled = _ref5.disabled;
99
101
  return /*#__PURE__*/_react.default.createElement(_withPluginState.WithPluginState, {
100
102
  plugins: {
101
103
  textFormattingState: _main.pluginKey,
102
104
  clearFormattingPluginState: _clearFormatting.pluginKey
103
105
  },
104
106
  render: function render() {
105
- var _api$dependencies$ana4;
107
+ var _api$dependencies$ana6;
106
108
  return /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
107
109
  editorState: editorView.state,
108
110
  popupsMountPoint: popupsMountPoint,
@@ -112,7 +114,7 @@ var textFormatting = function textFormatting() {
112
114
  editorView: editorView,
113
115
  isToolbarDisabled: disabled,
114
116
  shouldUseResponsiveToolbar: Boolean(options.responsiveToolbarMenu),
115
- editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions
117
+ editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana6 = api.dependencies.analytics) === null || _api$dependencies$ana6 === void 0 ? void 0 : _api$dependencies$ana6.actions
116
118
  });
117
119
  }
118
120
  });
@@ -16,10 +16,10 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
16
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
17
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
18
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
- var _inputRules = require("../../../utils/input-rules");
20
19
  var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
21
20
  var _analytics = require("@atlaskit/editor-common/analytics");
22
21
  var _mark = require("@atlaskit/editor-common/mark");
22
+ var _utils = require("@atlaskit/editor-common/utils");
23
23
  var _ValidCombinations;
24
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
25
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -175,18 +175,16 @@ var codeRegex = buildRegex(ValidAutoformatChars.CODE);
175
175
  * @returns {InputRuleWrapper[]}
176
176
  */
177
177
  exports.codeRegex = codeRegex;
178
- function getStrongInputRules(schema) {
179
- var ruleWithStrongAnalytics = (0, _inputRules.ruleWithAnalytics)(function () {
180
- return {
181
- action: _analytics.ACTION.FORMATTED,
182
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
183
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_STRONG,
184
- eventType: _analytics.EVENT_TYPE.TRACK,
185
- attributes: {
186
- inputMethod: _analytics.INPUT_METHOD.FORMATTING
187
- }
188
- };
189
- });
178
+ function getStrongInputRules(schema, editorAnalyticsAPI) {
179
+ var ruleWithStrongAnalytics = (0, _utils.inputRuleWithAnalytics)({
180
+ action: _analytics.ACTION.FORMATTED,
181
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
182
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_STRONG,
183
+ eventType: _analytics.EVENT_TYPE.TRACK,
184
+ attributes: {
185
+ inputMethod: _analytics.INPUT_METHOD.FORMATTING
186
+ }
187
+ }, editorAnalyticsAPI);
190
188
  // **string** or __strong__ should bold the text
191
189
  var doubleUnderscoreRule = (0, _prosemirrorInputRules.createRule)(strongRegex1, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG));
192
190
  var doubleAsterixRule = (0, _prosemirrorInputRules.createRule)(strongRegex2, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG_MARKDOWN));
@@ -199,18 +197,16 @@ function getStrongInputRules(schema) {
199
197
  * @param {Schema} schema
200
198
  * @returns {InputRuleWrapper[]}
201
199
  */
202
- function getItalicInputRules(schema) {
203
- var ruleWithItalicAnalytics = (0, _inputRules.ruleWithAnalytics)(function () {
204
- return {
205
- action: _analytics.ACTION.FORMATTED,
206
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
207
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_ITALIC,
208
- eventType: _analytics.EVENT_TYPE.TRACK,
209
- attributes: {
210
- inputMethod: _analytics.INPUT_METHOD.FORMATTING
211
- }
212
- };
213
- });
200
+ function getItalicInputRules(schema, editorAnalyticsAPI) {
201
+ var ruleWithItalicAnalytics = (0, _utils.inputRuleWithAnalytics)({
202
+ action: _analytics.ACTION.FORMATTED,
203
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
204
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_ITALIC,
205
+ eventType: _analytics.EVENT_TYPE.TRACK,
206
+ attributes: {
207
+ inputMethod: _analytics.INPUT_METHOD.FORMATTING
208
+ }
209
+ }, editorAnalyticsAPI);
214
210
  var underscoreRule = (0, _prosemirrorInputRules.createRule)(italicRegex1, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC));
215
211
  var asterixRule = (0, _prosemirrorInputRules.createRule)(italicRegex2, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC_MARKDOWN));
216
212
  return [ruleWithItalicAnalytics(underscoreRule), ruleWithItalicAnalytics(asterixRule)];
@@ -222,18 +218,16 @@ function getItalicInputRules(schema) {
222
218
  * @param {Schema} schema
223
219
  * @returns {InputRuleWrapper[]}
224
220
  */
225
- function getStrikeInputRules(schema) {
226
- var ruleWithStrikeAnalytics = (0, _inputRules.ruleWithAnalytics)(function () {
227
- return {
228
- action: _analytics.ACTION.FORMATTED,
229
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
230
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_STRIKE,
231
- eventType: _analytics.EVENT_TYPE.TRACK,
232
- attributes: {
233
- inputMethod: _analytics.INPUT_METHOD.FORMATTING
234
- }
235
- };
236
- });
221
+ function getStrikeInputRules(schema, editorAnalyticsAPI) {
222
+ var ruleWithStrikeAnalytics = (0, _utils.inputRuleWithAnalytics)({
223
+ action: _analytics.ACTION.FORMATTED,
224
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
225
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_STRIKE,
226
+ eventType: _analytics.EVENT_TYPE.TRACK,
227
+ attributes: {
228
+ inputMethod: _analytics.INPUT_METHOD.FORMATTING
229
+ }
230
+ }, editorAnalyticsAPI);
237
231
  var doubleTildeRule = (0, _prosemirrorInputRules.createRule)(strikeRegex, addMark(schema.marks.strike, schema, ValidAutoformatChars.STRIKE));
238
232
  return [ruleWithStrikeAnalytics(doubleTildeRule)];
239
233
  }
@@ -244,34 +238,34 @@ function getStrikeInputRules(schema) {
244
238
  * @param {Schema} schema
245
239
  * @returns {InputRuleWrapper[]}
246
240
  */
247
- function getCodeInputRules(schema) {
248
- var ruleWithCodeAnalytics = (0, _inputRules.ruleWithAnalytics)(function () {
249
- return {
250
- action: _analytics.ACTION.FORMATTED,
251
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
252
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_CODE,
253
- eventType: _analytics.EVENT_TYPE.TRACK,
254
- attributes: {
255
- inputMethod: _analytics.INPUT_METHOD.FORMATTING
256
- }
257
- };
258
- });
241
+ function getCodeInputRules(schema, editorAnalyticsAPI) {
242
+ var ruleWithCodeAnalytics = (0, _utils.inputRuleWithAnalytics)({
243
+ action: _analytics.ACTION.FORMATTED,
244
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
245
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_CODE,
246
+ eventType: _analytics.EVENT_TYPE.TRACK,
247
+ attributes: {
248
+ inputMethod: _analytics.INPUT_METHOD.FORMATTING
249
+ }
250
+ }, editorAnalyticsAPI);
259
251
  var backTickRule = (0, _prosemirrorInputRules.createRule)(codeRegex, addMark(schema.marks.code, schema, ValidAutoformatChars.CODE));
260
252
  return [ruleWithCodeAnalytics(backTickRule)];
261
253
  }
262
- function inputRulePlugin(schema, featureFlags) {
254
+ function inputRulePlugin(schema,
255
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
256
+ _featureFlags, editorAnalyticsAPI) {
263
257
  var rules = [];
264
258
  if (schema.marks.strong) {
265
- rules.push.apply(rules, (0, _toConsumableArray2.default)(getStrongInputRules(schema)));
259
+ rules.push.apply(rules, (0, _toConsumableArray2.default)(getStrongInputRules(schema, editorAnalyticsAPI)));
266
260
  }
267
261
  if (schema.marks.em) {
268
- rules.push.apply(rules, (0, _toConsumableArray2.default)(getItalicInputRules(schema)));
262
+ rules.push.apply(rules, (0, _toConsumableArray2.default)(getItalicInputRules(schema, editorAnalyticsAPI)));
269
263
  }
270
264
  if (schema.marks.strike) {
271
- rules.push.apply(rules, (0, _toConsumableArray2.default)(getStrikeInputRules(schema)));
265
+ rules.push.apply(rules, (0, _toConsumableArray2.default)(getStrikeInputRules(schema, editorAnalyticsAPI)));
272
266
  }
273
267
  if (schema.marks.code) {
274
- rules.push.apply(rules, (0, _toConsumableArray2.default)(getCodeInputRules(schema)));
268
+ rules.push.apply(rules, (0, _toConsumableArray2.default)(getCodeInputRules(schema, editorAnalyticsAPI)));
275
269
  }
276
270
  if (rules.length !== 0) {
277
271
  return (0, _prosemirrorInputRules.createPlugin)('text-formatting', rules);
@@ -8,10 +8,10 @@ exports.default = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _state2 = require("@atlaskit/editor-prosemirror/state");
12
- var _inputRules = require("../../../utils/input-rules");
11
+ var _state = require("@atlaskit/editor-prosemirror/state");
13
12
  var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
14
13
  var _analytics = require("@atlaskit/editor-common/analytics");
14
+ var _utils = require("@atlaskit/editor-common/utils");
15
15
  /**
16
16
  * Creates an InputRuleHandler that will match on a regular expression of the
17
17
  * form `(prefix, content, suffix?)`, and replace it with some given text,
@@ -33,7 +33,7 @@ function replaceTextUsingCaptureGroup(text) {
33
33
  // But, this is JS #trustnoone
34
34
  Math.max(startPos, 0), end);
35
35
  tr.replaceWith(safePos, end, state.schema.text(replacement, $to.marks()));
36
- tr.setSelection(_state2.Selection.near(tr.doc.resolve(tr.selection.to)));
36
+ tr.setSelection(_state.Selection.near(tr.doc.resolve(tr.selection.to)));
37
37
  return tr;
38
38
  };
39
39
  }
@@ -86,9 +86,9 @@ function createSingleQuotesRules() {
86
86
  /**
87
87
  * Get replacement rules related to product
88
88
  */
89
- function getProductRules() {
89
+ function getProductRules(editorAnalyticsAPI) {
90
90
  var productRuleWithAnalytics = function productRuleWithAnalytics(product) {
91
- return (0, _inputRules.ruleWithAnalytics)(function (_state, match) {
91
+ return (0, _utils.inputRuleWithAnalytics)(function (_, match) {
92
92
  return {
93
93
  action: _analytics.ACTION.SUBSTITUTED,
94
94
  actionSubject: _analytics.ACTION_SUBJECT.TEXT,
@@ -99,7 +99,7 @@ function getProductRules() {
99
99
  originalSpelling: match[2]
100
100
  }
101
101
  };
102
- });
102
+ }, editorAnalyticsAPI);
103
103
  };
104
104
  return createReplacementRules({
105
105
  Atlassian: /(\s+|^)(atlassian)(\s)$/,
@@ -113,24 +113,22 @@ function getProductRules() {
113
113
  /**
114
114
  * Get replacement rules related to symbol
115
115
  */
116
- function getSymbolRules() {
116
+ function getSymbolRules(editorAnalyticsAPI) {
117
117
  var symbolToString = {
118
118
  '→': _analytics.SYMBOL.ARROW_RIGHT,
119
119
  '←': _analytics.SYMBOL.ARROW_LEFT,
120
120
  '↔︎': _analytics.SYMBOL.ARROW_DOUBLE
121
121
  };
122
122
  var symbolRuleWithAnalytics = function symbolRuleWithAnalytics(symbol) {
123
- return (0, _inputRules.ruleWithAnalytics)(function () {
124
- return {
125
- action: _analytics.ACTION.SUBSTITUTED,
126
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
127
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYMBOL,
128
- eventType: _analytics.EVENT_TYPE.TRACK,
129
- attributes: {
130
- symbol: symbolToString[symbol]
131
- }
132
- };
133
- });
123
+ return (0, _utils.inputRuleWithAnalytics)({
124
+ action: _analytics.ACTION.SUBSTITUTED,
125
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
126
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYMBOL,
127
+ eventType: _analytics.EVENT_TYPE.TRACK,
128
+ attributes: {
129
+ symbol: symbolToString[symbol]
130
+ }
131
+ }, editorAnalyticsAPI);
134
132
  };
135
133
  return createReplacementRules({
136
134
  '→': /(\s+|^)(--?>)(\s)$/,
@@ -142,25 +140,22 @@ function getSymbolRules() {
142
140
  /**
143
141
  * Get replacement rules related to punctuation
144
142
  */
145
- function getPunctuationRules() {
143
+ function getPunctuationRules(editorAnalyticsAPI) {
146
144
  var punctuationToString = (0, _defineProperty2.default)({
147
145
  '–': _analytics.PUNC.DASH,
148
146
  '…': _analytics.PUNC.ELLIPSIS,
149
- '“': _analytics.PUNC.QUOTE_DOUBLE,
150
147
  '”': _analytics.PUNC.QUOTE_DOUBLE
151
148
  }, _analytics.PUNC.QUOTE_SINGLE, _analytics.PUNC.QUOTE_SINGLE);
152
149
  var punctuationRuleWithAnalytics = function punctuationRuleWithAnalytics(punctuation) {
153
- return (0, _inputRules.ruleWithAnalytics)(function () {
154
- return {
155
- action: _analytics.ACTION.SUBSTITUTED,
156
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
157
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.PUNC,
158
- eventType: _analytics.EVENT_TYPE.TRACK,
159
- attributes: {
160
- punctuation: punctuationToString[punctuation]
161
- }
162
- };
163
- });
150
+ return (0, _utils.inputRuleWithAnalytics)({
151
+ action: _analytics.ACTION.SUBSTITUTED,
152
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
153
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.PUNC,
154
+ eventType: _analytics.EVENT_TYPE.TRACK,
155
+ attributes: {
156
+ punctuation: punctuationToString[punctuation]
157
+ }
158
+ }, editorAnalyticsAPI);
164
159
  };
165
160
  var dashEllipsisRules = createReplacementRules({
166
161
  '–': /(\s+|^)(--)(\s)$/,
@@ -175,7 +170,7 @@ function getPunctuationRules() {
175
170
  return punctuationRuleWithAnalytics(_analytics.PUNC.QUOTE_SINGLE)(rule);
176
171
  })));
177
172
  }
178
- var _default = function _default(featureFlags) {
179
- return (0, _prosemirrorInputRules.createPlugin)('text-formatting:smart-input', [].concat((0, _toConsumableArray2.default)(getProductRules()), (0, _toConsumableArray2.default)(getSymbolRules()), (0, _toConsumableArray2.default)(getPunctuationRules())));
173
+ var _default = function _default(editorAnalyticsAPI) {
174
+ return (0, _prosemirrorInputRules.createPlugin)('text-formatting:smart-input', [].concat((0, _toConsumableArray2.default)(getProductRules(editorAnalyticsAPI)), (0, _toConsumableArray2.default)(getSymbolRules(editorAnalyticsAPI)), (0, _toConsumableArray2.default)(getPunctuationRules(editorAnalyticsAPI))));
180
175
  };
181
176
  exports.default = _default;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.version = exports.nextMajorVersion = exports.name = void 0;
7
7
  var name = "@atlaskit/editor-core";
8
8
  exports.name = name;
9
- var version = "187.8.10";
9
+ var version = "187.8.11";
10
10
  exports.version = version;
11
11
  var nextMajorVersion = function nextMajorVersion() {
12
12
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "187.8.10",
3
+ "version": "187.8.11",
4
4
  "sideEffects": false
5
5
  }
@@ -46,15 +46,20 @@ const textFormatting = (options = {}, api) => ({
46
46
  plugin: () => textFormattingCursorPlugin
47
47
  }, {
48
48
  name: 'textFormattingInputRule',
49
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
49
50
  plugin: ({
50
51
  schema,
51
52
  featureFlags
52
- }) => textFormattingInputRulePlugin(schema, featureFlags)
53
+ }) => {
54
+ var _api$dependencies$ana2;
55
+ return textFormattingInputRulePlugin(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
56
+ }
53
57
  }, {
54
58
  name: 'textFormattingSmartRule',
55
- plugin: ({
56
- featureFlags
57
- }) => !options.disableSmartTextCompletion ? textFormattingSmartInputRulePlugin(featureFlags) : undefined
59
+ plugin: () => {
60
+ var _api$dependencies$ana3;
61
+ return !options.disableSmartTextCompletion ? textFormattingSmartInputRulePlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions) : undefined;
62
+ }
58
63
  }, {
59
64
  name: 'textFormattingClear',
60
65
  plugin: ({
@@ -63,16 +68,16 @@ const textFormatting = (options = {}, api) => ({
63
68
  }, {
64
69
  name: 'textFormattingClearKeymap',
65
70
  plugin: () => {
66
- var _api$dependencies$ana2;
67
- return clearFormattingKeymapPlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
71
+ var _api$dependencies$ana4;
72
+ return clearFormattingKeymapPlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions);
68
73
  }
69
74
  }, {
70
75
  name: 'textFormattingKeymap',
71
76
  plugin: ({
72
77
  schema
73
78
  }) => {
74
- var _api$dependencies$ana3;
75
- return keymapPlugin(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions);
79
+ var _api$dependencies$ana5;
80
+ return keymapPlugin(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana5 = api.dependencies.analytics) === null || _api$dependencies$ana5 === void 0 ? void 0 : _api$dependencies$ana5.actions);
76
81
  }
77
82
  }];
78
83
  },
@@ -90,7 +95,7 @@ const textFormatting = (options = {}, api) => ({
90
95
  clearFormattingPluginState: clearFormattingPluginKey
91
96
  },
92
97
  render: () => {
93
- var _api$dependencies$ana4;
98
+ var _api$dependencies$ana6;
94
99
  return /*#__PURE__*/React.createElement(Toolbar, {
95
100
  editorState: editorView.state,
96
101
  popupsMountPoint: popupsMountPoint,
@@ -100,7 +105,7 @@ const textFormatting = (options = {}, api) => ({
100
105
  editorView: editorView,
101
106
  isToolbarDisabled: disabled,
102
107
  shouldUseResponsiveToolbar: Boolean(options.responsiveToolbarMenu),
103
- editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions
108
+ editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana6 = api.dependencies.analytics) === null || _api$dependencies$ana6 === void 0 ? void 0 : _api$dependencies$ana6.actions
104
109
  });
105
110
  }
106
111
  });
@@ -1,7 +1,7 @@
1
- import { ruleWithAnalytics } from '../../../utils/input-rules';
2
1
  import { createRule, createPlugin, leafNodeReplacementCharacter } from '@atlaskit/prosemirror-input-rules';
3
2
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
4
3
  import { transformSmartCharsMentionsAndEmojis } from '@atlaskit/editor-common/mark';
4
+ import { inputRuleWithAnalytics } from '@atlaskit/editor-common/utils';
5
5
  var ValidAutoformatChars = /*#__PURE__*/function (ValidAutoformatChars) {
6
6
  ValidAutoformatChars["STRONG"] = "__";
7
7
  ValidAutoformatChars["STRIKE"] = "~~";
@@ -144,8 +144,8 @@ export const codeRegex = buildRegex(ValidAutoformatChars.CODE);
144
144
  * @param {Schema} schema
145
145
  * @returns {InputRuleWrapper[]}
146
146
  */
147
- function getStrongInputRules(schema) {
148
- const ruleWithStrongAnalytics = ruleWithAnalytics(() => ({
147
+ function getStrongInputRules(schema, editorAnalyticsAPI) {
148
+ const ruleWithStrongAnalytics = inputRuleWithAnalytics({
149
149
  action: ACTION.FORMATTED,
150
150
  actionSubject: ACTION_SUBJECT.TEXT,
151
151
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRONG,
@@ -153,7 +153,7 @@ function getStrongInputRules(schema) {
153
153
  attributes: {
154
154
  inputMethod: INPUT_METHOD.FORMATTING
155
155
  }
156
- }));
156
+ }, editorAnalyticsAPI);
157
157
  // **string** or __strong__ should bold the text
158
158
  const doubleUnderscoreRule = createRule(strongRegex1, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG));
159
159
  const doubleAsterixRule = createRule(strongRegex2, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG_MARKDOWN));
@@ -166,8 +166,8 @@ function getStrongInputRules(schema) {
166
166
  * @param {Schema} schema
167
167
  * @returns {InputRuleWrapper[]}
168
168
  */
169
- function getItalicInputRules(schema) {
170
- const ruleWithItalicAnalytics = ruleWithAnalytics(() => ({
169
+ function getItalicInputRules(schema, editorAnalyticsAPI) {
170
+ const ruleWithItalicAnalytics = inputRuleWithAnalytics({
171
171
  action: ACTION.FORMATTED,
172
172
  actionSubject: ACTION_SUBJECT.TEXT,
173
173
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_ITALIC,
@@ -175,7 +175,7 @@ function getItalicInputRules(schema) {
175
175
  attributes: {
176
176
  inputMethod: INPUT_METHOD.FORMATTING
177
177
  }
178
- }));
178
+ }, editorAnalyticsAPI);
179
179
  const underscoreRule = createRule(italicRegex1, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC));
180
180
  const asterixRule = createRule(italicRegex2, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC_MARKDOWN));
181
181
  return [ruleWithItalicAnalytics(underscoreRule), ruleWithItalicAnalytics(asterixRule)];
@@ -187,8 +187,8 @@ function getItalicInputRules(schema) {
187
187
  * @param {Schema} schema
188
188
  * @returns {InputRuleWrapper[]}
189
189
  */
190
- function getStrikeInputRules(schema) {
191
- const ruleWithStrikeAnalytics = ruleWithAnalytics(() => ({
190
+ function getStrikeInputRules(schema, editorAnalyticsAPI) {
191
+ const ruleWithStrikeAnalytics = inputRuleWithAnalytics({
192
192
  action: ACTION.FORMATTED,
193
193
  actionSubject: ACTION_SUBJECT.TEXT,
194
194
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRIKE,
@@ -196,7 +196,7 @@ function getStrikeInputRules(schema) {
196
196
  attributes: {
197
197
  inputMethod: INPUT_METHOD.FORMATTING
198
198
  }
199
- }));
199
+ }, editorAnalyticsAPI);
200
200
  const doubleTildeRule = createRule(strikeRegex, addMark(schema.marks.strike, schema, ValidAutoformatChars.STRIKE));
201
201
  return [ruleWithStrikeAnalytics(doubleTildeRule)];
202
202
  }
@@ -207,8 +207,8 @@ function getStrikeInputRules(schema) {
207
207
  * @param {Schema} schema
208
208
  * @returns {InputRuleWrapper[]}
209
209
  */
210
- function getCodeInputRules(schema) {
211
- const ruleWithCodeAnalytics = ruleWithAnalytics(() => ({
210
+ function getCodeInputRules(schema, editorAnalyticsAPI) {
211
+ const ruleWithCodeAnalytics = inputRuleWithAnalytics({
212
212
  action: ACTION.FORMATTED,
213
213
  actionSubject: ACTION_SUBJECT.TEXT,
214
214
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_CODE,
@@ -216,23 +216,25 @@ function getCodeInputRules(schema) {
216
216
  attributes: {
217
217
  inputMethod: INPUT_METHOD.FORMATTING
218
218
  }
219
- }));
219
+ }, editorAnalyticsAPI);
220
220
  const backTickRule = createRule(codeRegex, addMark(schema.marks.code, schema, ValidAutoformatChars.CODE));
221
221
  return [ruleWithCodeAnalytics(backTickRule)];
222
222
  }
223
- export function inputRulePlugin(schema, featureFlags) {
223
+ export function inputRulePlugin(schema,
224
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
225
+ _featureFlags, editorAnalyticsAPI) {
224
226
  const rules = [];
225
227
  if (schema.marks.strong) {
226
- rules.push(...getStrongInputRules(schema));
228
+ rules.push(...getStrongInputRules(schema, editorAnalyticsAPI));
227
229
  }
228
230
  if (schema.marks.em) {
229
- rules.push(...getItalicInputRules(schema));
231
+ rules.push(...getItalicInputRules(schema, editorAnalyticsAPI));
230
232
  }
231
233
  if (schema.marks.strike) {
232
- rules.push(...getStrikeInputRules(schema));
234
+ rules.push(...getStrikeInputRules(schema, editorAnalyticsAPI));
233
235
  }
234
236
  if (schema.marks.code) {
235
- rules.push(...getCodeInputRules(schema));
237
+ rules.push(...getCodeInputRules(schema, editorAnalyticsAPI));
236
238
  }
237
239
  if (rules.length !== 0) {
238
240
  return createPlugin('text-formatting', rules);
@@ -1,7 +1,7 @@
1
1
  import { Selection } from '@atlaskit/editor-prosemirror/state';
2
- import { ruleWithAnalytics } from '../../../utils/input-rules';
3
2
  import { createRule, createPlugin } from '@atlaskit/prosemirror-input-rules';
4
3
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, PUNC, SYMBOL } from '@atlaskit/editor-common/analytics';
4
+ import { inputRuleWithAnalytics } from '@atlaskit/editor-common/utils';
5
5
 
6
6
  /**
7
7
  * Creates an InputRuleHandler that will match on a regular expression of the
@@ -77,8 +77,8 @@ function createSingleQuotesRules() {
77
77
  /**
78
78
  * Get replacement rules related to product
79
79
  */
80
- function getProductRules() {
81
- const productRuleWithAnalytics = product => ruleWithAnalytics((_state, match) => ({
80
+ function getProductRules(editorAnalyticsAPI) {
81
+ const productRuleWithAnalytics = product => inputRuleWithAnalytics((_, match) => ({
82
82
  action: ACTION.SUBSTITUTED,
83
83
  actionSubject: ACTION_SUBJECT.TEXT,
84
84
  actionSubjectId: ACTION_SUBJECT_ID.PRODUCT_NAME,
@@ -87,7 +87,7 @@ function getProductRules() {
87
87
  product,
88
88
  originalSpelling: match[2]
89
89
  }
90
- }));
90
+ }), editorAnalyticsAPI);
91
91
  return createReplacementRules({
92
92
  Atlassian: /(\s+|^)(atlassian)(\s)$/,
93
93
  Jira: /(\s+|^)(jira|JIRA)(\s)$/,
@@ -100,13 +100,13 @@ function getProductRules() {
100
100
  /**
101
101
  * Get replacement rules related to symbol
102
102
  */
103
- function getSymbolRules() {
103
+ function getSymbolRules(editorAnalyticsAPI) {
104
104
  const symbolToString = {
105
105
  '→': SYMBOL.ARROW_RIGHT,
106
106
  '←': SYMBOL.ARROW_LEFT,
107
107
  '↔︎': SYMBOL.ARROW_DOUBLE
108
108
  };
109
- const symbolRuleWithAnalytics = symbol => ruleWithAnalytics(() => ({
109
+ const symbolRuleWithAnalytics = symbol => inputRuleWithAnalytics({
110
110
  action: ACTION.SUBSTITUTED,
111
111
  actionSubject: ACTION_SUBJECT.TEXT,
112
112
  actionSubjectId: ACTION_SUBJECT_ID.SYMBOL,
@@ -114,7 +114,7 @@ function getSymbolRules() {
114
114
  attributes: {
115
115
  symbol: symbolToString[symbol]
116
116
  }
117
- }));
117
+ }, editorAnalyticsAPI);
118
118
  return createReplacementRules({
119
119
  '→': /(\s+|^)(--?>)(\s)$/,
120
120
  '←': /(\s+|^)(<--?)(\s)$/,
@@ -125,15 +125,14 @@ function getSymbolRules() {
125
125
  /**
126
126
  * Get replacement rules related to punctuation
127
127
  */
128
- function getPunctuationRules() {
128
+ function getPunctuationRules(editorAnalyticsAPI) {
129
129
  const punctuationToString = {
130
130
  '–': PUNC.DASH,
131
131
  '…': PUNC.ELLIPSIS,
132
- '“': PUNC.QUOTE_DOUBLE,
133
132
  '”': PUNC.QUOTE_DOUBLE,
134
133
  [PUNC.QUOTE_SINGLE]: PUNC.QUOTE_SINGLE
135
134
  };
136
- const punctuationRuleWithAnalytics = punctuation => ruleWithAnalytics(() => ({
135
+ const punctuationRuleWithAnalytics = punctuation => inputRuleWithAnalytics({
137
136
  action: ACTION.SUBSTITUTED,
138
137
  actionSubject: ACTION_SUBJECT.TEXT,
139
138
  actionSubjectId: ACTION_SUBJECT_ID.PUNC,
@@ -141,7 +140,7 @@ function getPunctuationRules() {
141
140
  attributes: {
142
141
  punctuation: punctuationToString[punctuation]
143
142
  }
144
- }));
143
+ }, editorAnalyticsAPI);
145
144
  const dashEllipsisRules = createReplacementRules({
146
145
  '–': /(\s+|^)(--)(\s)$/,
147
146
  '…': /()(\.\.\.)$/
@@ -153,4 +152,4 @@ function getPunctuationRules() {
153
152
  const singleQuoteRules = createSingleQuotesRules();
154
153
  return [...dashEllipsisRules, ...doubleQuoteRules, ...singleQuoteRules.map(rule => punctuationRuleWithAnalytics(PUNC.QUOTE_SINGLE)(rule))];
155
154
  }
156
- export default (featureFlags => createPlugin('text-formatting:smart-input', [...getProductRules(), ...getSymbolRules(), ...getPunctuationRules()]));
155
+ export default (editorAnalyticsAPI => createPlugin('text-formatting:smart-input', [...getProductRules(editorAnalyticsAPI), ...getSymbolRules(editorAnalyticsAPI), ...getPunctuationRules(editorAnalyticsAPI)]));
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "187.8.10";
2
+ export const version = "187.8.11";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "187.8.10",
3
+ "version": "187.8.11",
4
4
  "sideEffects": false
5
5
  }
@@ -50,52 +50,54 @@ var textFormatting = function textFormatting() {
50
50
  }
51
51
  }, {
52
52
  name: 'textFormattingInputRule',
53
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
53
54
  plugin: function plugin(_ref2) {
55
+ var _api$dependencies$ana2;
54
56
  var schema = _ref2.schema,
55
57
  featureFlags = _ref2.featureFlags;
56
- return textFormattingInputRulePlugin(schema, featureFlags);
58
+ return textFormattingInputRulePlugin(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
57
59
  }
58
60
  }, {
59
61
  name: 'textFormattingSmartRule',
60
- plugin: function plugin(_ref3) {
61
- var featureFlags = _ref3.featureFlags;
62
- return !options.disableSmartTextCompletion ? textFormattingSmartInputRulePlugin(featureFlags) : undefined;
62
+ plugin: function plugin() {
63
+ var _api$dependencies$ana3;
64
+ return !options.disableSmartTextCompletion ? textFormattingSmartInputRulePlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions) : undefined;
63
65
  }
64
66
  }, {
65
67
  name: 'textFormattingClear',
66
- plugin: function plugin(_ref4) {
67
- var dispatch = _ref4.dispatch;
68
+ plugin: function plugin(_ref3) {
69
+ var dispatch = _ref3.dispatch;
68
70
  return clearFormattingPlugin(dispatch);
69
71
  }
70
72
  }, {
71
73
  name: 'textFormattingClearKeymap',
72
74
  plugin: function plugin() {
73
- var _api$dependencies$ana2;
74
- return clearFormattingKeymapPlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions);
75
+ var _api$dependencies$ana4;
76
+ return clearFormattingKeymapPlugin(api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions);
75
77
  }
76
78
  }, {
77
79
  name: 'textFormattingKeymap',
78
- plugin: function plugin(_ref5) {
79
- var _api$dependencies$ana3;
80
- var schema = _ref5.schema;
81
- return keymapPlugin(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions);
80
+ plugin: function plugin(_ref4) {
81
+ var _api$dependencies$ana5;
82
+ var schema = _ref4.schema;
83
+ return keymapPlugin(schema, api === null || api === void 0 ? void 0 : (_api$dependencies$ana5 = api.dependencies.analytics) === null || _api$dependencies$ana5 === void 0 ? void 0 : _api$dependencies$ana5.actions);
82
84
  }
83
85
  }];
84
86
  },
85
- primaryToolbarComponent: function primaryToolbarComponent(_ref6) {
86
- var editorView = _ref6.editorView,
87
- popupsMountPoint = _ref6.popupsMountPoint,
88
- popupsScrollableElement = _ref6.popupsScrollableElement,
89
- isToolbarReducedSpacing = _ref6.isToolbarReducedSpacing,
90
- toolbarSize = _ref6.toolbarSize,
91
- disabled = _ref6.disabled;
87
+ primaryToolbarComponent: function primaryToolbarComponent(_ref5) {
88
+ var editorView = _ref5.editorView,
89
+ popupsMountPoint = _ref5.popupsMountPoint,
90
+ popupsScrollableElement = _ref5.popupsScrollableElement,
91
+ isToolbarReducedSpacing = _ref5.isToolbarReducedSpacing,
92
+ toolbarSize = _ref5.toolbarSize,
93
+ disabled = _ref5.disabled;
92
94
  return /*#__PURE__*/React.createElement(WithPluginState, {
93
95
  plugins: {
94
96
  textFormattingState: textFormattingPluginKey,
95
97
  clearFormattingPluginState: clearFormattingPluginKey
96
98
  },
97
99
  render: function render() {
98
- var _api$dependencies$ana4;
100
+ var _api$dependencies$ana6;
99
101
  return /*#__PURE__*/React.createElement(Toolbar, {
100
102
  editorState: editorView.state,
101
103
  popupsMountPoint: popupsMountPoint,
@@ -105,7 +107,7 @@ var textFormatting = function textFormatting() {
105
107
  editorView: editorView,
106
108
  isToolbarDisabled: disabled,
107
109
  shouldUseResponsiveToolbar: Boolean(options.responsiveToolbarMenu),
108
- editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana4 = api.dependencies.analytics) === null || _api$dependencies$ana4 === void 0 ? void 0 : _api$dependencies$ana4.actions
110
+ editorAnalyticsAPI: api === null || api === void 0 ? void 0 : (_api$dependencies$ana6 = api.dependencies.analytics) === null || _api$dependencies$ana6 === void 0 ? void 0 : _api$dependencies$ana6.actions
109
111
  });
110
112
  }
111
113
  });
@@ -10,10 +10,10 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  var _ValidCombinations;
11
11
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
12
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
- import { ruleWithAnalytics } from '../../../utils/input-rules';
14
13
  import { createRule, createPlugin, leafNodeReplacementCharacter } from '@atlaskit/prosemirror-input-rules';
15
14
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
16
15
  import { transformSmartCharsMentionsAndEmojis } from '@atlaskit/editor-common/mark';
16
+ import { inputRuleWithAnalytics } from '@atlaskit/editor-common/utils';
17
17
  var ValidAutoformatChars = /*#__PURE__*/function (ValidAutoformatChars) {
18
18
  ValidAutoformatChars["STRONG"] = "__";
19
19
  ValidAutoformatChars["STRIKE"] = "~~";
@@ -159,18 +159,16 @@ export var codeRegex = buildRegex(ValidAutoformatChars.CODE);
159
159
  * @param {Schema} schema
160
160
  * @returns {InputRuleWrapper[]}
161
161
  */
162
- function getStrongInputRules(schema) {
163
- var ruleWithStrongAnalytics = ruleWithAnalytics(function () {
164
- return {
165
- action: ACTION.FORMATTED,
166
- actionSubject: ACTION_SUBJECT.TEXT,
167
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRONG,
168
- eventType: EVENT_TYPE.TRACK,
169
- attributes: {
170
- inputMethod: INPUT_METHOD.FORMATTING
171
- }
172
- };
173
- });
162
+ function getStrongInputRules(schema, editorAnalyticsAPI) {
163
+ var ruleWithStrongAnalytics = inputRuleWithAnalytics({
164
+ action: ACTION.FORMATTED,
165
+ actionSubject: ACTION_SUBJECT.TEXT,
166
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRONG,
167
+ eventType: EVENT_TYPE.TRACK,
168
+ attributes: {
169
+ inputMethod: INPUT_METHOD.FORMATTING
170
+ }
171
+ }, editorAnalyticsAPI);
174
172
  // **string** or __strong__ should bold the text
175
173
  var doubleUnderscoreRule = createRule(strongRegex1, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG));
176
174
  var doubleAsterixRule = createRule(strongRegex2, addMark(schema.marks.strong, schema, ValidAutoformatChars.STRONG_MARKDOWN));
@@ -183,18 +181,16 @@ function getStrongInputRules(schema) {
183
181
  * @param {Schema} schema
184
182
  * @returns {InputRuleWrapper[]}
185
183
  */
186
- function getItalicInputRules(schema) {
187
- var ruleWithItalicAnalytics = ruleWithAnalytics(function () {
188
- return {
189
- action: ACTION.FORMATTED,
190
- actionSubject: ACTION_SUBJECT.TEXT,
191
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_ITALIC,
192
- eventType: EVENT_TYPE.TRACK,
193
- attributes: {
194
- inputMethod: INPUT_METHOD.FORMATTING
195
- }
196
- };
197
- });
184
+ function getItalicInputRules(schema, editorAnalyticsAPI) {
185
+ var ruleWithItalicAnalytics = inputRuleWithAnalytics({
186
+ action: ACTION.FORMATTED,
187
+ actionSubject: ACTION_SUBJECT.TEXT,
188
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_ITALIC,
189
+ eventType: EVENT_TYPE.TRACK,
190
+ attributes: {
191
+ inputMethod: INPUT_METHOD.FORMATTING
192
+ }
193
+ }, editorAnalyticsAPI);
198
194
  var underscoreRule = createRule(italicRegex1, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC));
199
195
  var asterixRule = createRule(italicRegex2, addMark(schema.marks.em, schema, ValidAutoformatChars.ITALIC_MARKDOWN));
200
196
  return [ruleWithItalicAnalytics(underscoreRule), ruleWithItalicAnalytics(asterixRule)];
@@ -206,18 +202,16 @@ function getItalicInputRules(schema) {
206
202
  * @param {Schema} schema
207
203
  * @returns {InputRuleWrapper[]}
208
204
  */
209
- function getStrikeInputRules(schema) {
210
- var ruleWithStrikeAnalytics = ruleWithAnalytics(function () {
211
- return {
212
- action: ACTION.FORMATTED,
213
- actionSubject: ACTION_SUBJECT.TEXT,
214
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRIKE,
215
- eventType: EVENT_TYPE.TRACK,
216
- attributes: {
217
- inputMethod: INPUT_METHOD.FORMATTING
218
- }
219
- };
220
- });
205
+ function getStrikeInputRules(schema, editorAnalyticsAPI) {
206
+ var ruleWithStrikeAnalytics = inputRuleWithAnalytics({
207
+ action: ACTION.FORMATTED,
208
+ actionSubject: ACTION_SUBJECT.TEXT,
209
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_STRIKE,
210
+ eventType: EVENT_TYPE.TRACK,
211
+ attributes: {
212
+ inputMethod: INPUT_METHOD.FORMATTING
213
+ }
214
+ }, editorAnalyticsAPI);
221
215
  var doubleTildeRule = createRule(strikeRegex, addMark(schema.marks.strike, schema, ValidAutoformatChars.STRIKE));
222
216
  return [ruleWithStrikeAnalytics(doubleTildeRule)];
223
217
  }
@@ -228,34 +222,34 @@ function getStrikeInputRules(schema) {
228
222
  * @param {Schema} schema
229
223
  * @returns {InputRuleWrapper[]}
230
224
  */
231
- function getCodeInputRules(schema) {
232
- var ruleWithCodeAnalytics = ruleWithAnalytics(function () {
233
- return {
234
- action: ACTION.FORMATTED,
235
- actionSubject: ACTION_SUBJECT.TEXT,
236
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_CODE,
237
- eventType: EVENT_TYPE.TRACK,
238
- attributes: {
239
- inputMethod: INPUT_METHOD.FORMATTING
240
- }
241
- };
242
- });
225
+ function getCodeInputRules(schema, editorAnalyticsAPI) {
226
+ var ruleWithCodeAnalytics = inputRuleWithAnalytics({
227
+ action: ACTION.FORMATTED,
228
+ actionSubject: ACTION_SUBJECT.TEXT,
229
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_CODE,
230
+ eventType: EVENT_TYPE.TRACK,
231
+ attributes: {
232
+ inputMethod: INPUT_METHOD.FORMATTING
233
+ }
234
+ }, editorAnalyticsAPI);
243
235
  var backTickRule = createRule(codeRegex, addMark(schema.marks.code, schema, ValidAutoformatChars.CODE));
244
236
  return [ruleWithCodeAnalytics(backTickRule)];
245
237
  }
246
- export function inputRulePlugin(schema, featureFlags) {
238
+ export function inputRulePlugin(schema,
239
+ // Don't remove the unused featureFlags, this gets used to test if we're properly passing them to the PM plugin
240
+ _featureFlags, editorAnalyticsAPI) {
247
241
  var rules = [];
248
242
  if (schema.marks.strong) {
249
- rules.push.apply(rules, _toConsumableArray(getStrongInputRules(schema)));
243
+ rules.push.apply(rules, _toConsumableArray(getStrongInputRules(schema, editorAnalyticsAPI)));
250
244
  }
251
245
  if (schema.marks.em) {
252
- rules.push.apply(rules, _toConsumableArray(getItalicInputRules(schema)));
246
+ rules.push.apply(rules, _toConsumableArray(getItalicInputRules(schema, editorAnalyticsAPI)));
253
247
  }
254
248
  if (schema.marks.strike) {
255
- rules.push.apply(rules, _toConsumableArray(getStrikeInputRules(schema)));
249
+ rules.push.apply(rules, _toConsumableArray(getStrikeInputRules(schema, editorAnalyticsAPI)));
256
250
  }
257
251
  if (schema.marks.code) {
258
- rules.push.apply(rules, _toConsumableArray(getCodeInputRules(schema)));
252
+ rules.push.apply(rules, _toConsumableArray(getCodeInputRules(schema, editorAnalyticsAPI)));
259
253
  }
260
254
  if (rules.length !== 0) {
261
255
  return createPlugin('text-formatting', rules);
@@ -2,9 +2,9 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import { Selection } from '@atlaskit/editor-prosemirror/state';
5
- import { ruleWithAnalytics } from '../../../utils/input-rules';
6
5
  import { createRule, createPlugin } from '@atlaskit/prosemirror-input-rules';
7
6
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, PUNC, SYMBOL } from '@atlaskit/editor-common/analytics';
7
+ import { inputRuleWithAnalytics } from '@atlaskit/editor-common/utils';
8
8
 
9
9
  /**
10
10
  * Creates an InputRuleHandler that will match on a regular expression of the
@@ -80,9 +80,9 @@ function createSingleQuotesRules() {
80
80
  /**
81
81
  * Get replacement rules related to product
82
82
  */
83
- function getProductRules() {
83
+ function getProductRules(editorAnalyticsAPI) {
84
84
  var productRuleWithAnalytics = function productRuleWithAnalytics(product) {
85
- return ruleWithAnalytics(function (_state, match) {
85
+ return inputRuleWithAnalytics(function (_, match) {
86
86
  return {
87
87
  action: ACTION.SUBSTITUTED,
88
88
  actionSubject: ACTION_SUBJECT.TEXT,
@@ -93,7 +93,7 @@ function getProductRules() {
93
93
  originalSpelling: match[2]
94
94
  }
95
95
  };
96
- });
96
+ }, editorAnalyticsAPI);
97
97
  };
98
98
  return createReplacementRules({
99
99
  Atlassian: /(\s+|^)(atlassian)(\s)$/,
@@ -107,24 +107,22 @@ function getProductRules() {
107
107
  /**
108
108
  * Get replacement rules related to symbol
109
109
  */
110
- function getSymbolRules() {
110
+ function getSymbolRules(editorAnalyticsAPI) {
111
111
  var symbolToString = {
112
112
  '→': SYMBOL.ARROW_RIGHT,
113
113
  '←': SYMBOL.ARROW_LEFT,
114
114
  '↔︎': SYMBOL.ARROW_DOUBLE
115
115
  };
116
116
  var symbolRuleWithAnalytics = function symbolRuleWithAnalytics(symbol) {
117
- return ruleWithAnalytics(function () {
118
- return {
119
- action: ACTION.SUBSTITUTED,
120
- actionSubject: ACTION_SUBJECT.TEXT,
121
- actionSubjectId: ACTION_SUBJECT_ID.SYMBOL,
122
- eventType: EVENT_TYPE.TRACK,
123
- attributes: {
124
- symbol: symbolToString[symbol]
125
- }
126
- };
127
- });
117
+ return inputRuleWithAnalytics({
118
+ action: ACTION.SUBSTITUTED,
119
+ actionSubject: ACTION_SUBJECT.TEXT,
120
+ actionSubjectId: ACTION_SUBJECT_ID.SYMBOL,
121
+ eventType: EVENT_TYPE.TRACK,
122
+ attributes: {
123
+ symbol: symbolToString[symbol]
124
+ }
125
+ }, editorAnalyticsAPI);
128
126
  };
129
127
  return createReplacementRules({
130
128
  '→': /(\s+|^)(--?>)(\s)$/,
@@ -136,25 +134,22 @@ function getSymbolRules() {
136
134
  /**
137
135
  * Get replacement rules related to punctuation
138
136
  */
139
- function getPunctuationRules() {
137
+ function getPunctuationRules(editorAnalyticsAPI) {
140
138
  var punctuationToString = _defineProperty({
141
139
  '–': PUNC.DASH,
142
140
  '…': PUNC.ELLIPSIS,
143
- '“': PUNC.QUOTE_DOUBLE,
144
141
  '”': PUNC.QUOTE_DOUBLE
145
142
  }, PUNC.QUOTE_SINGLE, PUNC.QUOTE_SINGLE);
146
143
  var punctuationRuleWithAnalytics = function punctuationRuleWithAnalytics(punctuation) {
147
- return ruleWithAnalytics(function () {
148
- return {
149
- action: ACTION.SUBSTITUTED,
150
- actionSubject: ACTION_SUBJECT.TEXT,
151
- actionSubjectId: ACTION_SUBJECT_ID.PUNC,
152
- eventType: EVENT_TYPE.TRACK,
153
- attributes: {
154
- punctuation: punctuationToString[punctuation]
155
- }
156
- };
157
- });
144
+ return inputRuleWithAnalytics({
145
+ action: ACTION.SUBSTITUTED,
146
+ actionSubject: ACTION_SUBJECT.TEXT,
147
+ actionSubjectId: ACTION_SUBJECT_ID.PUNC,
148
+ eventType: EVENT_TYPE.TRACK,
149
+ attributes: {
150
+ punctuation: punctuationToString[punctuation]
151
+ }
152
+ }, editorAnalyticsAPI);
158
153
  };
159
154
  var dashEllipsisRules = createReplacementRules({
160
155
  '–': /(\s+|^)(--)(\s)$/,
@@ -169,6 +164,6 @@ function getPunctuationRules() {
169
164
  return punctuationRuleWithAnalytics(PUNC.QUOTE_SINGLE)(rule);
170
165
  })));
171
166
  }
172
- export default (function (featureFlags) {
173
- return createPlugin('text-formatting:smart-input', [].concat(_toConsumableArray(getProductRules()), _toConsumableArray(getSymbolRules()), _toConsumableArray(getPunctuationRules())));
167
+ export default (function (editorAnalyticsAPI) {
168
+ return createPlugin('text-formatting:smart-input', [].concat(_toConsumableArray(getProductRules(editorAnalyticsAPI)), _toConsumableArray(getSymbolRules(editorAnalyticsAPI)), _toConsumableArray(getPunctuationRules(editorAnalyticsAPI))));
174
169
  });
@@ -1,5 +1,5 @@
1
1
  export var name = "@atlaskit/editor-core";
2
- export var version = "187.8.10";
2
+ export var version = "187.8.11";
3
3
  export var nextMajorVersion = function nextMajorVersion() {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "187.8.10",
3
+ "version": "187.8.11",
4
4
  "sideEffects": false
5
5
  }
@@ -1,5 +1,6 @@
1
1
  import type { Schema } from '@atlaskit/editor-prosemirror/model';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
3
4
  import type { FeatureFlags } from '@atlaskit/editor-common/types';
4
5
  declare enum ValidAutoformatChars {
5
6
  STRONG = "__",
@@ -19,5 +20,5 @@ export declare const italicRegex1: ReverseRegexExp;
19
20
  export declare const italicRegex2: ReverseRegexExp;
20
21
  export declare const strikeRegex: ReverseRegexExp;
21
22
  export declare const codeRegex: ReverseRegexExp;
22
- export declare function inputRulePlugin(schema: Schema, featureFlags: FeatureFlags): SafePlugin | undefined;
23
+ export declare function inputRulePlugin(schema: Schema, _featureFlags: FeatureFlags, editorAnalyticsAPI: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
23
24
  export default inputRulePlugin;
@@ -1,3 +1,3 @@
1
- import type { FeatureFlags } from '@atlaskit/editor-common/types';
2
- declare const _default: (featureFlags: FeatureFlags) => import("@atlaskit/editor-common/safe-plugin").SafePlugin<any>;
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ declare const _default: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => import("@atlaskit/editor-common/safe-plugin").SafePlugin<any>;
3
3
  export default _default;
@@ -1,5 +1,6 @@
1
1
  import type { Schema } from '@atlaskit/editor-prosemirror/model';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
3
4
  import type { FeatureFlags } from '@atlaskit/editor-common/types';
4
5
  declare enum ValidAutoformatChars {
5
6
  STRONG = "__",
@@ -19,5 +20,5 @@ export declare const italicRegex1: ReverseRegexExp;
19
20
  export declare const italicRegex2: ReverseRegexExp;
20
21
  export declare const strikeRegex: ReverseRegexExp;
21
22
  export declare const codeRegex: ReverseRegexExp;
22
- export declare function inputRulePlugin(schema: Schema, featureFlags: FeatureFlags): SafePlugin | undefined;
23
+ export declare function inputRulePlugin(schema: Schema, _featureFlags: FeatureFlags, editorAnalyticsAPI: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
23
24
  export default inputRulePlugin;
@@ -1,3 +1,3 @@
1
- import type { FeatureFlags } from '@atlaskit/editor-common/types';
2
- declare const _default: (featureFlags: FeatureFlags) => import("@atlaskit/editor-common/safe-plugin").SafePlugin<any>;
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ declare const _default: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => import("@atlaskit/editor-common/safe-plugin").SafePlugin<any>;
3
3
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "187.8.10",
3
+ "version": "187.8.11",
4
4
  "description": "A package contains Atlassian editor core functionality",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -55,7 +55,7 @@
55
55
  "@atlaskit/code": "^14.6.0",
56
56
  "@atlaskit/date": "^0.10.0",
57
57
  "@atlaskit/datetime-picker": "^12.7.0",
58
- "@atlaskit/editor-common": "^74.31.0",
58
+ "@atlaskit/editor-common": "^74.32.0",
59
59
  "@atlaskit/editor-json-transformer": "^8.10.0",
60
60
  "@atlaskit/editor-markdown-transformer": "^5.2.5",
61
61
  "@atlaskit/editor-palette": "1.5.1",