@atlaskit/link-picker 1.8.5 → 1.9.1

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,17 @@
1
1
  # @atlaskit/link-picker
2
2
 
3
+ ## 1.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`548071512ad`](https://bitbucket.org/atlassian/atlassian-frontend/commits/548071512ad) - [ux] Add truncating logic to metadata to be constrained to one line
8
+
9
+ ## 1.9.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`26ca68a3993`](https://bitbucket.org/atlassian/atlassian-frontend/commits/26ca68a3993) - Add support for the onSubmit handler prop to receive a second argument, being a clone of the form submitted analytic event
14
+
3
15
  ## 1.8.5
4
16
 
5
17
  ### Patch Changes
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ComposedLinkPicker = void 0;
8
+ exports.PACKAGE_DATA = exports.ComposedLinkPicker = void 0;
9
9
 
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
11
 
@@ -32,6 +32,7 @@ var PACKAGE_DATA = {
32
32
  packageVersion: _version.version,
33
33
  componentName: _constants.COMPONENT_NAME
34
34
  };
35
+ exports.PACKAGE_DATA = PACKAGE_DATA;
35
36
  var LazyLinkPicker = (0, _reactLooselyLazy.lazyForPaint)(function () {
36
37
  return Promise.resolve().then(function () {
37
38
  return _interopRequireWildcard(require('./link-picker'));
@@ -232,7 +232,11 @@ function LinkPicker(_ref) {
232
232
  }
233
233
  }, [activeIndex, items]);
234
234
  var handleInsert = (0, _react.useCallback)(function (url, title, inputType) {
235
- var event = createAnalyticsEvent((0, _analytics.default)('ui.form.submitted.linkPicker', {}));
235
+ var event = createAnalyticsEvent((0, _analytics.default)('ui.form.submitted.linkPicker', {})); // Clone the event so that it can be emitted for consumer usage
236
+ // This must happen BEFORE the original event is fired!
237
+
238
+ var consumerEvent = event.clone(); // Dispatch the original event to our channel
239
+
236
240
  event.fire(_constants.ANALYTICS_CHANNEL);
237
241
  onSubmit(_objectSpread({
238
242
  url: url,
@@ -243,7 +247,7 @@ function LinkPicker(_ref) {
243
247
  }
244
248
  }, inputType === 'manual' ? {
245
249
  rawUrl: state.url
246
- } : {}));
250
+ } : {}), consumerEvent);
247
251
  }, [displayText, onSubmit, state.url, createAnalyticsEvent]);
248
252
  var handleSelected = (0, _react.useCallback)(function (objectId) {
249
253
  var selectedItem = items === null || items === void 0 ? void 0 : items.find(function (item) {
@@ -63,7 +63,13 @@ var LinkSearchListItem = function LinkSearchListItem(_ref) {
63
63
  }, item.name), (0, _react2.jsx)("div", {
64
64
  "data-testid": "".concat(_.testIds.searchResultItem, "-subtitle"),
65
65
  css: _styled.listItemContextStyles
66
- }, container, container && date && (0, _react2.jsx)(_react.Fragment, null, "\xA0 \u2022\xA0 "), date && (0, _react2.jsx)(_react.Fragment, null, formatDate(date)))));
66
+ }, container && (0, _react2.jsx)("div", {
67
+ css: _styled.listItemContainerStyles
68
+ }, (0, _react2.jsx)("span", {
69
+ css: _styled.listItemContainerInnerStyles
70
+ }, container)), date && (0, _react2.jsx)("div", {
71
+ css: _styled.listItemContainerInnerStyles
72
+ }, container && (0, _react2.jsx)(_react.Fragment, null, "\xA0 \u2022\xA0 "), (0, _react2.jsx)(_react.Fragment, null, formatDate(date))))));
67
73
  };
68
74
 
