@atlaskit/editor-plugin-extension 5.2.4 → 5.2.6
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 +20 -0
- package/dist/cjs/extensionPlugin.js +1 -1
- package/dist/cjs/pm-plugins/toolbar.js +5 -3
- package/dist/cjs/pm-plugins/utils.js +3 -5
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +29 -10
- package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +7 -1
- package/dist/cjs/ui/ConfigPanel/FieldMessages.js +3 -3
- package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +10 -6
- package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +4 -2
- package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +6 -4
- package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +4 -2
- package/dist/cjs/ui/ConfigPanel/Fields/Date.js +4 -2
- package/dist/cjs/ui/ConfigPanel/Fields/DateRange.js +10 -5
- package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +2 -1
- package/dist/cjs/ui/ConfigPanel/Fields/Number.js +4 -2
- package/dist/cjs/ui/ConfigPanel/Fields/RadioGroup.js +2 -1
- package/dist/cjs/ui/ConfigPanel/Fields/Select.js +2 -1
- package/dist/cjs/ui/ConfigPanel/Fields/String.js +4 -2
- package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +5 -3
- package/dist/cjs/ui/ConfigPanel/FormContent.js +18 -5
- package/dist/cjs/ui/ConfigPanel/FormErrorBoundary.js +3 -3
- package/dist/cjs/ui/ConfigPanel/LoadingState.js +28 -1
- package/dist/cjs/ui/useConfigPanelPluginHook.js +2 -2
- package/dist/es2019/extensionPlugin.js +1 -1
- package/dist/es2019/pm-plugins/toolbar.js +5 -4
- package/dist/es2019/pm-plugins/utils.js +3 -5
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +18 -6
- package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +7 -1
- package/dist/es2019/ui/ConfigPanel/FieldMessages.js +1 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +9 -5
- package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +4 -2
- package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +5 -3
- package/dist/es2019/ui/ConfigPanel/Fields/CustomSelect.js +4 -2
- package/dist/es2019/ui/ConfigPanel/Fields/Date.js +4 -2
- package/dist/es2019/ui/ConfigPanel/Fields/DateRange.js +10 -5
- package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Number.js +4 -2
- package/dist/es2019/ui/ConfigPanel/Fields/RadioGroup.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Select.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/String.js +4 -2
- package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +5 -3
- package/dist/es2019/ui/ConfigPanel/FormContent.js +19 -5
- package/dist/es2019/ui/ConfigPanel/FormErrorBoundary.js +1 -1
- package/dist/es2019/ui/ConfigPanel/LoadingState.js +26 -1
- package/dist/es2019/ui/useConfigPanelPluginHook.js +1 -1
- package/dist/esm/extensionPlugin.js +1 -1
- package/dist/esm/pm-plugins/toolbar.js +5 -3
- package/dist/esm/pm-plugins/utils.js +3 -5
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +29 -10
- package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +7 -1
- package/dist/esm/ui/ConfigPanel/FieldMessages.js +1 -1
- package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +9 -5
- package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +4 -2
- package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +5 -3
- package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +4 -2
- package/dist/esm/ui/ConfigPanel/Fields/Date.js +4 -2
- package/dist/esm/ui/ConfigPanel/Fields/DateRange.js +10 -5
- package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/Number.js +4 -2
- package/dist/esm/ui/ConfigPanel/Fields/RadioGroup.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/Select.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/String.js +4 -2
- package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +5 -3
- package/dist/esm/ui/ConfigPanel/FormContent.js +18 -5
- package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +1 -1
- package/dist/esm/ui/ConfigPanel/LoadingState.js +28 -1
- package/dist/esm/ui/useConfigPanelPluginHook.js +1 -1
- package/dist/types/extensionPluginType.d.ts +3 -1
- package/dist/types/pm-plugins/toolbar.d.ts +2 -1
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +4 -3
- package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +2 -2
- package/dist/types/ui/ConfigPanel/FormContent.d.ts +1 -1
- package/dist/types/ui/ConfigPanel/LoadingState.d.ts +3 -1
- package/dist/types/ui/ConfigPanel/types.d.ts +1 -0
- package/dist/types-ts4.5/extensionPluginType.d.ts +3 -1
- package/dist/types-ts4.5/pm-plugins/toolbar.d.ts +3 -1
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +4 -3
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +2 -2
- package/dist/types-ts4.5/ui/ConfigPanel/FormContent.d.ts +1 -1
- package/dist/types-ts4.5/ui/ConfigPanel/LoadingState.d.ts +3 -1
- package/dist/types-ts4.5/ui/ConfigPanel/types.d.ts +1 -0
- package/package.json +9 -8
|
@@ -183,6 +183,7 @@ var breakoutOptions = function breakoutOptions(state, formatMessage, extensionSt
|
|
|
183
183
|
return editorExperiment('platform_editor_controls', 'variant1') ? breakoutDropdownOptions(state, formatMessage, breakoutEnabled, editorAnalyticsAPI) : breakoutButtonListOptions(state, formatMessage, extensionState, breakoutEnabled, editorAnalyticsAPI);
|
|
184
184
|
};
|
|
185
185
|
var editButton = function editButton(formatMessage, extensionState, applyChangeToContextPanel, editorAnalyticsAPI) {
|
|
186
|
+
var isDisabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
186
187
|
if (!extensionState.showEditButton) {
|
|
187
188
|
return [];
|
|
188
189
|
}
|
|
@@ -202,7 +203,8 @@ var editButton = function editButton(formatMessage, extensionState, applyChangeT
|
|
|
202
203
|
},
|
|
203
204
|
title: formatMessage(messages.edit),
|
|
204
205
|
tabIndex: null,
|
|
205
|
-
focusEditoronEnter: true
|
|
206
|
+
focusEditoronEnter: true,
|
|
207
|
+
disabled: isDisabled
|
|
206
208
|
}];
|
|
207
209
|
if (editorExperiment('platform_editor_controls', 'variant1')) {
|
|
208
210
|
editButtonItems.push({
|
|
@@ -262,7 +264,7 @@ export var getToolbarConfig = function getToolbarConfig(_ref) {
|
|
|
262
264
|
editorAnalyticsAPI = _ref.editorAnalyticsAPI,
|
|
263
265
|
extensionApi = _ref.extensionApi;
|
|
264
266
|
return function (state, intl) {
|
|
265
|
-
var _hoverDecoration5, _hoverDecoration6, _hoverDecoration7, _hoverDecoration8;
|
|
267
|
+
var _extensionApi$connect, _hoverDecoration5, _hoverDecoration6, _hoverDecoration7, _hoverDecoration8;
|
|
266
268
|
var formatMessage = intl.formatMessage;
|
|
267
269
|
var extensionState = getPluginState(state);
|
|
268
270
|
if (fg('platform_editor_legacy_content_macro')) {
|
|
@@ -276,7 +278,7 @@ export var getToolbarConfig = function getToolbarConfig(_ref) {
|
|
|
276
278
|
return;
|
|
277
279
|
}
|
|
278
280
|
var nodeType = [state.schema.nodes.extension, state.schema.nodes.inlineExtension, state.schema.nodes.bodiedExtension, state.schema.nodes.multiBodiedExtension];
|
|
279
|
-
var editButtonItems = editButton(formatMessage, extensionState, applyChangeToContextPanel, editorAnalyticsAPI);
|
|
281
|
+
var editButtonItems = editButton(formatMessage, extensionState, applyChangeToContextPanel, editorAnalyticsAPI, editorExperiment('platform_editor_offline_editing_web', true) && (extensionApi === null || extensionApi === void 0 || (_extensionApi$connect = extensionApi.connectivity) === null || _extensionApi$connect === void 0 || (_extensionApi$connect = _extensionApi$connect.sharedState) === null || _extensionApi$connect === void 0 || (_extensionApi$connect = _extensionApi$connect.currentState()) === null || _extensionApi$connect === void 0 ? void 0 : _extensionApi$connect.mode) === 'offline');
|
|
280
282
|
var breakoutItems = breakoutOptions(state, formatMessage, extensionState, breakoutEnabled, editorAnalyticsAPI);
|
|
281
283
|
var extensionObj = getSelectedExtension(state, true);
|
|
282
284
|
|
|
@@ -42,11 +42,9 @@ export var getSelectedDomElement = function getSelectedDomElement(schema, domAtP
|
|
|
42
42
|
var isContentExtension = selectedExtensionNode.node.type !== schema.nodes.bodiedExtension;
|
|
43
43
|
return (
|
|
44
44
|
// Content extension can be nested in bodied-extension, the following check is necessary for that case
|
|
45
|
-
(isContentExtension
|
|
46
|
-
//
|
|
47
|
-
selectedExtensionDomNode.querySelector('.extension-container')
|
|
48
|
-
// Try searching up and then down
|
|
49
|
-
closestElement(selectedExtensionDomNode, '.extension-container') || selectedExtensionDomNode.querySelector('.extension-container')) || selectedExtensionDomNode
|
|
45
|
+
(isContentExtension // Search down
|
|
46
|
+
? selectedExtensionDomNode.querySelector('.extension-container') // Try searching up and then down
|
|
47
|
+
: closestElement(selectedExtensionDomNode, '.extension-container') || selectedExtensionDomNode.querySelector('.extension-container')) || selectedExtensionDomNode
|
|
50
48
|
);
|
|
51
49
|
};
|
|
52
50
|
export var getDataConsumerMark = function getDataConsumerMark(newNode) {
|
|
@@ -24,6 +24,7 @@ import { isTabGroup, configPanelMessages as messages } from '@atlaskit/editor-co
|
|
|
24
24
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
25
25
|
import Form, { FormFooter } from '@atlaskit/form';
|
|
26
26
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
27
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
27
28
|
import { ALLOWED_LOGGED_MACRO_PARAMS } from './constants';
|
|
28
29
|
import { DescriptionSummary } from './DescriptionSummary';
|
|
29
30
|
import ErrorMessage from './ErrorMessage';
|
|
@@ -47,7 +48,8 @@ function ConfigForm(_ref) {
|
|
|
47
48
|
parameters = _ref.parameters,
|
|
48
49
|
submitting = _ref.submitting,
|
|
49
50
|
contextIdentifierProvider = _ref.contextIdentifierProvider,
|
|
50
|
-
featureFlags = _ref.featureFlags
|
|
51
|
+
featureFlags = _ref.featureFlags,
|
|
52
|
+
disableFields = _ref.disableFields;
|
|
51
53
|
useEffect(function () {
|
|
52
54
|
if (fields) {
|
|
53
55
|
var firstDuplicateField = findDuplicateFields(fields);
|
|
@@ -71,7 +73,8 @@ function ConfigForm(_ref) {
|
|
|
71
73
|
onFieldChange: onFieldChange,
|
|
72
74
|
firstVisibleFieldName: firstVisibleFieldName,
|
|
73
75
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
74
|
-
featureFlags: featureFlags
|
|
76
|
+
featureFlags: featureFlags,
|
|
77
|
+
isDisabled: disableFields
|
|
75
78
|
}), /*#__PURE__*/React.createElement("div", {
|
|
76
79
|
style: canSave ? {} : {
|
|
77
80
|
display: 'none'
|
|
@@ -200,20 +203,33 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
|
|
|
200
203
|
return serialize(extensionManifest, _this.backfillTabFormData(fields, formData, _this.state.currentParameters), fields);
|
|
201
204
|
case 7:
|
|
202
205
|
serializedData = _context.sent;
|
|
206
|
+
if (!editorExperiment('platform_editor_offline_editing_web', true, {
|
|
207
|
+
exposure: true
|
|
208
|
+
})) {
|
|
209
|
+
_context.next = 13;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
_context.next = 11;
|
|
213
|
+
return onChange(serializedData);
|
|
214
|
+
case 11:
|
|
215
|
+
_context.next = 14;
|
|
216
|
+
break;
|
|
217
|
+
case 13:
|
|
203
218
|
onChange(serializedData);
|
|
204
|
-
|
|
219
|
+
case 14:
|
|
220
|
+
_context.next = 20;
|
|
205
221
|
break;
|
|
206
|
-
case
|
|
207
|
-
_context.prev =
|
|
222
|
+
case 16:
|
|
223
|
+
_context.prev = 16;
|
|
208
224
|
_context.t0 = _context["catch"](4);
|
|
209
225
|
autoSaveReject === null || autoSaveReject === void 0 || autoSaveReject(_context.t0);
|
|
210
226
|
// eslint-disable-next-line no-console
|
|
211
227
|
console.error("Error serializing parameters", _context.t0);
|
|
212
|
-
case
|
|
228
|
+
case 20:
|
|
213
229
|
case "end":
|
|
214
230
|
return _context.stop();
|
|
215
231
|
}
|
|
216
|
-
}, _callee, null, [[4,
|
|
232
|
+
}, _callee, null, [[4, 16]]);
|
|
217
233
|
}));
|
|
218
234
|
return function (_x) {
|
|
219
235
|
return _ref3.apply(this, arguments);
|
|
@@ -453,7 +469,8 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
|
|
|
453
469
|
onFieldChange: onFieldChange,
|
|
454
470
|
parameters: currentParameters,
|
|
455
471
|
submitting: submitting,
|
|
456
|
-
featureFlags: featureFlags
|
|
472
|
+
featureFlags: featureFlags,
|
|
473
|
+
disableFields: _this2.props.disableFields
|
|
457
474
|
}))
|
|
458
475
|
);
|
|
459
476
|
});
|
|
@@ -474,7 +491,8 @@ function ConfigFormIntlWithBoundary(_ref6) {
|
|
|
474
491
|
isLoading = _ref6.isLoading,
|
|
475
492
|
hasParsedParameters = _ref6.hasParsedParameters,
|
|
476
493
|
firstVisibleFieldName = _ref6.firstVisibleFieldName,
|
|
477
|
-
errorMessage = _ref6.errorMessage
|
|
494
|
+
errorMessage = _ref6.errorMessage,
|
|
495
|
+
disableFields = _ref6.disableFields;
|
|
478
496
|
var _useSharedPluginState = useSharedPluginState(api, ['contextIdentifier']),
|
|
479
497
|
contextIdentifierState = _useSharedPluginState.contextIdentifierState;
|
|
480
498
|
var _ref7 = contextIdentifierState !== null && contextIdentifierState !== void 0 ? contextIdentifierState : {},
|
|
@@ -496,7 +514,8 @@ function ConfigFormIntlWithBoundary(_ref6) {
|
|
|
496
514
|
parameters: parameters,
|
|
497
515
|
submitting: submitting,
|
|
498
516
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
499
|
-
featureFlags: featureFlags
|
|
517
|
+
featureFlags: featureFlags,
|
|
518
|
+
disableFields: disableFields
|
|
500
519
|
}));
|
|
501
520
|
}
|
|
502
521
|
var result = withAnalyticsContext({
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { bind } from 'bind-event-listener';
|
|
4
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
5
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
4
6
|
import ConfigPanel from './ConfigPanel';
|
|
5
7
|
import { useStateFromPromise } from './use-state-from-promise';
|
|
6
8
|
var getFieldsDefinitionFn = function getFieldsDefinitionFn(extensionManifest, nodeKey) {
|
|
@@ -116,6 +118,9 @@ export default function FieldsLoader(_ref) {
|
|
|
116
118
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
117
119
|
errorMessage = _useState6[0],
|
|
118
120
|
setErrorMessage = _useState6[1];
|
|
121
|
+
var connectivityState = useSharedPluginStateSelector(api, 'connectivity.mode', {
|
|
122
|
+
disabled: editorExperiment('platform_editor_offline_editing_web', false)
|
|
123
|
+
});
|
|
119
124
|
return /*#__PURE__*/React.createElement(FieldDefinitionsPromiseResolver, {
|
|
120
125
|
setErrorMessage: setErrorMessage,
|
|
121
126
|
extensionManifest: extensionManifest,
|
|
@@ -138,7 +143,8 @@ export default function FieldsLoader(_ref) {
|
|
|
138
143
|
featureFlags: featureFlags
|
|
139
144
|
// Remove below prop when cleaning platform_editor_ai_object_sidebar_injection FG
|
|
140
145
|
,
|
|
141
|
-
usingObjectSidebarPanel: usingObjectSidebarPanel
|
|
146
|
+
usingObjectSidebarPanel: usingObjectSidebarPanel,
|
|
147
|
+
disableFields: connectivityState === 'offline'
|
|
142
148
|
});
|
|
143
149
|
});
|
|
144
150
|
}
|
|
@@ -2,7 +2,7 @@ import React, { Fragment, useMemo } from 'react';
|
|
|
2
2
|
import { injectIntl } from 'react-intl-next';
|
|
3
3
|
import { configPanelMessages as messages } from '@atlaskit/editor-common/extensions';
|
|
4
4
|
import { ErrorMessage, HelperMessage } from '@atlaskit/form';
|
|
5
|
-
import { Text } from '@atlaskit/primitives';
|
|
5
|
+
import { Text } from '@atlaskit/primitives/compiled';
|
|
6
6
|
import { FieldTypeError, ValidationError } from './types';
|
|
7
7
|
|
|
8
8
|
// sidestep XSS issues
|
|
@@ -12,7 +12,7 @@ import React, { Fragment } from 'react';
|
|
|
12
12
|
import { css, jsx } from '@emotion/react';
|
|
13
13
|
import { Checkbox as AKCheckbox } from '@atlaskit/checkbox';
|
|
14
14
|
import { Field } from '@atlaskit/form';
|
|
15
|
-
import { Text } from '@atlaskit/primitives';
|
|
15
|
+
import { Text } from '@atlaskit/primitives/compiled';
|
|
16
16
|
import AKToggle from '@atlaskit/toggle';
|
|
17
17
|
import FieldMessages from '../FieldMessages';
|
|
18
18
|
import { ValidationError } from '../types';
|
|
@@ -55,14 +55,16 @@ function Checkbox(_ref) {
|
|
|
55
55
|
_field$isRequired = field.isRequired,
|
|
56
56
|
isRequired = _field$isRequired === void 0 ? false : _field$isRequired,
|
|
57
57
|
_field$defaultValue = field.defaultValue,
|
|
58
|
-
defaultValue = _field$defaultValue === void 0 ? false : _field$defaultValue
|
|
58
|
+
defaultValue = _field$defaultValue === void 0 ? false : _field$defaultValue,
|
|
59
|
+
isDisabled = field.isDisabled;
|
|
59
60
|
return jsx(Field, {
|
|
60
61
|
name: name,
|
|
61
62
|
isRequired: isRequired,
|
|
62
63
|
validate: function validate(value) {
|
|
63
64
|
return _validate(value, isRequired);
|
|
64
65
|
},
|
|
65
|
-
defaultValue: defaultValue
|
|
66
|
+
defaultValue: defaultValue,
|
|
67
|
+
isDisabled: isDisabled
|
|
66
68
|
}, function (_ref2) {
|
|
67
69
|
var fieldProps = _ref2.fieldProps,
|
|
68
70
|
error = _ref2.error;
|
|
@@ -92,7 +94,8 @@ function Toggle(_ref3) {
|
|
|
92
94
|
_field$isRequired2 = field.isRequired,
|
|
93
95
|
isRequired = _field$isRequired2 === void 0 ? false : _field$isRequired2,
|
|
94
96
|
_field$defaultValue2 = field.defaultValue,
|
|
95
|
-
defaultValue = _field$defaultValue2 === void 0 ? false : _field$defaultValue2
|
|
97
|
+
defaultValue = _field$defaultValue2 === void 0 ? false : _field$defaultValue2,
|
|
98
|
+
isDisabled = field.isDisabled;
|
|
96
99
|
return jsx(Field, {
|
|
97
100
|
name: name,
|
|
98
101
|
isRequired: isRequired,
|
|
@@ -100,7 +103,8 @@ function Toggle(_ref3) {
|
|
|
100
103
|
return _validate(value, isRequired);
|
|
101
104
|
},
|
|
102
105
|
defaultValue: defaultValue,
|
|
103
|
-
testId: "config-panel-toggle-".concat(name)
|
|
106
|
+
testId: "config-panel-toggle-".concat(name),
|
|
107
|
+
isDisabled: isDisabled
|
|
104
108
|
}, function (_ref4) {
|
|
105
109
|
var fieldProps = _ref4.fieldProps,
|
|
106
110
|
error = _ref4.error;
|
|
@@ -79,7 +79,8 @@ export default function CheckboxGroup(_ref3) {
|
|
|
79
79
|
defaultValue = field.defaultValue,
|
|
80
80
|
_field$isRequired = field.isRequired,
|
|
81
81
|
isRequired = _field$isRequired === void 0 ? false : _field$isRequired,
|
|
82
|
-
options = field.items
|
|
82
|
+
options = field.items,
|
|
83
|
+
isDisabled = field.isDisabled;
|
|
83
84
|
var label = jsx(Fragment, null, labelBase, isRequired ? jsx("span", {
|
|
84
85
|
css: requiredIndicatorStyles,
|
|
85
86
|
"aria-hidden": "true"
|
|
@@ -93,7 +94,8 @@ export default function CheckboxGroup(_ref3) {
|
|
|
93
94
|
defaultValue: defaultValue,
|
|
94
95
|
validate: function validate(value) {
|
|
95
96
|
return _validate(value, isRequired);
|
|
96
|
-
}
|
|
97
|
+
},
|
|
98
|
+
isDisabled: isDisabled
|
|
97
99
|
}, function (props) {
|
|
98
100
|
return jsx(CheckboxGroupInner, _extends({
|
|
99
101
|
label: label,
|
|
@@ -12,7 +12,7 @@ import { css, jsx } from '@emotion/react';
|
|
|
12
12
|
import { chartsColorPaletteTooltipMessages, DEFAULT_BORDER_COLOR } from '@atlaskit/editor-common/ui-color';
|
|
13
13
|
import { ColorPickerButton } from '@atlaskit/editor-common/ui-menu';
|
|
14
14
|
import { Field } from '@atlaskit/form';
|
|
15
|
-
import { Text } from '@atlaskit/primitives';
|
|
15
|
+
import { Text } from '@atlaskit/primitives/compiled';
|
|
16
16
|
import FieldMessages from '../FieldMessages';
|
|
17
17
|
import { validate as _validate } from '../utils';
|
|
18
18
|
|
|
@@ -376,7 +376,8 @@ var ColorPickerField = function ColorPickerField(_ref) {
|
|
|
376
376
|
featureFlags = _ref.featureFlags;
|
|
377
377
|
var label = field.label,
|
|
378
378
|
defaultValue = field.defaultValue,
|
|
379
|
-
isRequired = field.isRequired
|
|
379
|
+
isRequired = field.isRequired,
|
|
380
|
+
isDisabled = field.isDisabled;
|
|
380
381
|
return jsx(Field, {
|
|
381
382
|
name: name,
|
|
382
383
|
isRequired: isRequired,
|
|
@@ -384,7 +385,8 @@ var ColorPickerField = function ColorPickerField(_ref) {
|
|
|
384
385
|
testId: "config-panel-color-picker-".concat(name),
|
|
385
386
|
validate: function validate(value) {
|
|
386
387
|
return _validate(field, value || '');
|
|
387
|
-
}
|
|
388
|
+
},
|
|
389
|
+
isDisabled: isDisabled
|
|
388
390
|
}, function (_ref2) {
|
|
389
391
|
var fieldProps = _ref2.fieldProps,
|
|
390
392
|
error = _ref2.error;
|
|
@@ -35,7 +35,8 @@ function CustomSelect(_ref2) {
|
|
|
35
35
|
isMultiple = field.isMultiple,
|
|
36
36
|
isRequired = field.isRequired,
|
|
37
37
|
label = field.label,
|
|
38
|
-
options = field.options
|
|
38
|
+
options = field.options,
|
|
39
|
+
isDisabled = field.isDisabled;
|
|
39
40
|
var _useState = useState(true),
|
|
40
41
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41
42
|
loading = _useState2[0],
|
|
@@ -141,7 +142,8 @@ function CustomSelect(_ref2) {
|
|
|
141
142
|
validate: function validate(value) {
|
|
142
143
|
return _validate(field, value);
|
|
143
144
|
},
|
|
144
|
-
testId: "config-panel-custom-select-".concat(name)
|
|
145
|
+
testId: "config-panel-custom-select-".concat(name),
|
|
146
|
+
isDisabled: isDisabled
|
|
145
147
|
}, function (_ref3) {
|
|
146
148
|
var fieldProps = _ref3.fieldProps,
|
|
147
149
|
error = _ref3.error;
|
|
@@ -15,7 +15,8 @@ function Date(_ref) {
|
|
|
15
15
|
var label = field.label,
|
|
16
16
|
description = field.description,
|
|
17
17
|
defaultValue = field.defaultValue,
|
|
18
|
-
isRequired = field.isRequired
|
|
18
|
+
isRequired = field.isRequired,
|
|
19
|
+
isDisabled = field.isDisabled;
|
|
19
20
|
return /*#__PURE__*/React.createElement(Field, {
|
|
20
21
|
name: name,
|
|
21
22
|
label: label,
|
|
@@ -24,7 +25,8 @@ function Date(_ref) {
|
|
|
24
25
|
validate: function validate(value) {
|
|
25
26
|
return _validate(field, value);
|
|
26
27
|
},
|
|
27
|
-
testId: "config-panel-date-picker-".concat(name)
|
|
28
|
+
testId: "config-panel-date-picker-".concat(name),
|
|
29
|
+
isDisabled: isDisabled
|
|
28
30
|
}, function (_ref2) {
|
|
29
31
|
var fieldProps = _ref2.fieldProps,
|
|
30
32
|
error = _ref2.error;
|
|
@@ -42,7 +42,8 @@ var DateField = function DateField(_ref) {
|
|
|
42
42
|
fieldName = _ref.fieldName,
|
|
43
43
|
onFieldChange = _ref.onFieldChange,
|
|
44
44
|
intl = _ref.intl,
|
|
45
|
-
isRequired = _ref.isRequired
|
|
45
|
+
isRequired = _ref.isRequired,
|
|
46
|
+
isDisabled = _ref.isDisabled;
|
|
46
47
|
return jsx("div", {
|
|
47
48
|
css: horizontalFieldWrapperStyles,
|
|
48
49
|
key: fieldName
|
|
@@ -55,7 +56,8 @@ var DateField = function DateField(_ref) {
|
|
|
55
56
|
return validateRequired({
|
|
56
57
|
isRequired: isRequired
|
|
57
58
|
}, value);
|
|
58
|
-
}
|
|
59
|
+
},
|
|
60
|
+
isDisabled: isDisabled
|
|
59
61
|
}, function (_ref2) {
|
|
60
62
|
var fieldProps = _ref2.fieldProps,
|
|
61
63
|
error = _ref2.error;
|
|
@@ -120,7 +122,8 @@ var DateRange = function DateRange(_ref3) {
|
|
|
120
122
|
validate: function validate(value) {
|
|
121
123
|
return _validate(field, value || '');
|
|
122
124
|
},
|
|
123
|
-
testId: "config-panel-date-range-".concat(name)
|
|
125
|
+
testId: "config-panel-date-range-".concat(name),
|
|
126
|
+
isDisabled: field.isDisabled
|
|
124
127
|
}, function (_ref5) {
|
|
125
128
|
var fieldProps = _ref5.fieldProps,
|
|
126
129
|
error = _ref5.error;
|
|
@@ -157,14 +160,16 @@ var DateRange = function DateRange(_ref3) {
|
|
|
157
160
|
fieldName: "from",
|
|
158
161
|
onFieldChange: onFieldChange,
|
|
159
162
|
intl: intl,
|
|
160
|
-
isRequired: field.isRequired
|
|
163
|
+
isRequired: field.isRequired,
|
|
164
|
+
isDisabled: field.isDisabled
|
|
161
165
|
}), jsx(DateField, {
|
|
162
166
|
scope: name,
|
|
163
167
|
parentField: field,
|
|
164
168
|
fieldName: "to",
|
|
165
169
|
onFieldChange: onFieldChange,
|
|
166
170
|
intl: intl,
|
|
167
|
-
isRequired: field.isRequired
|
|
171
|
+
isRequired: field.isRequired,
|
|
172
|
+
isDisabled: field.isDisabled
|
|
168
173
|
})), jsx(FieldMessages, {
|
|
169
174
|
description: field.description
|
|
170
175
|
}));
|
|
@@ -252,7 +252,8 @@ var FieldsetField = /*#__PURE__*/function (_React$Component) {
|
|
|
252
252
|
canRemoveFields: field.options.isDynamic && visibleFields.size > 1,
|
|
253
253
|
onClickRemove: this.onClickRemove,
|
|
254
254
|
onFieldChange: onFieldChange,
|
|
255
|
-
firstVisibleFieldName: firstVisibleFieldName
|
|
255
|
+
firstVisibleFieldName: firstVisibleFieldName,
|
|
256
|
+
isDisabled: field.isDisabled
|
|
256
257
|
}), children && jsx("div", {
|
|
257
258
|
css: actionsWrapperStyles,
|
|
258
259
|
"data-testId": "fieldset-actions"
|
|
@@ -15,7 +15,8 @@ export default function Number(_ref) {
|
|
|
15
15
|
var label = field.label,
|
|
16
16
|
description = field.description,
|
|
17
17
|
defaultValue = field.defaultValue,
|
|
18
|
-
isRequired = field.isRequired
|
|
18
|
+
isRequired = field.isRequired,
|
|
19
|
+
isDisabled = field.isDisabled;
|
|
19
20
|
function validateNumber(value) {
|
|
20
21
|
var error = validate(field, value || '');
|
|
21
22
|
if (error) {
|
|
@@ -35,7 +36,8 @@ export default function Number(_ref) {
|
|
|
35
36
|
defaultValue: defaultValue === undefined ? '' : String(defaultValue),
|
|
36
37
|
isRequired: isRequired,
|
|
37
38
|
validate: validateNumber,
|
|
38
|
-
testId: "config-panel-number-".concat(name)
|
|
39
|
+
testId: "config-panel-number-".concat(name),
|
|
40
|
+
isDisabled: isDisabled
|
|
39
41
|
}, function (_ref2) {
|
|
40
42
|
var fieldProps = _ref2.fieldProps,
|
|
41
43
|
error = _ref2.error,
|
|
@@ -25,7 +25,8 @@ export default function RadioField(_ref) {
|
|
|
25
25
|
validate: function validate(value) {
|
|
26
26
|
return _validate(field, value);
|
|
27
27
|
},
|
|
28
|
-
testId: "config-panel-radio-group-".concat(field.name)
|
|
28
|
+
testId: "config-panel-radio-group-".concat(field.name),
|
|
29
|
+
isDisabled: field.isDisabled
|
|
29
30
|
}, function (_ref2) {
|
|
30
31
|
var fieldProps = _ref2.fieldProps,
|
|
31
32
|
error = _ref2.error;
|
|
@@ -28,7 +28,8 @@ export default function SelectField(_ref) {
|
|
|
28
28
|
// Ignored via go/ees005
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
30
30
|
return _validate(field, value);
|
|
31
|
-
}
|
|
31
|
+
},
|
|
32
|
+
isDisabled: field.isDisabled
|
|
32
33
|
}, function (_ref2) {
|
|
33
34
|
var fieldProps = _ref2.fieldProps,
|
|
34
35
|
error = _ref2.error;
|
|
@@ -16,7 +16,8 @@ export default function String(_ref) {
|
|
|
16
16
|
var label = field.label,
|
|
17
17
|
description = field.description,
|
|
18
18
|
defaultValue = field.defaultValue,
|
|
19
|
-
isRequired = field.isRequired
|
|
19
|
+
isRequired = field.isRequired,
|
|
20
|
+
isDisabled = field.isDisabled;
|
|
20
21
|
return /*#__PURE__*/React.createElement(Field, {
|
|
21
22
|
name: name,
|
|
22
23
|
label: label,
|
|
@@ -25,7 +26,8 @@ export default function String(_ref) {
|
|
|
25
26
|
validate: function validate(value) {
|
|
26
27
|
return _validate(field, value || '');
|
|
27
28
|
},
|
|
28
|
-
testId: "config-panel-string-".concat(name)
|
|
29
|
+
testId: "config-panel-string-".concat(name),
|
|
30
|
+
isDisabled: isDisabled
|
|
29
31
|
}, function (_ref2) {
|
|
30
32
|
var fieldProps = _ref2.fieldProps,
|
|
31
33
|
error = _ref2.error,
|
|
@@ -172,7 +172,8 @@ export default function UserSelect(_ref2) {
|
|
|
172
172
|
defaultValue = field.defaultValue,
|
|
173
173
|
description = field.description,
|
|
174
174
|
isRequired = field.isRequired,
|
|
175
|
-
options = field.options
|
|
175
|
+
options = field.options,
|
|
176
|
+
isDisabled = field.isDisabled;
|
|
176
177
|
var type = options.provider.type;
|
|
177
178
|
useEffect(function () {
|
|
178
179
|
var cancel = false;
|
|
@@ -229,7 +230,8 @@ export default function UserSelect(_ref2) {
|
|
|
229
230
|
validate: function validate(value) {
|
|
230
231
|
return _validate(field, value);
|
|
231
232
|
},
|
|
232
|
-
testId: "config-panel-user-select-".concat(name)
|
|
233
|
+
testId: "config-panel-user-select-".concat(name),
|
|
234
|
+
isDisabled: isDisabled
|
|
233
235
|
}, function (_ref3) {
|
|
234
236
|
var fieldProps = _ref3.fieldProps,
|
|
235
237
|
error = _ref3.error,
|
|
@@ -239,7 +241,7 @@ export default function UserSelect(_ref2) {
|
|
|
239
241
|
return /*#__PURE__*/React.createElement(UnhandledType, {
|
|
240
242
|
key: name,
|
|
241
243
|
field: field,
|
|
242
|
-
errorMessage: "Field \"".concat(name, "\" can't be
|
|
244
|
+
errorMessage: "Field \"".concat(name, "\" can't be rendered. Missing provider for \"").concat(type, "\".")
|
|
243
245
|
});
|
|
244
246
|
}
|
|
245
247
|
function onChange(newValue) {
|
|
@@ -3,6 +3,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { isFieldset } from '@atlaskit/editor-common/extensions';
|
|
6
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
6
7
|
import Boolean from './Fields/Boolean';
|
|
7
8
|
import ColorPicker from './Fields/ColorPicker';
|
|
8
9
|
import CustomSelect from './Fields/CustomSelect';
|
|
@@ -139,7 +140,8 @@ export function FieldComponent(_ref) {
|
|
|
139
140
|
parameters: resolvedParameters,
|
|
140
141
|
onFieldChange: onFieldChange,
|
|
141
142
|
extensionManifest: extensionManifest,
|
|
142
|
-
featureFlags: featureFlags
|
|
143
|
+
featureFlags: featureFlags,
|
|
144
|
+
isDisabled: field.isDisabled
|
|
143
145
|
}));
|
|
144
146
|
}
|
|
145
147
|
case 'tab-group':
|
|
@@ -157,7 +159,8 @@ export function FieldComponent(_ref) {
|
|
|
157
159
|
parameters: tabParameters,
|
|
158
160
|
onFieldChange: onFieldChange,
|
|
159
161
|
extensionManifest: extensionManifest,
|
|
160
|
-
featureFlags: featureFlags
|
|
162
|
+
featureFlags: featureFlags,
|
|
163
|
+
isDisabled: field.isDisabled
|
|
161
164
|
});
|
|
162
165
|
};
|
|
163
166
|
return /*#__PURE__*/React.createElement(TabGroup, {
|
|
@@ -191,12 +194,22 @@ export default function FormContent(_ref3) {
|
|
|
191
194
|
onFieldChange = _ref3.onFieldChange,
|
|
192
195
|
firstVisibleFieldName = _ref3.firstVisibleFieldName,
|
|
193
196
|
contextIdentifierProvider = _ref3.contextIdentifierProvider,
|
|
194
|
-
featureFlags = _ref3.featureFlags
|
|
197
|
+
featureFlags = _ref3.featureFlags,
|
|
198
|
+
isDisabled = _ref3.isDisabled;
|
|
199
|
+
var mappedFields = fields;
|
|
200
|
+
if (editorExperiment('platform_editor_offline_editing_web', true)) {
|
|
201
|
+
mappedFields = fields.map(function (field) {
|
|
202
|
+
var _field$isDisabled;
|
|
203
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
204
|
+
isDisabled: (_field$isDisabled = field.isDisabled) !== null && _field$isDisabled !== void 0 ? _field$isDisabled : isDisabled
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
}
|
|
195
208
|
return /*#__PURE__*/React.createElement(FormErrorBoundary, {
|
|
196
209
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
197
210
|
extensionKey: extensionManifest.key,
|
|
198
|
-
fields:
|
|
199
|
-
},
|
|
211
|
+
fields: mappedFields
|
|
212
|
+
}, mappedFields.map(function (field) {
|
|
200
213
|
var fieldElement = /*#__PURE__*/React.createElement(FieldComponent, {
|
|
201
214
|
field: field,
|
|
202
215
|
parameters: parameters || {},
|
|
@@ -13,7 +13,7 @@ import { injectIntl } from 'react-intl-next';
|
|
|
13
13
|
import { withAnalyticsContext, withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
14
14
|
import { ACTION, ACTION_SUBJECT, editorAnalyticsChannel, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
15
15
|
import { configPanelMessages as messages } from '@atlaskit/editor-common/extensions';
|
|
16
|
-
import { Stack, Text } from '@atlaskit/primitives';
|
|
16
|
+
import { Stack, Text } from '@atlaskit/primitives/compiled';
|
|
17
17
|
import SectionMessage from '@atlaskit/section-message';
|
|
18
18
|
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
19
19
|
var FormErrorBoundaryInner = /*#__PURE__*/function (_React$Component) {
|
|
@@ -4,13 +4,37 @@
|
|
|
4
4
|
*/
|
|
5
5
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
6
6
|
import { css, jsx } from '@emotion/react';
|
|
7
|
+
import { injectIntl } from 'react-intl-next';
|
|
8
|
+
import { messages } from '@atlaskit/editor-common/extensions';
|
|
9
|
+
import SectionMessage from '@atlaskit/section-message';
|
|
7
10
|
import Spinner from '@atlaskit/spinner';
|
|
11
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
8
12
|
var spinnerWrapperStyles = css({
|
|
9
13
|
display: 'flex',
|
|
10
14
|
justifyContent: 'center',
|
|
11
15
|
marginTop: "var(--ds-space-800, 64px)"
|
|
12
16
|
});
|
|
13
|
-
var
|
|
17
|
+
var errorWrapperStyles = css({
|
|
18
|
+
marginTop: "var(--ds-space-400, 32px)" // Add some padding to the top to make sure we place this below the offline status banner
|
|
19
|
+
});
|
|
20
|
+
var LoadingStateWithErrorHandling = injectIntl(function (props) {
|
|
21
|
+
if (props.error) {
|
|
22
|
+
return jsx("div", {
|
|
23
|
+
css: errorWrapperStyles,
|
|
24
|
+
"data-testid": "ConfigPanelLoadingError"
|
|
25
|
+
}, jsx(SectionMessage, {
|
|
26
|
+
appearance: "error"
|
|
27
|
+
}, props.intl.formatMessage(messages.panelLoadingError)));
|
|
28
|
+
}
|
|
29
|
+
return jsx("div", {
|
|
30
|
+
css: spinnerWrapperStyles,
|
|
31
|
+
"data-testid": "ConfigPanelLoading"
|
|
32
|
+
}, jsx(Spinner, {
|
|
33
|
+
size: "small",
|
|
34
|
+
interactionName: "config-panel-spinner"
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
var LoadingStateWithoutErrorHandling = function LoadingStateWithoutErrorHandling() {
|
|
14
38
|
return jsx("div", {
|
|
15
39
|
css: spinnerWrapperStyles,
|
|
16
40
|
"data-testid": "ConfigPanelLoading"
|
|
@@ -19,4 +43,7 @@ var LoadingState = function LoadingState() {
|
|
|
19
43
|
interactionName: "config-panel-spinner"
|
|
20
44
|
}));
|
|
21
45
|
};
|
|
46
|
+
var LoadingState = function LoadingState(props) {
|
|
47
|
+
return editorExperiment('platform_editor_offline_editing_web', true) ? LoadingStateWithErrorHandling(props) : LoadingStateWithoutErrorHandling();
|
|
48
|
+
};
|
|
22
49
|
export default LoadingState;
|
|
@@ -4,7 +4,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
4
4
|
import React, { useEffect } from 'react';
|
|
5
5
|
import { getExtensionKeyAndNodeKey } from '@atlaskit/editor-common/extensions';
|
|
6
6
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
7
|
-
import { Box } from '@atlaskit/primitives';
|
|
7
|
+
import { Box } from '@atlaskit/primitives/compiled';
|
|
8
8
|
import { clearEditingContext, forceAutoSave } from '../editor-commands/commands';
|
|
9
9
|
import { getPluginState } from '../pm-plugins/plugin-factory';
|
|
10
10
|
import { getSelectedExtension } from '../pm-plugins/utils';
|
|
@@ -4,6 +4,7 @@ import type { ExtensionAPI, ExtensionHandlers, ExtensionProvider, Parameters, Tr
|
|
|
4
4
|
import type { MacroProvider } from '@atlaskit/editor-common/provider-factory';
|
|
5
5
|
import type { EditorAppearance, LongPressSelectionPluginOptions, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
6
6
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
7
|
+
import { ConnectivityPlugin } from '@atlaskit/editor-plugin-connectivity';
|
|
7
8
|
import type { ContextIdentifierPlugin } from '@atlaskit/editor-plugin-context-identifier';
|
|
8
9
|
import type { ApplyChangeHandler, ContextPanelPlugin } from '@atlaskit/editor-plugin-context-panel';
|
|
9
10
|
import type { DecorationsPlugin } from '@atlaskit/editor-plugin-decorations';
|
|
@@ -66,7 +67,8 @@ export type ExtensionPluginDependencies = [
|
|
|
66
67
|
WidthPlugin,
|
|
67
68
|
DecorationsPlugin,
|
|
68
69
|
OptionalPlugin<ContextPanelPlugin>,
|
|
69
|
-
OptionalPlugin<ContextIdentifierPlugin
|
|
70
|
+
OptionalPlugin<ContextIdentifierPlugin>,
|
|
71
|
+
OptionalPlugin<ConnectivityPlugin>
|
|
70
72
|
];
|
|
71
73
|
export type ExtensionPluginActions = {
|
|
72
74
|
editSelectedExtension: () => boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
2
2
|
import type { FloatingToolbarHandler, PublicPluginAPI } from '@atlaskit/editor-common/types';
|
|
3
3
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
4
|
+
import { ConnectivityPlugin } from '@atlaskit/editor-plugin-connectivity';
|
|
4
5
|
import type { ApplyChangeHandler, ContextPanelPlugin } from '@atlaskit/editor-plugin-context-panel';
|
|
5
6
|
import type { DecorationsPlugin, HoverDecorationHandler } from '@atlaskit/editor-plugin-decorations';
|
|
6
7
|
interface GetToolbarConfigProps {
|
|
@@ -8,7 +9,7 @@ interface GetToolbarConfigProps {
|
|
|
8
9
|
hoverDecoration?: HoverDecorationHandler | undefined;
|
|
9
10
|
applyChangeToContextPanel?: ApplyChangeHandler | undefined;
|
|
10
11
|
editorAnalyticsAPI?: EditorAnalyticsAPI | undefined;
|
|
11
|
-
extensionApi?: PublicPluginAPI<[ContextPanelPlugin, AnalyticsPlugin, DecorationsPlugin]> | undefined;
|
|
12
|
+
extensionApi?: PublicPluginAPI<[ContextPanelPlugin, AnalyticsPlugin, DecorationsPlugin, ConnectivityPlugin]> | undefined;
|
|
12
13
|
}
|
|
13
14
|
export declare const getToolbarConfig: ({ breakoutEnabled, hoverDecoration, applyChangeToContextPanel, editorAnalyticsAPI, extensionApi, }: GetToolbarConfigProps) => FloatingToolbarHandler;
|
|
14
15
|
export {};
|