@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.
Files changed (200) hide show
  1. package/.eslintrc.js +15 -0
  2. package/CHANGELOG.md +1 -0
  3. package/LICENSE.md +13 -0
  4. package/README.md +7 -0
  5. package/dist/cjs/index.js +12 -0
  6. package/dist/cjs/messages.js +20 -0
  7. package/dist/cjs/nodeviews/blockCard.js +164 -0
  8. package/dist/cjs/nodeviews/datasource.js +173 -0
  9. package/dist/cjs/nodeviews/embedCard.js +398 -0
  10. package/dist/cjs/nodeviews/genericCard.js +118 -0
  11. package/dist/cjs/nodeviews/inlineCard.js +132 -0
  12. package/dist/cjs/plugin.js +138 -0
  13. package/dist/cjs/pm-plugins/actions.js +122 -0
  14. package/dist/cjs/pm-plugins/analytics/create-analytics-queue.js +48 -0
  15. package/dist/cjs/pm-plugins/analytics/events-from-tr.js +359 -0
  16. package/dist/cjs/pm-plugins/analytics/index.js +19 -0
  17. package/dist/cjs/pm-plugins/analytics/types.js +5 -0
  18. package/dist/cjs/pm-plugins/analytics/utils.js +178 -0
  19. package/dist/cjs/pm-plugins/doc.js +479 -0
  20. package/dist/cjs/pm-plugins/keymap.js +64 -0
  21. package/dist/cjs/pm-plugins/main.js +212 -0
  22. package/dist/cjs/pm-plugins/mountHyperlink.js +47 -0
  23. package/dist/cjs/pm-plugins/plugin-key.js +9 -0
  24. package/dist/cjs/pm-plugins/reducers.js +111 -0
  25. package/dist/cjs/pm-plugins/shouldReplaceLink.js +35 -0
  26. package/dist/cjs/pm-plugins/util/resolve.js +59 -0
  27. package/dist/cjs/pm-plugins/util/state.js +49 -0
  28. package/dist/cjs/toolbar.js +364 -0
  29. package/dist/cjs/types.js +5 -0
  30. package/dist/cjs/ui/DatasourceModal/ModalWithState.js +25 -0
  31. package/dist/cjs/ui/DatasourceModal/index.js +60 -0
  32. package/dist/cjs/ui/EditLinkToolbar.js +258 -0
  33. package/dist/cjs/ui/EditorSmartCardEvents.js +21 -0
  34. package/dist/cjs/ui/EditorSmartCardEventsNext.js +215 -0
  35. package/dist/cjs/ui/HyperlinkToolbarAppearance.js +174 -0
  36. package/dist/cjs/ui/LayoutButton/index.js +121 -0
  37. package/dist/cjs/ui/LayoutButton/types.js +5 -0
  38. package/dist/cjs/ui/LayoutButton/utils.js +19 -0
  39. package/dist/cjs/ui/LinkToolbarAppearance.js +152 -0
  40. package/dist/cjs/ui/ResizableEmbedCard.js +364 -0
  41. package/dist/cjs/ui/SmallerEditIcon.js +22 -0
  42. package/dist/cjs/utils.js +60 -0
  43. package/dist/cjs/version.json +5 -0
  44. package/dist/es2019/index.js +1 -0
  45. package/dist/es2019/messages.js +13 -0
  46. package/dist/es2019/nodeviews/blockCard.js +131 -0
  47. package/dist/es2019/nodeviews/datasource.js +137 -0
  48. package/dist/es2019/nodeviews/embedCard.js +370 -0
  49. package/dist/es2019/nodeviews/genericCard.js +92 -0
  50. package/dist/es2019/nodeviews/inlineCard.js +113 -0
  51. package/dist/es2019/plugin.js +129 -0
  52. package/dist/es2019/pm-plugins/actions.js +57 -0
  53. package/dist/es2019/pm-plugins/analytics/create-analytics-queue.js +38 -0
  54. package/dist/es2019/pm-plugins/analytics/events-from-tr.js +339 -0
  55. package/dist/es2019/pm-plugins/analytics/index.js +2 -0
  56. package/dist/es2019/pm-plugins/analytics/types.js +1 -0
  57. package/dist/es2019/pm-plugins/analytics/utils.js +160 -0
  58. package/dist/es2019/pm-plugins/doc.js +451 -0
  59. package/dist/es2019/pm-plugins/keymap.js +59 -0
  60. package/dist/es2019/pm-plugins/main.js +208 -0
  61. package/dist/es2019/pm-plugins/mountHyperlink.js +37 -0
  62. package/dist/es2019/pm-plugins/plugin-key.js +2 -0
  63. package/dist/es2019/pm-plugins/reducers.js +110 -0
  64. package/dist/es2019/pm-plugins/shouldReplaceLink.js +25 -0
  65. package/dist/es2019/pm-plugins/util/resolve.js +50 -0
  66. package/dist/es2019/pm-plugins/util/state.js +26 -0
  67. package/dist/es2019/toolbar.js +359 -0
  68. package/dist/es2019/types.js +1 -0
  69. package/dist/es2019/ui/DatasourceModal/ModalWithState.js +19 -0
  70. package/dist/es2019/ui/DatasourceModal/index.js +48 -0
  71. package/dist/es2019/ui/EditLinkToolbar.js +226 -0
  72. package/dist/es2019/ui/EditorSmartCardEvents.js +15 -0
  73. package/dist/es2019/ui/EditorSmartCardEventsNext.js +199 -0
  74. package/dist/es2019/ui/HyperlinkToolbarAppearance.js +86 -0
  75. package/dist/es2019/ui/LayoutButton/index.js +114 -0
  76. package/dist/es2019/ui/LayoutButton/types.js +1 -0
  77. package/dist/es2019/ui/LayoutButton/utils.js +15 -0
  78. package/dist/es2019/ui/LinkToolbarAppearance.js +118 -0
  79. package/dist/es2019/ui/ResizableEmbedCard.js +335 -0
  80. package/dist/es2019/ui/SmallerEditIcon.js +14 -0
  81. package/dist/es2019/utils.js +46 -0
  82. package/dist/es2019/version.json +5 -0
  83. package/dist/esm/index.js +1 -0
  84. package/dist/esm/messages.js +13 -0
  85. package/dist/esm/nodeviews/blockCard.js +156 -0
  86. package/dist/esm/nodeviews/datasource.js +165 -0
  87. package/dist/esm/nodeviews/embedCard.js +389 -0
  88. package/dist/esm/nodeviews/genericCard.js +111 -0
  89. package/dist/esm/nodeviews/inlineCard.js +124 -0
  90. package/dist/esm/plugin.js +130 -0
  91. package/dist/esm/pm-plugins/actions.js +102 -0
  92. package/dist/esm/pm-plugins/analytics/create-analytics-queue.js +41 -0
  93. package/dist/esm/pm-plugins/analytics/events-from-tr.js +350 -0
  94. package/dist/esm/pm-plugins/analytics/index.js +2 -0
  95. package/dist/esm/pm-plugins/analytics/types.js +1 -0
  96. package/dist/esm/pm-plugins/analytics/utils.js +160 -0
  97. package/dist/esm/pm-plugins/doc.js +460 -0
  98. package/dist/esm/pm-plugins/keymap.js +58 -0
  99. package/dist/esm/pm-plugins/main.js +199 -0
  100. package/dist/esm/pm-plugins/mountHyperlink.js +39 -0
  101. package/dist/esm/pm-plugins/plugin-key.js +2 -0
  102. package/dist/esm/pm-plugins/reducers.js +103 -0
  103. package/dist/esm/pm-plugins/shouldReplaceLink.js +29 -0
  104. package/dist/esm/pm-plugins/util/resolve.js +52 -0
  105. package/dist/esm/pm-plugins/util/state.js +40 -0
  106. package/dist/esm/toolbar.js +350 -0
  107. package/dist/esm/types.js +1 -0
  108. package/dist/esm/ui/DatasourceModal/ModalWithState.js +17 -0
  109. package/dist/esm/ui/DatasourceModal/index.js +49 -0
  110. package/dist/esm/ui/EditLinkToolbar.js +244 -0
  111. package/dist/esm/ui/EditorSmartCardEvents.js +14 -0
  112. package/dist/esm/ui/EditorSmartCardEventsNext.js +203 -0
  113. package/dist/esm/ui/HyperlinkToolbarAppearance.js +163 -0
  114. package/dist/esm/ui/LayoutButton/index.js +110 -0
  115. package/dist/esm/ui/LayoutButton/types.js +1 -0
  116. package/dist/esm/ui/LayoutButton/utils.js +12 -0
  117. package/dist/esm/ui/LinkToolbarAppearance.js +141 -0
  118. package/dist/esm/ui/ResizableEmbedCard.js +358 -0
  119. package/dist/esm/ui/SmallerEditIcon.js +14 -0
  120. package/dist/esm/utils.js +48 -0
  121. package/dist/esm/version.json +5 -0
  122. package/dist/types/index.d.ts +2 -0
  123. package/dist/types/messages.d.ts +12 -0
  124. package/dist/types/nodeviews/blockCard.d.ts +26 -0
  125. package/dist/types/nodeviews/datasource.d.ts +42 -0
  126. package/dist/types/nodeviews/embedCard.d.ts +46 -0
  127. package/dist/types/nodeviews/genericCard.d.ts +37 -0
  128. package/dist/types/nodeviews/inlineCard.d.ts +23 -0
  129. package/dist/types/plugin.d.ts +24 -0
  130. package/dist/types/pm-plugins/actions.d.ts +23 -0
  131. package/dist/types/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
  132. package/dist/types/pm-plugins/analytics/events-from-tr.d.ts +17 -0
  133. package/dist/types/pm-plugins/analytics/index.d.ts +2 -0
  134. package/dist/types/pm-plugins/analytics/types.d.ts +12 -0
  135. package/dist/types/pm-plugins/analytics/utils.d.ts +32 -0
  136. package/dist/types/pm-plugins/doc.d.ts +22 -0
  137. package/dist/types/pm-plugins/keymap.d.ts +3 -0
  138. package/dist/types/pm-plugins/main.d.ts +6 -0
  139. package/dist/types/pm-plugins/mountHyperlink.d.ts +5 -0
  140. package/dist/types/pm-plugins/plugin-key.d.ts +3 -0
  141. package/dist/types/pm-plugins/reducers.d.ts +3 -0
  142. package/dist/types/pm-plugins/shouldReplaceLink.d.ts +2 -0
  143. package/dist/types/pm-plugins/util/resolve.d.ts +8 -0
  144. package/dist/types/pm-plugins/util/state.d.ts +31 -0
  145. package/dist/types/toolbar.d.ts +9 -0
  146. package/dist/types/types.d.ts +163 -0
  147. package/dist/types/ui/DatasourceModal/ModalWithState.d.ts +9 -0
  148. package/dist/types/ui/DatasourceModal/index.d.ts +11 -0
  149. package/dist/types/ui/EditLinkToolbar.d.ts +47 -0
  150. package/dist/types/ui/EditorSmartCardEvents.d.ts +5 -0
  151. package/dist/types/ui/EditorSmartCardEventsNext.d.ts +18 -0
  152. package/dist/types/ui/HyperlinkToolbarAppearance.d.ts +32 -0
  153. package/dist/types/ui/LayoutButton/index.d.ts +9 -0
  154. package/dist/types/ui/LayoutButton/types.d.ts +19 -0
  155. package/dist/types/ui/LayoutButton/utils.d.ts +5 -0
  156. package/dist/types/ui/LinkToolbarAppearance.d.ts +29 -0
  157. package/dist/types/ui/ResizableEmbedCard.d.ts +61 -0
  158. package/dist/types/ui/SmallerEditIcon.d.ts +3 -0
  159. package/dist/types/utils.d.ts +19 -0
  160. package/dist/types-ts4.5/index.d.ts +2 -0
  161. package/dist/types-ts4.5/messages.d.ts +12 -0
  162. package/dist/types-ts4.5/nodeviews/blockCard.d.ts +26 -0
  163. package/dist/types-ts4.5/nodeviews/datasource.d.ts +42 -0
  164. package/dist/types-ts4.5/nodeviews/embedCard.d.ts +46 -0
  165. package/dist/types-ts4.5/nodeviews/genericCard.d.ts +37 -0
  166. package/dist/types-ts4.5/nodeviews/inlineCard.d.ts +23 -0
  167. package/dist/types-ts4.5/plugin.d.ts +24 -0
  168. package/dist/types-ts4.5/pm-plugins/actions.d.ts +23 -0
  169. package/dist/types-ts4.5/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
  170. package/dist/types-ts4.5/pm-plugins/analytics/events-from-tr.d.ts +17 -0
  171. package/dist/types-ts4.5/pm-plugins/analytics/index.d.ts +2 -0
  172. package/dist/types-ts4.5/pm-plugins/analytics/types.d.ts +12 -0
  173. package/dist/types-ts4.5/pm-plugins/analytics/utils.d.ts +32 -0
  174. package/dist/types-ts4.5/pm-plugins/doc.d.ts +22 -0
  175. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -0
  176. package/dist/types-ts4.5/pm-plugins/main.d.ts +6 -0
  177. package/dist/types-ts4.5/pm-plugins/mountHyperlink.d.ts +5 -0
  178. package/dist/types-ts4.5/pm-plugins/plugin-key.d.ts +3 -0
  179. package/dist/types-ts4.5/pm-plugins/reducers.d.ts +3 -0
  180. package/dist/types-ts4.5/pm-plugins/shouldReplaceLink.d.ts +2 -0
  181. package/dist/types-ts4.5/pm-plugins/util/resolve.d.ts +8 -0
  182. package/dist/types-ts4.5/pm-plugins/util/state.d.ts +31 -0
  183. package/dist/types-ts4.5/toolbar.d.ts +9 -0
  184. package/dist/types-ts4.5/types.d.ts +163 -0
  185. package/dist/types-ts4.5/ui/DatasourceModal/ModalWithState.d.ts +9 -0
  186. package/dist/types-ts4.5/ui/DatasourceModal/index.d.ts +11 -0
  187. package/dist/types-ts4.5/ui/EditLinkToolbar.d.ts +47 -0
  188. package/dist/types-ts4.5/ui/EditorSmartCardEvents.d.ts +5 -0
  189. package/dist/types-ts4.5/ui/EditorSmartCardEventsNext.d.ts +18 -0
  190. package/dist/types-ts4.5/ui/HyperlinkToolbarAppearance.d.ts +32 -0
  191. package/dist/types-ts4.5/ui/LayoutButton/index.d.ts +9 -0
  192. package/dist/types-ts4.5/ui/LayoutButton/types.d.ts +19 -0
  193. package/dist/types-ts4.5/ui/LayoutButton/utils.d.ts +5 -0
  194. package/dist/types-ts4.5/ui/LinkToolbarAppearance.d.ts +29 -0
  195. package/dist/types-ts4.5/ui/ResizableEmbedCard.d.ts +61 -0
  196. package/dist/types-ts4.5/ui/SmallerEditIcon.d.ts +3 -0
  197. package/dist/types-ts4.5/utils.d.ts +19 -0
  198. package/package.json +126 -0
  199. package/report.api.md +146 -0
  200. package/tmp/api-report-tmp.d.ts +117 -0
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EditLinkToolbar = void 0;
8
+ exports.HyperlinkAddToolbarWithState = HyperlinkAddToolbarWithState;
9
+ exports.editLinkToolbarConfig = exports.editLink = exports.editDatasource = exports.buildEditLinkToolbar = void 0;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _prosemirrorState = require("prosemirror-state");
19
+ var _analytics = require("@atlaskit/editor-common/analytics");
20
+ var _card = require("@atlaskit/editor-common/card");
21
+ var _hooks = require("@atlaskit/editor-common/hooks");
22
+ var _link = require("@atlaskit/editor-common/link");
23
+ var _messages = require("@atlaskit/editor-common/messages");
24
+ var _ui = require("@atlaskit/editor-common/ui");
25
+ var _linkDatasource = require("@atlaskit/link-datasource");
26
+ var _actions = require("../pm-plugins/actions");
27
+ var _doc = require("../pm-plugins/doc");
28
+ var _utils = require("../utils");
29
+ 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); }; }
30
+ 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; } }
31
+ var HyperLinkToolbarWithListeners = (0, _ui.withOuterListeners)(HyperlinkAddToolbarWithState);
32
+ function HyperlinkAddToolbarWithState(_ref) {
33
+ var _ref$linkPickerOption = _ref.linkPickerOptions,
34
+ linkPickerOptions = _ref$linkPickerOption === void 0 ? {} : _ref$linkPickerOption,
35
+ onSubmit = _ref.onSubmit,
36
+ displayText = _ref.displayText,
37
+ displayUrl = _ref.displayUrl,
38
+ providerFactory = _ref.providerFactory,
39
+ view = _ref.view,
40
+ onCancel = _ref.onCancel,
41
+ invokeMethod = _ref.invokeMethod,
42
+ featureFlags = _ref.featureFlags,
43
+ onClose = _ref.onClose,
44
+ onEscapeCallback = _ref.onEscapeCallback,
45
+ onClickAwayCallback = _ref.onClickAwayCallback,
46
+ pluginInjectionApi = _ref.pluginInjectionApi;
47
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['hyperlink']),
48
+ hyperlinkState = _useSharedPluginState.hyperlinkState;
49
+ return /*#__PURE__*/_react.default.createElement(_link.HyperlinkAddToolbar, {
50
+ linkPickerOptions: linkPickerOptions,
51
+ onSubmit: onSubmit,
52
+ displayText: displayText,
53
+ displayUrl: displayUrl,
54
+ providerFactory: providerFactory,
55
+ view: view,
56
+ onCancel: onCancel,
57
+ invokeMethod: invokeMethod,
58
+ featureFlags: featureFlags,
59
+ onClose: onClose,
60
+ onEscapeCallback: onEscapeCallback,
61
+ onClickAwayCallback: onClickAwayCallback,
62
+ hyperlinkPluginState: hyperlinkState
63
+ });
64
+ }
65
+
66
+ // eslint-disable-next-line @repo/internal/react/no-class-components
67
+ var EditLinkToolbar = /*#__PURE__*/function (_React$Component) {
68
+ (0, _inherits2.default)(EditLinkToolbar, _React$Component);
69
+ var _super = _createSuper(EditLinkToolbar);
70
+ function EditLinkToolbar() {
71
+ var _this;
72
+ (0, _classCallCheck2.default)(this, EditLinkToolbar);
73
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
74
+ args[_key] = arguments[_key];
75
+ }
76
+ _this = _super.call.apply(_super, [this].concat(args));
77
+ /** Focus should move to the 'Edit link' button when the toolbar closes
78
+ * and not close the floating toolbar.
79
+ */
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleEsc", function (e) {
81
+ var _this$props$forceFocu, _this$props;
82
+ (_this$props$forceFocu = (_this$props = _this.props).forceFocusSelector) === null || _this$props$forceFocu === void 0 ? void 0 : _this$props$forceFocu.call(_this$props, "[aria-label=\"".concat(_messages.linkToolbarMessages.editLink.defaultMessage, "\"]"), _this.props.view);
83
+ });
84
+ return _this;
85
+ }
86
+ (0, _createClass2.default)(EditLinkToolbar, [{
87
+ key: "componentDidUpdate",
88
+ value: function componentDidUpdate(prevProps) {
89
+ if (prevProps.node !== this.props.node) {
90
+ this.hideLinkToolbar();
91
+ }
92
+ }
93
+ }, {
94
+ key: "componentWillUnmount",
95
+ value: function componentWillUnmount() {
96
+ this.hideLinkToolbar();
97
+ }
98
+ }, {
99
+ key: "hideLinkToolbar",
100
+ value: function hideLinkToolbar() {
101
+ var view = this.props.view;
102
+ view.dispatch((0, _actions.hideLinkToolbar)(view.state.tr));
103
+ }
104
+ }, {
105
+ key: "render",
106
+ value: function render() {
107
+ var _this2 = this;
108
+ var _this$props2 = this.props,
109
+ linkPickerOptions = _this$props2.linkPickerOptions,
110
+ providerFactory = _this$props2.providerFactory,
111
+ url = _this$props2.url,
112
+ text = _this$props2.text,
113
+ view = _this$props2.view,
114
+ featureFlags = _this$props2.featureFlags,
115
+ _onSubmit = _this$props2.onSubmit,
116
+ pluginInjectionApi = _this$props2.pluginInjectionApi;
117
+ return /*#__PURE__*/_react.default.createElement(HyperLinkToolbarWithListeners, {
118
+ pluginInjectionApi: pluginInjectionApi,
119
+ view: view,
120
+ linkPickerOptions: linkPickerOptions,
121
+ providerFactory: providerFactory,
122
+ displayUrl: url,
123
+ displayText: text,
124
+ handleEscapeKeydown: this.handleEsc
125
+ // Assumes that the smart card link picker can only ever be invoked by clicking "edit"
126
+ // via the floating toolbar
127
+ ,
128
+ invokeMethod: _analytics.INPUT_METHOD.FLOATING_TB,
129
+ featureFlags: featureFlags,
130
+ onSubmit: function onSubmit(href, title, displayText, inputMethod, analytic) {
131
+ _this2.hideLinkToolbar();
132
+ if (_onSubmit) {
133
+ _onSubmit(href, displayText || title, inputMethod, analytic);
134
+ }
135
+ },
136
+ onEscapeCallback: function onEscapeCallback(state, dispatch) {
137
+ var tr = state.tr;
138
+ pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.dependencies.hyperlink.actions.hideLinkToolbar(tr);
139
+ (0, _actions.hideLinkToolbar)(tr);
140
+ if (dispatch) {
141
+ dispatch(tr);
142
+ return true;
143
+ }
144
+ return false;
145
+ },
146
+ onClickAwayCallback: function onClickAwayCallback(state, dispatch) {
147
+ var tr = state.tr;
148
+ pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.dependencies.hyperlink.actions.hideLinkToolbar(tr);
149
+ if (dispatch) {
150
+ dispatch(tr);
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ });
156
+ }
157
+ }]);
158
+ return EditLinkToolbar;
159
+ }(_react.default.Component);
160
+ exports.EditLinkToolbar = EditLinkToolbar;
161
+ var editLink = function editLink(editorAnalyticsApi) {
162
+ return function (state, dispatch) {
163
+ var type = 'hyperlink';
164
+ if (state.selection instanceof _prosemirrorState.NodeSelection) {
165
+ type = state.selection.node.type.name;
166
+ }
167
+ if (dispatch) {
168
+ var tr = state.tr;
169
+ (0, _actions.showLinkToolbar)(tr);
170
+ editorAnalyticsApi === null || editorAnalyticsApi === void 0 ? void 0 : editorAnalyticsApi.attachAnalyticsEvent((0, _analytics.buildEditLinkPayload)(type))(tr);
171
+ dispatch(tr);
172
+ return true;
173
+ }
174
+ return false;
175
+ };
176
+ };
177
+ exports.editLink = editLink;
178
+ var buildEditLinkToolbar = function buildEditLinkToolbar(_ref2) {
179
+ var providerFactory = _ref2.providerFactory,
180
+ node = _ref2.node,
181
+ linkPicker = _ref2.linkPicker,
182
+ featureFlags = _ref2.featureFlags,
183
+ pluginInjectionApi = _ref2.pluginInjectionApi;
184
+ return {
185
+ type: 'custom',
186
+ disableArrowNavigation: true,
187
+ fallback: [],
188
+ render: function render(view, idx) {
189
+ var _pluginInjectionApi$d;
190
+ if (!view || !providerFactory) {
191
+ return null;
192
+ }
193
+ var displayInfo = (0, _utils.displayInfoForCard)(node, (0, _utils.findCardInfo)(view.state));
194
+ return /*#__PURE__*/_react.default.createElement(EditLinkToolbar, {
195
+ pluginInjectionApi: pluginInjectionApi,
196
+ key: idx,
197
+ view: view,
198
+ linkPickerOptions: linkPicker,
199
+ providerFactory: providerFactory,
200
+ url: displayInfo.url,
201
+ text: displayInfo.title || '',
202
+ node: node,
203
+ featureFlags: featureFlags,
204
+ forceFocusSelector: pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d = pluginInjectionApi.dependencies.floatingToolbar.actions) === null || _pluginInjectionApi$d === void 0 ? void 0 : _pluginInjectionApi$d.forceFocusSelector,
205
+ onSubmit: function onSubmit(newHref, newText, inputMethod, analytic) {
206
+ var urlChanged = newHref !== displayInfo.url;
207
+ var titleChanged = newText !== displayInfo.title;
208
+
209
+ // If the title is changed in a smartlink, convert to standard blue hyperlink
210
+ // (even if the url was also changed) - we don't want to lose the custom title.
211
+ if (titleChanged) {
212
+ var _pluginInjectionApi$d2;
213
+ return (0, _card.commandWithMetadata)((0, _doc.changeSelectedCardToLink)(newText, newHref, undefined, undefined, undefined, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d2 = pluginInjectionApi.dependencies.analytics) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions), {
214
+ action: _analytics.ACTION.UPDATED,
215
+ inputMethod: inputMethod,
216
+ sourceEvent: analytic
217
+ })(view.state, view.dispatch);
218
+ }
219
+ if (urlChanged) {
220
+ // If *only* the url is changed in a smart link, reresolve
221
+ return (0, _doc.updateCard)(newHref, analytic)(view.state, view.dispatch);
222
+ }
223
+ }
224
+ });
225
+ }
226
+ };
227
+ };
228
+ exports.buildEditLinkToolbar = buildEditLinkToolbar;
229
+ var editLinkToolbarConfig = function editLinkToolbarConfig(showLinkingToolbar, lpLinkPicker) {
230
+ return showLinkingToolbar ? {
231
+ height: lpLinkPicker ? _ui.LINKPICKER_HEIGHT_IN_PX : _ui.RECENT_SEARCH_HEIGHT_IN_PX,
232
+ width: _ui.RECENT_SEARCH_WIDTH_IN_PX,
233
+ forcePlacement: true
234
+ } : {};
235
+ };
236
+ exports.editLinkToolbarConfig = editLinkToolbarConfig;
237
+ var editDatasource = function editDatasource(node, editorAnalyticsApi) {
238
+ return function (state, dispatch) {
239
+ var _node$attrs;
240
+ var modalType = ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.datasource.id) === _linkDatasource.JIRA_LIST_OF_LINKS_DATASOURCE_ID ? 'jira' : undefined;
241
+ if (dispatch && modalType) {
242
+ var tr = state.tr;
243
+ (0, _actions.showDatasourceModal)(modalType)(tr);
244
+ // editorAnalyticsApi?.attachAnalyticsEvent(
245
+ // buildEditLinkPayload(
246
+ // type as
247
+ // | ACTION_SUBJECT_ID.CARD_INLINE
248
+ // | ACTION_SUBJECT_ID.CARD_BLOCK
249
+ // | ACTION_SUBJECT_ID.EMBEDS,
250
+ // ),
251
+ // )(tr);
252
+ dispatch(tr);
253
+ return true;
254
+ }
255
+ return false;
256
+ };
257
+ };
258
+ exports.editDatasource = editDatasource;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EditorSmartCardEvents = void 0;
7
+ var _react = require("react");
8
+ var _smartCard = require("@atlaskit/smart-card");
9
+ var _actions = require("../pm-plugins/actions");
10
+ var EditorSmartCardEvents = function EditorSmartCardEvents(_ref) {
11
+ var editorView = _ref.editorView;
12
+ var events = (0, _smartCard.useSmartLinkEvents)();
13
+ (0, _react.useEffect)(function () {
14
+ if (!events) {
15
+ return;
16
+ }
17
+ editorView.dispatch((0, _actions.registerSmartCardEvents)(events)(editorView.state.tr));
18
+ }, [events, editorView]);
19
+ return null;
20
+ };
21
+ exports.EditorSmartCardEvents = EditorSmartCardEvents;
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EventsBinding = exports.EditorSmartCardEventsNext = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _analyticsNext = require("@atlaskit/analytics-next");
18
+ var _analytics = require("@atlaskit/editor-common/analytics");
19
+ var _utils = require("@atlaskit/editor-common/utils");
20
+ var _linkAnalytics = require("@atlaskit/link-analytics");
21
+ var _actions = require("../pm-plugins/actions");
22
+ var _state = require("../pm-plugins/util/state");
23
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+ 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); }; }
26
+ 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; } }
27
+ /**
28
+ * If the metadata is for a history event,
29
+ * returns undo/redo instead of instead of what fn(metadata) would have otherwise
30
+ * returned
31
+ */
32
+ var withHistoryMethod = function withHistoryMethod(fn) {
33
+ return function (metadata) {
34
+ var isUndo = metadata.isUndo,
35
+ isRedo = metadata.isRedo;
36
+ if (isUndo) {
37
+ return 'undo';
38
+ }
39
+ if (isRedo) {
40
+ return 'redo';
41
+ }
42
+ return fn(metadata);
43
+ };
44
+ };
45
+ var getMethod = withHistoryMethod(function (_ref) {
46
+ var inputMethod = _ref.inputMethod;
47
+ switch (inputMethod) {
48
+ case _analytics.INPUT_METHOD.CLIPBOARD:
49
+ return 'editor_paste';
50
+ case _analytics.INPUT_METHOD.FLOATING_TB:
51
+ return 'editor_floatingToolbar';
52
+ case _analytics.INPUT_METHOD.AUTO_DETECT:
53
+ case _analytics.INPUT_METHOD.FORMATTING:
54
+ return 'editor_type';
55
+ default:
56
+ return 'unknown';
57
+ }
58
+ });
59
+ var getUpdateType = withHistoryMethod(function (_ref2) {
60
+ var action = _ref2.action;
61
+ switch (action) {
62
+ case _analytics.ACTION.CHANGED_TYPE:
63
+ return 'display_update';
64
+ case _analytics.ACTION.UPDATED:
65
+ return 'link_update';
66
+ default:
67
+ return 'unknown';
68
+ }
69
+ });
70
+ var getDeleteType = withHistoryMethod(function (_ref3) {
71
+ var action = _ref3.action;
72
+ if (action === _analytics.ACTION.UNLINK) {
73
+ return 'unlink';
74
+ }
75
+ return 'delete';
76
+ });
77
+ var getSourceEventFromMetadata = function getSourceEventFromMetadata(metadata) {
78
+ return metadata.sourceEvent instanceof _analyticsNext.UIAnalyticsEvent ? metadata.sourceEvent : null;
79
+ };
80
+
81
+ /**
82
+ * Set display category as `link` if not displaying the link as a smart card
83
+ */
84
+ var displayCategoryFromDisplay = function displayCategoryFromDisplay(display) {
85
+ if (display === 'url') {
86
+ return 'link';
87
+ }
88
+ };
89
+
90
+ /**
91
+ * Binds the @atlaskit/link-analytics callbacks
92
+ * to the editor card plugin state events callbacks interfaces
93
+ */
94
+ var EventsBinding = function EventsBinding(_ref4) {
95
+ var editorView = _ref4.editorView;
96
+ /**
97
+ * These callbacks internally use window.requestIdleCallback/requestAnimationFrame
98
+ * to defer any heavy operations involving network
99
+ *
100
+ * The callbacks themselves should not be deferred, they should be called syncronously the moment
101
+ * the events take place.
102
+ */
103
+ var _useSmartLinkLifecycl = (0, _linkAnalytics.useSmartLinkLifecycleAnalytics)(),
104
+ linkCreated = _useSmartLinkLifecycl.linkCreated,
105
+ linkUpdated = _useSmartLinkLifecycl.linkUpdated,
106
+ linkDeleted = _useSmartLinkLifecycl.linkDeleted;
107
+ var events = (0, _react.useMemo)(function () {
108
+ return {
109
+ created: function created(metadata) {
110
+ var url = metadata.url,
111
+ display = metadata.display,
112
+ nodeContext = metadata.nodeContext;
113
+ var displayCategory = displayCategoryFromDisplay(display);
114
+ var sourceEvent = getSourceEventFromMetadata(metadata);
115
+ var creationMethod = getMethod(metadata);
116
+ linkCreated({
117
+ url: url,
118
+ displayCategory: displayCategory
119
+ }, sourceEvent, {
120
+ display: display,
121
+ nodeContext: nodeContext,
122
+ creationMethod: creationMethod
123
+ });
124
+ },
125
+ updated: function updated(metadata) {
126
+ var url = metadata.url,
127
+ display = metadata.display,
128
+ previousDisplay = metadata.previousDisplay,
129
+ nodeContext = metadata.nodeContext;
130
+ var displayCategory = displayCategoryFromDisplay(display);
131
+ var sourceEvent = getSourceEventFromMetadata(metadata);
132
+ var updateMethod = getMethod(metadata);
133
+ var updateType = getUpdateType(metadata);
134
+ linkUpdated({
135
+ url: url,
136
+ displayCategory: displayCategory
137
+ }, sourceEvent, {
138
+ display: display,
139
+ previousDisplay: previousDisplay,
140
+ nodeContext: nodeContext,
141
+ updateMethod: updateMethod,
142
+ updateType: updateType
143
+ });
144
+ },
145
+ deleted: function deleted(metadata) {
146
+ var url = metadata.url,
147
+ display = metadata.display,
148
+ nodeContext = metadata.nodeContext;
149
+ var displayCategory = displayCategoryFromDisplay(display);
150
+ var sourceEvent = getSourceEventFromMetadata(metadata);
151
+ var deleteMethod = getMethod(metadata);
152
+ var deleteType = getDeleteType(metadata);
153
+ linkDeleted({
154
+ url: url,
155
+ displayCategory: displayCategory
156
+ }, sourceEvent, {
157
+ display: display,
158
+ nodeContext: nodeContext,
159
+ deleteMethod: deleteMethod,
160
+ deleteType: deleteType
161
+ });
162
+ }
163
+ };
164
+ }, [linkCreated, linkUpdated, linkDeleted]);
165
+ (0, _react.useEffect)(function () {
166
+ editorView.dispatch((0, _actions.registerSmartCardEventsNext)(events)(editorView.state.tr));
167
+ }, [events, editorView]);
168
+ return null;
169
+ };
170
+
171
+ // eslint-disable-next-line @repo/internal/react/no-class-components
172
+ exports.EventsBinding = EventsBinding;
173
+ var EditorSmartCardEventsNext = /*#__PURE__*/function (_React$PureComponent) {
174
+ (0, _inherits2.default)(EditorSmartCardEventsNext, _React$PureComponent);
175
+ var _super = _createSuper(EditorSmartCardEventsNext);
176
+ function EditorSmartCardEventsNext() {
177
+ (0, _classCallCheck2.default)(this, EditorSmartCardEventsNext);
178
+ return _super.apply(this, arguments);
179
+ }
180
+ (0, _createClass2.default)(EditorSmartCardEventsNext, [{
181
+ key: "render",
182
+ value: function render() {
183
+ var _getPluginState;
184
+ var cardContext = this.context.contextAdapter.card;
185
+
186
+ /**
187
+ * The analytics hook needs to be able to communicate with the card context
188
+ * If we can't access it, don't mount the event bindings
189
+ * This effectively entirely disables all tracking behaviour
190
+ */
191
+ if (!cardContext) {
192
+ return null;
193
+ }
194
+ var editorAppearance = (_getPluginState = (0, _state.getPluginState)(this.props.editorView.state)) === null || _getPluginState === void 0 ? void 0 : _getPluginState.editorAppearance;
195
+ var analyticsEditorAppearance = (0, _utils.getAnalyticsEditorAppearance)(editorAppearance);
196
+ var analyticsData = {
197
+ attributes: {
198
+ location: analyticsEditorAppearance
199
+ },
200
+ // Below is added for the future implementation of Linking Platform namespaced analytic context
201
+ location: analyticsEditorAppearance
202
+ };
203
+ return /*#__PURE__*/_react.default.createElement(cardContext.Provider, {
204
+ value: cardContext.value
205
+ }, /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
206
+ data: analyticsData
207
+ }, /*#__PURE__*/_react.default.createElement(EventsBinding, this.props)));
208
+ }
209
+ }]);
210
+ return EditorSmartCardEventsNext;
211
+ }(_react.default.PureComponent);
212
+ exports.EditorSmartCardEventsNext = EditorSmartCardEventsNext;
213
+ (0, _defineProperty2.default)(EditorSmartCardEventsNext, "contextTypes", {
214
+ contextAdapter: _propTypes.default.object
215
+ });
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.HyperlinkToolbarAppearance = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _LinkToolbarAppearance = require("./LinkToolbarAppearance");
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ 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); }; }
23
+ 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; } }
24
+ // eslint-disable-next-line @repo/internal/react/no-class-components
25
+ var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
26
+ (0, _inherits2.default)(HyperlinkToolbarAppearance, _Component);
27
+ var _super = _createSuper(HyperlinkToolbarAppearance);
28
+ function HyperlinkToolbarAppearance() {
29
+ var _this;
30
+ (0, _classCallCheck2.default)(this, HyperlinkToolbarAppearance);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _super.call.apply(_super, [this].concat(args));
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
36
+ supportedUrlsMap: new Map()
37
+ });
38
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getProvider", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
39
+ return _regenerator.default.wrap(function _callee2$(_context2) {
40
+ while (1) switch (_context2.prev = _context2.next) {
41
+ case 0:
42
+ if (!_this.cardProvider) {
43
+ _context2.next = 2;
44
+ break;
45
+ }
46
+ return _context2.abrupt("return", _this.cardProvider);
47
+ case 2:
48
+ return _context2.abrupt("return", new Promise(function (resolve) {
49
+ var providerFactory = _this.props.providerFactory;
50
+ providerFactory.subscribe('cardProvider', /*#__PURE__*/function () {
51
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_, cardProvider) {
52
+ return _regenerator.default.wrap(function _callee$(_context) {
53
+ while (1) switch (_context.prev = _context.next) {
54
+ case 0:
55
+ if (cardProvider) {
56
+ _context.next = 2;
57
+ break;
58
+ }
59
+ return _context.abrupt("return");
60
+ case 2:
61
+ _context.next = 4;
62
+ return cardProvider;
63
+ case 4:
64
+ _this.cardProvider = _context.sent;
65
+ resolve(_this.cardProvider);
66
+ case 6:
67
+ case "end":
68
+ return _context.stop();
69
+ }
70
+ }, _callee);
71
+ }));
72
+ return function (_x, _x2) {
73
+ return _ref2.apply(this, arguments);
74
+ };
75
+ }());
76
+ }));
77
+ case 3:
78
+ case "end":
79
+ return _context2.stop();
80
+ }
81
+ }, _callee2);
82
+ })));
83
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resolveUrl", /*#__PURE__*/function () {
84
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(url) {
85
+ var supportedUrlsMap, isUrlSupported, provider;
86
+ return _regenerator.default.wrap(function _callee3$(_context3) {
87
+ while (1) switch (_context3.prev = _context3.next) {
88
+ case 0:
89
+ supportedUrlsMap = _this.state.supportedUrlsMap;
90
+ if (!supportedUrlsMap.has(url)) {
91
+ _context3.next = 3;
92
+ break;
93
+ }
94
+ return _context3.abrupt("return");
95
+ case 3:
96
+ isUrlSupported = false;
97
+ _context3.prev = 4;
98
+ _context3.next = 7;
99
+ return _this.getProvider();
100
+ case 7:
101
+ provider = _context3.sent;
102
+ _context3.next = 10;
103
+ return provider.findPattern(url);
104
+ case 10:
105
+ isUrlSupported = _context3.sent;
106
+ _context3.next = 16;
107
+ break;
108
+ case 13:
109
+ _context3.prev = 13;
110
+ _context3.t0 = _context3["catch"](4);
111
+ isUrlSupported = false;
112
+ case 16:
113
+ supportedUrlsMap.set(url, isUrlSupported);
114
+ _this.setState({
115
+ supportedUrlsMap: supportedUrlsMap
116
+ });
117
+ case 18:
118
+ case "end":
119
+ return _context3.stop();
120
+ }
121
+ }, _callee3, null, [[4, 13]]);
122
+ }));
123
+ return function (_x3) {
124
+ return _ref3.apply(this, arguments);
125
+ };
126
+ }());
127
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidMount", function () {
128
+ return _this.resolveUrl(_this.props.url);
129
+ });
130
+ return _this;
131
+ }
132
+ (0, _createClass2.default)(HyperlinkToolbarAppearance, [{
133
+ key: "UNSAFE_componentWillReceiveProps",
134
+ value:
135
+ // needed so we display the right state on the Toolbar while the same Toolbar
136
+ // instance is visible and we click other link
137
+ function UNSAFE_componentWillReceiveProps(nextProps) {
138
+ if (nextProps.url !== this.props.url) {
139
+ this.resolveUrl(nextProps.url);
140
+ }
141
+ }
142
+ }, {
143
+ key: "render",
144
+ value: function render() {
145
+ var _this$props = this.props,
146
+ url = _this$props.url,
147
+ intl = _this$props.intl,
148
+ editorView = _this$props.editorView,
149
+ editorState = _this$props.editorState,
150
+ cardOptions = _this$props.cardOptions,
151
+ platform = _this$props.platform,
152
+ editorAnalyticsApi = _this$props.editorAnalyticsApi,
153
+ cardActions = _this$props.cardActions;
154
+ var supportedUrlsMap = this.state.supportedUrlsMap;
155
+ if (!supportedUrlsMap.get(url)) {
156
+ return null;
157
+ }
158
+ return /*#__PURE__*/_react.default.createElement(_LinkToolbarAppearance.LinkToolbarAppearance, {
159
+ key: "link-appearance",
160
+ url: url,
161
+ intl: intl,
162
+ editorView: editorView,
163
+ editorState: editorState,
164
+ allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
165
+ allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
166
+ platform: platform,
167
+ editorAnalyticsApi: editorAnalyticsApi,
168
+ cardActions: cardActions
169
+ });
170
+ }
171
+ }]);
172
+ return HyperlinkToolbarAppearance;
173
+ }(_react.Component);
174
+ exports.HyperlinkToolbarAppearance = HyperlinkToolbarAppearance;