@atlaskit/editor-plugin-insert-block 0.1.1 → 0.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 (90) hide show
  1. package/.eslintrc.js +26 -0
  2. package/CHANGELOG.md +6 -0
  3. package/dist/cjs/index.js +8 -1
  4. package/dist/cjs/plugin.js +164 -0
  5. package/dist/cjs/types.js +5 -0
  6. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +166 -0
  7. package/dist/cjs/ui/ElementBrowser/types.js +5 -0
  8. package/dist/cjs/ui/ToolbarInsertBlock/block-insert-element-browser.js +42 -0
  9. package/dist/cjs/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +42 -0
  10. package/dist/cjs/ui/ToolbarInsertBlock/block-insert-menu.js +66 -0
  11. package/dist/cjs/ui/ToolbarInsertBlock/create-items.js +217 -0
  12. package/dist/cjs/ui/ToolbarInsertBlock/dropdown-button.js +52 -0
  13. package/dist/cjs/ui/ToolbarInsertBlock/index.js +570 -0
  14. package/dist/cjs/ui/ToolbarInsertBlock/item.js +252 -0
  15. package/dist/cjs/ui/ToolbarInsertBlock/messages.js +12 -0
  16. package/dist/cjs/ui/ToolbarInsertBlock/shallow-equals.js +20 -0
  17. package/dist/cjs/ui/ToolbarInsertBlock/sort-items.js +30 -0
  18. package/dist/cjs/ui/ToolbarInsertBlock/styles.js +11 -0
  19. package/dist/cjs/ui/ToolbarInsertBlock/types.js +5 -0
  20. package/dist/es2019/index.js +1 -1
  21. package/dist/es2019/plugin.js +158 -0
  22. package/dist/es2019/types.js +1 -0
  23. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +153 -0
  24. package/dist/es2019/ui/ElementBrowser/types.js +1 -0
  25. package/dist/es2019/ui/ToolbarInsertBlock/block-insert-element-browser.js +35 -0
  26. package/dist/es2019/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +35 -0
  27. package/dist/es2019/ui/ToolbarInsertBlock/block-insert-menu.js +59 -0
  28. package/dist/es2019/ui/ToolbarInsertBlock/create-items.js +198 -0
  29. package/dist/es2019/ui/ToolbarInsertBlock/dropdown-button.js +39 -0
  30. package/dist/es2019/ui/ToolbarInsertBlock/index.js +562 -0
  31. package/dist/es2019/ui/ToolbarInsertBlock/item.js +202 -0
  32. package/dist/es2019/ui/ToolbarInsertBlock/messages.js +1 -0
  33. package/dist/es2019/ui/ToolbarInsertBlock/shallow-equals.js +8 -0
  34. package/dist/es2019/ui/ToolbarInsertBlock/sort-items.js +22 -0
  35. package/dist/es2019/ui/ToolbarInsertBlock/styles.js +16 -0
  36. package/dist/es2019/ui/ToolbarInsertBlock/types.js +1 -0
  37. package/dist/esm/index.js +1 -1
  38. package/dist/esm/plugin.js +157 -0
  39. package/dist/esm/types.js +1 -0
  40. package/dist/esm/ui/ElementBrowser/InsertMenu.js +160 -0
  41. package/dist/esm/ui/ElementBrowser/types.js +1 -0
  42. package/dist/esm/ui/ToolbarInsertBlock/block-insert-element-browser.js +35 -0
  43. package/dist/esm/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +35 -0
  44. package/dist/esm/ui/ToolbarInsertBlock/block-insert-menu.js +59 -0
  45. package/dist/esm/ui/ToolbarInsertBlock/create-items.js +210 -0
  46. package/dist/esm/ui/ToolbarInsertBlock/dropdown-button.js +44 -0
  47. package/dist/esm/ui/ToolbarInsertBlock/index.js +564 -0
  48. package/dist/esm/ui/ToolbarInsertBlock/item.js +244 -0
  49. package/dist/esm/ui/ToolbarInsertBlock/messages.js +1 -0
  50. package/dist/esm/ui/ToolbarInsertBlock/shallow-equals.js +13 -0
  51. package/dist/esm/ui/ToolbarInsertBlock/sort-items.js +24 -0
  52. package/dist/esm/ui/ToolbarInsertBlock/styles.js +4 -0
  53. package/dist/esm/ui/ToolbarInsertBlock/types.js +1 -0
  54. package/dist/types/index.d.ts +2 -1
  55. package/dist/types/plugin.d.ts +16 -0
  56. package/dist/types/types.d.ts +45 -0
  57. package/dist/types/ui/ElementBrowser/InsertMenu.d.ts +4 -0
  58. package/dist/types/ui/ElementBrowser/types.d.ts +22 -0
  59. package/dist/types/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +28 -0
  60. package/dist/types/ui/ToolbarInsertBlock/block-insert-menu-legacy.d.ts +21 -0
  61. package/dist/types/ui/ToolbarInsertBlock/block-insert-menu.d.ts +33 -0
  62. package/dist/types/ui/ToolbarInsertBlock/create-items.d.ts +39 -0
  63. package/dist/types/ui/ToolbarInsertBlock/dropdown-button.d.ts +16 -0
  64. package/dist/types/ui/ToolbarInsertBlock/index.d.ts +46 -0
  65. package/dist/types/ui/ToolbarInsertBlock/item.d.ts +35 -0
  66. package/dist/types/ui/ToolbarInsertBlock/messages.d.ts +1 -0
  67. package/dist/types/ui/ToolbarInsertBlock/shallow-equals.d.ts +1 -0
  68. package/dist/types/ui/ToolbarInsertBlock/sort-items.d.ts +2 -0
  69. package/dist/types/ui/ToolbarInsertBlock/styles.d.ts +1 -0
  70. package/dist/types/ui/ToolbarInsertBlock/types.d.ts +59 -0
  71. package/dist/types-ts4.5/index.d.ts +2 -1
  72. package/dist/types-ts4.5/plugin.d.ts +16 -0
  73. package/dist/types-ts4.5/types.d.ts +45 -0
  74. package/dist/types-ts4.5/ui/ElementBrowser/InsertMenu.d.ts +4 -0
  75. package/dist/types-ts4.5/ui/ElementBrowser/types.d.ts +22 -0
  76. package/dist/types-ts4.5/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +28 -0
  77. package/dist/types-ts4.5/ui/ToolbarInsertBlock/block-insert-menu-legacy.d.ts +21 -0
  78. package/dist/types-ts4.5/ui/ToolbarInsertBlock/block-insert-menu.d.ts +33 -0
  79. package/dist/types-ts4.5/ui/ToolbarInsertBlock/create-items.d.ts +42 -0
  80. package/dist/types-ts4.5/ui/ToolbarInsertBlock/dropdown-button.d.ts +16 -0
  81. package/dist/types-ts4.5/ui/ToolbarInsertBlock/index.d.ts +46 -0
  82. package/dist/types-ts4.5/ui/ToolbarInsertBlock/item.d.ts +35 -0
  83. package/dist/types-ts4.5/ui/ToolbarInsertBlock/messages.d.ts +1 -0
  84. package/dist/types-ts4.5/ui/ToolbarInsertBlock/shallow-equals.d.ts +1 -0
  85. package/dist/types-ts4.5/ui/ToolbarInsertBlock/sort-items.d.ts +2 -0
  86. package/dist/types-ts4.5/ui/ToolbarInsertBlock/styles.d.ts +1 -0
  87. package/dist/types-ts4.5/ui/ToolbarInsertBlock/types.d.ts +59 -0
  88. package/package.json +37 -9
  89. package/report.api.md +82 -1
  90. package/tmp/api-report-tmp.d.ts +76 -0
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createItems = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _memoize = _interopRequireDefault(require("lodash/memoize"));
12
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
13
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
14
+ var _messages = require("@atlaskit/editor-common/messages");
15
+ var _item = require("./item");
16
+ var _messages2 = require("./messages");
17
+ var _shallowEquals = require("./shallow-equals");
18
+ var _sortItems = require("./sort-items");
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ 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) { (0, _defineProperty2.default)(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; }
21
+ var buttonToItem = (0, _memoize.default)(function (button) {
22
+ return _objectSpread(_objectSpread({}, button), {}, {
23
+ title: /*#__PURE__*/_react.default.createElement(_keymaps.ToolTipContent, {
24
+ description: button.content,
25
+ shortcutOverride: button.shortcut
26
+ })
27
+ });
28
+ });
29
+ var buttonToDropdownItem = (0, _memoizeOne.default)(function (title) {
30
+ return (0, _memoize.default)(function (button) {
31
+ return _objectSpread(_objectSpread({}, button), {}, {
32
+ title: /*#__PURE__*/_react.default.createElement(_keymaps.ToolTipContent, {
33
+ description: title,
34
+ shortcutOverride: "/"
35
+ })
36
+ });
37
+ });
38
+ });
39
+ var createInsertBlockItems = function createInsertBlockItems(config) {
40
+ var isTypeAheadAllowed = config.isTypeAheadAllowed,
41
+ tableSupported = config.tableSupported,
42
+ mediaUploadsEnabled = config.mediaUploadsEnabled,
43
+ mediaSupported = config.mediaSupported,
44
+ imageUploadSupported = config.imageUploadSupported,
45
+ imageUploadEnabled = config.imageUploadEnabled,
46
+ mentionsSupported = config.mentionsSupported,
47
+ mentionsDisabled = config.mentionsDisabled,
48
+ availableWrapperBlockTypes = config.availableWrapperBlockTypes,
49
+ actionSupported = config.actionSupported,
50
+ decisionSupported = config.decisionSupported,
51
+ showElementBrowserLink = config.showElementBrowserLink,
52
+ linkSupported = config.linkSupported,
53
+ linkDisabled = config.linkDisabled,
54
+ emojiDisabled = config.emojiDisabled,
55
+ emojiProvider = config.emojiProvider,
56
+ nativeStatusSupported = config.nativeStatusSupported,
57
+ insertMenuItems = config.insertMenuItems,
58
+ dateEnabled = config.dateEnabled,
59
+ placeholderTextEnabled = config.placeholderTextEnabled,
60
+ horizontalRuleEnabled = config.horizontalRuleEnabled,
61
+ layoutSectionEnabled = config.layoutSectionEnabled,
62
+ expandEnabled = config.expandEnabled,
63
+ numberOfButtons = config.numberOfButtons,
64
+ schema = config.schema,
65
+ formatMessage = config.formatMessage,
66
+ isNewMenuEnabled = config.isNewMenuEnabled;
67
+ var items = [];
68
+ if (actionSupported) {
69
+ items.push((0, _item.action)({
70
+ content: formatMessage(_messages2.messages.action),
71
+ tooltipDescription: formatMessage(_messages2.messages.actionDescription),
72
+ disabled: false
73
+ }));
74
+ }
75
+ if (linkSupported) {
76
+ items.push((0, _item.link)({
77
+ content: formatMessage(_messages2.messages.link),
78
+ tooltipDescription: formatMessage(_messages2.messages.linkDescription),
79
+ disabled: !!linkDisabled,
80
+ 'aria-haspopup': 'dialog'
81
+ }));
82
+ }
83
+ if (mediaSupported && mediaUploadsEnabled) {
84
+ items.push((0, _item.media)({
85
+ content: formatMessage(_messages2.messages.addMediaFiles),
86
+ tooltipDescription: formatMessage(_messages2.messages.mediaFilesDescription),
87
+ disabled: false
88
+ }));
89
+ }
90
+ if (imageUploadSupported) {
91
+ items.push((0, _item.imageUpload)({
92
+ content: formatMessage(_messages2.messages.image),
93
+ disabled: !imageUploadEnabled
94
+ }));
95
+ }
96
+ if (mentionsSupported) {
97
+ items.push((0, _item.mention)({
98
+ content: formatMessage(_messages2.messages.mention),
99
+ tooltipDescription: formatMessage(_messages2.messages.mentionDescription),
100
+ disabled: !isTypeAheadAllowed || !!mentionsDisabled,
101
+ 'aria-haspopup': 'listbox'
102
+ }));
103
+ }
104
+ if (emojiProvider) {
105
+ items.push((0, _item.emoji)({
106
+ content: formatMessage(_messages2.messages.emoji),
107
+ tooltipDescription: formatMessage(_messages2.messages.emojiDescription),
108
+ disabled: emojiDisabled || !isTypeAheadAllowed,
109
+ 'aria-haspopup': 'dialog'
110
+ }));
111
+ }
112
+ if (tableSupported) {
113
+ items.push((0, _item.table)({
114
+ content: formatMessage(_messages2.messages.table),
115
+ tooltipDescription: formatMessage(_messages2.messages.tableDescription),
116
+ disabled: false
117
+ }));
118
+ }
119
+ if (layoutSectionEnabled) {
120
+ var labelColumns = formatMessage(_messages2.messages.columns);
121
+ items.push((0, _item.layout)({
122
+ content: labelColumns,
123
+ tooltipDescription: formatMessage(_messages2.messages.columnsDescription),
124
+ disabled: false
125
+ }));
126
+ }
127
+ var blockTypes = availableWrapperBlockTypes || [];
128
+ var codeblockData = blockTypes.find(function (type) {
129
+ return type.name === 'codeblock';
130
+ });
131
+ var panelData = blockTypes.find(function (type) {
132
+ return type.name === 'panel';
133
+ });
134
+ var blockquoteData = blockTypes.find(function (type) {
135
+ return type.name === 'blockquote';
136
+ });
137
+ if (codeblockData) {
138
+ items.push((0, _item.codeblock)({
139
+ content: formatMessage(codeblockData.title),
140
+ tooltipDescription: formatMessage(_messages.blockTypeMessages.codeblockDescription),
141
+ disabled: false,
142
+ shortcut: '```'
143
+ }));
144
+ }
145
+ if (panelData) {
146
+ items.push((0, _item.panel)({
147
+ content: formatMessage(panelData.title),
148
+ tooltipDescription: formatMessage(_messages.blockTypeMessages.infoPanelDescription),
149
+ disabled: false
150
+ }));
151
+ }
152
+ if (blockquoteData) {
153
+ items.push((0, _item.blockquote)({
154
+ content: formatMessage(blockquoteData.title),
155
+ tooltipDescription: formatMessage(_messages.blockTypeMessages.blockquoteDescription),
156
+ disabled: false,
157
+ shortcut: '>'
158
+ }));
159
+ }
160
+ if (decisionSupported) {
161
+ items.push((0, _item.decision)({
162
+ content: formatMessage(_messages2.messages.decision),
163
+ tooltipDescription: formatMessage(_messages2.messages.decisionDescription),
164
+ disabled: false
165
+ }));
166
+ }
167
+ if (horizontalRuleEnabled && schema.nodes.rule) {
168
+ items.push((0, _item.horizontalrule)({
169
+ content: formatMessage(_messages2.messages.horizontalRule),
170
+ tooltipDescription: formatMessage(_messages2.messages.horizontalRuleDescription),
171
+ disabled: false
172
+ }));
173
+ }
174
+ if (expandEnabled && schema.nodes.expand) {
175
+ items.push((0, _item.expand)({
176
+ content: formatMessage(_messages2.messages.expand),
177
+ tooltipDescription: formatMessage(_messages2.messages.expandDescription),
178
+ disabled: false
179
+ }));
180
+ }
181
+ if (dateEnabled) {
182
+ var labelDate = formatMessage(_messages2.messages.date);
183
+ items.push((0, _item.date)({
184
+ content: labelDate,
185
+ tooltipDescription: formatMessage(_messages2.messages.dateDescription),
186
+ disabled: false
187
+ }));
188
+ }
189
+ if (placeholderTextEnabled) {
190
+ items.push((0, _item.placeholder)({
191
+ content: formatMessage(_messages2.messages.placeholderText),
192
+ disabled: false
193
+ }));
194
+ }
195
+ if (nativeStatusSupported) {
196
+ var labelStatus = formatMessage(_messages2.messages.status);
197
+ items.push((0, _item.status)({
198
+ content: labelStatus,
199
+ tooltipDescription: formatMessage(_messages2.messages.statusDescription),
200
+ disabled: false
201
+ }));
202
+ }
203
+ if (insertMenuItems) {
204
+ items.push.apply(items, (0, _toConsumableArray2.default)(insertMenuItems));
205
+ }
206
+ if (showElementBrowserLink) {
207
+ items.push((0, _item.more)({
208
+ content: formatMessage(_messages2.messages.viewMore),
209
+ disabled: false
210
+ }));
211
+ }
212
+ var buttonItems = items.slice(0, numberOfButtons).map(buttonToItem);
213
+ var remainingItems = items.slice(numberOfButtons);
214
+ var dropdownItems = (!isNewMenuEnabled ? (0, _sortItems.sortItems)(remainingItems) : remainingItems).map(buttonToDropdownItem(formatMessage(_messages2.messages.insertMenu)));
215
+ return [buttonItems, dropdownItems];
216
+ };
217
+ var createItems = exports.createItems = (0, _memoizeOne.default)(createInsertBlockItems, _shallowEquals.shallowEquals);
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DropDownButton = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@emotion/react");
10
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
11
+ var _styles = require("@atlaskit/editor-common/styles");
12
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
13
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
14
+ var _add = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/add"));
15
+ var _styles2 = require("./styles");
16
+ /** @jsx jsx */
17
+
18
+ var DropDownButtonIcon = /*#__PURE__*/_react.default.memo(function (props) {
19
+ return (
20
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
21
+ (0, _react2.jsx)("span", {
22
+ css: _styles2.triggerWrapper
23
+ }, (0, _react2.jsx)(_add.default, {
24
+ label: props.label
25
+ }), (0, _react2.jsx)("span", {
26
+ css: _styles.expandIconWrapperStyle
27
+ }, (0, _react2.jsx)(_chevronDown.default, {
28
+ label: ""
29
+ })))
30
+ );
31
+ });
32
+ var DropDownButton = exports.DropDownButton = /*#__PURE__*/_react.default.memo(function (props) {
33
+ return (0, _react2.jsx)(_uiMenu.ToolbarButton, {
34
+ ref: props.handleRef,
35
+ selected: props.selected,
36
+ disabled: props.disabled,
37
+ onClick: props.onClick,
38
+ onKeyDown: props.onKeyDown,
39
+ spacing: props.spacing,
40
+ "aria-expanded": props['aria-expanded'],
41
+ "aria-haspopup": props['aria-haspopup'],
42
+ "aria-keyshortcuts": props['aria-keyshortcuts'],
43
+ "aria-label": "".concat(props.label, " /"),
44
+ iconBefore: (0, _react2.jsx)(DropDownButtonIcon, {
45
+ label: ""
46
+ }),
47
+ title: (0, _react2.jsx)(_keymaps.ToolTipContent, {
48
+ description: props.label,
49
+ shortcutOverride: "/"
50
+ })
51
+ });
52
+ });