@ni/nimble-components 20.16.2 → 20.16.4
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 +777 -226
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +3414 -3284
- 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 +54 -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 +21 -3
- package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.js +121 -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 +6 -2
- 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;
|
|
@@ -27,9 +33,11 @@ export declare class RichTextEditorPageObject {
|
|
|
27
33
|
pasteToEditor(text: string): void;
|
|
28
34
|
pasteHTMLToEditor(htmlString: string): void;
|
|
29
35
|
setEditorTextContent(value: string): Promise<void>;
|
|
36
|
+
setCursorPosition(position: number): Promise<void>;
|
|
30
37
|
replaceEditorContent(value: string): Promise<void>;
|
|
31
|
-
sliceEditorContent(number: number): Promise<void>;
|
|
38
|
+
sliceEditorContent(from: number, to: number): Promise<void>;
|
|
32
39
|
getEditorLastChildAttribute(attribute: string): string;
|
|
40
|
+
isMentionListboxOpened(): boolean;
|
|
33
41
|
getEditorMentionViewAttributeValues(attribute: string): string[];
|
|
34
42
|
getEditorFirstChildTagName(): string;
|
|
35
43
|
getEditorFirstChildTextContent(): string;
|
|
@@ -47,10 +55,20 @@ export declare class RichTextEditorPageObject {
|
|
|
47
55
|
setDisabled(disabled: boolean): Promise<void>;
|
|
48
56
|
isButtonDisabled(button: ToolbarButton): boolean;
|
|
49
57
|
getPlaceholderValue(): string;
|
|
50
|
-
getParsedHtmlFromMarkdown(markdown: string): string;
|
|
58
|
+
getParsedHtmlFromMarkdown(markdown: string, mappings?: MappingConfiguration[]): string;
|
|
59
|
+
focusOutEditor(): Promise<void>;
|
|
60
|
+
getMentionListboxItemsName(): string[];
|
|
61
|
+
getSelectedOption(): string;
|
|
62
|
+
clickMentionListboxOption(index: number): Promise<void>;
|
|
63
|
+
moveCursorToStart(): void;
|
|
51
64
|
private getEditorSection;
|
|
52
65
|
private getFooter;
|
|
53
66
|
private getTiptapEditor;
|
|
54
67
|
private getFormattingButton;
|
|
68
|
+
private getUserMentionButton;
|
|
69
|
+
private getMentionButtons;
|
|
70
|
+
private getMentionListbox;
|
|
71
|
+
private getAllListItemsInMentionBox;
|
|
55
72
|
private getEditorLastChildElement;
|
|
73
|
+
private getParserMentionConfigForUser;
|
|
56
74
|
}
|
|
@@ -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,18 @@ 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();
|
|
197
|
+
await waitForUpdatesAsync();
|
|
198
|
+
}
|
|
199
|
+
async setCursorPosition(position) {
|
|
200
|
+
this.richTextEditorElement.tiptapEditor.commands.setTextSelection(position);
|
|
147
201
|
await waitForUpdatesAsync();
|
|
148
202
|
}
|
|
149
203
|
async replaceEditorContent(value) {
|
|
@@ -151,15 +205,22 @@ export class RichTextEditorPageObject {
|
|
|
151
205
|
lastElement.parentElement.textContent = value;
|
|
152
206
|
await waitForUpdatesAsync();
|
|
153
207
|
}
|
|
154
|
-
async sliceEditorContent(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
208
|
+
async sliceEditorContent(from, to) {
|
|
209
|
+
this.richTextEditorElement.tiptapEditor
|
|
210
|
+
.chain()
|
|
211
|
+
.focus()
|
|
212
|
+
.deleteRange({ from, to })
|
|
213
|
+
.run();
|
|
158
214
|
await waitForUpdatesAsync();
|
|
159
215
|
}
|
|
160
216
|
getEditorLastChildAttribute(attribute) {
|
|
161
217
|
return getLastChildElementAttribute(attribute, this.getTiptapEditor());
|
|
162
218
|
}
|
|
219
|
+
isMentionListboxOpened() {
|
|
220
|
+
return (!this.getMentionListbox()
|
|
221
|
+
?.shadowRoot?.querySelector(anchoredRegionTag)
|
|
222
|
+
?.hasAttribute('hidden') ?? false);
|
|
223
|
+
}
|
|
163
224
|
getEditorMentionViewAttributeValues(attribute) {
|
|
164
225
|
return Array.from(this.getTiptapEditor().querySelectorAll(richTextMentionUsersViewTag)).map(el => el.getAttribute(attribute) || '');
|
|
165
226
|
}
|
|
@@ -245,10 +306,33 @@ export class RichTextEditorPageObject {
|
|
|
245
306
|
const editor = this.getTiptapEditor();
|
|
246
307
|
return editor.firstElementChild?.getAttribute('data-placeholder') ?? '';
|
|
247
308
|
}
|
|
248
|
-
getParsedHtmlFromMarkdown(markdown) {
|
|
249
|
-
const
|
|
309
|
+
getParsedHtmlFromMarkdown(markdown, mappings) {
|
|
310
|
+
const parserMentionConfigForUser = this.getParserMentionConfigForUser(mappings);
|
|
311
|
+
const parseResult = RichTextMarkdownParser.parseMarkdownToDOM(markdown, [parserMentionConfigForUser]);
|
|
250
312
|
return this.richTextEditorElement.xmlSerializer.serializeToString(parseResult.fragment);
|
|
251
313
|
}
|
|
314
|
+
async focusOutEditor() {
|
|
315
|
+
const focusout = new FocusEvent('focusout');
|
|
316
|
+
this.richTextEditorElement.dispatchEvent(focusout);
|
|
317
|
+
await waitForUpdatesAsync();
|
|
318
|
+
}
|
|
319
|
+
getMentionListboxItemsName() {
|
|
320
|
+
const listItemsName = [];
|
|
321
|
+
this.getAllListItemsInMentionBox().forEach(item => (item.hidden ? null : listItemsName.push(item.textContent)));
|
|
322
|
+
return listItemsName;
|
|
323
|
+
}
|
|
324
|
+
getSelectedOption() {
|
|
325
|
+
const nodeList = this.getAllListItemsInMentionBox();
|
|
326
|
+
return (Array.from(nodeList).find(item => item.selected && !item.hasAttribute('hidden'))?.textContent ?? '');
|
|
327
|
+
}
|
|
328
|
+
async clickMentionListboxOption(index) {
|
|
329
|
+
const listOption = this.getAllListItemsInMentionBox()[index];
|
|
330
|
+
listOption?.click();
|
|
331
|
+
await waitForUpdatesAsync();
|
|
332
|
+
}
|
|
333
|
+
moveCursorToStart() {
|
|
334
|
+
this.richTextEditorElement.tiptapEditor.commands.focus('start');
|
|
335
|
+
}
|
|
252
336
|
getEditorSection() {
|
|
253
337
|
return this.richTextEditorElement.shadowRoot?.querySelector('.editor');
|
|
254
338
|
}
|
|
@@ -262,8 +346,35 @@ export class RichTextEditorPageObject {
|
|
|
262
346
|
const buttons = this.richTextEditorElement.shadowRoot.querySelectorAll('nimble-toggle-button');
|
|
263
347
|
return buttons[button];
|
|
264
348
|
}
|
|
349
|
+
getUserMentionButton() {
|
|
350
|
+
const buttons = this.getMentionButtons();
|
|
351
|
+
return buttons.find(button => button.querySelector(iconAtTag));
|
|
352
|
+
}
|
|
353
|
+
getMentionButtons() {
|
|
354
|
+
return Array.from(this.richTextEditorElement.shadowRoot.querySelectorAll(buttonTag));
|
|
355
|
+
}
|
|
356
|
+
getMentionListbox() {
|
|
357
|
+
return this.richTextEditorElement.shadowRoot.querySelector(richTextMentionListboxTag);
|
|
358
|
+
}
|
|
359
|
+
getAllListItemsInMentionBox() {
|
|
360
|
+
return this.getMentionListbox().querySelectorAll(listOptionTag);
|
|
361
|
+
}
|
|
265
362
|
getEditorLastChildElement() {
|
|
266
363
|
return getLastChildElement(this.getTiptapEditor());
|
|
267
364
|
}
|
|
365
|
+
getParserMentionConfigForUser(mappings = []) {
|
|
366
|
+
const mentionInternals = new MentionInternals({
|
|
367
|
+
character: '',
|
|
368
|
+
icon: '',
|
|
369
|
+
viewElement: richTextMentionUsersViewTag
|
|
370
|
+
}, () => { });
|
|
371
|
+
mentionInternals.pattern = '^user:(.*)';
|
|
372
|
+
mappings.forEach(mapping => {
|
|
373
|
+
const mappingConfig = new MappingUserConfig(mapping.key, mapping.displayName);
|
|
374
|
+
mentionInternals.mappingConfigs = new Map().set(mapping.key, mappingConfig);
|
|
375
|
+
});
|
|
376
|
+
const parserMentionConfig = new MarkdownParserMentionConfiguration(mentionInternals);
|
|
377
|
+
return parserMentionConfig;
|
|
378
|
+
}
|
|
268
379
|
}
|
|
269
380
|
//# 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":"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"}
|
|
@@ -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;
|