@atlaskit/editor-common 59.0.0 → 60.2.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 (109) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/dist/cjs/in-product.js +28 -4
  3. package/dist/cjs/index.js +6 -0
  4. package/dist/cjs/styles/shared/panel.js +13 -2
  5. package/dist/cjs/styles/shared/table.js +3 -2
  6. package/dist/cjs/type-ahead/index.js +25 -0
  7. package/dist/cjs/types/{typeAhead.js → type-ahead.js} +0 -0
  8. package/dist/cjs/ufo/experience-store.js +159 -0
  9. package/dist/cjs/ufo/index.js +25 -0
  10. package/dist/cjs/ui/Messages/index.js +1 -3
  11. package/dist/cjs/utils/browser.js +7 -1
  12. package/dist/cjs/utils/index.js +9 -1
  13. package/dist/cjs/utils/profiler/render-count.js +135 -0
  14. package/dist/cjs/utils/validator.js +34 -11
  15. package/dist/cjs/version.json +1 -1
  16. package/dist/es2019/in-product.js +1 -1
  17. package/dist/es2019/index.js +1 -1
  18. package/dist/es2019/styles/shared/panel.js +20 -2
  19. package/dist/es2019/styles/shared/table.js +4 -3
  20. package/dist/es2019/type-ahead/index.js +17 -0
  21. package/dist/es2019/types/{typeAhead.js → type-ahead.js} +0 -0
  22. package/dist/es2019/ufo/experience-store.js +115 -0
  23. package/dist/es2019/ufo/index.js +1 -0
  24. package/dist/es2019/ui/Messages/index.js +1 -2
  25. package/dist/es2019/utils/browser.js +7 -1
  26. package/dist/es2019/utils/index.js +2 -1
  27. package/dist/es2019/utils/profiler/render-count.js +107 -0
  28. package/dist/es2019/utils/validator.js +25 -0
  29. package/dist/es2019/version.json +1 -1
  30. package/dist/esm/in-product.js +1 -1
  31. package/dist/esm/index.js +1 -1
  32. package/dist/esm/styles/shared/panel.js +11 -2
  33. package/dist/esm/styles/shared/table.js +4 -3
  34. package/dist/esm/type-ahead/index.js +17 -0
  35. package/dist/esm/types/{typeAhead.js → type-ahead.js} +0 -0
  36. package/dist/esm/ufo/experience-store.js +143 -0
  37. package/dist/esm/ufo/index.js +1 -0
  38. package/dist/esm/ui/Messages/index.js +1 -2
  39. package/dist/esm/utils/browser.js +7 -1
  40. package/dist/esm/utils/index.js +2 -1
  41. package/dist/esm/utils/profiler/render-count.js +123 -0
  42. package/dist/esm/utils/validator.js +34 -11
  43. package/dist/esm/version.json +1 -1
  44. package/dist/types/__tests_external__/cases/fundamentals/collection.d.ts +3 -0
  45. package/dist/types/__tests_external__/cases/fundamentals/test-cases/editor-is-present.d.ts +3 -0
  46. package/dist/types/__tests_external__/cases/fundamentals/test-cases/editor-typing.d.ts +3 -0
  47. package/dist/types/__tests_external__/cases/media/test-cases/alt-text.d.ts +3 -0
  48. package/dist/types/__tests_external__/cases/media/test-cases/caption.d.ts +3 -0
  49. package/dist/types/__tests_external__/cases/media/test-cases/index.d.ts +3 -0
  50. package/dist/types/__tests_external__/cases/media/test-cases/types.d.ts +4 -0
  51. package/dist/types/__tests_external__/cases/media/test-cases/upload.d.ts +7 -0
  52. package/dist/types/__tests_external__/cases/smart-links/index.d.ts +4 -0
  53. package/dist/types/__tests_external__/cases/smart-links/test-cases/block/delete.d.ts +3 -0
  54. package/dist/types/__tests_external__/cases/smart-links/test-cases/block/edit.d.ts +4 -0
  55. package/dist/types/__tests_external__/cases/smart-links/test-cases/block/index.d.ts +3 -0
  56. package/dist/types/__tests_external__/cases/smart-links/test-cases/block/insert.d.ts +3 -0
  57. package/dist/types/__tests_external__/cases/smart-links/test-cases/embed/delete.d.ts +3 -0
  58. package/dist/types/__tests_external__/cases/smart-links/test-cases/embed/edit.d.ts +4 -0
  59. package/dist/types/__tests_external__/cases/smart-links/test-cases/embed/index.d.ts +3 -0
  60. package/dist/types/__tests_external__/cases/smart-links/test-cases/embed/insert.d.ts +3 -0
  61. package/dist/types/__tests_external__/cases/smart-links/test-cases/inline/delete.d.ts +3 -0
  62. package/dist/types/__tests_external__/cases/smart-links/test-cases/inline/edit.d.ts +4 -0
  63. package/dist/types/__tests_external__/cases/smart-links/test-cases/inline/index.d.ts +3 -0
  64. package/dist/types/__tests_external__/cases/smart-links/test-cases/inline/insert.d.ts +3 -0
  65. package/dist/types/__tests_external__/cases/smart-links/test-cases/inline/unlink.d.ts +3 -0
  66. package/dist/types/__tests_external__/cases/smart-links/test-cases/types.d.ts +4 -0
  67. package/dist/types/__tests_external__/cases/smart-links/test-cases/url/index.d.ts +3 -0
  68. package/dist/types/__tests_external__/cases/smart-links/test-cases/url/insert.d.ts +3 -0
  69. package/dist/types/__tests_external__/cases/types.d.ts +2 -4
  70. package/dist/types/__tests_external__/index.d.ts +3 -2
  71. package/dist/types/__tests_external__/page-objects/Editor.d.ts +6 -3
  72. package/dist/types/__tests_external__/page-objects/EditorMedia.d.ts +20 -0
  73. package/dist/types/__tests_external__/page-objects/EditorSmartLink.d.ts +41 -0
  74. package/dist/types/__tests_external__/page-objects/Renderer.d.ts +4 -4
  75. package/dist/types/collab/types.d.ts +6 -0
  76. package/dist/types/extensions/extension-handlers.d.ts +3 -3
  77. package/dist/types/extensions/index.d.ts +1 -1
  78. package/dist/types/extensions/types/extension-handler.d.ts +3 -0
  79. package/dist/types/extensions/types/index.d.ts +1 -1
  80. package/dist/types/extensions.d.ts +1 -1
  81. package/dist/types/in-product.d.ts +1 -1
  82. package/dist/types/index.d.ts +2 -2
  83. package/dist/types/provider-factory/quick-insert-provider.d.ts +2 -2
  84. package/dist/types/provider-factory.d.ts +1 -1
  85. package/dist/types/styles/shared/panel.d.ts +6 -0
  86. package/dist/types/styles/shared/table.d.ts +1 -0
  87. package/dist/types/type-ahead/index.d.ts +12 -0
  88. package/dist/types/types/index.d.ts +1 -1
  89. package/dist/types/types/{typeAhead.d.ts → type-ahead.d.ts} +0 -0
  90. package/dist/types/ufo/experience-store.d.ts +32 -0
  91. package/dist/types/ufo/index.d.ts +1 -0
  92. package/dist/types/utils/browser.d.ts +3 -0
  93. package/dist/types/utils/index.d.ts +1 -0
  94. package/dist/types/utils/profiler/render-count.d.ts +50 -0
  95. package/package.json +20 -16
  96. package/type-ahead/package.json +7 -0
  97. package/ufo/package.json +7 -0
  98. package/dist/cjs/ui/Caption/index.test.js +0 -82
  99. package/dist/cjs/utils/performance/measure-tti.test.js +0 -183
  100. package/dist/es2019/ui/Caption/index.test.js +0 -73
  101. package/dist/es2019/utils/performance/measure-tti.test.js +0 -124
  102. package/dist/esm/ui/Caption/index.test.js +0 -73
  103. package/dist/esm/utils/performance/measure-tti.test.js +0 -174
  104. package/dist/types/__tests_external__/cases/base-test-case.d.ts +0 -19
  105. package/dist/types/__tests_external__/cases/base-test-collection.d.ts +0 -12
  106. package/dist/types/__tests_external__/cases/editor-fundamentals/editor-fundamentals-collection.d.ts +0 -3
  107. package/dist/types/__tests_external__/cases/editor-fundamentals/test-cases/editor-is-present.d.ts +0 -3
  108. package/dist/types/__tests_external__/cases/editor-fundamentals/test-cases/editor-typing.d.ts +0 -3
  109. package/dist/types/__tests_external__/cases/editor-upload-media.d.ts +0 -7
