@skbkontur/markdown 2.5.8-y.0 → 2.6.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 (29) hide show
  1. package/index.d.ts +1 -1
  2. package/package.json +3 -3
  3. package/src/Markdown/Emoji/EmojiDropdown.d.ts +1 -0
  4. package/src/Markdown/Emoji/EmojiDropdown.js +3 -2
  5. package/src/Markdown/Markdown.creevey.js +175 -260
  6. package/src/Markdown/Markdown.d.ts +1 -3
  7. package/src/Markdown/Markdown.js +34 -31
  8. package/src/Markdown/Markdown.styled.d.ts +2 -0
  9. package/src/Markdown/Markdown.styled.js +16 -14
  10. package/src/Markdown/MarkdownActions/AIActionsDropdown/AIActionsDropdown.d.ts +3 -3
  11. package/src/Markdown/MarkdownActions/AIActionsDropdown/AIActionsDropdown.js +41 -33
  12. package/src/Markdown/MarkdownActions/AIActionsDropdown/AIActionsDropdown.styled.d.ts +1 -1
  13. package/src/Markdown/MarkdownActions/AIActionsDropdown/AIActionsDropdown.styled.js +2 -2
  14. package/src/Markdown/MarkdownActions/AIActionsDropdown/constants.d.ts +1 -1
  15. package/src/Markdown/MarkdownActions/AIActionsDropdown/constants.js +1 -1
  16. package/src/Markdown/MarkdownActions/MarkdownActions.d.ts +2 -3
  17. package/src/Markdown/MarkdownActions/MarkdownActions.js +16 -15
  18. package/src/Markdown/MarkdownActions/MarkdownDropdown/MarkdownDropdown.d.ts +6 -0
  19. package/src/Markdown/MarkdownActions/MarkdownDropdown/MarkdownDropdown.js +8 -10
  20. package/src/Markdown/MarkdownActions/MarkdownDropdown/MarkdownDropdown.styled.js +1 -1
  21. package/src/Markdown/MarkdownHelpItems.d.ts +2 -0
  22. package/src/Markdown/MarkdownHelpItems.js +16 -0
  23. package/src/Markdown/MarkdownHelpers/MarkdownFormatButton.d.ts +16 -3
  24. package/src/Markdown/MarkdownHelpers/MarkdownFormatButton.js +7 -6
  25. package/src/Markdown/MarkdownTids.d.ts +24 -0
  26. package/src/Markdown/MarkdownTids.js +25 -0
  27. package/src/Markdown/types.d.ts +12 -6
  28. package/src/Markdown/MarkdownHelpers/types.d.ts +0 -11
  29. package/src/Markdown/MarkdownHelpers/types.js +0 -1
package/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export { Markdown, MarkdownProps } from './src/Markdown/Markdown';
2
2
  export { MarkdownCombination } from './src/MarkdownCombination/MarkdownCombination';
3
3
  export { markdownHelpItems, markdownHelpFiles, markdownHelpLists, markdownHelpOther, } from './src/Markdown/MarkdownHelpItems';
4
4
  export { MarkdownViewer } from './src/MarkdownViewer/MarkdownViewer';
5
- export { MarkdownApi, RefItem, User, Token, HorizontalPaddings, ViewMode, HideActionsOptions, AIMethod, } from '././src/Markdown/types';
5
+ export { MarkdownApi, RefItem, User, Token, HorizontalPaddings, ViewMode, HideActionsOptions, AIMethod, AIApi, } from '././src/Markdown/types';
6
6
  export { ThemeMode, ColorScheme } from './src/styles/types';
7
7
  export { MarkdownTheme, MarkdownThemeProvider, MarkdownThemeConsumer, MarkdownThemeContext } from './src/styles/theme';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skbkontur/markdown",
3
- "version": "2.5.8-y.0",
3
+ "version": "2.6.0",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"
@@ -46,7 +46,7 @@
46
46
  "test-storybook": "test-storybook --url http://127.0.0.1:6007",
47
47
  "test": "jest test",
48
48
  "test:ci": "cross-env CI=true jest test --passWithNoTests --testResultsProcessor=jest-teamcity-reporter",
