@ni/nimble-components 20.16.2 → 20.16.3
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/dist/all-components-bundle.js +767 -225
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +3413 -3283
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/rich-text/base/index.d.ts +1 -4
- package/dist/esm/rich-text/base/index.js +2 -2
- package/dist/esm/rich-text/base/index.js.map +1 -1
- package/dist/esm/rich-text/editor/index.d.ts +50 -0
- package/dist/esm/rich-text/editor/index.js +110 -8
- package/dist/esm/rich-text/editor/index.js.map +1 -1
- package/dist/esm/rich-text/editor/models/create-tiptap-editor.d.ts +3 -1
- package/dist/esm/rich-text/editor/models/create-tiptap-editor.js +45 -6
- package/dist/esm/rich-text/editor/models/create-tiptap-editor.js.map +1 -1
- package/dist/esm/rich-text/editor/template.js +29 -2
- package/dist/esm/rich-text/editor/template.js.map +1 -1
- package/dist/esm/rich-text/editor/testing/rich-text-editor-utils.d.ts +6 -0
- package/dist/esm/rich-text/editor/testing/rich-text-editor-utils.js +52 -0
- package/dist/esm/rich-text/editor/testing/rich-text-editor-utils.js.map +1 -0
- package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.d.ts +20 -3
- package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.js +117 -10
- package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.js.map +1 -1
- package/dist/esm/rich-text/editor/testing/types.d.ts +7 -0
- package/dist/esm/rich-text/editor/testing/types.js +7 -0
- package/dist/esm/rich-text/editor/testing/types.js.map +1 -1
- package/dist/esm/rich-text/editor/types.d.ts +13 -0
- package/dist/esm/rich-text/editor/types.js.map +1 -1
- package/dist/esm/rich-text/mention-listbox/index.d.ts +116 -0
- package/dist/esm/rich-text/mention-listbox/index.js +234 -0
- package/dist/esm/rich-text/mention-listbox/index.js.map +1 -0
- package/dist/esm/rich-text/mention-listbox/styles.d.ts +1 -0
- package/dist/esm/rich-text/mention-listbox/styles.js +22 -0
- package/dist/esm/rich-text/mention-listbox/styles.js.map +1 -0
- package/dist/esm/rich-text/mention-listbox/template.d.ts +2 -0
- package/dist/esm/rich-text/mention-listbox/template.js +33 -0
- package/dist/esm/rich-text/mention-listbox/template.js.map +1 -0
- package/dist/esm/rich-text/mention-listbox/types.d.ts +7 -0
- package/dist/esm/rich-text/mention-listbox/types.js +2 -0
- package/dist/esm/rich-text/mention-listbox/types.js.map +1 -0
- package/dist/esm/rich-text/models/markdown-parser.js +10 -2
- package/dist/esm/rich-text/models/markdown-parser.js.map +1 -1
- package/dist/esm/rich-text/models/mention-extension-configuration.d.ts +6 -1
- package/dist/esm/rich-text/models/mention-extension-configuration.js +6 -0
- package/dist/esm/rich-text/models/mention-extension-configuration.js.map +1 -1
- package/dist/esm/rich-text-mention/base/index.d.ts +6 -0
- package/dist/esm/rich-text-mention/base/index.js +9 -1
- package/dist/esm/rich-text-mention/base/index.js.map +1 -1
- package/dist/esm/rich-text-mention/base/models/mention-internals.d.ts +7 -2
- package/dist/esm/rich-text-mention/base/models/mention-internals.js +5 -2
- package/dist/esm/rich-text-mention/base/models/mention-internals.js.map +1 -1
- package/dist/esm/rich-text-mention/users/index.d.ts +1 -0
- package/dist/esm/rich-text-mention/users/index.js +3 -0
- package/dist/esm/rich-text-mention/users/index.js.map +1 -1
- package/dist/esm/rich-text-mention/users/view/styles.js +5 -1
- package/dist/esm/rich-text-mention/users/view/styles.js.map +1 -1
- package/dist/esm/utilities/models/string-normalizers.d.ts +5 -0
- package/dist/esm/utilities/models/string-normalizers.js +13 -0
- package/dist/esm/utilities/models/string-normalizers.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { mappingUserTag } from '../../../mapping/user';
|
|
2
|
+
import { richTextMentionTestTag } from '../../../rich-text-mention/base/tests/rich-text-mention.fixtures';
|
|
3
|
+
import { richTextMentionUsersTag } from '../../../rich-text-mention/users';
|
|
4
|
+
import { waitForUpdatesAsync } from '../../../testing/async-helpers';
|
|
5
|
+
export async function appendUserMentionConfiguration(element, mappings) {
|
|
6
|
+
const userMentionElement = document.createElement(richTextMentionUsersTag);
|
|
7
|
+
userMentionElement.pattern = '^user:(.*)';
|
|
8
|
+
const mappingElements = [];
|
|
9
|
+
mappings?.forEach(mapping => {
|
|
10
|
+
const mappingUser = document.createElement(mappingUserTag);
|
|
11
|
+
mappingUser.key = mapping.key ?? '';
|
|
12
|
+
mappingUser.displayName = mapping.displayName;
|
|
13
|
+
userMentionElement.appendChild(mappingUser);
|
|
14
|
+
mappingElements.push(mappingUser);
|
|
15
|
+
});
|
|
16
|
+
element.appendChild(userMentionElement);
|
|
17
|
+
await waitForUpdatesAsync();
|
|
18
|
+
return {
|
|
19
|
+
userMentionElement,
|
|
20
|
+
mappingElements
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export async function appendTestMentionConfiguration(element, mappings) {
|
|
24
|
+
const testMentionElement = document.createElement(richTextMentionTestTag);
|
|
25
|
+
testMentionElement.pattern = '^test:(.*)';
|
|
26
|
+
const mappingElements = [];
|
|
27
|
+
mappings?.forEach(mapping => {
|
|
28
|
+
const mappingUser = document.createElement(mappingUserTag);
|
|
29
|
+
mappingUser.key = mapping.key;
|
|
30
|
+
mappingUser.displayName = mapping.displayName;
|
|
31
|
+
testMentionElement.appendChild(mappingUser);
|
|
32
|
+
mappingElements.push(mappingUser);
|
|
33
|
+
});
|
|
34
|
+
element.appendChild(testMentionElement);
|
|
35
|
+
await waitForUpdatesAsync();
|
|
36
|
+
return {
|
|
37
|
+
testMentionElement,
|
|
38
|
+
mappingElements
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export async function replaceUserMappingElements(element, mappings) {
|
|
42
|
+
const newUserMappingElements = [];
|
|
43
|
+
mappings.forEach(mapping => {
|
|
44
|
+
const mappingUser = document.createElement(mappingUserTag);
|
|
45
|
+
mappingUser.key = mapping.key ?? '';
|
|
46
|
+
mappingUser.displayName = mapping.displayName ?? '';
|
|
47
|
+
newUserMappingElements.push(mappingUser);
|
|
48
|
+
});
|
|
49
|
+
element.replaceChildren(...newUserMappingElements);
|
|
50
|
+
await waitForUpdatesAsync();
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=rich-text-editor-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-text-editor-utils.js","sourceRoot":"","sources":["../../../../../src/rich-text/editor/testing/rich-text-editor-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAC1G,OAAO,EACH,uBAAuB,EAE1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAOrE,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,OAAuB,EACvB,QAAiC;IAEjC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAC7C,uBAAuB,CACF,CAAC;IAC1B,kBAAkB,CAAC,OAAO,GAAG,YAAY,CAAC;IAC1C,MAAM,eAAe,GAAkB,EAAE,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CACtC,cAAc,CACF,CAAC;QACjB,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QACpC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9C,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,mBAAmB,EAAE,CAAC;IAC5B,OAAO;QACH,kBAAkB;QAClB,eAAe;KAClB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,OAAuB,EACvB,QAAiC;IAEjC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1E,kBAAkB,CAAC,OAAO,GAAG,YAAY,CAAC;IAC1C,MAAM,eAAe,GAAkB,EAAE,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CACtC,cAAc,CACF,CAAC;QACjB,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC9B,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9C,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,mBAAmB,EAAE,CAAC;IAC5B,OAAO;QACH,kBAAkB;QAClB,eAAe;KAClB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,OAA6B,EAC7B,QAAgC;IAEhC,MAAM,sBAAsB,GAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CACtC,cAAc,CACF,CAAC;QACjB,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QACpC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QACpD,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,eAAe,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACnD,MAAM,mBAAmB,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RichTextEditor } from '..';
|
|
2
|
-
import { ToolbarButton } from './types';
|
|
2
|
+
import { ArrowKeyButton, MappingConfiguration, ToolbarButton } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Page object for the `nimble-rich-text-editor` component.
|
|
5
5
|
*/
|
|
@@ -10,6 +10,8 @@ export declare class RichTextEditorPageObject {
|
|
|
10
10
|
getEditorSectionFirstElementChildClassName(): string;
|
|
11
11
|
clickEditorShortcutKeys(shortcutKey: string, isShiftKey: boolean): Promise<void>;
|
|
12
12
|
pressEnterKeyInEditor(): Promise<void>;
|
|
13
|
+
pressEscapeKeyInEditor(): Promise<void>;
|
|
14
|
+
pressArrowKeyInEditor(arrowButton: ArrowKeyButton): Promise<void>;
|
|
13
15
|
pressShiftEnterKeysInEditor(): Promise<void>;
|
|
14
16
|
pressTabKeyInEditor(): Promise<void>;
|
|
15
17
|
pressShiftTabKeysInEditor(): Promise<void>;
|
|
@@ -20,6 +22,10 @@ export declare class RichTextEditorPageObject {
|
|
|
20
22
|
* If unset, the state toggles by interacting with it once.
|
|
21
23
|
*/
|
|
22
24
|
toggleFooterButton(button: ToolbarButton, force?: boolean): Promise<void>;
|
|
25
|
+
clickUserMentionButton(): Promise<void>;
|
|
26
|
+
getMentionButtonIcon(buttonIndex: number): string | undefined;
|
|
27
|
+
getMentionButtonTitle(buttonIndex: number): string;
|
|
28
|
+
getMentionButtonLabel(buttonIndex: number): string;
|
|
23
29
|
getButtonCheckedState(button: ToolbarButton): boolean;
|
|
24
30
|
getButtonTabIndex(button: ToolbarButton): number;
|
|
25
31
|
spaceKeyActivatesButton(button: ToolbarButton): void;
|
|
@@ -28,8 +34,9 @@ export declare class RichTextEditorPageObject {
|
|
|
28
34
|
pasteHTMLToEditor(htmlString: string): void;
|
|
29
35
|
setEditorTextContent(value: string): Promise<void>;
|
|
30
36
|
replaceEditorContent(value: string): Promise<void>;
|
|
31
|
-
sliceEditorContent(number: number): Promise<void>;
|
|
37
|
+
sliceEditorContent(from: number, to: number): Promise<void>;
|
|
32
38
|
getEditorLastChildAttribute(attribute: string): string;
|
|
39
|
+
isMentionListboxOpened(): boolean;
|
|
33
40
|
getEditorMentionViewAttributeValues(attribute: string): string[];
|
|
34
41
|
getEditorFirstChildTagName(): string;
|
|
35
42
|
getEditorFirstChildTextContent(): string;
|
|
@@ -47,10 +54,20 @@ export declare class RichTextEditorPageObject {
|
|
|
47
54
|
setDisabled(disabled: boolean): Promise<void>;
|
|
48
55
|
isButtonDisabled(button: ToolbarButton): boolean;
|
|
49
56
|
getPlaceholderValue(): string;
|
|
50
|
-
getParsedHtmlFromMarkdown(markdown: string): string;
|
|
57
|
+
getParsedHtmlFromMarkdown(markdown: string, mappings?: MappingConfiguration[]): string;
|
|
58
|
+
focusOutEditor(): Promise<void>;
|
|
59
|
+
getMentionListboxItemsName(): string[];
|
|
60
|
+
getSelectedOption(): string;
|
|
61
|
+
clickMentionListboxOption(index: number): Promise<void>;
|
|
62
|
+
moveCursorToStart(): void;
|
|
51
63
|
private getEditorSection;
|
|
52
64
|
private getFooter;
|
|
53
65
|
private getTiptapEditor;
|
|
54
66
|
private getFormattingButton;
|
|
67
|
+
private getUserMentionButton;
|
|
68
|
+
private getMentionButtons;
|
|
69
|
+
private getMentionListbox;
|
|
70
|
+
private getAllListItemsInMentionBox;
|
|
55
71
|
private getEditorLastChildElement;
|
|
72
|
+
private getParserMentionConfigForUser;
|
|
56
73
|
}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import { keySpace, keyEnter, keyTab } from '@microsoft/fast-web-utilities';
|
|
1
|
+
import { keySpace, keyEnter, keyTab, keyEscape } from '@microsoft/fast-web-utilities';
|
|
2
2
|
import { waitForUpdatesAsync } from '../../../testing/async-helpers';
|
|
3
3
|
import { ToolbarButton } from './types';
|
|
4
4
|
import { getTagsFromElement, getLeafContentsFromElement, getLastChildElement, getLastChildElementAttribute } from '../../models/testing/markdown-parser-utils';
|
|
5
5
|
import { richTextMentionUsersViewTag } from '../../../rich-text-mention/users/view';
|
|
6
6
|
import { RichTextMarkdownParser } from '../../models/markdown-parser';
|
|
7
|
+
import { buttonTag } from '../../../button';
|
|
8
|
+
import { richTextMentionListboxTag } from '../../mention-listbox';
|
|
9
|
+
import { listOptionTag } from '../../../list-option';
|
|
10
|
+
import { anchoredRegionTag } from '../../../anchored-region';
|
|
11
|
+
import { iconAtTag } from '../../../icons/at';
|
|
12
|
+
import { MarkdownParserMentionConfiguration } from '../../models/markdown-parser-mention-configuration';
|
|
13
|
+
import { MentionInternals } from '../../../rich-text-mention/base/models/mention-internals';
|
|
14
|
+
import { MappingUserConfig } from '../../../rich-text-mention/users/models/mapping-user-config';
|
|
7
15
|
/**
|
|
8
16
|
* Page object for the `nimble-rich-text-editor` component.
|
|
9
17
|
*/
|
|
@@ -41,6 +49,26 @@ export class RichTextEditorPageObject {
|
|
|
41
49
|
editor.dispatchEvent(event);
|
|
42
50
|
await waitForUpdatesAsync();
|
|
43
51
|
}
|
|
52
|
+
async pressEscapeKeyInEditor() {
|
|
53
|
+
const editor = this.getTiptapEditor();
|
|
54
|
+
const event = new KeyboardEvent('keydown', {
|
|
55
|
+
key: keyEscape,
|
|
56
|
+
bubbles: true,
|
|
57
|
+
cancelable: true
|
|
58
|
+
});
|
|
59
|
+
editor.dispatchEvent(event);
|
|
60
|
+
await waitForUpdatesAsync();
|
|
61
|
+
}
|
|
62
|
+
async pressArrowKeyInEditor(arrowButton) {
|
|
63
|
+
const editor = this.getTiptapEditor();
|
|
64
|
+
const event = new KeyboardEvent('keydown', {
|
|
65
|
+
key: arrowButton,
|
|
66
|
+
bubbles: true,
|
|
67
|
+
cancelable: true
|
|
68
|
+
});
|
|
69
|
+
editor.dispatchEvent(event);
|
|
70
|
+
await waitForUpdatesAsync();
|
|
71
|
+
}
|
|
44
72
|
async pressShiftEnterKeysInEditor() {
|
|
45
73
|
const editor = this.getTiptapEditor();
|
|
46
74
|
const shiftEnterEvent = new KeyboardEvent('keydown', {
|
|
@@ -99,6 +127,23 @@ export class RichTextEditorPageObject {
|
|
|
99
127
|
}
|
|
100
128
|
await waitForUpdatesAsync();
|
|
101
129
|
}
|
|
130
|
+
async clickUserMentionButton() {
|
|
131
|
+
const userMentionButton = this.getUserMentionButton();
|
|
132
|
+
userMentionButton.click();
|
|
133
|
+
await waitForUpdatesAsync();
|
|
134
|
+
}
|
|
135
|
+
getMentionButtonIcon(buttonIndex) {
|
|
136
|
+
const buttons = this.getMentionButtons();
|
|
137
|
+
return buttons[buttonIndex]?.firstElementChild?.tagName;
|
|
138
|
+
}
|
|
139
|
+
getMentionButtonTitle(buttonIndex) {
|
|
140
|
+
const buttons = this.getMentionButtons();
|
|
141
|
+
return buttons[buttonIndex]?.getAttribute('title') ?? '';
|
|
142
|
+
}
|
|
143
|
+
getMentionButtonLabel(buttonIndex) {
|
|
144
|
+
const buttons = this.getMentionButtons();
|
|
145
|
+
return buttons[buttonIndex]?.innerText ?? '';
|
|
146
|
+
}
|
|
102
147
|
getButtonCheckedState(button) {
|
|
103
148
|
const toggleButton = this.getFormattingButton(button);
|
|
104
149
|
return toggleButton.checked;
|
|
@@ -141,9 +186,14 @@ export class RichTextEditorPageObject {
|
|
|
141
186
|
editor.dispatchEvent(pasteEvent);
|
|
142
187
|
}
|
|
143
188
|
async setEditorTextContent(value) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
189
|
+
this.richTextEditorElement.tiptapEditor
|
|
190
|
+
.chain()
|
|
191
|
+
.focus()
|
|
192
|
+
.insertContent({
|
|
193
|
+
type: 'text',
|
|
194
|
+
text: value
|
|
195
|
+
})
|
|
196
|
+
.run();
|
|
147
197
|
await waitForUpdatesAsync();
|
|
148
198
|
}
|
|
149
199
|
async replaceEditorContent(value) {
|
|
@@ -151,15 +201,22 @@ export class RichTextEditorPageObject {
|
|
|
151
201
|
lastElement.parentElement.textContent = value;
|
|
152
202
|
await waitForUpdatesAsync();
|
|
153
203
|
}
|
|
154
|
-
async sliceEditorContent(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
204
|
+
async sliceEditorContent(from, to) {
|
|
205
|
+
this.richTextEditorElement.tiptapEditor
|
|
206
|
+
.chain()
|
|
207
|
+
.focus()
|
|
208
|
+
.deleteRange({ from, to })
|
|
209
|
+
.run();
|
|
158
210
|
await waitForUpdatesAsync();
|
|
159
211
|
}
|
|
160
212
|
getEditorLastChildAttribute(attribute) {
|
|
161
213
|
return getLastChildElementAttribute(attribute, this.getTiptapEditor());
|
|
162
214
|
}
|
|
215
|
+
isMentionListboxOpened() {
|
|
216
|
+
return (!this.getMentionListbox()
|
|
217
|
+
?.shadowRoot?.querySelector(anchoredRegionTag)
|
|
218
|
+
?.hasAttribute('hidden') ?? false);
|
|
219
|
+
}
|
|
163
220
|
getEditorMentionViewAttributeValues(attribute) {
|
|
164
221
|
return Array.from(this.getTiptapEditor().querySelectorAll(richTextMentionUsersViewTag)).map(el => el.getAttribute(attribute) || '');
|
|
165
222
|
}
|
|
@@ -245,10 +302,33 @@ export class RichTextEditorPageObject {
|
|
|
245
302
|
const editor = this.getTiptapEditor();
|
|
246
303
|
return editor.firstElementChild?.getAttribute('data-placeholder') ?? '';
|
|
247
304
|
}
|
|
248
|
-
getParsedHtmlFromMarkdown(markdown) {
|
|
249
|
-
const
|
|
305
|
+
getParsedHtmlFromMarkdown(markdown, mappings) {
|
|
306
|
+
const parserMentionConfigForUser = this.getParserMentionConfigForUser(mappings);
|
|
307
|
+
const parseResult = RichTextMarkdownParser.parseMarkdownToDOM(markdown, [parserMentionConfigForUser]);
|
|
250
308
|
return this.richTextEditorElement.xmlSerializer.serializeToString(parseResult.fragment);
|
|
251
309
|
}
|
|
310
|
+
async focusOutEditor() {
|
|
311
|
+
const focusout = new FocusEvent('focusout');
|
|
312
|
+
this.richTextEditorElement.dispatchEvent(focusout);
|
|
313
|
+
await waitForUpdatesAsync();
|
|
314
|
+
}
|
|
315
|
+
getMentionListboxItemsName() {
|
|
316
|
+
const listItemsName = [];
|
|
317
|
+
this.getAllListItemsInMentionBox().forEach(item => (item.hidden ? null : listItemsName.push(item.textContent)));
|
|
318
|
+
return listItemsName;
|
|
319
|
+
}
|
|
320
|
+
getSelectedOption() {
|
|
321
|
+
const nodeList = this.getAllListItemsInMentionBox();
|
|
322
|
+
return (Array.from(nodeList).find(item => item.selected && !item.hasAttribute('hidden'))?.textContent ?? '');
|
|
323
|
+
}
|
|
324
|
+
async clickMentionListboxOption(index) {
|
|
325
|
+
const listOption = this.getAllListItemsInMentionBox()[index];
|
|
326
|
+
listOption?.click();
|
|
327
|
+
await waitForUpdatesAsync();
|
|
328
|
+
}
|
|
329
|
+
moveCursorToStart() {
|
|
330
|
+
this.richTextEditorElement.tiptapEditor.commands.focus('start');
|
|
331
|
+
}
|
|
252
332
|
getEditorSection() {
|
|
253
333
|
return this.richTextEditorElement.shadowRoot?.querySelector('.editor');
|
|
254
334
|
}
|
|
@@ -262,8 +342,35 @@ export class RichTextEditorPageObject {
|
|
|
262
342
|
const buttons = this.richTextEditorElement.shadowRoot.querySelectorAll('nimble-toggle-button');
|
|
263
343
|
return buttons[button];
|
|
264
344
|
}
|
|
345
|
+
getUserMentionButton() {
|
|
346
|
+
const buttons = this.getMentionButtons();
|
|
347
|
+
return buttons.find(button => button.querySelector(iconAtTag));
|
|
348
|
+
}
|
|
349
|
+
getMentionButtons() {
|
|
350
|
+
return Array.from(this.richTextEditorElement.shadowRoot.querySelectorAll(buttonTag));
|
|
351
|
+
}
|
|
352
|
+
getMentionListbox() {
|
|
353
|
+
return this.richTextEditorElement.shadowRoot.querySelector(richTextMentionListboxTag);
|
|
354
|
+
}
|
|
355
|
+
getAllListItemsInMentionBox() {
|
|
356
|
+
return this.getMentionListbox().querySelectorAll(listOptionTag);
|
|
357
|
+
}
|
|
265
358
|
getEditorLastChildElement() {
|
|
266
359
|
return getLastChildElement(this.getTiptapEditor());
|
|
267
360
|
}
|
|
361
|
+
getParserMentionConfigForUser(mappings = []) {
|
|
362
|
+
const mentionInternals = new MentionInternals({
|
|
363
|
+
character: '',
|
|
364
|
+
icon: '',
|
|
365
|
+
viewElement: richTextMentionUsersViewTag
|
|
366
|
+
}, () => { });
|
|
367
|
+
mentionInternals.pattern = '^user:(.*)';
|
|
368
|
+
mappings.forEach(mapping => {
|
|
369
|
+
const mappingConfig = new MappingUserConfig(mapping.key, mapping.displayName);
|
|
370
|
+
mentionInternals.mappingConfigs = new Map().set(mapping.key, mappingConfig);
|
|
371
|
+
});
|
|
372
|
+
const parserMentionConfig = new MarkdownParserMentionConfiguration(mentionInternals);
|
|
373
|
+
return parserMentionConfig;
|
|
374
|
+
}
|
|
268
375
|
}
|
|
269
376
|
//# sourceMappingURL=rich-text-editor.pageobject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.pageobject.js","sourceRoot":"","sources":["../../../../../src/rich-text/editor/testing/rich-text-editor.pageobject.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rich-text-editor.pageobject.js","sourceRoot":"","sources":["../../../../../src/rich-text/editor/testing/rich-text-editor.pageobject.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAGH,aAAa,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,EACH,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAe,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kCAAkC,EAAE,MAAM,oDAAoD,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAEhG;;GAEG;AACH,MAAM,OAAO,wBAAwB;IACjC,YACqB,qBAAqC;QAArC,0BAAqB,GAArB,qBAAqB,CAAgB;IACvD,CAAC;IAEG,0BAA0B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,aAAc,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEM,0CAA0C;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,aAAc,CAAC,iBAAkB,CAAC,SAAS,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAChC,WAAmB,EACnB,UAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACvC,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACvC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACvC,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAC9B,WAA2B;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACvC,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,2BAA2B;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACjD,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YACvC,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;YAC/C,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACpC,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAC3B,MAAqB,EACrB,KAAe;QAEf,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,YAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,YAAa,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACxC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAuB,CAAC,KAAK,MAAM,CAC3D,CAAC;QACF,oGAAoG;QACpG,kFAAkF;QAClF,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,MAAM,GAAG,QAAQ,CAAC;SACrB;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;YACnC,IACI,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAO,CAAC;oBACrD,KAAK,EACX;gBACE,YAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACnC,YAAa,CAAC,KAAK,EAAE,CAAC;aACzB;SACJ;QACD,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,iBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,oBAAoB,CAAC,WAAmB;QAC3C,MAAM,OAAO,GAAa,IAAI,CAAC,iBAAiB,EAAG,CAAC;QACpD,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC;IAC5D,CAAC;IAEM,qBAAqB,CAAC,WAAmB;QAC5C,MAAM,OAAO,GAAa,IAAI,CAAC,iBAAiB,EAAG,CAAC;QACpD,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAEM,qBAAqB,CAAC,WAAmB;QAC5C,MAAM,OAAO,GAAa,IAAI,CAAC,iBAAiB,EAAG,CAAC;QACpD,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjD,CAAC;IAEM,qBAAqB,CAAC,MAAqB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,YAAa,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,iBAAiB,CAAC,MAAqB;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,YAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEM,uBAAuB,CAAC,MAAqB;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,UAAU,EAAE;YACxC,GAAG,EAAE,QAAQ;SACK,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,uBAAuB,CAAC,MAAqB;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,UAAU,EAAE;YACxC,GAAG,EAAE,QAAQ;SACK,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,aAAa,CAAC,IAAY;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE;YAC3C,aAAa,EAAE,IAAI,YAAY,EAAE;SACpC,CAAC,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,oIAAoI;IACpI,gGAAgG;IAChG,4JAA4J;IACrJ,iBAAiB,CAAC,UAAkB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE;YAC3C,aAAa,EAAE,IAAI,YAAY,EAAE;SACpC,CAAC,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC3C,IAAI,CAAC,qBAAqB,CAAC,YAAY;aAClC,KAAK,EAAE;aACP,KAAK,EAAE;aACP,aAAa,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACd,CAAC;aACD,GAAG,EAAE,CAAC;QACX,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACrD,WAAW,CAAC,aAAc,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/C,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,EAAU;QACpD,IAAI,CAAC,qBAAqB,CAAC,YAAY;aAClC,KAAK,EAAE;aACP,KAAK,EAAE;aACP,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;aACzB,GAAG,EAAE,CAAC;QACX,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,2BAA2B,CAAC,SAAiB;QAChD,OAAO,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEM,sBAAsB;QACzB,OAAO,CACH,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACrB,EAAE,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC;YAC9C,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,CACxC,CAAC;IACN,CAAC;IAEM,mCAAmC,CAAC,SAAiB;QACxD,OAAO,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CACvE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,0BAA0B;QAC7B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,CAAC;IACnE,CAAC;IAEM,8BAA8B;QACjC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,iBAAiB,EAAE,WAAW,IAAI,EAAE,CAAC;IACvE,CAAC;IAEM,qBAAqB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAC/D,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAC7B,CAAC;IACN,CAAC;IAEM,iBAAiB;QACpB,OAAO,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,2HAA2H;IAC3H,qEAAqE;IAC9D,2BAA2B;QAC9B,OAAO,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CACpD,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,CACvB,CAAC;IACN,CAAC;IAEM,qBAAqB;QACxB,OAAO,0BAA0B,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEM,gCAAgC;QACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,MAAM,WAAW,GAAG,CAAC,IAAU,EAAQ,EAAE;YACrC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;gBACrC,MAAM,EAAE,GAAG,IAAe,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAE1B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEnC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;aACnC;QACL,CAAC,CAAC;QAEF,IAAI,YAAY,EAAE;YACd,WAAW,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,8BAA8B,CACjC,aAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACvD,OAAO,MAAO,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEM,wBAAwB,CAAC,aAA4B;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACvD,OAAO,MAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IAEM,6BAA6B;QAChC,OAAO,CACH,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,qBAAqB;eAClD,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa;oBAC5C,IAAI,CAAC,eAAe,EAAE,CACjC,CAAC;IACN,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,YAAqB;QAC9C,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;SAChE;aAAM;YACH,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;SAC/D;QACD,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,cAAc;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC;QACxC,OAAO,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAAiB;QACtC,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3D;aAAM;YACH,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,gBAAgB,CAAC,MAAqB;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAE,CAAC;QACvD,OAAO,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAEM,mBAAmB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAEM,yBAAyB,CAC5B,QAAgB,EAChB,QAAiC;QAEjC,MAAM,0BAA0B,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CACzD,QAAQ,EACR,CAAC,0BAA0B,CAAC,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,iBAAiB,CAC7D,WAAW,CAAC,QAAQ,CACvB,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,0BAA0B;QAC7B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;QACjH,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,iBAAiB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACpD,OAAO,CACH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACrB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CACxD,EAAE,WAAW,IAAI,EAAE,CACvB,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,KAAa;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7D,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,mBAAmB,EAAE,CAAC;IAChC,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAEO,gBAAgB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IAEO,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,aAAa,CACvD,iBAAiB,CACpB,CAAC;IACN,CAAC;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,aAAa,CACvD,cAAc,CAChB,CAAC;IACP,CAAC;IAEO,mBAAmB,CACvB,MAAqB;QAErB,MAAM,OAAO,GAA6B,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,gBAAgB,CAC7F,sBAAsB,CACzB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEO,oBAAoB;QACxB,MAAM,OAAO,GAAa,IAAI,CAAC,iBAAiB,EAAG,CAAC;QACpD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,iBAAiB;QACrB,OAAO,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,CACrE,CAAC;IACN,CAAC;IAEO,iBAAiB;QACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,aAAa,CACvD,yBAAyB,CAC5B,CAAC;IACN,CAAC;IAEO,2BAA2B;QAC/B,OAAO,IAAI,CAAC,iBAAiB,EAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAEO,yBAAyB;QAC7B,OAAO,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAE,CAAC;IACxD,CAAC;IAEO,6BAA6B,CACjC,WAAmC,EAAE;QAErC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CACzC;YACI,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,2BAA2B;SAC3C,EACD,GAAG,EAAE,GAAE,CAAC,CACX,CAAC;QACF,gBAAgB,CAAC,OAAO,GAAG,YAAY,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACvB,MAAM,aAAa,GAAG,IAAI,iBAAiB,CACvC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,WAAW,CACtB,CAAC;YACF,gBAAgB,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAC3C,OAAO,CAAC,GAAG,EACX,aAAa,CAChB,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,kCAAkC,CAC9D,gBAAgB,CACnB,CAAC;QACF,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -8,6 +8,13 @@ export declare const ToolbarButton: {
|
|
|
8
8
|
readonly numberedList: 3;
|
|
9
9
|
};
|
|
10
10
|
export declare type ToolbarButton = (typeof ToolbarButton)[keyof typeof ToolbarButton];
|
|
11
|
+
export declare const ArrowKeyButton: {
|
|
12
|
+
readonly up: "ArrowUp";
|
|
13
|
+
readonly down: "ArrowDown";
|
|
14
|
+
readonly left: "ArrowLeft";
|
|
15
|
+
readonly right: "ArrowRight";
|
|
16
|
+
};
|
|
17
|
+
export declare type ArrowKeyButton = (typeof ArrowKeyButton)[keyof typeof ArrowKeyButton];
|
|
11
18
|
export declare type LabelProvider = 'toggleBold' | 'toggleItalics' | 'toggleBulletedList' | 'toggleNumberedList';
|
|
12
19
|
export declare type ToolbarButtonKey = keyof typeof ToolbarButton;
|
|
13
20
|
export interface UserMentionElements {
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import { keyArrowDown, keyArrowLeft, keyArrowRight, keyArrowUp } from '@microsoft/fast-web-utilities';
|
|
1
2
|
export const ToolbarButton = {
|
|
2
3
|
bold: 0,
|
|
3
4
|
italics: 1,
|
|
4
5
|
bulletList: 2,
|
|
5
6
|
numberedList: 3
|
|
6
7
|
};
|
|
8
|
+
export const ArrowKeyButton = {
|
|
9
|
+
up: keyArrowUp,
|
|
10
|
+
down: keyArrowDown,
|
|
11
|
+
left: keyArrowLeft,
|
|
12
|
+
right: keyArrowRight
|
|
13
|
+
};
|
|
7
14
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/rich-text/editor/testing/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/rich-text/editor/testing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACb,MAAM,+BAA+B,CAAC;AAKvC,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;CACT,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;CACd,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SuggestionProps } from '@tiptap/suggestion';
|
|
1
2
|
/**
|
|
2
3
|
* TipTap node types.
|
|
3
4
|
* @public
|
|
@@ -7,4 +8,16 @@ export declare const TipTapNodeName: {
|
|
|
7
8
|
readonly numberedList: "orderedList";
|
|
8
9
|
};
|
|
9
10
|
export declare type TipTapNodeName = (typeof TipTapNodeName)[keyof typeof TipTapNodeName];
|
|
11
|
+
export interface MentionExtensionConfig {
|
|
12
|
+
name: string;
|
|
13
|
+
key: string;
|
|
14
|
+
character: string;
|
|
15
|
+
viewElement: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MentionDetail {
|
|
18
|
+
href: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
}
|
|
10
21
|
export declare const mentionPluginPrefix = "mention-plugin-";
|
|
22
|
+
export declare type ActiveMentionCommandEmitter = (command?: SuggestionProps['command']) => void;
|
|
23
|
+
export declare type ActiveMentionCharacterEmitter = (character: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/rich-text/editor/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/rich-text/editor/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,aAAa;CACrB,CAAC;AAiBX,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ListboxElement as FoundationListbox, ListboxOption } from '@microsoft/fast-foundation';
|
|
2
|
+
import type { AnchoredRegion } from '../../anchored-region';
|
|
3
|
+
import type { MentionListboxShowOptions } from './types';
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'nimble-rich-text-mention-listbox': RichTextMentionListbox;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A rich text mention listbox which acts as a popup for "@mention" support in editor
|
|
11
|
+
*/
|
|
12
|
+
export declare class RichTextMentionListbox extends FoundationListbox {
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
region?: AnchoredRegion;
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
filter: string;
|
|
25
|
+
/**
|
|
26
|
+
* The collection of currently filtered options.
|
|
27
|
+
* The approach is defined based on the `Combobox.filteredOptions` implementation.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
filteredOptions: ListboxOption[];
|
|
32
|
+
private anchorElement?;
|
|
33
|
+
private regionNotifier?;
|
|
34
|
+
private readonly anchorElementIntersectionObserver;
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
close(): void;
|
|
39
|
+
/**
|
|
40
|
+
* The list of options.
|
|
41
|
+
*
|
|
42
|
+
* @public
|
|
43
|
+
* @remarks
|
|
44
|
+
* Overrides `Listbox.options`.
|
|
45
|
+
*/
|
|
46
|
+
get options(): ListboxOption[];
|
|
47
|
+
set options(value: ListboxOption[]);
|
|
48
|
+
/**
|
|
49
|
+
* Triggers when the mention plugin is activated upon pressing the `key`
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
show(options: MentionListboxShowOptions): void;
|
|
54
|
+
/**
|
|
55
|
+
* Handle keydown actions for listbox navigation and selection.
|
|
56
|
+
*
|
|
57
|
+
* @param e - the keyboard event
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
keydownHandler(event: KeyboardEvent): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Filter available options by filter value.
|
|
63
|
+
* The method is defined based on the `Combobox.filterOptions` and `Combobox.inputHandler` implementation.
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
filterOptions(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Synchronize the form-associated proxy and update the value property of the element.
|
|
70
|
+
*
|
|
71
|
+
* @param prev - the previous collection of slotted option elements
|
|
72
|
+
* @param next - the next collection of slotted option elements
|
|
73
|
+
*
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
slottedOptionsChanged(prev: Element[] | undefined, next: Element[]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Triggers the `suggestionProps` command to notify the tiptap editor to select the option.
|
|
79
|
+
* The method is defined based on the `Listbox.clickHandler` implementation.
|
|
80
|
+
*
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
clickHandler(e: MouseEvent): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Observes the anchor element using intersection observer.
|
|
86
|
+
* Once the anchor element intersects, the anchor region will be closed.
|
|
87
|
+
*
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
anchorElementChanged(prev: HTMLElement, next: HTMLElement): void;
|
|
91
|
+
/**
|
|
92
|
+
* Observes the anchor region.
|
|
93
|
+
*
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
regionChanged(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Handles the events of the anchored region.
|
|
99
|
+
* Repositions the listbox scroll bar when the `initialLayoutComplete` event is triggered.
|
|
100
|
+
* Other events will be passed to the base class.
|
|
101
|
+
*
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
handleChange(source: unknown, args: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Focus the control and scroll the first selected option into view.
|
|
107
|
+
*
|
|
108
|
+
* @internal
|
|
109
|
+
* @remarks
|
|
110
|
+
* Overrides: `Listbox.focusAndScrollOptionIntoView`
|
|
111
|
+
*/
|
|
112
|
+
protected focusAndScrollOptionIntoView(): void;
|
|
113
|
+
private emitMentionSelected;
|
|
114
|
+
private setOpen;
|
|
115
|
+
}
|
|
116
|
+
export declare const richTextMentionListboxTag: string;
|