@@ -1,8 +1,8 @@
1
1
  /// <reference types="cypress" />
2
2
  /// <reference types="jquery" />
3
- export declare class RendererPageObject {
4
- private cy;
5
- constructor(cy: Cypress.cy);
6
- getRenderedContent(): Cypress.Chainable<JQuery<HTMLElement>>;
3
+ import { InProductTestPageObject } from '@atlaskit/in-product-testing';
4
+ export declare class RendererPageObject extends InProductTestPageObject {
5
+ getContent(): Cypress.Chainable<JQuery<HTMLElement>>;
6
+ expectContentReady(): Cypress.Chainable<JQuery<HTMLElement>>;
7
7
  expectMediaSingleRenders(numOfMedia: number): Cypress.Chainable<JQuery<HTMLElement>>;
8
8
  }
@@ -6,6 +6,7 @@ export interface CollabParticipant {
6
6
  avatar: string;
7
7
  name: string;
8
8
  email: string;
9
+ cursorPos?: number;
9
10
  }
10
11
  export interface CollabEventInitData {
11
12
  doc?: any;
@@ -22,6 +23,10 @@ export interface CollabEventRemoteData {
22
23
  export interface CollabEventConnectionData {
23
24
  sid: string;
24
25
  }
26
+ export interface CollabEventDisonnectedData {
27
+ sid: string;
28
+ reason: 'CLIENT_DISCONNECT' | 'SERVER_DISCONNECT' | 'SOCKET_CLOSED' | 'SOCKET_ERROR' | 'SOCKET_TIMEOUT' | 'UNKNOWN_DISCONNECT';
29
+ }
25
30
  export interface CollabEventPresenceData {
26
31
  joined?: CollabParticipant[];
27
32
  left?: {
@@ -45,6 +50,7 @@ export declare type CollabEvent = keyof CollabEventData;
45
50
  export interface CollabEventData {
46
51
  init: CollabEventInitData;
47
52
  connected: CollabEventConnectionData;
53
+ disconnected: CollabEventDisonnectedData;
48
54
  data: CollabEventRemoteData;
49
55
  telepointer: CollabEventTelepointerData;
50
56
  presence: CollabEventPresenceData;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import Loadable from 'react-loadable';
3
- import { ADFEntity } from '@atlaskit/adf-utils';
4
3
  import { ExtensionKey, ExtensionParams, ExtensionProvider, ExtensionType } from './types';
4
+ import { ReferenceEntity } from './types/extension-handler';
5
5
  export declare function getExtensionModuleNode(extensionProvider: ExtensionProvider, extensionType: ExtensionType, extensionKey: ExtensionKey): Promise<import("./types").ExtensionModuleNode<any>>;
6
6
  /**
7
7
  * Gets `__` prefixed properties from an extension node module definition
@@ -9,8 +9,8 @@ export declare function getExtensionModuleNode(extensionProvider: ExtensionProvi
9
9
  export declare function getExtensionModuleNodePrivateProps(extensionProvider: ExtensionProvider, extensionType: ExtensionType, extensionKey: ExtensionKey): Promise<any>;
10
10
  export declare function getNodeRenderer<T>(extensionProvider: ExtensionProvider, extensionType: ExtensionType, extensionKey: ExtensionKey): (React.ComponentClass<{
11
11
  node: ExtensionParams<T>;
12
- refNode?: ADFEntity | undefined;
12
+ references?: ReferenceEntity[] | undefined;
13
13
  }, any> & Loadable.LoadableComponent) | (React.FunctionComponent<{
14
14
  node: ExtensionParams<T>;
15
- refNode?: ADFEntity | undefined;
15
+ references?: ReferenceEntity[] | undefined;
16
16
  }> & Loadable.LoadableComponent);
@@ -1,5 +1,5 @@
1
1
  export { isFieldset, isTabGroup, isExpand, isDateRange } from './types';
2
- export type { Extension, ExtensionAutoConvertHandler, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionQuickInsertModule, ExtensionType, ExtensionToolbarButton, ContextualToolbar, ToolbarItem, Icon, MaybeADFEntity, MenuItem, MenuItemMap, UpdateExtension, Parameters, ParametersWithDuplicateFields, BooleanField, CustomField, CustomFieldResolver, UserFieldContext, UserField, UserFieldContextProvider, ColorField, DateField, DateRangeField, DateRangeResult, EnumField, EnumCheckboxField, EnumRadioField, EnumSelectField, ExpandField, FieldDefinition, DynamicFieldDefinitions, Fieldset, GroupingField, NativeField, NestedFieldDefinition, NumberField, Option, StringField, StringOneLineField, StringMultilineField, TabGroupField, TabField, FieldHandlerLink, OnSaveCallback, ExtensionAPI, TransformBefore, TransformAfter, ParametersGetter, AsyncParametersGetter, } from './types';
2
+ export type { Extension, ExtensionAutoConvertHandler, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionQuickInsertModule, ExtensionType, ExtensionToolbarButton, ContextualToolbar, ToolbarItem, Icon, MaybeADFEntity, MenuItem, MenuItemMap, UpdateExtension, Parameters, ParametersWithDuplicateFields, BooleanField, CustomField, CustomFieldResolver, UserFieldContext, UserField, UserFieldContextProvider, ColorField, DateField, DateRangeField, DateRangeResult, EnumField, EnumCheckboxField, EnumRadioField, EnumSelectField, ExpandField, FieldDefinition, DynamicFieldDefinitions, Fieldset, GroupingField, NativeField, NestedFieldDefinition, NumberField, Option, StringField, StringOneLineField, StringMultilineField, TabGroupField, TabField, FieldHandlerLink, OnSaveCallback, ExtensionAPI, TransformBefore, TransformAfter, ReferenceEntity, ParametersGetter, AsyncParametersGetter, } from './types';
3
3
  export { getExtensionKeyAndNodeKey, resolveImport } from './manifest-helpers';
4
4
  export { default as DefaultExtensionProvider } from './default-extension-provider';
5
5
  export { createAutoConverterRunner, getExtensionAutoConvertersFromProvider, getQuickInsertItemsFromModule, getContextualToolbarItemsFromModule, buildMenuItem, } from './module-helpers';
@@ -6,6 +6,7 @@ export interface ExtensionParams<T extends Parameters> {
6
6
  type?: 'extension' | 'inlineExtension' | 'bodiedExtension';
7
7
  parameters?: T;
8
8
  content?: object | string;
9
+ localId?: string;
9
10
  }
10
11
  export declare type ExtensionHandler<T extends Parameters = Parameters> = (ext: ExtensionParams<T>, doc: object) => JSX.Element | null;
11
12
  export declare type OnSaveCallback<T extends Parameters = Parameters> = (params: T) => void;
@@ -16,6 +17,7 @@ export declare type ExtensionAPI<T extends Parameters = Parameters> = {
16
17
  _editInLegacyMacroBrowser: () => void;
17
18
  doc: {
18
19
  insertAfter: (localId: string, adf: ADFEntity) => void;
20
+ scrollTo: (localId: string) => void;
19
21
  };
20
22
  };
21
23
  export declare type UpdateExtension<T extends Parameters = Parameters> = (extensionParameters: T, actions?: ExtensionAPI<T>) => Promise<T | void>;
@@ -26,5 +28,6 @@ export interface Extension<T extends Parameters = Parameters> {
26
28
  export interface ExtensionHandlers<T extends Parameters = any> {
27
29
  [key: string]: Extension<T> | ExtensionHandler<T>;
28
30
  }
31
+ export declare type ReferenceEntity = ADFEntity | Object;
29
32
  export declare type ParametersGetter<T extends Parameters = Parameters> = TransformBefore<T>;
30
33
  export declare type AsyncParametersGetter<T extends Parameters = Parameters> = TransformAfter<T>;
@@ -1,4 +1,4 @@
1
- export type { ExtensionParams, ExtensionHandler, UpdateExtension, Extension, ExtensionHandlers, ExtensionAPI, OnSaveCallback, TransformBefore, TransformAfter, ParametersGetter, AsyncParametersGetter, } from './extension-handler';
1
+ export type { ExtensionParams, ExtensionHandler, UpdateExtension, Extension, ExtensionHandlers, ExtensionAPI, OnSaveCallback, TransformBefore, TransformAfter, ReferenceEntity, ParametersGetter, AsyncParametersGetter, } from './extension-handler';
2
2
  export type { ExtensionProvider } from './extension-provider';
3
3
  export type { ExtensionAutoConvertHandler, ExtensionComponentProps, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleAutoConvert, ExtensionModuleNode, ExtensionModuleNodes, ExtensionModuleType, ExtensionModules, ExtensionQuickInsertModule, ExtensionType, CustomFieldResolver, UserFieldContextProvider, Icon, MaybeADFEntity, Deserializer, Serializer, DynamicFieldDefinitions, } from './extension-manifest';
4
4
  export type { ContextualToolbar, ToolbarItem, ExtensionToolbarButton, } from './extension-manifest-toolbar-item';
@@ -1,2 +1,2 @@
1
1
  export { DefaultExtensionProvider, combineExtensionProviders, createAutoConverterRunner, getExtensionAutoConvertersFromProvider, getExtensionKeyAndNodeKey, getExtensionModuleNode, getQuickInsertItemsFromModule, getNodeRenderer, getExtensionModuleNodePrivateProps, getContextualToolbarItemsFromModule, resolveImport, getCustomFieldResolver, getFieldSerializer, getFieldDeserializer, isFieldset, isTabGroup, isExpand, isDateRange, getUserFieldContextProvider, buildMenuItem, } from './extensions/index';
2
- export type { ExtensionAutoConvertHandler, Extension, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionQuickInsertModule, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionType, ExtensionToolbarButton, ToolbarItem, ContextualToolbar, Icon, MaybeADFEntity, MenuItem, MenuItemMap, UpdateExtension, Parameters, ParametersWithDuplicateFields, BooleanField, CustomField, CustomFieldResolver, ColorField, DateField, DateRangeField, DateRangeResult, EnumField, EnumCheckboxField, EnumRadioField, EnumSelectField, ExpandField, FieldDefinition, DynamicFieldDefinitions, Fieldset, GroupingField, NativeField, NestedFieldDefinition, NumberField, Option, StringField, StringOneLineField, StringMultilineField, TabGroupField, TabField, UserField, UserFieldContext, UserFieldContextProvider, FieldHandlerLink, OnSaveCallback, ExtensionAPI, TransformBefore, TransformAfter, ParametersGetter, AsyncParametersGetter, } from './extensions/index';
2
+ export type { ExtensionAutoConvertHandler, Extension, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionQuickInsertModule, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionType, ExtensionToolbarButton, ToolbarItem, ContextualToolbar, Icon, MaybeADFEntity, MenuItem, MenuItemMap, UpdateExtension, Parameters, ParametersWithDuplicateFields, BooleanField, CustomField, CustomFieldResolver, ColorField, DateField, DateRangeField, DateRangeResult, EnumField, EnumCheckboxField, EnumRadioField, EnumSelectField, ExpandField, FieldDefinition, DynamicFieldDefinitions, Fieldset, GroupingField, NativeField, NestedFieldDefinition, NumberField, Option, StringField, StringOneLineField, StringMultilineField, TabGroupField, TabField, UserField, UserFieldContext, UserFieldContextProvider, FieldHandlerLink, OnSaveCallback, ExtensionAPI, TransformBefore, TransformAfter, ReferenceEntity, ParametersGetter, AsyncParametersGetter, } from './extensions/index';
@@ -1 +1 @@
1
- export { editorFundamentalsTestCollection, editorUploadMediaTestCase, EditorPageObject, } from './__tests_external__';
1
+ export { fundamentalsTestCollection, blueLinksTestCollection, inlineSmartLinksTestCollection, blockSmartLinksTestCollection, embedSmartLinksTestCollection, mediaTestCollection, EditorPageObject, } from './__tests_external__';
@@ -1,11 +1,11 @@
1
- export { ADFTraversor, ErrorReporter, ZERO_WIDTH_SPACE, absoluteBreakoutWidth, browser, calcBreakoutWidth, breakoutConsts, calcTableColumnWidths, calcWideWidth, clearMeasure, compose, convertProsemirrorTableNodeToArrayOfRows, createCompareNodes, findAndTrackUnsupportedContentNodes, getAnalyticsAppearance, analyticsEventKey, getAnalyticsEventSeverity, getUnsupportedContentLevelData, UNSUPPORTED_CONTENT_LEVEL_SEVERITY_THRESHOLD_DEFAULTS, getExtensionLozengeData, getExtensionRenderer, getMarksByOrder, getModeFromTheme, getResponseEndTime, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode, hasMergedCell, isPastDate, isPerformanceAPIAvailable, isPerformanceObserverAvailable, isSameMark, isSubSupType, markOrder, measureRender, startMeasure, stopMeasure, measureTTI, getTTISeverity, TTI_SEVERITY_THRESHOLD_DEFAULTS, TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS, timestampToIsoFormat, timestampToString, timestampToTaskContext, timestampToUTCDate, todayTimestampInUTC, withImageLoader, canApplyAnnotationOnRange, getAnnotationIdsFromRange, SEVERITY, UNSUPPORTED_CONTENT_LEVEL_SEVERITY, shouldForceTracking, sniffUserBrowserExtensions, } from './utils';
1
+ export { ADFTraversor, ErrorReporter, ZERO_WIDTH_SPACE, absoluteBreakoutWidth, browser, calcBreakoutWidth, breakoutConsts, calcTableColumnWidths, calcWideWidth, clearMeasure, compose, convertProsemirrorTableNodeToArrayOfRows, createCompareNodes, findAndTrackUnsupportedContentNodes, getAnalyticsAppearance, analyticsEventKey, getAnalyticsEventSeverity, getUnsupportedContentLevelData, UNSUPPORTED_CONTENT_LEVEL_SEVERITY_THRESHOLD_DEFAULTS, getExtensionLozengeData, getExtensionRenderer, getMarksByOrder, getModeFromTheme, getResponseEndTime, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode, hasMergedCell, isPastDate, isPerformanceAPIAvailable, isPerformanceObserverAvailable, isSameMark, isSubSupType, markOrder, measureRender, startMeasure, stopMeasure, measureTTI, getTTISeverity, TTI_SEVERITY_THRESHOLD_DEFAULTS, TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS, timestampToIsoFormat, timestampToString, timestampToTaskContext, timestampToUTCDate, todayTimestampInUTC, withImageLoader, canApplyAnnotationOnRange, getAnnotationIdsFromRange, SEVERITY, UNSUPPORTED_CONTENT_LEVEL_SEVERITY, shouldForceTracking, sniffUserBrowserExtensions, RenderCountProfiler, } from './utils';
2
2
  export type { ADDoc, ADFStage, ADFStages, ADMark, ADMarkSimple, ADNode, Date, Diff, ErrorReportingHandler, ImageLoaderProps, ImageLoaderState, ImageStatus, Params, UnsupportedContentPayload, UnsupportedContentTooltipPayload, UnsupportedContentLevelsTracking, UserBrowserExtensionResults, } from './utils';
3
3
  export { SortOrder, AnnotationUpdateEmitter, AnnotationUpdateEvent, } from './types';
4
4
  export type { Transformer, AnnotationState, AnnotationProviders, AnnotationUpdateEventPayloads, InlineCommentSelectionComponentProps, InlineCommentViewComponentProps, InlineCommentAnnotationProvider, OnAnnotationClickPayload, AnnotationByMatches, AnnotationActionResult, } from './types';
5
5
  export type { CardOptions } from './card';
6
6
  export type { CollabEditProvider, CollabEvent, CollabEventData, CollabEventConnectionData, CollabEventInitData, CollabParticipant, CollabEventPresenceData, CollabEventLocalStepData, CollabEventRemoteData, CollabSendableSelection, CollabEventTelepointerData, } from './collab/types';
7
7
  export { DefaultExtensionProvider, combineExtensionProviders, getExtensionKeyAndNodeKey, getExtensionModuleNode, getExtensionModuleNodePrivateProps, getQuickInsertItemsFromModule, getNodeRenderer, getContextualToolbarItemsFromModule, buildMenuItem, resolveImport, } from './extensions';
8
- export type { Extension, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionQuickInsertModule, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionType, ExtensionToolbarButton, ToolbarItem, ContextualToolbar, MaybeADFEntity, Parameters, MenuItem, MenuItemMap, UpdateExtension, } from './extensions';
8
+ export type { Extension, ExtensionComponentProps, ExtensionHandler, ExtensionHandlers, ExtensionKey, ExtensionManifest, ExtensionModule, ExtensionModuleAction, ExtensionModuleActionHandler, ExtensionModuleActionObject, ExtensionModuleNode, ExtensionModuleNodes, ExtensionQuickInsertModule, ExtensionModules, ExtensionParams, ExtensionProvider, ExtensionType, ExtensionToolbarButton, ToolbarItem, ContextualToolbar, MaybeADFEntity, Parameters, MenuItem, MenuItemMap, UpdateExtension, ReferenceEntity, } from './extensions';
9
9
  export type { ContextIdentifierProvider } from './provider-factory/context-identifier-provider';
10
10
  export { ProviderFactory, WithProviders } from './provider-factory';
11
11
  export type { Providers, MediaProvider, SearchProvider, LinkContentType, QuickSearchResult, } from './provider-factory';
@@ -1,10 +1,10 @@
1
1
  import { Node } from 'prosemirror-model';
2
2
  import { EditorState, Transaction } from 'prosemirror-state';
3
- import { TypeAheadItem } from '../types/typeAhead';
3
+ import { TypeAheadItem } from '../types/type-ahead';
4
4
  export declare type QuickInsertActionInsert = (node?: Node | Record<string, any> | string, opts?: {
5
5
  selectInlineNode?: boolean;
6
6
  }) => Transaction;
7
- export declare type QuickInsertItemId = 'hyperlink' | 'table' | 'helpdialog' | 'date' | 'media' | 'blockquote' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'codeblock' | 'unorderedList' | 'feedbackdialog' | 'orderedList' | 'rule' | 'status' | 'mention' | 'emoji' | 'action' | 'decision' | 'infopanel' | 'notepanel' | 'successpanel' | 'warningpanel' | 'errorpanel' | 'layout' | 'expand' | 'placeholderText';
7
+ export declare type QuickInsertItemId = 'hyperlink' | 'table' | 'helpdialog' | 'date' | 'media' | 'blockquote' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'codeblock' | 'unorderedList' | 'feedbackdialog' | 'orderedList' | 'rule' | 'status' | 'mention' | 'emoji' | 'action' | 'decision' | 'infopanel' | 'notepanel' | 'successpanel' | 'warningpanel' | 'errorpanel' | 'custompanel' | 'layout' | 'expand' | 'placeholderText';
8
8
  export declare type QuickInsertItem = TypeAheadItem & {
9
9
  /** other names used to find the item */
10
10
  keywords?: Array<string>;
@@ -8,5 +8,5 @@ export type { MacroProvider, MacroAttributes, ExtensionType, } from './provider-
8
8
  export type { SearchProvider, LinkContentType, QuickSearchResult, } from './provider-factory/search-provider';
9
9
  export type { CardProvider, CardAppearance, CardAdf, } from './provider-factory/card-provider';
10
10
  export type { QuickInsertItem, QuickInsertItemId, QuickInsertActionInsert, QuickInsertProvider, } from './provider-factory/quick-insert-provider';
11
- export type { TypeAheadItem, TypeAheadItemRenderProps, } from './types/typeAhead';
11
+ export type { TypeAheadItem, TypeAheadItemRenderProps, } from './types/type-ahead';
12
12
  export type { AutoformatReplacement, AutoformattingProvider, AutoformatHandler, AutoformatRuleset, } from './provider-factory/autoformatting-provider';
@@ -13,6 +13,12 @@ export declare const PanelSharedSelectors: {
13
13
  successPanel: string;
14
14
  noteButton: string;
15
15
  removeButton: string;
16
+ colorPalette: string;
17
+ selectedColor: string;
18
+ removeEmojiIcon: string;
19
+ emojiIcon: string;
20
+ selectedEmoji: string;
21
+ title: string;
16
22
  };
17
23
  export declare const getPanelTypeBackground: (panelType: Exclude<PanelType, PanelType.CUSTOM>, props?: ThemeProps) => string;
18
24
  export declare const panelSharedStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<import("@atlaskit/theme/types").AtlaskitThemeProps | import("@atlaskit/theme/types").CustomThemeProps | import("@atlaskit/theme/types").NoThemeProps | undefined, any>>[];
@@ -17,6 +17,7 @@ export declare const TableSharedCssClassName: {
17
17
  TABLE_STICKY_SENTINEL_TOP: string;
18
18
  TABLE_STICKY_SENTINEL_BOTTOM: string;
19
19
  TABLE_CELL_NODEVIEW_CONTENT_DOM: string;
20
+ TABLE_CELL_WRAPPER: string;
20
21
  };
21
22
  declare const tableSharedStyle: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<import("@atlaskit/theme").AtlaskitThemeProps | import("@atlaskit/theme").CustomThemeProps | import("@atlaskit/theme").NoThemeProps | undefined, any>>[];
22
23
  export declare const calcTableWidth: (layout: TableLayout, containerWidth?: number | undefined, addControllerPadding?: boolean) => string;
@@ -0,0 +1,12 @@
1
+ export declare enum TypeAheadAvailableNodes {
2
+ EMOJI = "emojiTypeAhead",
3
+ MENTION = "mentionTypeAhead",
4
+ QUICK_INSERT = "quickInsertTypeAhead"
5
+ }
6
+ export declare enum SelectItemMode {
7
+ SHIFT_ENTER = "shift-enter",
8
+ ENTER = "enter",
9
+ SPACE = "space",
10
+ SELECTED = "selected",
11
+ TAB = "tab"
12
+ }
@@ -10,4 +10,4 @@ export declare enum SortOrder {
10
10
  }
11
11
  export { AnnotationUpdateEmitter, AnnotationUpdateEvent } from './annotation';
12
12
  export type { AnnotationState, AnnotationProviders, AnnotationUpdateEventPayloads, InlineCommentSelectionComponentProps, InlineCommentViewComponentProps, InlineCommentAnnotationProvider, OnAnnotationClickPayload, AnnotationByMatches, AnnotationActionResult, } from './annotation';
13
- export type { TypeAheadItem, TypeAheadItemRenderProps } from './typeAhead';
13
+ export type { TypeAheadItem, TypeAheadItemRenderProps } from './type-ahead';
@@ -0,0 +1,32 @@
1
+ import { EditorView } from 'prosemirror-view';
2
+ import { UFOExperience } from '@atlaskit/ufo';
3
+ import type { CustomData, ExperienceConfig } from '@atlaskit/ufo/types';
4
+ export declare const experienceConfig: ExperienceConfig;
5
+ export declare enum EditorExperience {
6
+ loadEditor = "load",
7
+ typing = "type",
8
+ interaction = "interact"
9
+ }
10
+ export declare const RELIABILITY_INTERVAL = 30000;
11
+ declare type TypeOfEditorExperience = typeof EditorExperience;
12
+ declare type ValueOfEditorExperience = TypeOfEditorExperience[keyof TypeOfEditorExperience];
13
+ export declare class ExperienceStore {
14
+ private static stores;
15
+ private experiences;
16
+ private constructor();
17
+ static getInstance(view: EditorView, options?: {
18
+ forceNewInstance?: boolean;
19
+ }): ExperienceStore;
20
+ get(experienceId: string): UFOExperience | undefined;
21
+ getActive(experienceId: string): UFOExperience | undefined;
22
+ getAll(): UFOExperience[];
23
+ start(experienceId: ValueOfEditorExperience, startTime?: number): void;
24
+ addMetadata(experienceId: string, metadata: CustomData): void;
25
+ mark(experienceId: string, mark: string, value: number): void;
26
+ success(experienceId: string, metadata?: CustomData): void;
27
+ fail(experienceId: string, metadata?: CustomData): void;
28
+ abort(experienceId: string, metadata?: CustomData): void;
29
+ abortAll(metadata?: CustomData): void;
30
+ failAll(metadata?: CustomData): void;
31
+ }
32
+ export {};
@@ -0,0 +1 @@
1
+ export { ExperienceStore, EditorExperience, RELIABILITY_INTERVAL, } from './experience-store';
@@ -8,5 +8,8 @@ declare const result: {
8
8
  android: boolean;
9
9
  ios: boolean;
10
10
  webkit: boolean;
11
+ safari: boolean;
12
+ supportsIntersectionObserver: boolean;
13
+ supportsResizeObserver: boolean;
11
14
  };
12
15
  export default result;
@@ -30,3 +30,4 @@ export { shouldForceTracking } from './should-force-tracking';
30
30
  export { getModeFromTheme } from './getModeFromTheme';
31
31
  export type { UserBrowserExtensionResults } from './browser-extensions';
32
32
  export { sniffUserBrowserExtensions } from './browser-extensions';
33
+ export { RenderCountProfiler } from './profiler/render-count';
@@ -0,0 +1,50 @@
1
+ export declare const PROFILER_KEY = "__editorRenderCountProfiler";
2
+ interface ComponentInstanceRenderCounter {
3
+ instanceId: string;
4
+ count: number;
5
+ }
6
+ declare type ProfilerData = {
7
+ enabled: boolean;
8
+ components?: {
9
+ [componentId: string]: {
10
+ [instanceId: string]: {
11
+ count: number;
12
+ };
13
+ };
14
+ };
15
+ };
16
+ declare type RenderCountProfilerInstanceParams = {
17
+ store: Object;
18
+ };
19
+ export declare class RenderCountProfiler {
20
+ /**
21
+ * The singleton/cached instance of RenderCountProfiler that will be shared
22
+ * betweenRenderCountProfiler.getInstance() calls
23
+ */
24
+ private static instance;
25
+ private store;
26
+ private constructor();
27
+ /**
28
+ * Returns the singleton/cached instance of RenderCountProfiler that
29
+ * currently exists. If it hasn't been instantiated yet, the singleton
30
+ * instance will be created using the given params. Returns the latest
31
+ * singleton/instance.
32
+ */
33
+ static getInstance(params: RenderCountProfilerInstanceParams): RenderCountProfiler;
34
+ getData(profilerKey: typeof PROFILER_KEY): ProfilerData | void;
35
+ enable(): void;
36
+ remove(): void;
37
+ isEnabled(): boolean;
38
+ setRenderCount({ componentId, renderCount, instanceId, }: {
39
+ componentId: string;
40
+ renderCount: number;
41
+ instanceId: string;
42
+ }): void;
43
+ getInstanceRenderCounters({ componentId, }: {
44
+ componentId: string;
45
+ }): ComponentInstanceRenderCounter[];
46
+ getRenderCount({ componentId }: {
47
+ componentId: string;
48
+ }): number;
49
+ }
50
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "59.0.0",
3
+ "version": "60.2.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,28 +29,32 @@
29
29
  "./styles": "./src/styles/index.ts",
30
30
  "./validator": "./src/validator.ts",
31
31
  "./in-product": "./src/in-product.ts",
32
- "./cypress-config": "./src/cypress-config.ts"
32
+ "./cypress-config": "./src/cypress-config.ts",
33
+ "./type-ahead": "./src/type-ahead/index.ts",
34
+ "./ufo": "./src/ufo/index.ts"
33
35
  },
34
36
  "dependencies": {
35
37
  "@atlaskit/activity-provider": "^2.3.0",
36
- "@atlaskit/adf-schema": "^18.2.0",
37
- "@atlaskit/adf-utils": "^14.1.0",
38
+ "@atlaskit/adf-schema": "^19.3.0",
39
+ "@atlaskit/adf-utils": "^14.3.0",
38
40
  "@atlaskit/analytics-namespaced-context": "^6.3.0",
39
41
  "@atlaskit/analytics-next": "^8.2.0",
40
42
  "@atlaskit/code": "^14.1.0",
41
43
  "@atlaskit/editor-json-transformer": "^8.6.0",
42
- "@atlaskit/editor-shared-styles": "^1.5.0",
44
+ "@atlaskit/editor-shared-styles": "^1.6.0",
43
45
  "@atlaskit/emoji": "^63.1.0",
44
- "@atlaskit/icon": "^21.7.0",
45
- "@atlaskit/media-card": "^70.9.0",
46
- "@atlaskit/media-client": "^14.0.0",
47
- "@atlaskit/media-picker": "^58.0.0",
48
- "@atlaskit/mention": "^19.6.0",
49
- "@atlaskit/profilecard": "^15.0.0",
50
- "@atlaskit/smart-card": "^15.5.0",
46
+ "@atlaskit/icon": "^21.9.0",
47
+ "@atlaskit/in-product-testing": "^0.1.0",
48
+ "@atlaskit/media-card": "^72.0.0",
49
+ "@atlaskit/media-client": "^14.3.0",
50
+ "@atlaskit/media-picker": "^58.1.0",
51
+ "@atlaskit/mention": "^19.7.0",
52
+ "@atlaskit/profilecard": "^15.8.0",
53
+ "@atlaskit/smart-card": "^16.2.0",
51
54
  "@atlaskit/task-decision": "^17.2.0",
52
- "@atlaskit/theme": "^11.4.0",
53
- "@atlaskit/tooltip": "^17.3.0",
55
+ "@atlaskit/theme": "^12.0.0",
56
+ "@atlaskit/tooltip": "^17.5.0",
57
+ "@atlaskit/ufo": "^0.0.6",
54
58
  "@atlaskit/user-picker": "^7.3.0",
55
59
  "@atlaskit/width-detector": "^3.0.0",
56
60
  "@babel/runtime": "^7.0.0",
@@ -78,9 +82,9 @@
78
82
  },
79
83
  "devDependencies": {
80
84
  "@atlaskit/editor-json-transformer": "^8.6.0",
81
- "@atlaskit/editor-test-helpers": "^15.3.0",
85
+ "@atlaskit/editor-test-helpers": "^15.5.0",
82
86
  "@atlaskit/media-core": "^32.2.0",
83
- "@atlaskit/util-data-test": "^15.0.0",
87
+ "@atlaskit/util-data-test": "^16.0.0",
84
88
  "@atlaskit/visual-regression": "*",
85
89
  "@atlaskit/webdriver-runner": "*",
86
90
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@atlaskit/editor-common/type-ahead",
3
+ "main": "../dist/cjs/type-ahead/index.js",
4
+ "module": "../dist/esm/type-ahead/index.js",
5
+ "module:es2019": "../dist/es2019/type-ahead/index.js",
6
+ "types": "../dist/types/type-ahead/index.d.ts"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@atlaskit/editor-common/ufo",
3
+ "main": "../dist/cjs/ufo/index.js",
4
+ "module": "../dist/esm/ufo/index.js",
5
+ "module:es2019": "../dist/es2019/ufo/index.js",
6
+ "types": "../dist/types/ufo/index.d.ts"
7
+ }
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _react2 = require("@testing-library/react");
8
-
9
- var _reactIntl = require("react-intl");
10
-
11
- var _colors = require("@atlaskit/theme/colors");
12
-
13
- var _messages = require("./messages");
14
-
15
- var _index = _interopRequireDefault(require("./index"));
16
-
17
- var renderWithIntl = function renderWithIntl(component) {
18
- return (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_reactIntl.IntlProvider, {
19
- locale: "en"
20
- }, component));
21
- };
22
-
23
- describe('CaptionComponent', function () {
24
- it('should show a placeholder by default', function () {
25
- var _renderWithIntl = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, null)),
26
- getByText = _renderWithIntl.getByText;
27
-
28
- expect(getByText(_messages.messages.placeholder.defaultMessage)).not.toBeNull();
29
- });
30
- it('should have the placeholder colour as N200', function () {
31
- var _renderWithIntl2 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, null)),
32
- getByText = _renderWithIntl2.getByText;
33
-
34
- expect(getByText(_messages.messages.placeholder.defaultMessage)).toHaveStyle("color: ".concat(_colors.N200));
35
- });
36
- it('should have the colour N400', function () {
37
- var _renderWithIntl3 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, null)),
38
- container = _renderWithIntl3.container;
39
-
40
- expect(container.firstChild).toHaveStyle("color: ".concat(_colors.N400));
41
- });
42
- it('should have centered text', function () {
43
- var _renderWithIntl4 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, null)),
44
- container = _renderWithIntl4.container;
45
-
46
- expect(container.firstChild).toHaveStyle("text-align: center");
47
- });
48
- it("shouldn't show the placeholder when selected", function () {
49
- var _renderWithIntl5 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, {
50
- selected: true
51
- })),
52
- queryByText = _renderWithIntl5.queryByText;
53
-
54
- expect(queryByText(_messages.messages.placeholder.defaultMessage)).toBeNull();
55
- });
56
- it("shouldn't show the placeholder if caption has content", function () {
57
- var _renderWithIntl6 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, {
58
- hasContent: true
59
- })),
60
- queryByText = _renderWithIntl6.queryByText;
61
-
62
- expect(queryByText(_messages.messages.placeholder.defaultMessage)).toBeNull();
63
- });
64
- it('should have data-renderer-start-pos if provided', function () {
65
- var _renderWithIntl7 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, {
66
- dataAttributes: {
67
- 'data-renderer-start-pos': 5
68
- }
69
- })),
70
- getByTestId = _renderWithIntl7.getByTestId;
71
-
72
- var caption = getByTestId('media-caption');
73
- expect(caption.getAttribute('data-renderer-start-pos')).toEqual('5');
74
- });
75
- it('should have data-media-caption', function () {
76
- var _renderWithIntl8 = renderWithIntl( /*#__PURE__*/_react.default.createElement(_index.default, null)),
77
- getByTestId = _renderWithIntl8.getByTestId;
78
-
79
- var caption = getByTestId('media-caption');
80
- expect(caption.getAttribute('data-media-caption')).toEqual('true');
81
- });
82
- });