69
75
  var _default = (0, _reactIntlNext.injectIntl)(LinkSearchListItem);
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.relativeFontSizeToBase16 = exports.listItemNameStyles = exports.listItemContextStyles = exports.itemNameStyles = exports.itemIconStyles = exports.imgStyles = exports.composeListItemStyles = void 0;
8
+ exports.relativeFontSizeToBase16 = exports.listItemNameStyles = exports.listItemContextStyles = exports.listItemContainerStyles = exports.listItemContainerInnerStyles = exports.itemNameStyles = exports.itemIconStyles = exports.imgStyles = exports.composeListItemStyles = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -19,7 +19,7 @@ var _constants = require("@atlaskit/theme/constants");
19
19
 
20
20
  var _theme = require("@atlaskit/theme");
21
21
 
22
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
22
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
23
23
 
24
24
  var relativeFontSizeToBase16 = function relativeFontSizeToBase16(px) {
25
25
  if (typeof px === 'string') {
@@ -51,9 +51,13 @@ var itemNameStyles = (0, _react.css)(_templateObject6 || (_templateObject6 = (0,
51
51
  exports.itemNameStyles = itemNameStyles;
52
52
  var listItemNameStyles = (0, _react.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 20px;\n"])), (0, _tokens.token)('color.text', _colors.N800));
53
53
  exports.listItemNameStyles = listItemNameStyles;
54
- var listItemContextStyles = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n"])), (0, _tokens.token)('color.text', _colors.N300), relativeFontSizeToBase16((0, _theme.fontSizeSmall)()), (0, _theme.fontSize)());
54
+ var listItemContextStyles = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n display: flex;\n"])), (0, _tokens.token)('color.text', _colors.N300), relativeFontSizeToBase16((0, _theme.fontSizeSmall)()), (0, _theme.fontSize)());
55
55
  exports.listItemContextStyles = listItemContextStyles;
56
- var itemIconStyles = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), (0, _constants.gridSize)() * 2);
56
+ var listItemContainerStyles = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
57
+ exports.listItemContainerStyles = listItemContainerStyles;
58
+ var listItemContainerInnerStyles = (0, _react.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n white-space: nowrap;\n"])));
59
+ exports.listItemContainerInnerStyles = listItemContainerInnerStyles;
60
+ var itemIconStyles = (0, _react.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), (0, _constants.gridSize)() * 2);
57
61
  exports.itemIconStyles = itemIconStyles;
58
- var imgStyles = (0, _react.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n max-width: ", "px;\n"])), (0, _constants.gridSize)() * 2);
62
+ var imgStyles = (0, _react.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n max-width: ", "px;\n"])), (0, _constants.gridSize)() * 2);
59
63
  exports.imgStyles = imgStyles;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.8.5",
3
+ "version": "1.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -5,7 +5,7 @@ import { COMPONENT_NAME, ANALYTICS_CHANNEL } from '../common/constants';
5
5
  import { name as packageName, version as packageVersion } from '../version.json';
6
6
  import { ErrorBoundaryFallback } from './error-boundary-fallback';
7
7
  import { LoaderFallback } from './loader-fallback';
8
- const PACKAGE_DATA = {
8
+ export const PACKAGE_DATA = {
9
9
  packageName,
10
10
  packageVersion,
11
11
  componentName: COMPONENT_NAME
@@ -184,7 +184,11 @@ function LinkPicker({
184
184
  }
185
185
  }, [activeIndex, items]);
186
186
  const handleInsert = useCallback((url, title, inputType) => {
187
- const event = createAnalyticsEvent(createEventPayload('ui.form.submitted.linkPicker', {}));
187
+ const event = createAnalyticsEvent(createEventPayload('ui.form.submitted.linkPicker', {})); // Clone the event so that it can be emitted for consumer usage
188
+ // This must happen BEFORE the original event is fired!
189
+
190
+ const consumerEvent = event.clone(); // Dispatch the original event to our channel
191
+
188
192
  event.fire(ANALYTICS_CHANNEL);
189
193
  onSubmit({
190
194
  url,
@@ -196,7 +200,7 @@ function LinkPicker({
196
200
  ...(inputType === 'manual' ? {
197
201
  rawUrl: state.url
198
202
  } : {})
199
- });
203
+ }, consumerEvent);
200
204
  }, [displayText, onSubmit, state.url, createAnalyticsEvent]);
201
205
  const handleSelected = useCallback(objectId => {
202
206
  const selectedItem = items === null || items === void 0 ? void 0 : items.find(item => item.objectId === objectId);
@@ -3,7 +3,7 @@ import { Fragment } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import { injectIntl } from 'react-intl-next';
5
5
  import { transformTimeStamp } from '../transformTimeStamp';
6
- import { itemNameStyles, itemIconStyles, listItemContextStyles, listItemNameStyles, composeListItemStyles, imgStyles } from './styled';
6
+ import { itemNameStyles, itemIconStyles, listItemContextStyles, listItemNameStyles, composeListItemStyles, imgStyles, listItemContainerStyles, listItemContainerInnerStyles } from './styled';
7
7
  import { testIds } from '../';
8
8
 
9
9
  const LinkSearchListItem = ({
@@ -45,7 +45,13 @@ const LinkSearchListItem = ({
45
45
  }, item.name), jsx("div", {
46
46
  "data-testid": `${testIds.searchResultItem}-subtitle`,
47
47
  css: listItemContextStyles
48
- }, container, container && date && jsx(Fragment, null, "\xA0 \u2022\xA0 "), date && jsx(Fragment, null, formatDate(date)))));
48
+ }, container && jsx("div", {
49
+ css: listItemContainerStyles
50
+ }, jsx("span", {
51
+ css: listItemContainerInnerStyles
52
+ }, container)), date && jsx("div", {
53
+ css: listItemContainerInnerStyles
54
+ }, container && jsx(Fragment, null, "\xA0 \u2022\xA0 "), jsx(Fragment, null, formatDate(date))))));
49
55
  };
50
56
 
51
57
  export default injectIntl(LinkSearchListItem);
@@ -54,6 +54,14 @@ export const listItemContextStyles = css`
54
54
  color: ${token('color.text', N300)};
55
55
  font-size: ${relativeFontSizeToBase16(fontSizeSmall())};
56
56
  line-height: ${fontSize()}px;
57
+ display: flex;
58
+ `;
59
+ export const listItemContainerStyles = css`
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ `;
63
+ export const listItemContainerInnerStyles = css`
64
+ white-space: nowrap;
57
65
  `;
58
66
  export const itemIconStyles = css`
59
67
  min-width: ${gridSize() * 2}px;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.8.5",
3
+ "version": "1.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -5,7 +5,7 @@ import { COMPONENT_NAME, ANALYTICS_CHANNEL } from '../common/constants';
5
5
  import { name as packageName, version as packageVersion } from '../version.json';
6
6
  import { ErrorBoundaryFallback } from './error-boundary-fallback';
7
7
  import { LoaderFallback } from './loader-fallback';
8
- var PACKAGE_DATA = {
8
+ export var PACKAGE_DATA = {
9
9
  packageName: packageName,
10
10
  packageVersion: packageVersion,
11
11
  componentName: COMPONENT_NAME
@@ -188,7 +188,11 @@ function LinkPicker(_ref) {
188
188
  }
189
189
  }, [activeIndex, items]);
190
190
  var handleInsert = useCallback(function (url, title, inputType) {
191
- var event = createAnalyticsEvent(createEventPayload('ui.form.submitted.linkPicker', {}));
191
+ var event = createAnalyticsEvent(createEventPayload('ui.form.submitted.linkPicker', {})); // Clone the event so that it can be emitted for consumer usage
192
+ // This must happen BEFORE the original event is fired!
193
+
194
+ var consumerEvent = event.clone(); // Dispatch the original event to our channel
195
+
192
196
  event.fire(ANALYTICS_CHANNEL);
193
197
  onSubmit(_objectSpread({
194
198
  url: url,
@@ -199,7 +203,7 @@ function LinkPicker(_ref) {
199
203
  }
200
204
  }, inputType === 'manual' ? {
201
205
  rawUrl: state.url
202
- } : {}));
206
+ } : {}), consumerEvent);
203
207
  }, [displayText, onSubmit, state.url, createAnalyticsEvent]);
204
208
  var handleSelected = useCallback(function (objectId) {
205
209
  var selectedItem = items === null || items === void 0 ? void 0 : items.find(function (item) {
@@ -3,7 +3,7 @@ import { Fragment } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import { injectIntl } from 'react-intl-next';
5
5
  import { transformTimeStamp } from '../transformTimeStamp';
6
- import { itemNameStyles, itemIconStyles, listItemContextStyles, listItemNameStyles, composeListItemStyles, imgStyles } from './styled';
6
+ import { itemNameStyles, itemIconStyles, listItemContextStyles, listItemNameStyles, composeListItemStyles, imgStyles, listItemContainerStyles, listItemContainerInnerStyles } from './styled';
7
7
  import { testIds } from '../';
8
8
 
9
9
  var LinkSearchListItem = function LinkSearchListItem(_ref) {
@@ -51,7 +51,13 @@ var LinkSearchListItem = function LinkSearchListItem(_ref) {
51
51
  }, item.name), jsx("div", {
52
52
  "data-testid": "".concat(testIds.searchResultItem, "-subtitle"),
53
53
  css: listItemContextStyles
54
- }, container, container && date && jsx(Fragment, null, "\xA0 \u2022\xA0 "), date && jsx(Fragment, null, formatDate(date)))));
54
+ }, container && jsx("div", {
55
+ css: listItemContainerStyles
56
+ }, jsx("span", {
57
+ css: listItemContainerInnerStyles
58
+ }, container)), date && jsx("div", {
59
+ css: listItemContainerInnerStyles
60
+ }, container && jsx(Fragment, null, "\xA0 \u2022\xA0 "), jsx(Fragment, null, formatDate(date))))));
55
61
  };
56
62
 
57
63
  export default injectIntl(LinkSearchListItem);
@@ -1,6 +1,6 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
4
4
 
5
5
  import { token } from '@atlaskit/tokens';
6
6
  import { css } from '@emotion/react';
@@ -32,6 +32,8 @@ export var composeListItemStyles = function composeListItemStyles() {
32
32
  };
33
33
  export var itemNameStyles = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n overflow: hidden;\n"])));
34
34
  export var listItemNameStyles = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 20px;\n"])), token('color.text', N800));
35
- export var listItemContextStyles = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n"])), token('color.text', N300), relativeFontSizeToBase16(fontSizeSmall()), fontSize());
36
- export var itemIconStyles = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), gridSize() * 2);
37
- export var imgStyles = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n max-width: ", "px;\n"])), gridSize() * 2);
35
+ export var listItemContextStyles = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n display: flex;\n"])), token('color.text', N300), relativeFontSizeToBase16(fontSizeSmall()), fontSize());
36
+ export var listItemContainerStyles = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
37
+ export var listItemContainerInnerStyles = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n white-space: nowrap;\n"])));
38
+ export var itemIconStyles = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), gridSize() * 2);
39
+ export var imgStyles = css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n max-width: ", "px;\n"])), gridSize() * 2);
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.8.5",
3
+ "version": "1.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,8 @@
1
1
  import React from 'react';
2
2
  import { LinkPickerProps } from './link-picker';
3
+ export declare const PACKAGE_DATA: {
4
+ packageName: any;
5
+ packageVersion: any;
6
+ componentName: string;
7
+ };
3
8
  export declare const ComposedLinkPicker: React.MemoExoticComponent<(props: LinkPickerProps) => JSX.Element>;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
2
3
  import { LinkInputType, LinkPickerPlugin } from '../types';
3
4
  export declare const RECENT_SEARCH_LIST_SIZE = 5;
4
5
  export declare const CONTACT_SUPPORT_LINK = "https://support.atlassian.com/contact/";
@@ -42,8 +43,10 @@ interface OnSubmitParameter {
42
43
  rawUrl?: string;
43
44
  }
44
45
  export interface LinkPickerProps {
45
- /** Callback to fire on form submission. */
46
- onSubmit: (arg: OnSubmitParameter) => void;
46
+ /**
47
+ * Callback to fire on form submission.
48
+ */
49
+ onSubmit: (arg: OnSubmitParameter, analytic?: UIAnalyticsEvent | null) => void;
47
50
  /** Callback to fire when the cancel button is clicked. */
48
51
  onCancel: () => void;
49
52
  /** Callback to fire when content is changed inside the link picker e.g. items, when loading, tabs */
@@ -3,5 +3,7 @@ export declare const composeListItemStyles: (active?: boolean, selected?: boolea
3
3
  export declare const itemNameStyles: import("@emotion/react").SerializedStyles;
4
4
  export declare const listItemNameStyles: import("@emotion/react").SerializedStyles;
5
5
  export declare const listItemContextStyles: import("@emotion/react").SerializedStyles;
6
+ export declare const listItemContainerStyles: import("@emotion/react").SerializedStyles;
7
+ export declare const listItemContainerInnerStyles: import("@emotion/react").SerializedStyles;
6
8
  export declare const itemIconStyles: import("@emotion/react").SerializedStyles;
7
9
  export declare const imgStyles: import("@emotion/react").SerializedStyles;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.8.5",
3
+ "version": "1.9.1",
4
4
  "description": "Standalone link picker",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "publishConfig": {
@@ -56,6 +56,7 @@
56
56
  "@af/codegen": "*",
57
57
  "@atlaskit/activity-provider": "^2.3.2",
58
58
  "@atlaskit/docs": "*",
59
+ "@atlaskit/link-analytics": "^1.1.0",
59
60
  "@atlaskit/link-test-helpers": "^1.4.0",
60
61
  "@atlaskit/popup": "^1.4.0",
61
62
  "@atlaskit/ssr": "*",
@@ -63,8 +64,8 @@
63
64
  "@atlaskit/visual-regression": "*",
64
65
  "@atlaskit/webdriver-runner": "*",
65
66
  "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
66
- "@atlassian/link-picker-atlassian-plugin": "^18.0.0",
67
- "@atlassian/link-picker-plugins": "^5.1.0",
67
+ "@atlassian/link-picker-atlassian-plugin": "^19.0.0",
68
+ "@atlassian/link-picker-plugins": "^6.0.0",
68
69
  "@atlassian/recent-work-client": "^1.6.0",
69
70
  "@atlassian/search-provider": "^2.3.0",
70
71
  "@testing-library/dom": "^8.17.1",
package/report.api.md CHANGED
@@ -10,6 +10,7 @@
10
10
  import { MessageDescriptor } from 'react-intl-next';
11
11
  import { default as React_2 } from 'react';
12
12
  import { ReactNode } from 'react';
13
+ import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
13
14
 
14
15
  export declare type LinkInputType = 'manual' | 'typeAhead';
15
16
 
@@ -35,8 +36,13 @@ export declare type LinkPickerPluginErrorFallback = (
35
36
  ) => ReactNode;
36
37
 
37
38
  export declare interface LinkPickerProps {
38
- /** Callback to fire on form submission. */
39
- onSubmit: (arg: OnSubmitParameter) => void;
39
+ /**
40
+ * Callback to fire on form submission.
41
+ */
42
+ onSubmit: (
43
+ arg: OnSubmitParameter,
44
+ analytic?: UIAnalyticsEvent | null,
45
+ ) => void;
40
46
  /** Callback to fire when the cancel button is clicked. */
41
47
  onCancel: () => void;
42
48
  /** Callback to fire when content is changed inside the link picker e.g. items, when loading, tabs */