49
- "creevey:ui": "creevey --ui --port=3003",
49
+ "creevey:ui": "creevey test --ui --port=3003",
50
50
  "screenshots:ci": "concurrently -k -s first \"yarn start-storybook-server\" \"yarn creevey\" \"yarn test-storybook\""
51
51
  },
52
52
  "peerDependencies": {
@@ -79,7 +79,7 @@
79
79
  "@vitejs/plugin-react-swc": "3.7.2",
80
80
  "axe-playwright": "1.2.3",
81
81
  "concurrently": "^7.0.0",
82
- "creevey": "0.9.2",
82
+ "creevey": "0.10.35",
83
83
  "cross-env": "6.0.3",
84
84
  "eslint": "8.32.0",
85
85
  "eslint-config-prettier": "8.8.0",
@@ -3,6 +3,7 @@ import { EmojiData } from './Emoji.logic';
3
3
  interface Props {
4
4
  isPreviewMode: boolean;
5
5
  onSelect: (emoji: EmojiData) => void;
6
+ showActionHint: boolean;
6
7
  showShortKey: boolean;
7
8
  }
8
9
  export declare const EmojiDropdown: React.FC<Props>;
@@ -7,15 +7,16 @@ import { EmojiPickerWrapper } from './Emoji.styled';
7
7
  import { EmojiFace } from '../../MarkdownIcons/EmojiFace';
8
8
  import { DEFAULT_MARKDOWN_THEME, MarkdownThemeConsumer } from '../../styles/theme';
9
9
  import { MarkdownFormatButton } from '../MarkdownHelpers/MarkdownFormatButton';
10
+ import { MarkdownTids } from '../MarkdownTids';
10
11
  emojiLocale.search = 'Поиск на английском';
11
12
  export var EmojiDropdown = function (_a) {
12
- var isPreviewMode = _a.isPreviewMode, showShortKey = _a.showShortKey, onSelect = _a.onSelect;
13
+ var isPreviewMode = _a.isPreviewMode, showShortKey = _a.showShortKey, onSelect = _a.onSelect, showActionHint = _a.showActionHint;
13
14
  var dropdownMenuRef = useRef(null);
14
15
  return (React.createElement(MarkdownThemeConsumer, null, function (theme) {
15
16
  var currentTheme = theme !== null && theme !== void 0 ? theme : DEFAULT_MARKDOWN_THEME;
16
17
  return (React.createElement(DropdownMenu, { ref: dropdownMenuRef, caption: function (_a) {
17
18
  var toggleMenu = _a.toggleMenu;
18
- return (React.createElement(MarkdownFormatButton, { showShortKey: showShortKey, hintText: "Emoji", disabled: isPreviewMode, icon: React.createElement(EmojiFace, null), text: "Emoji", onClick: toggleMenu }));
19
+ return (React.createElement(MarkdownFormatButton, { dataTid: MarkdownTids.Emoji, showShortKey: showShortKey, showActionHint: showActionHint, hintText: "Emoji", disabled: isPreviewMode, icon: React.createElement(EmojiFace, null), text: "Emoji", onClick: toggleMenu }));
19
20
  }, menuWidth: 300, positions: ['bottom right', 'bottom left', 'top right', 'top right'] },
20
21
  React.createElement(EmojiPickerWrapper, null,
21
22
  React.createElement(EmojiPicker, { dynamicWidth: true, data: data, i18n: emojiLocale, locale: "ru", theme: currentTheme.themeMode, skinTonePosition: "none", previewPosition: "none", onEmojiSelect: handleSelectEmoji }))));
@@ -34,286 +34,201 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ import { delay } from '@skbkontur/react-ui/lib/utils';
37
38
  import { story, kind, test } from 'creevey';
39
+ import { MarkdownTids } from './MarkdownTids';
40
+ var getByTid = function (tid) { return "[data-tid=\"".concat(tid, "\"]"); };
38
41
  kind('Markdown', function () {
39
- story('MediumSize', function (_a) {
42
+ story('CustomWidth', function (_a) {
40
43
  var setStoryParameters = _a.setStoryParameters;
41
44
  setStoryParameters({ skip: !!process.env.STORYBOOK_TEAMCITY_VERSION });
42
- test('withPreview', function () {
43
- var _a, _b;
44
- return __awaiter(this, void 0, void 0, function () {
45
- var buttons, idle, preview;
46
- return __generator(this, function (_c) {
47
- switch (_c.label) {
48
- case 0: return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
49
- case 1:
50
- buttons = _c.sent();
51
- return [4 /*yield*/, ((_a = this.captureElement) === null || _a === void 0 ? void 0 : _a.takeScreenshot())];
52
- case 2:
53
- idle = _c.sent();
54
- return [4 /*yield*/, this.browser
55
- .actions()
56
- .click(buttons[buttons.length - 2])
57
- .perform()];
58
- case 3:
59
- _c.sent();
60
- return [4 /*yield*/, ((_b = this.captureElement) === null || _b === void 0 ? void 0 : _b.takeScreenshot())];
61
- case 4:
62
- preview = _c.sent();
63
- return [4 /*yield*/, this.expect({ idle: idle, preview: preview }).to.matchImages()];
64
- case 5:
65
- _c.sent();
66
- return [2 /*return*/];
67
- }
68
- });
45
+ test('withPreview', function (context) { return __awaiter(void 0, void 0, void 0, function () {
46
+ var previewButton, idle, preview;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ previewButton = context.webdriver.locator(getByTid(MarkdownTids.PreviewView));
51
+ return [4 /*yield*/, context.takeScreenshot()];
52
+ case 1:
53
+ idle = _a.sent();
54
+ return [4 /*yield*/, previewButton.click()];
55
+ case 2:
56
+ _a.sent();
57
+ return [4 /*yield*/, context.takeScreenshot()];
58
+ case 3:
59
+ preview = _a.sent();
60
+ return [4 /*yield*/, context.matchImages({ idle: idle, preview: preview })];
61
+ case 4:
62
+ _a.sent();
63
+ return [2 /*return*/];
64
+ }
69
65
  });
70
- });
71
- test('withFullscreen', function () {
72
- var _a, _b, _c;
73
- return __awaiter(this, void 0, void 0, function () {
74
- var buttons, fullscreenSplit, fullscreenPreview, fullscreenEdit;
75
- return __generator(this, function (_d) {
76
- switch (_d.label) {
77
- case 0: return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
78
- case 1:
79
- buttons = _d.sent();
80
- return [4 /*yield*/, this.browser
81
- .actions()
82
- .click(buttons[buttons.length - 1])
83
- .perform()];
84
- case 2:
85
- _d.sent();
86
- return [4 /*yield*/, ((_a = this.captureElement) === null || _a === void 0 ? void 0 : _a.takeScreenshot())];
87
- case 3:
88
- fullscreenSplit = _d.sent();
89
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
90
- case 4:
91
- buttons = _d.sent();
92
- return [4 /*yield*/, this.browser
93
- .actions()
94
- .click(buttons[buttons.length - 2])
95
- .perform()];
96
- case 5:
97
- _d.sent();
98
- return [4 /*yield*/, ((_b = this.captureElement) === null || _b === void 0 ? void 0 : _b.takeScreenshot())];
99
- case 6:
100
- fullscreenPreview = _d.sent();
101
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
102
- case 7:
103
- buttons = _d.sent();
104
- return [4 /*yield*/, this.browser
105
- .actions()
106
- .click(buttons[buttons.length - 2])
107
- .perform()];
108
- case 8:
109
- _d.sent();
110
- return [4 /*yield*/, ((_c = this.captureElement) === null || _c === void 0 ? void 0 : _c.takeScreenshot())];
111
- case 9:
112
- fullscreenEdit = _d.sent();
113
- return [4 /*yield*/, this.expect({ fullscreenSplit: fullscreenSplit, fullscreenPreview: fullscreenPreview, fullscreenEdit: fullscreenEdit }).to.matchImages()];
114
- case 10:
115
- _d.sent();
116
- return [2 /*return*/];
117
- }
118
- });
66
+ }); });
67
+ test('withFullscreen', function (context) { return __awaiter(void 0, void 0, void 0, function () {
68
+ var fullscreenButton, previewButton, editButton, fullscreenSplit, fullscreenPreview, fullscreenEdit;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ fullscreenButton = context.webdriver.locator(getByTid(MarkdownTids.FullscreenToggle));
73
+ previewButton = context.webdriver.locator(getByTid(MarkdownTids.PreviewView));
74
+ editButton = context.webdriver.locator(getByTid(MarkdownTids.EditView));
75
+ return [4 /*yield*/, fullscreenButton.click()];
76
+ case 1:
77
+ _a.sent();
78
+ return [4 /*yield*/, context.takeScreenshot()];
79
+ case 2:
80
+ fullscreenSplit = _a.sent();
81
+ return [4 /*yield*/, previewButton.click()];
82
+ case 3:
83
+ _a.sent();
84
+ return [4 /*yield*/, context.takeScreenshot()];
85
+ case 4:
86
+ fullscreenPreview = _a.sent();
87
+ return [4 /*yield*/, editButton.click()];
88
+ case 5:
89
+ _a.sent();
90
+ return [4 /*yield*/, context.takeScreenshot()];
91
+ case 6:
92
+ fullscreenEdit = _a.sent();
93
+ return [4 /*yield*/, context.matchImages({
94
+ fullscreenSplit: fullscreenSplit,
95
+ fullscreenPreview: fullscreenPreview,
96
+ fullscreenEdit: fullscreenEdit,
97
+ })];
98
+ case 7:
99
+ _a.sent();
100
+ return [2 /*return*/];
101
+ }
119
102
  });
120
- });
103
+ }); });
121
104
  });
122
105
  for (var _i = 0, _a = ['WithoutHints', 'WithActionHint', 'WithShortKeyHint', 'WithActionAndShortKeyHints']; _i < _a.length; _i++) {
123
106
  var storyName = _a[_i];
124
107
  story(storyName, function (_a) {
125
108
  var setStoryParameters = _a.setStoryParameters;
126
109
  setStoryParameters({ skip: !!process.env.STORYBOOK_TEAMCITY_VERSION });
127
- test('hint', function () {
128
- var _a;
129
- return __awaiter(this, void 0, void 0, function () {
130
- var buttons, boldButton, boldButtonLocation, hint;
131
- return __generator(this, function (_b) {
132
- switch (_b.label) {
133
- case 0: return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
134
- case 1:
135
- buttons = _b.sent();
136
- boldButton = buttons[1];
137
- return [4 /*yield*/, boldButton.getRect()];
138
- case 2:
139
- boldButtonLocation = _b.sent();
140
- return [4 /*yield*/, this.browser
141
- .actions()
142
- .move({
143
- x: Math.ceil(boldButtonLocation.x + boldButtonLocation.width / 2),
144
- y: Math.ceil(boldButtonLocation.y + boldButtonLocation.height / 2),
145
- })
146
- .perform()];
147
- case 3:
148
- _b.sent();
149
- return [4 /*yield*/, this.browser.sleep(500)];
150
- case 4:
151
- _b.sent();
152
- return [4 /*yield*/, ((_a = this.captureElement) === null || _a === void 0 ? void 0 : _a.takeScreenshot())];
153
- case 5:
154
- hint = _b.sent();
155
- return [4 /*yield*/, this.expect({ hint: hint }).to.matchImages()];
156
- case 6:
157
- _b.sent();
158
- return [2 /*return*/];
159
- }
160
- });
161
- });
162
- });
163
- });
164
- }
165
- story('Editable', function (_a) {
166
- var setStoryParameters = _a.setStoryParameters;
167
- setStoryParameters({ skip: !!process.env.STORYBOOK_TEAMCITY_VERSION });
168
- test('markdownTests', function () {
169
- var _a, _b, _c, _d, _e, _f;
170
- return __awaiter(this, void 0, void 0, function () {
171
- var textarea, buttons, openedDropdown, newButtons, h1FromButton, h1FromKeyboard, boldFromButton, boldFromKeyboard, openedEmojiPicker;
172
- return __generator(this, function (_g) {
173
- switch (_g.label) {
174
- case 0: return [4 /*yield*/, this.browser.findElement({ tagName: 'textarea' })];
110
+ test('hint', function (context) { return __awaiter(void 0, void 0, void 0, function () {
111
+ var boldButton, hint;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0:
115
+ boldButton = context.webdriver.locator(getByTid(MarkdownTids.Bold));
116
+ return [4 /*yield*/, boldButton.hover()];
175
117
  case 1:
176
- textarea = _g.sent();
177
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
118
+ _a.sent();
119
+ return [4 /*yield*/, delay(500)];
178
120
  case 2:
179
- buttons = _g.sent();
180
- return [4 /*yield*/, this.browser.actions().click(textarea).perform()];
121
+ _a.sent();
122
+ return [4 /*yield*/, context.takeScreenshot()];
181
123
  case 3:
182
- _g.sent();
183
- return [4 /*yield*/, this.browser.actions().sendKeys('Заголовок').keyDown(this.keys.CONTROL).sendKeys('a').perform()];
124
+ hint = _a.sent();
125
+ return [4 /*yield*/, context.matchImages({ hint: hint })];
184
126
  case 4:
185
- _g.sent();
186
- return [4 /*yield*/, this.browser.actions().click(buttons[0]).perform()];
187
- case 5:
188
- _g.sent();
189
- return [4 /*yield*/, ((_a = this.captureElement) === null || _a === void 0 ? void 0 : _a.takeScreenshot())];
190
- case 6:
191
- openedDropdown = _g.sent();
192
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
193
- case 7:
194
- newButtons = _g.sent();
195
- return [4 /*yield*/, this.browser.actions().click(newButtons[1]).perform()];
196
- case 8:
197
- _g.sent();
198
- return [4 /*yield*/, ((_b = this.captureElement) === null || _b === void 0 ? void 0 : _b.takeScreenshot())];
199
- case 9:
200
- h1FromButton = _g.sent();
201
- return [4 /*yield*/, this.browser
202
- .actions()
203
- .keyDown(this.keys.CONTROL)
204
- .sendKeys('a')
205
- .sendKeys('Заголовок')
206
- .keyDown(this.keys.CONTROL)
207
- .sendKeys('a')
208
- .keyDown(this.keys.CONTROL)
209
- .keyDown(this.keys.ALT)
210
- .sendKeys('1')
211
- .perform()];
212
- case 10:
213
- _g.sent();
214
- return [4 /*yield*/, ((_c = this.captureElement) === null || _c === void 0 ? void 0 : _c.takeScreenshot())];
215
- case 11:
216
- h1FromKeyboard = _g.sent();
217
- return [4 /*yield*/, this.browser
218
- .actions()
219
- .keyDown(this.keys.CONTROL)
220
- .sendKeys('a')
221
- .sendKeys('Жирный')
222
- .keyDown(this.keys.CONTROL)
223
- .sendKeys('a')
224
- .click(buttons[1])
225
- .perform()];
226
- case 12:
227
- _g.sent();
228
- return [4 /*yield*/, ((_d = this.captureElement) === null || _d === void 0 ? void 0 : _d.takeScreenshot())];
229
- case 13:
230
- boldFromButton = _g.sent();
231
- return [4 /*yield*/, this.browser
232
- .actions()
233
- .keyDown(this.keys.CONTROL)
234
- .sendKeys('a')
235
- .sendKeys('Жирный')
236
- .keyDown(this.keys.CONTROL)
237
- .sendKeys('a')
238
- .keyDown(this.keys.CONTROL)
239
- .keyDown(this.keys.ALT)
240
- .sendKeys('b')
241
- .perform()];
242
- case 14:
243
- _g.sent();
244
- return [4 /*yield*/, ((_e = this.captureElement) === null || _e === void 0 ? void 0 : _e.takeScreenshot())];
245
- case 15:
246
- boldFromKeyboard = _g.sent();
247
- return [4 /*yield*/, this.browser.actions().click(buttons[12]).perform()];
248
- case 16:
249
- _g.sent();
250
- return [4 /*yield*/, ((_f = this.captureElement) === null || _f === void 0 ? void 0 : _f.takeScreenshot())];
251
- case 17:
252
- openedEmojiPicker = _g.sent();
253
- return [4 /*yield*/, this.expect({
254
- openedDropdown: openedDropdown,
255
- h1FromButton: h1FromButton,
256
- h1FromKeyboard: h1FromKeyboard,
257
- boldFromButton: boldFromButton,
258
- boldFromKeyboard: boldFromKeyboard,
259
- openedEmojiPicker: openedEmojiPicker,
260
- }).to.matchImages()];
261
- case 18:
262
- _g.sent();
127
+ _a.sent();
263
128
  return [2 /*return*/];
264
129
  }
265
130
  });
266
- });
131
+ }); });
267
132
  });
268
- test('withFullscreen', function () {
269
- var _a, _b, _c;
270
- return __awaiter(this, void 0, void 0, function () {
271
- var buttons, fullscreenSplit, fullscreenPreview, fullscreenEdit;
272
- return __generator(this, function (_d) {
273
- switch (_d.label) {
274
- case 0: return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
275
- case 1:
276
- buttons = _d.sent();
277
- return [4 /*yield*/, this.browser
278
- .actions()
279
- .click(buttons[buttons.length - 1])
280
- .perform()];
281
- case 2:
282
- _d.sent();
283
- return [4 /*yield*/, ((_a = this.captureElement) === null || _a === void 0 ? void 0 : _a.takeScreenshot())];
284
- case 3:
285
- fullscreenSplit = _d.sent();
286
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
287
- case 4:
288
- buttons = _d.sent();
289
- return [4 /*yield*/, this.browser
290
- .actions()
291
- .click(buttons[buttons.length - 2])
292
- .perform()];
293
- case 5:
294
- _d.sent();
295
- return [4 /*yield*/, ((_b = this.captureElement) === null || _b === void 0 ? void 0 : _b.takeScreenshot())];
296
- case 6:
297
- fullscreenPreview = _d.sent();
298
- return [4 /*yield*/, this.browser.findElements({ css: 'button[class*="react-ui"]' })];
299
- case 7:
300
- buttons = _d.sent();
301
- return [4 /*yield*/, this.browser
302
- .actions()
303
- .click(buttons[buttons.length - 2])
304
- .perform()];
305
- case 8:
306
- _d.sent();
307
- return [4 /*yield*/, ((_c = this.captureElement) === null || _c === void 0 ? void 0 : _c.takeScreenshot())];
308
- case 9:
309
- fullscreenEdit = _d.sent();
310
- return [4 /*yield*/, this.expect({ fullscreenSplit: fullscreenSplit, fullscreenPreview: fullscreenPreview, fullscreenEdit: fullscreenEdit }).to.matchImages()];
311
- case 10:
312
- _d.sent();
313
- return [2 /*return*/];
314
- }
315
- });
133
+ }
134
+ story('Editable', function (_a) {
135
+ var setStoryParameters = _a.setStoryParameters;
136
+ setStoryParameters({ skip: !!process.env.STORYBOOK_TEAMCITY_VERSION });
137
+ test('markdownTests', function (context) { return __awaiter(void 0, void 0, void 0, function () {
138
+ var textarea, headingDropdown, headingH2, boldButton, emojiButton, openedDropdown, h2FromButton, h2FromKeyboard, boldFromButton, boldFromKeyboard, openedEmojiPicker;
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0:
142
+ textarea = context.webdriver.locator('textarea').nth(0);
143
+ headingDropdown = context.webdriver.locator(getByTid(MarkdownTids.HeadingDropdown));
144
+ headingH2 = context.webdriver.locator(getByTid(MarkdownTids.HeadingH2));
145
+ boldButton = context.webdriver.locator(getByTid(MarkdownTids.Bold));
146
+ emojiButton = context.webdriver.locator(getByTid(MarkdownTids.Emoji));
147
+ return [4 /*yield*/, textarea.click()];
148
+ case 1:
149
+ _a.sent();
150
+ return [4 /*yield*/, textarea.type('Заголовок')];
151
+ case 2:
152
+ _a.sent();
153
+ return [4 /*yield*/, textarea.press('Control+A')];
154
+ case 3:
155
+ _a.sent();
156
+ return [4 /*yield*/, headingDropdown.click()];
157
+ case 4:
158
+ _a.sent();
159
+ return [4 /*yield*/, context.takeScreenshot()];
160
+ case 5:
161
+ openedDropdown = _a.sent();
162
+ return [4 /*yield*/, headingH2.click()];
163
+ case 6:
164
+ _a.sent();
165
+ return [4 /*yield*/, context.takeScreenshot()];
166
+ case 7:
167
+ h2FromButton = _a.sent();
168
+ return [4 /*yield*/, textarea.press('Control+A')];
169
+ case 8:
170
+ _a.sent();
171
+ return [4 /*yield*/, textarea.type('Заголовок')];
172
+ case 9:
173
+ _a.sent();
174
+ return [4 /*yield*/, textarea.press('Control+A')];
175
+ case 10:
176
+ _a.sent();
177
+ return [4 /*yield*/, textarea.press('Control+Shift+2')];
178
+ case 11:
179
+ _a.sent();
180
+ return [4 /*yield*/, context.takeScreenshot()];
181
+ case 12:
182
+ h2FromKeyboard = _a.sent();
183
+ return [4 /*yield*/, textarea.press('Control+A')];
184
+ case 13:
185
+ _a.sent();
186
+ return [4 /*yield*/, textarea.type('Жирный')];
187
+ case 14:
188
+ _a.sent();
189
+ return [4 /*yield*/, textarea.press('Control+A')];
190
+ case 15:
191
+ _a.sent();
192
+ return [4 /*yield*/, boldButton.click()];
193
+ case 16:
194
+ _a.sent();
195
+ return [4 /*yield*/, context.takeScreenshot()];
196
+ case 17:
197
+ boldFromButton = _a.sent();
198
+ return [4 /*yield*/, textarea.press('Control+A')];
199
+ case 18:
200
+ _a.sent();
201
+ return [4 /*yield*/, textarea.type('Жирный')];
202
+ case 19:
203
+ _a.sent();
204
+ return [4 /*yield*/, textarea.press('Control+A')];
205
+ case 20:
206
+ _a.sent();
207
+ return [4 /*yield*/, textarea.press('Control+B')];
208
+ case 21:
209
+ _a.sent();
210
+ return [4 /*yield*/, context.takeScreenshot()];
211
+ case 22:
212
+ boldFromKeyboard = _a.sent();
213
+ return [4 /*yield*/, emojiButton.click()];
214
+ case 23:
215
+ _a.sent();
216
+ return [4 /*yield*/, context.takeScreenshot()];
217
+ case 24:
218
+ openedEmojiPicker = _a.sent();
219
+ return [4 /*yield*/, context.matchImages({
220
+ openedDropdown: openedDropdown,
221
+ h2FromButton: h2FromButton,
222
+ h2FromKeyboard: h2FromKeyboard,
223
+ boldFromButton: boldFromButton,
224
+ boldFromKeyboard: boldFromKeyboard,
225
+ openedEmojiPicker: openedEmojiPicker,
226
+ })];
227
+ case 25:
228
+ _a.sent();
229
+ return [2 /*return*/];
230
+ }
316
231
  });
317
- });
232
+ }); });
318
233
  });
319
234
  });
@@ -1,11 +1,9 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { MarkdownEditorProps } from './MarkdownEditor';
3
- import { AIMethod, HideActionsOptions, HorizontalPaddings, MarkdownApi, ViewMode } from './types';
3
+ import { HideActionsOptions, HorizontalPaddings, MarkdownApi, ViewMode } from './types';
4
4
  export interface MarkdownProps extends MarkdownEditorProps {
5
5
  /** Методы апи для загрузки/скачивания файлов, меншена, ИИ */
6
6
  api?: MarkdownApi;
7
- /** Доступные методы ИИ апи */
8
- availableAIMethods?: AIMethod[];
9
7
  /** Режим прозрачной рамки у Textarea */
10
8
  borderless?: boolean;
11
9
  /** Url апи для файлов */