@atlaskit/editor-plugin-date 0.2.8 → 0.2.9

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,11 @@
1
1
  # @atlaskit/editor-plugin-date
2
2
 
3
+ ## 0.2.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [#43549](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43549) [`8f05c711498`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8f05c711498) - ED-20957 Fixed issue with adding date node inside a codeblock
8
+
3
9
  ## 0.2.8
4
10
 
5
11
  ### Patch Changes
@@ -8,17 +8,23 @@ var _analytics = require("@atlaskit/editor-common/analytics");
8
8
  var _utils = require("@atlaskit/editor-common/utils");
9
9
  var _model = require("@atlaskit/editor-prosemirror/model");
10
10
  var _state = require("@atlaskit/editor-prosemirror/state");
11
+ var _utils2 = require("@atlaskit/editor-prosemirror/utils");
11
12
  var _pluginKey = require("./pm-plugins/plugin-key");
12
13
  var _internal = require("./utils/internal");
13
14
  var createDate = exports.createDate = function createDate(isQuickInsertAction) {
14
- return function (insert, state) {
15
+ return function (state) {
15
16
  var dateNode = state.schema.nodes.date.createChecked({
16
17
  timestamp: (0, _utils.todayTimestampInUTC)()
17
18
  });
18
- var space = state.schema.text(' ');
19
- var tr = insert(_model.Fragment.from([dateNode, space]), {
20
- selectInlineNode: true
21
- });
19
+ var fragment = _model.Fragment.fromArray([dateNode, state.schema.text(' ')]);
20
+ var tr = state.tr;
21
+ var insertable = (0, _utils2.canInsert)(tr.selection.$from, fragment);
22
+ if (!insertable) {
23
+ var parentSelection = _state.NodeSelection.create(tr.doc, tr.selection.from - tr.selection.$anchor.parentOffset - 1);
24
+ tr.insert(parentSelection.to, fragment).setSelection(_state.NodeSelection.create(tr.doc, parentSelection.to + 1));
25
+ } else {
26
+ tr.insert(tr.selection.from, fragment).setSelection(_state.NodeSelection.create(tr.doc, tr.selection.from - fragment.size));
27
+ }
22
28
  var newPluginState = {
23
29
  isQuickInsertAction: isQuickInsertAction,
24
30
  showDatePickerAt: tr.selection.from,
@@ -177,7 +177,7 @@ var datePlugin = function datePlugin(_ref3) {
177
177
  },
178
178
  action: function action(insert, state) {
179
179
  var _api$analytics, _api$analytics$attach;
180
- var tr = (0, _actions.createDate)(true)(insert, state);
180
+ var tr = (0, _actions.createDate)(true)(state);
181
181
  api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || (_api$analytics$attach = _api$analytics.attachAnalyticsEvent) === null || _api$analytics$attach === void 0 || _api$analytics$attach.call(_api$analytics, {
182
182
  action: _analytics.ACTION.INSERTED,
183
183
  actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
@@ -2,16 +2,22 @@ import { ACTION, ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/edit
2
2
  import { todayTimestampInUTC } from '@atlaskit/editor-common/utils';
3
3
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
4
4
  import { NodeSelection, Selection } from '@atlaskit/editor-prosemirror/state';
5
+ import { canInsert } from '@atlaskit/editor-prosemirror/utils';
5
6
  import { pluginKey } from './pm-plugins/plugin-key';
6
7
  import { isToday } from './utils/internal';
7
- export const createDate = isQuickInsertAction => (insert, state) => {
8
+ export const createDate = isQuickInsertAction => state => {
8
9
  const dateNode = state.schema.nodes.date.createChecked({
9
10
  timestamp: todayTimestampInUTC()
10
11
  });
11
- const space = state.schema.text(' ');
12
- const tr = insert(Fragment.from([dateNode, space]), {
13
- selectInlineNode: true
14
- });
12
+ const fragment = Fragment.fromArray([dateNode, state.schema.text(' ')]);
13
+ const tr = state.tr;
14
+ const insertable = canInsert(tr.selection.$from, fragment);
15
+ if (!insertable) {
16
+ const parentSelection = NodeSelection.create(tr.doc, tr.selection.from - tr.selection.$anchor.parentOffset - 1);
17
+ tr.insert(parentSelection.to, fragment).setSelection(NodeSelection.create(tr.doc, parentSelection.to + 1));
18
+ } else {
19
+ tr.insert(tr.selection.from, fragment).setSelection(NodeSelection.create(tr.doc, tr.selection.from - fragment.size));
20
+ }
15
21
  const newPluginState = {
16
22
  isQuickInsertAction,
17
23
  showDatePickerAt: tr.selection.from,
@@ -165,7 +165,7 @@ const datePlugin = ({
165
165
  icon: () => /*#__PURE__*/React.createElement(IconDate, null),
166
166
  action(insert, state) {
167
167
  var _api$analytics, _api$analytics$action, _api$analytics$action2;
168
- const tr = createDate(true)(insert, state);
168
+ const tr = createDate(true)(state);
169
169
  api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : (_api$analytics$action = _api$analytics.actions) === null || _api$analytics$action === void 0 ? void 0 : (_api$analytics$action2 = _api$analytics$action.attachAnalyticsEvent) === null || _api$analytics$action2 === void 0 ? void 0 : _api$analytics$action2.call(_api$analytics$action, {
170
170
  action: ACTION.INSERTED,
171
171
  actionSubject: ACTION_SUBJECT.DOCUMENT,
@@ -2,17 +2,23 @@ import { ACTION, ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/edit
2
2
  import { todayTimestampInUTC } from '@atlaskit/editor-common/utils';
3
3
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
4
4
  import { NodeSelection, Selection } from '@atlaskit/editor-prosemirror/state';
5
+ import { canInsert } from '@atlaskit/editor-prosemirror/utils';
5
6
  import { pluginKey } from './pm-plugins/plugin-key';
6
7
  import { isToday } from './utils/internal';
7
8
  export var createDate = function createDate(isQuickInsertAction) {
8
- return function (insert, state) {
9
+ return function (state) {
9
10
  var dateNode = state.schema.nodes.date.createChecked({
10
11
  timestamp: todayTimestampInUTC()
11
12
  });
12
- var space = state.schema.text(' ');
13
- var tr = insert(Fragment.from([dateNode, space]), {
14
- selectInlineNode: true
15
- });
13
+ var fragment = Fragment.fromArray([dateNode, state.schema.text(' ')]);
14
+ var tr = state.tr;
15
+ var insertable = canInsert(tr.selection.$from, fragment);
16
+ if (!insertable) {
17
+ var parentSelection = NodeSelection.create(tr.doc, tr.selection.from - tr.selection.$anchor.parentOffset - 1);
18
+ tr.insert(parentSelection.to, fragment).setSelection(NodeSelection.create(tr.doc, parentSelection.to + 1));
19
+ } else {
20
+ tr.insert(tr.selection.from, fragment).setSelection(NodeSelection.create(tr.doc, tr.selection.from - fragment.size));
21
+ }
16
22
  var newPluginState = {
17
23
  isQuickInsertAction: isQuickInsertAction,
18
24
  showDatePickerAt: tr.selection.from,
@@ -165,7 +165,7 @@ var datePlugin = function datePlugin(_ref3) {
165
165
  },
166
166
  action: function action(insert, state) {
167
167
  var _api$analytics, _api$analytics$attach;
168
- var tr = createDate(true)(insert, state);
168
+ var tr = createDate(true)(state);
169
169
  api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || (_api$analytics$attach = _api$analytics.attachAnalyticsEvent) === null || _api$analytics$attach === void 0 || _api$analytics$attach.call(_api$analytics, {
170
170
  action: ACTION.INSERTED,
171
171
  actionSubject: ACTION_SUBJECT.DOCUMENT,
@@ -1,9 +1,7 @@
1
1
  import type { Command, CommandDispatch, ExtractInjectionAPI } from '@atlaskit/editor-common/types';
2
2
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
3
3
  import type { DatePlugin, DateType } from './types';
4
- export declare const createDate: (isQuickInsertAction?: boolean) => (insert: (node: Node | Object | string, opts?: {
5
- selectInlineNode: boolean;
6
- }) => Transaction, state: EditorState) => Transaction;
4
+ export declare const createDate: (isQuickInsertAction?: boolean) => (state: EditorState) => Transaction;
7
5
  /** Focus input */
8
6
  export declare const focusDateInput: () => (state: EditorState, dispatch: CommandDispatch | undefined) => boolean;
9
7
  export declare const setDatePickerAt: (showDatePickerAt: number | null) => (state: EditorState, dispatch: (tr: Transaction) => void) => boolean;
@@ -1,9 +1,7 @@
1
1
  import type { Command, CommandDispatch, ExtractInjectionAPI } from '@atlaskit/editor-common/types';
2
2
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
3
3
  import type { DatePlugin, DateType } from './types';
4
- export declare const createDate: (isQuickInsertAction?: boolean) => (insert: (node: Node | Object | string, opts?: {
5
- selectInlineNode: boolean;
6
- }) => Transaction, state: EditorState) => Transaction;
4
+ export declare const createDate: (isQuickInsertAction?: boolean) => (state: EditorState) => Transaction;
7
5
  /** Focus input */
8
6
  export declare const focusDateInput: () => (state: EditorState, dispatch: CommandDispatch | undefined) => boolean;
9
7
  export declare const setDatePickerAt: (showDatePickerAt: number | null) => (state: EditorState, dispatch: (tr: Transaction) => void) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-date",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "Date plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  "@atlaskit/adf-schema": "^34.0.0",
35
35
  "@atlaskit/calendar": "^14.0.0",
36
36
  "@atlaskit/date": "^0.10.0",
37
- "@atlaskit/editor-common": "^76.22.0",
37
+ "@atlaskit/editor-common": "^76.23.0",
38
38
  "@atlaskit/editor-plugin-analytics": "^0.3.0",
39
39
  "@atlaskit/editor-plugin-editor-disabled": "^0.2.0",
40
40
  "@atlaskit/editor-prosemirror": "1.1.0",
@@ -43,7 +43,7 @@
43
43
  "@atlaskit/locale": "^2.6.0",
44
44
  "@atlaskit/textfield": "6.0.0",
45
45
  "@atlaskit/theme": "^12.6.0",
46
- "@atlaskit/tokens": "^1.28.0",
46
+ "@atlaskit/tokens": "^1.29.0",
47
47
  "@babel/runtime": "^7.0.0",
48
48
  "@emotion/react": "^11.7.1",
49
49
  "date-fns": "^2.17.0",
@@ -59,7 +59,7 @@
59
59
  "@atlaskit/editor-plugin-guideline": "^0.5.0",
60
60
  "@atlaskit/editor-plugin-quick-insert": "^0.2.0",
61
61
  "@atlaskit/editor-plugin-selection": "^0.1.0",
62
- "@atlaskit/editor-plugin-table": "^5.2.0",
62
+ "@atlaskit/editor-plugin-table": "^5.4.0",
63
63
  "@atlaskit/editor-plugin-tasks-and-decisions": "^0.2.0",
64
64
  "@atlaskit/editor-plugin-type-ahead": "^0.7.0",
65
65
  "@atlaskit/editor-plugin-width": "^0.2.0",