@atlaskit/editor-plugin-card 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +15 -0
- package/CHANGELOG.md +1 -0
- package/LICENSE.md +13 -0
- package/README.md +7 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/messages.js +20 -0
- package/dist/cjs/nodeviews/blockCard.js +164 -0
- package/dist/cjs/nodeviews/datasource.js +173 -0
- package/dist/cjs/nodeviews/embedCard.js +398 -0
- package/dist/cjs/nodeviews/genericCard.js +118 -0
- package/dist/cjs/nodeviews/inlineCard.js +132 -0
- package/dist/cjs/plugin.js +138 -0
- package/dist/cjs/pm-plugins/actions.js +122 -0
- package/dist/cjs/pm-plugins/analytics/create-analytics-queue.js +48 -0
- package/dist/cjs/pm-plugins/analytics/events-from-tr.js +359 -0
- package/dist/cjs/pm-plugins/analytics/index.js +19 -0
- package/dist/cjs/pm-plugins/analytics/types.js +5 -0
- package/dist/cjs/pm-plugins/analytics/utils.js +178 -0
- package/dist/cjs/pm-plugins/doc.js +479 -0
- package/dist/cjs/pm-plugins/keymap.js +64 -0
- package/dist/cjs/pm-plugins/main.js +212 -0
- package/dist/cjs/pm-plugins/mountHyperlink.js +47 -0
- package/dist/cjs/pm-plugins/plugin-key.js +9 -0
- package/dist/cjs/pm-plugins/reducers.js +111 -0
- package/dist/cjs/pm-plugins/shouldReplaceLink.js +35 -0
- package/dist/cjs/pm-plugins/util/resolve.js +59 -0
- package/dist/cjs/pm-plugins/util/state.js +49 -0
- package/dist/cjs/toolbar.js +364 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/ui/DatasourceModal/ModalWithState.js +25 -0
- package/dist/cjs/ui/DatasourceModal/index.js +60 -0
- package/dist/cjs/ui/EditLinkToolbar.js +258 -0
- package/dist/cjs/ui/EditorSmartCardEvents.js +21 -0
- package/dist/cjs/ui/EditorSmartCardEventsNext.js +215 -0
- package/dist/cjs/ui/HyperlinkToolbarAppearance.js +174 -0
- package/dist/cjs/ui/LayoutButton/index.js +121 -0
- package/dist/cjs/ui/LayoutButton/types.js +5 -0
- package/dist/cjs/ui/LayoutButton/utils.js +19 -0
- package/dist/cjs/ui/LinkToolbarAppearance.js +152 -0
- package/dist/cjs/ui/ResizableEmbedCard.js +364 -0
- package/dist/cjs/ui/SmallerEditIcon.js +22 -0
- package/dist/cjs/utils.js +60 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/index.js +1 -0
- package/dist/es2019/messages.js +13 -0
- package/dist/es2019/nodeviews/blockCard.js +131 -0
- package/dist/es2019/nodeviews/datasource.js +137 -0
- package/dist/es2019/nodeviews/embedCard.js +370 -0
- package/dist/es2019/nodeviews/genericCard.js +92 -0
- package/dist/es2019/nodeviews/inlineCard.js +113 -0
- package/dist/es2019/plugin.js +129 -0
- package/dist/es2019/pm-plugins/actions.js +57 -0
- package/dist/es2019/pm-plugins/analytics/create-analytics-queue.js +38 -0
- package/dist/es2019/pm-plugins/analytics/events-from-tr.js +339 -0
- package/dist/es2019/pm-plugins/analytics/index.js +2 -0
- package/dist/es2019/pm-plugins/analytics/types.js +1 -0
- package/dist/es2019/pm-plugins/analytics/utils.js +160 -0
- package/dist/es2019/pm-plugins/doc.js +451 -0
- package/dist/es2019/pm-plugins/keymap.js +59 -0
- package/dist/es2019/pm-plugins/main.js +208 -0
- package/dist/es2019/pm-plugins/mountHyperlink.js +37 -0
- package/dist/es2019/pm-plugins/plugin-key.js +2 -0
- package/dist/es2019/pm-plugins/reducers.js +110 -0
- package/dist/es2019/pm-plugins/shouldReplaceLink.js +25 -0
- package/dist/es2019/pm-plugins/util/resolve.js +50 -0
- package/dist/es2019/pm-plugins/util/state.js +26 -0
- package/dist/es2019/toolbar.js +359 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/ui/DatasourceModal/ModalWithState.js +19 -0
- package/dist/es2019/ui/DatasourceModal/index.js +48 -0
- package/dist/es2019/ui/EditLinkToolbar.js +226 -0
- package/dist/es2019/ui/EditorSmartCardEvents.js +15 -0
- package/dist/es2019/ui/EditorSmartCardEventsNext.js +199 -0
- package/dist/es2019/ui/HyperlinkToolbarAppearance.js +86 -0
- package/dist/es2019/ui/LayoutButton/index.js +114 -0
- package/dist/es2019/ui/LayoutButton/types.js +1 -0
- package/dist/es2019/ui/LayoutButton/utils.js +15 -0
- package/dist/es2019/ui/LinkToolbarAppearance.js +118 -0
- package/dist/es2019/ui/ResizableEmbedCard.js +335 -0
- package/dist/es2019/ui/SmallerEditIcon.js +14 -0
- package/dist/es2019/utils.js +46 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/messages.js +13 -0
- package/dist/esm/nodeviews/blockCard.js +156 -0
- package/dist/esm/nodeviews/datasource.js +165 -0
- package/dist/esm/nodeviews/embedCard.js +389 -0
- package/dist/esm/nodeviews/genericCard.js +111 -0
- package/dist/esm/nodeviews/inlineCard.js +124 -0
- package/dist/esm/plugin.js +130 -0
- package/dist/esm/pm-plugins/actions.js +102 -0
- package/dist/esm/pm-plugins/analytics/create-analytics-queue.js +41 -0
- package/dist/esm/pm-plugins/analytics/events-from-tr.js +350 -0
- package/dist/esm/pm-plugins/analytics/index.js +2 -0
- package/dist/esm/pm-plugins/analytics/types.js +1 -0
- package/dist/esm/pm-plugins/analytics/utils.js +160 -0
- package/dist/esm/pm-plugins/doc.js +460 -0
- package/dist/esm/pm-plugins/keymap.js +58 -0
- package/dist/esm/pm-plugins/main.js +199 -0
- package/dist/esm/pm-plugins/mountHyperlink.js +39 -0
- package/dist/esm/pm-plugins/plugin-key.js +2 -0
- package/dist/esm/pm-plugins/reducers.js +103 -0
- package/dist/esm/pm-plugins/shouldReplaceLink.js +29 -0
- package/dist/esm/pm-plugins/util/resolve.js +52 -0
- package/dist/esm/pm-plugins/util/state.js +40 -0
- package/dist/esm/toolbar.js +350 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/ui/DatasourceModal/ModalWithState.js +17 -0
- package/dist/esm/ui/DatasourceModal/index.js +49 -0
- package/dist/esm/ui/EditLinkToolbar.js +244 -0
- package/dist/esm/ui/EditorSmartCardEvents.js +14 -0
- package/dist/esm/ui/EditorSmartCardEventsNext.js +203 -0
- package/dist/esm/ui/HyperlinkToolbarAppearance.js +163 -0
- package/dist/esm/ui/LayoutButton/index.js +110 -0
- package/dist/esm/ui/LayoutButton/types.js +1 -0
- package/dist/esm/ui/LayoutButton/utils.js +12 -0
- package/dist/esm/ui/LinkToolbarAppearance.js +141 -0
- package/dist/esm/ui/ResizableEmbedCard.js +358 -0
- package/dist/esm/ui/SmallerEditIcon.js +14 -0
- package/dist/esm/utils.js +48 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/messages.d.ts +12 -0
- package/dist/types/nodeviews/blockCard.d.ts +26 -0
- package/dist/types/nodeviews/datasource.d.ts +42 -0
- package/dist/types/nodeviews/embedCard.d.ts +46 -0
- package/dist/types/nodeviews/genericCard.d.ts +37 -0
- package/dist/types/nodeviews/inlineCard.d.ts +23 -0
- package/dist/types/plugin.d.ts +24 -0
- package/dist/types/pm-plugins/actions.d.ts +23 -0
- package/dist/types/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
- package/dist/types/pm-plugins/analytics/events-from-tr.d.ts +17 -0
- package/dist/types/pm-plugins/analytics/index.d.ts +2 -0
- package/dist/types/pm-plugins/analytics/types.d.ts +12 -0
- package/dist/types/pm-plugins/analytics/utils.d.ts +32 -0
- package/dist/types/pm-plugins/doc.d.ts +22 -0
- package/dist/types/pm-plugins/keymap.d.ts +3 -0
- package/dist/types/pm-plugins/main.d.ts +6 -0
- package/dist/types/pm-plugins/mountHyperlink.d.ts +5 -0
- package/dist/types/pm-plugins/plugin-key.d.ts +3 -0
- package/dist/types/pm-plugins/reducers.d.ts +3 -0
- package/dist/types/pm-plugins/shouldReplaceLink.d.ts +2 -0
- package/dist/types/pm-plugins/util/resolve.d.ts +8 -0
- package/dist/types/pm-plugins/util/state.d.ts +31 -0
- package/dist/types/toolbar.d.ts +9 -0
- package/dist/types/types.d.ts +163 -0
- package/dist/types/ui/DatasourceModal/ModalWithState.d.ts +9 -0
- package/dist/types/ui/DatasourceModal/index.d.ts +11 -0
- package/dist/types/ui/EditLinkToolbar.d.ts +47 -0
- package/dist/types/ui/EditorSmartCardEvents.d.ts +5 -0
- package/dist/types/ui/EditorSmartCardEventsNext.d.ts +18 -0
- package/dist/types/ui/HyperlinkToolbarAppearance.d.ts +32 -0
- package/dist/types/ui/LayoutButton/index.d.ts +9 -0
- package/dist/types/ui/LayoutButton/types.d.ts +19 -0
- package/dist/types/ui/LayoutButton/utils.d.ts +5 -0
- package/dist/types/ui/LinkToolbarAppearance.d.ts +29 -0
- package/dist/types/ui/ResizableEmbedCard.d.ts +61 -0
- package/dist/types/ui/SmallerEditIcon.d.ts +3 -0
- package/dist/types/utils.d.ts +19 -0
- package/dist/types-ts4.5/index.d.ts +2 -0
- package/dist/types-ts4.5/messages.d.ts +12 -0
- package/dist/types-ts4.5/nodeviews/blockCard.d.ts +26 -0
- package/dist/types-ts4.5/nodeviews/datasource.d.ts +42 -0
- package/dist/types-ts4.5/nodeviews/embedCard.d.ts +46 -0
- package/dist/types-ts4.5/nodeviews/genericCard.d.ts +37 -0
- package/dist/types-ts4.5/nodeviews/inlineCard.d.ts +23 -0
- package/dist/types-ts4.5/plugin.d.ts +24 -0
- package/dist/types-ts4.5/pm-plugins/actions.d.ts +23 -0
- package/dist/types-ts4.5/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
- package/dist/types-ts4.5/pm-plugins/analytics/events-from-tr.d.ts +17 -0
- package/dist/types-ts4.5/pm-plugins/analytics/index.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/analytics/types.d.ts +12 -0
- package/dist/types-ts4.5/pm-plugins/analytics/utils.d.ts +32 -0
- package/dist/types-ts4.5/pm-plugins/doc.d.ts +22 -0
- package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +6 -0
- package/dist/types-ts4.5/pm-plugins/mountHyperlink.d.ts +5 -0
- package/dist/types-ts4.5/pm-plugins/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/reducers.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/shouldReplaceLink.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/util/resolve.d.ts +8 -0
- package/dist/types-ts4.5/pm-plugins/util/state.d.ts +31 -0
- package/dist/types-ts4.5/toolbar.d.ts +9 -0
- package/dist/types-ts4.5/types.d.ts +163 -0
- package/dist/types-ts4.5/ui/DatasourceModal/ModalWithState.d.ts +9 -0
- package/dist/types-ts4.5/ui/DatasourceModal/index.d.ts +11 -0
- package/dist/types-ts4.5/ui/EditLinkToolbar.d.ts +47 -0
- package/dist/types-ts4.5/ui/EditorSmartCardEvents.d.ts +5 -0
- package/dist/types-ts4.5/ui/EditorSmartCardEventsNext.d.ts +18 -0
- package/dist/types-ts4.5/ui/HyperlinkToolbarAppearance.d.ts +32 -0
- package/dist/types-ts4.5/ui/LayoutButton/index.d.ts +9 -0
- package/dist/types-ts4.5/ui/LayoutButton/types.d.ts +19 -0
- package/dist/types-ts4.5/ui/LayoutButton/utils.d.ts +5 -0
- package/dist/types-ts4.5/ui/LinkToolbarAppearance.d.ts +29 -0
- package/dist/types-ts4.5/ui/ResizableEmbedCard.d.ts +61 -0
- package/dist/types-ts4.5/ui/SmallerEditIcon.d.ts +3 -0
- package/dist/types-ts4.5/utils.d.ts +19 -0
- package/package.json +126 -0
- package/report.api.md +146 -0
- package/tmp/api-report-tmp.d.ts +117 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.cardPlugin = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _adfSchema = require("@atlaskit/adf-schema");
|
|
11
|
+
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
12
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
13
|
+
var _linkDatasource = require("@atlaskit/link-datasource");
|
|
14
|
+
var _messages = require("./messages");
|
|
15
|
+
var _actions = require("./pm-plugins/actions");
|
|
16
|
+
var _doc = require("./pm-plugins/doc");
|
|
17
|
+
var _keymap = require("./pm-plugins/keymap");
|
|
18
|
+
var _main = require("./pm-plugins/main");
|
|
19
|
+
var _mountHyperlink = require("./pm-plugins/mountHyperlink");
|
|
20
|
+
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
21
|
+
var _toolbar = require("./toolbar");
|
|
22
|
+
var _ModalWithState = _interopRequireDefault(require("./ui/DatasourceModal/ModalWithState"));
|
|
23
|
+
var _EditorSmartCardEvents = require("./ui/EditorSmartCardEvents");
|
|
24
|
+
var _EditorSmartCardEventsNext = require("./ui/EditorSmartCardEventsNext");
|
|
25
|
+
var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
28
|
+
var cardPlugin = function cardPlugin(options, api) {
|
|
29
|
+
var _api$dependencies, _api$dependencies$fea;
|
|
30
|
+
var featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
|
|
31
|
+
return {
|
|
32
|
+
name: 'card',
|
|
33
|
+
getSharedState: function getSharedState(editorState) {
|
|
34
|
+
if (!editorState) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return _pluginKey.pluginKey.getState(editorState) || null;
|
|
38
|
+
},
|
|
39
|
+
nodes: function nodes() {
|
|
40
|
+
var nodes = [{
|
|
41
|
+
name: 'inlineCard',
|
|
42
|
+
node: _adfSchema.inlineCard
|
|
43
|
+
}, {
|
|
44
|
+
name: 'blockCard',
|
|
45
|
+
node: _adfSchema.blockCard
|
|
46
|
+
}];
|
|
47
|
+
if (options.allowEmbeds) {
|
|
48
|
+
nodes.push({
|
|
49
|
+
name: 'embedCard',
|
|
50
|
+
node: _adfSchema.embedCard
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return nodes;
|
|
54
|
+
},
|
|
55
|
+
pmPlugins: function pmPlugins() {
|
|
56
|
+
var _options$allowBlockCa, _options$allowResizin, _options$useAlternati, _options$allowWrappin, _options$allowAlignme;
|
|
57
|
+
var allowBlockCards = (_options$allowBlockCa = options.allowBlockCards) !== null && _options$allowBlockCa !== void 0 ? _options$allowBlockCa : true;
|
|
58
|
+
var allowResizing = (_options$allowResizin = options.allowResizing) !== null && _options$allowResizin !== void 0 ? _options$allowResizin : true;
|
|
59
|
+
var useAlternativePreloader = (_options$useAlternati = options.useAlternativePreloader) !== null && _options$useAlternati !== void 0 ? _options$useAlternati : true;
|
|
60
|
+
var allowWrapping = (_options$allowWrappin = options.allowWrapping) !== null && _options$allowWrappin !== void 0 ? _options$allowWrappin : true;
|
|
61
|
+
var allowAlignment = (_options$allowAlignme = options.allowAlignment) !== null && _options$allowAlignme !== void 0 ? _options$allowAlignme : true;
|
|
62
|
+
var plugins = [{
|
|
63
|
+
name: 'card',
|
|
64
|
+
plugin: (0, _main.createPlugin)(_objectSpread(_objectSpread({}, options), {}, {
|
|
65
|
+
allowBlockCards: allowBlockCards,
|
|
66
|
+
allowResizing: allowResizing,
|
|
67
|
+
useAlternativePreloader: useAlternativePreloader,
|
|
68
|
+
allowWrapping: allowWrapping,
|
|
69
|
+
allowAlignment: allowAlignment
|
|
70
|
+
}), api)
|
|
71
|
+
}, {
|
|
72
|
+
name: 'cardHyperlink',
|
|
73
|
+
plugin: function plugin() {
|
|
74
|
+
return (0, _mountHyperlink.mountHyperlinkPlugin)(api, options);
|
|
75
|
+
}
|
|
76
|
+
}];
|
|
77
|
+
plugins.push({
|
|
78
|
+
name: 'cardKeymap',
|
|
79
|
+
plugin: function plugin(_ref) {
|
|
80
|
+
var featureFlags = _ref.featureFlags;
|
|
81
|
+
return (0, _keymap.cardKeymap)(featureFlags);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return plugins;
|
|
85
|
+
},
|
|
86
|
+
contentComponent: function contentComponent(_ref2) {
|
|
87
|
+
var editorView = _ref2.editorView,
|
|
88
|
+
popupsMountPoint = _ref2.popupsMountPoint,
|
|
89
|
+
popupsScrollableElement = _ref2.popupsScrollableElement,
|
|
90
|
+
popupsBoundariesElement = _ref2.popupsBoundariesElement;
|
|
91
|
+
var lpAnalyticsEventsNext = featureFlags.lpAnalyticsEventsNext;
|
|
92
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EditorSmartCardEvents.EditorSmartCardEvents, {
|
|
93
|
+
editorView: editorView
|
|
94
|
+
}), lpAnalyticsEventsNext && /*#__PURE__*/_react.default.createElement(_EditorSmartCardEventsNext.EditorSmartCardEventsNext, {
|
|
95
|
+
editorView: editorView
|
|
96
|
+
}), /*#__PURE__*/_react.default.createElement(_LayoutButton.default, {
|
|
97
|
+
api: api,
|
|
98
|
+
editorView: editorView,
|
|
99
|
+
mountPoint: popupsMountPoint,
|
|
100
|
+
scrollableElement: popupsScrollableElement,
|
|
101
|
+
boundariesElement: popupsBoundariesElement
|
|
102
|
+
}), /*#__PURE__*/_react.default.createElement(_ModalWithState.default, {
|
|
103
|
+
api: api,
|
|
104
|
+
editorView: editorView
|
|
105
|
+
}));
|
|
106
|
+
},
|
|
107
|
+
actions: {
|
|
108
|
+
hideLinkToolbar: _actions.hideLinkToolbar,
|
|
109
|
+
queueCardsFromChangedTr: _doc.queueCardsFromChangedTr,
|
|
110
|
+
changeSelectedCardToLink: _doc.changeSelectedCardToLink,
|
|
111
|
+
setSelectedCardAppearance: _doc.setSelectedCardAppearance
|
|
112
|
+
},
|
|
113
|
+
pluginsOptions: {
|
|
114
|
+
floatingToolbar: (0, _toolbar.floatingToolbar)(options, featureFlags, options.platform, options.linkPicker, api),
|
|
115
|
+
quickInsert: function quickInsert(_ref3) {
|
|
116
|
+
var formatMessage = _ref3.formatMessage;
|
|
117
|
+
if ((0, _utils.canRenderDatasource)(_linkDatasource.JIRA_LIST_OF_LINKS_DATASOURCE_ID)) {
|
|
118
|
+
return [{
|
|
119
|
+
id: 'datasource',
|
|
120
|
+
title: formatMessage(_messages.messages.datasourceJiraIssue),
|
|
121
|
+
description: formatMessage(_messages.messages.datasourceJiraIssueDescription),
|
|
122
|
+
keywords: ['jira'],
|
|
123
|
+
icon: function icon() {
|
|
124
|
+
return /*#__PURE__*/_react.default.createElement(_quickInsert.IconDatasourceJiraIssue, null);
|
|
125
|
+
},
|
|
126
|
+
action: function action(insert) {
|
|
127
|
+
var tr = insert(undefined);
|
|
128
|
+
(0, _actions.showDatasourceModal)('jira')(tr);
|
|
129
|
+
return tr;
|
|
130
|
+
}
|
|
131
|
+
}];
|
|
132
|
+
}
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
exports.cardPlugin = cardPlugin;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.showLinkToolbar = exports.showDatasourceModal = exports.setProvider = exports.setDatasourceTableRef = exports.setCardLayoutAndDatasourceTableRef = exports.setCardLayout = exports.resolveCard = exports.registerSmartCardEventsNext = exports.registerSmartCardEvents = exports.registerCard = exports.queueCards = exports.hideLinkToolbar = exports.hideDatasourceModal = exports.cardAction = void 0;
|
|
7
|
+
var _pluginKey = require("./plugin-key");
|
|
8
|
+
var cardAction = function cardAction(tr, action) {
|
|
9
|
+
return tr.setMeta(_pluginKey.pluginKey, action);
|
|
10
|
+
};
|
|
11
|
+
exports.cardAction = cardAction;
|
|
12
|
+
var resolveCard = function resolveCard(url) {
|
|
13
|
+
return function (tr) {
|
|
14
|
+
return cardAction(tr, {
|
|
15
|
+
type: 'RESOLVE',
|
|
16
|
+
url: url
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.resolveCard = resolveCard;
|
|
21
|
+
var queueCards = function queueCards(requests) {
|
|
22
|
+
return function (tr) {
|
|
23
|
+
return cardAction(tr, {
|
|
24
|
+
type: 'QUEUE',
|
|
25
|
+
requests: requests
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.queueCards = queueCards;
|
|
30
|
+
var registerCard = function registerCard(info) {
|
|
31
|
+
return function (tr) {
|
|
32
|
+
return cardAction(tr, {
|
|
33
|
+
type: 'REGISTER',
|
|
34
|
+
info: info
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
exports.registerCard = registerCard;
|
|
39
|
+
var registerSmartCardEvents = function registerSmartCardEvents(smartLinkEvents) {
|
|
40
|
+
return function (tr) {
|
|
41
|
+
return cardAction(tr, {
|
|
42
|
+
type: 'REGISTER_EVENTS',
|
|
43
|
+
smartLinkEvents: smartLinkEvents
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
exports.registerSmartCardEvents = registerSmartCardEvents;
|
|
48
|
+
var registerSmartCardEventsNext = function registerSmartCardEventsNext(smartLinkEvents) {
|
|
49
|
+
return function (tr) {
|
|
50
|
+
return cardAction(tr, {
|
|
51
|
+
type: 'REGISTER_EVENTS_NEXT',
|
|
52
|
+
smartLinkEvents: smartLinkEvents
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
exports.registerSmartCardEventsNext = registerSmartCardEventsNext;
|
|
57
|
+
var setProvider = function setProvider(cardProvider) {
|
|
58
|
+
return function (tr) {
|
|
59
|
+
return cardAction(tr, {
|
|
60
|
+
type: 'SET_PROVIDER',
|
|
61
|
+
provider: cardProvider
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
exports.setProvider = setProvider;
|
|
66
|
+
var setDatasourceTableRef = function setDatasourceTableRef(datasourceTableRef) {
|
|
67
|
+
return function (tr) {
|
|
68
|
+
return cardAction(tr, {
|
|
69
|
+
type: 'SET_DATASOURCE_TABLE_REF',
|
|
70
|
+
datasourceTableRef: datasourceTableRef
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.setDatasourceTableRef = setDatasourceTableRef;
|
|
75
|
+
var setCardLayout = function setCardLayout(layout) {
|
|
76
|
+
return function (tr) {
|
|
77
|
+
return cardAction(tr, {
|
|
78
|
+
type: 'SET_CARD_LAYOUT',
|
|
79
|
+
layout: layout
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
exports.setCardLayout = setCardLayout;
|
|
84
|
+
var setCardLayoutAndDatasourceTableRef = function setCardLayoutAndDatasourceTableRef(_ref) {
|
|
85
|
+
var layout = _ref.layout,
|
|
86
|
+
datasourceTableRef = _ref.datasourceTableRef;
|
|
87
|
+
return function (tr) {
|
|
88
|
+
return cardAction(tr, {
|
|
89
|
+
type: 'SET_CARD_LAYOUT_AND_DATASOURCE_TABLE_REF',
|
|
90
|
+
layout: layout,
|
|
91
|
+
datasourceTableRef: datasourceTableRef
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
exports.setCardLayoutAndDatasourceTableRef = setCardLayoutAndDatasourceTableRef;
|
|
96
|
+
var showLinkToolbar = function showLinkToolbar(tr) {
|
|
97
|
+
return cardAction(tr, {
|
|
98
|
+
type: 'SHOW_LINK_TOOLBAR'
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
exports.showLinkToolbar = showLinkToolbar;
|
|
102
|
+
var hideLinkToolbar = function hideLinkToolbar(tr) {
|
|
103
|
+
return cardAction(tr, {
|
|
104
|
+
type: 'HIDE_LINK_TOOLBAR'
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
exports.hideLinkToolbar = hideLinkToolbar;
|
|
108
|
+
var showDatasourceModal = function showDatasourceModal(modalType) {
|
|
109
|
+
return function (tr) {
|
|
110
|
+
return cardAction(tr, {
|
|
111
|
+
type: 'SHOW_DATASOURCE_MODAL',
|
|
112
|
+
modalType: modalType
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
exports.showDatasourceModal = showDatasourceModal;
|
|
117
|
+
var hideDatasourceModal = function hideDatasourceModal(tr) {
|
|
118
|
+
return cardAction(tr, {
|
|
119
|
+
type: 'HIDE_DATASOURCE_MODAL'
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
exports.hideDatasourceModal = hideDatasourceModal;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createAnalyticsQueue = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Simple mechanism to defer analytics related callbacks
|
|
9
|
+
*/
|
|
10
|
+
var createAnalyticsQueue = function createAnalyticsQueue() {
|
|
11
|
+
var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
12
|
+
var queue = [];
|
|
13
|
+
var callbacksRef = {
|
|
14
|
+
current: null
|
|
15
|
+
};
|
|
16
|
+
var setCallbacks = function setCallbacks(callbacks) {
|
|
17
|
+
callbacksRef.current = callbacks;
|
|
18
|
+
};
|
|
19
|
+
var push = function push() {
|
|
20
|
+
var callbacks = callbacksRef.current;
|
|
21
|
+
if (!enabled || !callbacks) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
queue.push.apply(queue, arguments);
|
|
25
|
+
};
|
|
26
|
+
var flush = function flush() {
|
|
27
|
+
var callbacks = callbacksRef.current;
|
|
28
|
+
if (!enabled || !callbacks) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
while (queue.length) {
|
|
32
|
+
var event = queue.pop();
|
|
33
|
+
if (event) {
|
|
34
|
+
callbacks[event.type](event.data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var getSize = function getSize() {
|
|
39
|
+
return queue.length;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
push: push,
|
|
43
|
+
flush: flush,
|
|
44
|
+
setCallbacks: setCallbacks,
|
|
45
|
+
getSize: getSize
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
exports.createAnalyticsQueue = createAnalyticsQueue;
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.eventsFromTransaction = eventsFromTransaction;
|
|
8
|
+
exports.findChangedLinks = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _prosemirrorTransform = require("prosemirror-transform");
|
|
13
|
+
var _steps = require("@atlaskit/adf-schema/steps");
|
|
14
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
15
|
+
var _card = require("@atlaskit/editor-common/card");
|
|
16
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
17
|
+
var _pluginKey = require("../plugin-key");
|
|
18
|
+
var _state = require("../util/state");
|
|
19
|
+
var _utils2 = require("./utils");
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
22
|
+
var findLinksInNodeRange = function findLinksInNodeRange(doc, schema, from, to) {
|
|
23
|
+
var links = [];
|
|
24
|
+
doc.nodesBetween(from, to, function (node, pos) {
|
|
25
|
+
if ((0, _utils2.isLink)(schema, node)) {
|
|
26
|
+
var entireLinkInRange = pos >= from && pos + node.nodeSize <= to;
|
|
27
|
+
if (entireLinkInRange) {
|
|
28
|
+
var link = (0, _utils2.linkObjectFromNode)(doc, schema, node, pos);
|
|
29
|
+
if (link) {
|
|
30
|
+
links.push(link);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return links;
|
|
36
|
+
};
|
|
37
|
+
var findChangedLinks = function findChangedLinks(tr, state) {
|
|
38
|
+
var schema = tr.doc.type.schema;
|
|
39
|
+
var removed = [];
|
|
40
|
+
var inserted = [];
|
|
41
|
+
var updated = [];
|
|
42
|
+
var queuedForUpgrade = isTransactionQueuedForUpgrade(tr);
|
|
43
|
+
var isResolveReplace = isTransactionResolveReplace(tr);
|
|
44
|
+
|
|
45
|
+
// History
|
|
46
|
+
var historyMeta = tr.getMeta(_utils.pmHistoryPluginKey);
|
|
47
|
+
var isUndo = isHistoryMeta(historyMeta) && historyMeta.redo === false;
|
|
48
|
+
var isRedo = isHistoryMeta(historyMeta) && historyMeta.redo === true;
|
|
49
|
+
var isUpdate = isUpdateTr(tr, isUndo || isRedo);
|
|
50
|
+
var _loop = function _loop(i) {
|
|
51
|
+
var _tr$docs$i, _tr$docs;
|
|
52
|
+
var step = tr.steps[i];
|
|
53
|
+
var stepMap = step.getMap();
|
|
54
|
+
var removedInStep = [];
|
|
55
|
+
var insertedInStep = [];
|
|
56
|
+
var before = (_tr$docs$i = tr.docs[i]) !== null && _tr$docs$i !== void 0 ? _tr$docs$i : tr.before;
|
|
57
|
+
var after = (_tr$docs = tr.docs[i + 1]) !== null && _tr$docs !== void 0 ? _tr$docs : tr.doc;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* AddMarkStep and RemoveMarkSteps don't produce stepMap ranges
|
|
61
|
+
* because there are no "changed tokens" only marks added/removed
|
|
62
|
+
* So have to check these manually
|
|
63
|
+
*/
|
|
64
|
+
if (step instanceof _prosemirrorTransform.AddMarkStep) {
|
|
65
|
+
var addMarkStep = step;
|
|
66
|
+
if ((0, _utils.isLinkMark)(addMarkStep.mark, schema)) {
|
|
67
|
+
/**
|
|
68
|
+
* For url text pasted on plain text
|
|
69
|
+
*/
|
|
70
|
+
insertedInStep.push({
|
|
71
|
+
type: 'mark',
|
|
72
|
+
pos: addMarkStep.from,
|
|
73
|
+
mark: addMarkStep.mark,
|
|
74
|
+
nodeContext: (0, _utils2.getLinkNodeContext)(after, addMarkStep.from)
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (step instanceof _prosemirrorTransform.RemoveMarkStep) {
|
|
79
|
+
var removeMarkStep = step;
|
|
80
|
+
if ((0, _utils.isLinkMark)(removeMarkStep.mark, schema)) {
|
|
81
|
+
removedInStep.push({
|
|
82
|
+
type: 'mark',
|
|
83
|
+
pos: removeMarkStep.from,
|
|
84
|
+
mark: removeMarkStep.mark,
|
|
85
|
+
nodeContext: (0, _utils2.getLinkNodeContext)(before, removeMarkStep.from)
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
stepMap.forEach(function (oldStart, oldEnd, newStart, newEnd) {
|
|
90
|
+
var _tr$docs2;
|
|
91
|
+
var before = tr.docs[i];
|
|
92
|
+
var after = (_tr$docs2 = tr.docs[i + 1]) !== null && _tr$docs2 !== void 0 ? _tr$docs2 : tr.doc;
|
|
93
|
+
var removedInRange = [];
|
|
94
|
+
var insertedInRange = [];
|
|
95
|
+
|
|
96
|
+
// Removed
|
|
97
|
+
removedInRange.push.apply(removedInRange, (0, _toConsumableArray2.default)(findLinksInNodeRange(before, schema, oldStart, oldEnd)));
|
|
98
|
+
// Inserted
|
|
99
|
+
insertedInRange.push.apply(insertedInRange, (0, _toConsumableArray2.default)(findLinksInNodeRange(after, schema, newStart, newEnd)));
|
|
100
|
+
removedInStep.push.apply(removedInStep, removedInRange);
|
|
101
|
+
insertedInStep.push.apply(insertedInStep, insertedInRange);
|
|
102
|
+
});
|
|
103
|
+
var omitQueuedLinks = function omitQueuedLinks(links) {
|
|
104
|
+
if (!queuedForUpgrade) {
|
|
105
|
+
return links;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Skip/filter out links that have been queued, they will be tracked later
|
|
109
|
+
*/
|
|
110
|
+
var queuedPositions = getQueuedPositions(tr);
|
|
111
|
+
return links.filter(function (link) {
|
|
112
|
+
return !queuedPositions.includes(link.pos);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Skip "deletions" when the transaction is relating to
|
|
118
|
+
* replacing links queued for upgrade to cards,
|
|
119
|
+
* because the "deleted" link has not actually been
|
|
120
|
+
* tracked as "created" yet
|
|
121
|
+
*/
|
|
122
|
+
if (!isResolveReplace) {
|
|
123
|
+
removed.push.apply(removed, removedInStep);
|
|
124
|
+
}
|
|
125
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)(omitQueuedLinks(insertedInStep)));
|
|
126
|
+
};
|
|
127
|
+
for (var i = 0; i < tr.steps.length; i++) {
|
|
128
|
+
_loop(i);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* If there are no links changed but the transaction is a "resolve" action
|
|
133
|
+
* Then this means we have resolved a link but it has failed to upgrade
|
|
134
|
+
* We should track all resolved links as now being created
|
|
135
|
+
*/
|
|
136
|
+
if (inserted.length === 0 && isResolveReplace) {
|
|
137
|
+
var positions = getResolvePositions(tr, state);
|
|
138
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)((0, _utils2.findLinksAtPositions)(tr, positions)));
|
|
139
|
+
}
|
|
140
|
+
if (!isUpdate) {
|
|
141
|
+
var _getLinkMetadataFromT = (0, _card.getLinkMetadataFromTransaction)(tr),
|
|
142
|
+
inputMethod = _getLinkMetadataFromT.inputMethod;
|
|
143
|
+
/**
|
|
144
|
+
* If there is no identifiable input method, and the links inserted and removed appear to be the same,
|
|
145
|
+
* then this transaction likely is not intended to be consided to be the insertion and removal of links
|
|
146
|
+
*/
|
|
147
|
+
if (!inputMethod && (0, _utils2.areSameLinks)(removed, inserted)) {
|
|
148
|
+
return {
|
|
149
|
+
removed: [],
|
|
150
|
+
inserted: [],
|
|
151
|
+
updated: updated
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
removed: removed,
|
|
156
|
+
inserted: inserted,
|
|
157
|
+
updated: updated
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
for (var _i = 0; _i < inserted.length; _i++) {
|
|
161
|
+
if (isResolveReplace) {
|
|
162
|
+
var newLink = inserted[_i];
|
|
163
|
+
|
|
164
|
+
// what is the 2nd argument 'assoc = -1' doing here exactly?
|
|
165
|
+
var mappedPos = tr.mapping.map(newLink.pos, -1);
|
|
166
|
+
var previousDisplay = getResolveLinkPrevDisplay(state, mappedPos);
|
|
167
|
+
updated.push({
|
|
168
|
+
inserted: inserted[_i],
|
|
169
|
+
previous: {
|
|
170
|
+
display: previousDisplay
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (inserted.length === removed.length) {
|
|
176
|
+
updated.push({
|
|
177
|
+
removed: removed[_i],
|
|
178
|
+
inserted: inserted[_i]
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
inserted: [],
|
|
184
|
+
removed: [],
|
|
185
|
+
updated: updated
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* List of actions to be considered link "updates"
|
|
191
|
+
*/
|
|
192
|
+
exports.findChangedLinks = findChangedLinks;
|
|
193
|
+
var UPDATE_ACTIONS = [_analytics.ACTION.CHANGED_TYPE, _analytics.ACTION.UPDATED];
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Returns true if the transaction has LinkMetaSteps that indicate the transaction is
|
|
197
|
+
* intended to be perceived as an update to links, rather than insertion+deletion
|
|
198
|
+
*/
|
|
199
|
+
var isUpdateTr = function isUpdateTr(tr, isUndoOrRedo) {
|
|
200
|
+
return !!tr.steps.find(function (step) {
|
|
201
|
+
if (!(step instanceof _steps.LinkMetaStep)) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
var _step$getMetadata = step.getMetadata(),
|
|
205
|
+
action = _step$getMetadata.action,
|
|
206
|
+
cardAction = _step$getMetadata.cardAction;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Undo of a resolve step should be considered an update
|
|
210
|
+
* because the user is choosing to update the url back to the un-upgraded display
|
|
211
|
+
*/
|
|
212
|
+
if (cardAction === 'RESOLVE' && isUndoOrRedo) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
if (!action) {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
return UPDATE_ACTIONS.includes(action);
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
var hasType = function hasType(pluginMeta) {
|
|
222
|
+
return (0, _typeof2.default)(pluginMeta) === 'object' && pluginMeta !== null && 'type' in pluginMeta;
|
|
223
|
+
};
|
|
224
|
+
var isTransactionQueuedForUpgrade = function isTransactionQueuedForUpgrade(tr) {
|
|
225
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
226
|
+
return isMetadataQueue(pluginMeta);
|
|
227
|
+
};
|
|
228
|
+
var isMetadataQueue = function isMetadataQueue(metaData) {
|
|
229
|
+
return hasType(metaData) && metaData.type === 'QUEUE';
|
|
230
|
+
};
|
|
231
|
+
var isTransactionResolveReplace = function isTransactionResolveReplace(tr) {
|
|
232
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
233
|
+
return isMetadataResolve(pluginMeta);
|
|
234
|
+
};
|
|
235
|
+
var isMetadataResolve = function isMetadataResolve(metaData) {
|
|
236
|
+
return hasType(metaData) && metaData.type === 'RESOLVE';
|
|
237
|
+
};
|
|
238
|
+
var isHistoryMeta = function isHistoryMeta(meta) {
|
|
239
|
+
return (0, _typeof2.default)(meta) === 'object' && meta !== null && 'redo' in meta;
|
|
240
|
+
};
|
|
241
|
+
var getQueuedPositions = function getQueuedPositions(tr) {
|
|
242
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
243
|
+
if (!isMetadataQueue(pluginMeta)) {
|
|
244
|
+
return [];
|
|
245
|
+
}
|
|
246
|
+
return pluginMeta.requests.map(function (_ref) {
|
|
247
|
+
var pos = _ref.pos;
|
|
248
|
+
return pos;
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
var getResolvePositions = function getResolvePositions(tr, state) {
|
|
252
|
+
var cardState = (0, _state.getPluginState)(state);
|
|
253
|
+
if (!cardState) {
|
|
254
|
+
return [];
|
|
255
|
+
}
|
|
256
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
257
|
+
if (!isMetadataResolve(pluginMeta)) {
|
|
258
|
+
return [];
|
|
259
|
+
}
|
|
260
|
+
return cardState.requests.filter(function (request) {
|
|
261
|
+
return request.url === pluginMeta.url;
|
|
262
|
+
}).map(function (request) {
|
|
263
|
+
return request.pos;
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
var getResolveLinkPrevDisplay = function getResolveLinkPrevDisplay(state, pos) {
|
|
267
|
+
var _cardState$requests$f;
|
|
268
|
+
var cardState = (0, _state.getPluginState)(state);
|
|
269
|
+
if (!cardState) {
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
return (_cardState$requests$f = cardState.requests.find(function (request) {
|
|
273
|
+
return request.pos === pos;
|
|
274
|
+
})) === null || _cardState$requests$f === void 0 ? void 0 : _cardState$requests$f.previousAppearance;
|
|
275
|
+
};
|
|
276
|
+
function eventsFromTransaction(tr, state) {
|
|
277
|
+
var events = [];
|
|
278
|
+
try {
|
|
279
|
+
/**
|
|
280
|
+
* Skip transactions sent by collab (identified by 'isRemote' key)
|
|
281
|
+
* Skip entire document replace steps
|
|
282
|
+
* We are only concerned with transactions performed on the document directly by the user
|
|
283
|
+
*/
|
|
284
|
+
var isRemote = tr.getMeta('isRemote');
|
|
285
|
+
var isReplaceDocument = tr.getMeta('replaceDocument');
|
|
286
|
+
if (isRemote || isReplaceDocument) {
|
|
287
|
+
return events;
|
|
288
|
+
}
|
|
289
|
+
var historyMeta = tr.getMeta(_utils.pmHistoryPluginKey);
|
|
290
|
+
var isUndo = isHistoryMeta(historyMeta) && historyMeta.redo === false;
|
|
291
|
+
var isRedo = isHistoryMeta(historyMeta) && historyMeta.redo === true;
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Retrieve metadata from the LinkMetaStep(s) in the transaction
|
|
295
|
+
*/
|
|
296
|
+
var _getLinkMetadataFromT2 = (0, _card.getLinkMetadataFromTransaction)(tr),
|
|
297
|
+
action = _getLinkMetadataFromT2.action,
|
|
298
|
+
inputMethod = _getLinkMetadataFromT2.inputMethod,
|
|
299
|
+
sourceEvent = _getLinkMetadataFromT2.sourceEvent;
|
|
300
|
+
var contextualData = {
|
|
301
|
+
action: action,
|
|
302
|
+
inputMethod: inputMethod,
|
|
303
|
+
sourceEvent: sourceEvent,
|
|
304
|
+
isUndo: isUndo,
|
|
305
|
+
isRedo: isRedo
|
|
306
|
+
};
|
|
307
|
+
var _findChangedLinks = findChangedLinks(tr, state),
|
|
308
|
+
removed = _findChangedLinks.removed,
|
|
309
|
+
inserted = _findChangedLinks.inserted,
|
|
310
|
+
updated = _findChangedLinks.updated;
|
|
311
|
+
var MAX_LINK_EVENTS = 50;
|
|
312
|
+
if ([removed, inserted, updated].some(function (arr) {
|
|
313
|
+
return arr.length > MAX_LINK_EVENTS;
|
|
314
|
+
})) {
|
|
315
|
+
return [];
|
|
316
|
+
}
|
|
317
|
+
for (var i = 0; i < updated.length; i++) {
|
|
318
|
+
var _update$previous$disp;
|
|
319
|
+
var update = updated[i];
|
|
320
|
+
var link = update.inserted;
|
|
321
|
+
var url = (0, _utils2.getLinkUrl)(link);
|
|
322
|
+
var display = (0, _utils2.appearanceForLink)(link);
|
|
323
|
+
var previousDisplay = 'removed' in update ? (0, _utils2.appearanceForLink)(update.removed) : (_update$previous$disp = update.previous.display) !== null && _update$previous$disp !== void 0 ? _update$previous$disp : 'unknown';
|
|
324
|
+
if (url) {
|
|
325
|
+
events.push({
|
|
326
|
+
type: 'updated',
|
|
327
|
+
data: _objectSpread(_objectSpread({}, contextualData), {}, {
|
|
328
|
+
url: url,
|
|
329
|
+
display: display,
|
|
330
|
+
previousDisplay: previousDisplay,
|
|
331
|
+
nodeContext: link.nodeContext
|
|
332
|
+
})
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
var pushEvents = function pushEvents(links, type) {
|
|
337
|
+
for (var _i2 = 0; _i2 < links.length; _i2++) {
|
|
338
|
+
var _link = links[_i2];
|
|
339
|
+
var _url = (0, _utils2.getLinkUrl)(_link);
|
|
340
|
+
var _display = (0, _utils2.appearanceForLink)(_link);
|
|
341
|
+
if (_url) {
|
|
342
|
+
events.push({
|
|
343
|
+
type: type,
|
|
344
|
+
data: _objectSpread(_objectSpread({}, contextualData), {}, {
|
|
345
|
+
url: _url,
|
|
346
|
+
display: _display,
|
|
347
|
+
nodeContext: _link.nodeContext
|
|
348
|
+
})
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
pushEvents(removed, 'deleted');
|
|
354
|
+
pushEvents(inserted, 'created');
|
|
355
|
+
return events;
|
|
356
|
+
} catch (err) {
|
|
357
|
+
return events;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "createAnalyticsQueue", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _createAnalyticsQueue.createAnalyticsQueue;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "eventsFromTransaction", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _eventsFromTr.eventsFromTransaction;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _createAnalyticsQueue = require("./create-analytics-queue");
|
|
19
|
+
var _eventsFromTr = require("./events-from-tr");
|