@ni/nimble-components 20.14.5 → 20.14.7

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 (51) hide show
  1. package/dist/all-components-bundle.js +8 -8
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +6 -6
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/mapping/base/types.d.ts +2 -0
  6. package/dist/esm/mapping/user/index.d.ts +15 -0
  7. package/dist/esm/mapping/user/index.js +21 -0
  8. package/dist/esm/mapping/user/index.js.map +1 -0
  9. package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.d.ts +8 -2
  10. package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.js +21 -1
  11. package/dist/esm/rich-text/editor/testing/rich-text-editor.pageobject.js.map +1 -1
  12. package/dist/esm/rich-text/editor/testing/types.d.ts +1 -0
  13. package/dist/esm/rich-text-mention/base/index.d.ts +49 -0
  14. package/dist/esm/rich-text-mention/base/index.js +87 -0
  15. package/dist/esm/rich-text-mention/base/index.js.map +1 -0
  16. package/dist/esm/rich-text-mention/base/models/mapping-config.d.ts +8 -0
  17. package/dist/esm/rich-text-mention/base/models/mapping-config.js +10 -0
  18. package/dist/esm/rich-text-mention/base/models/mapping-config.js.map +1 -0
  19. package/dist/esm/rich-text-mention/base/models/mapping-user-config.d.ts +6 -0
  20. package/dist/esm/rich-text-mention/base/models/mapping-user-config.js +7 -0
  21. package/dist/esm/rich-text-mention/base/models/mapping-user-config.js.map +1 -0
  22. package/dist/esm/rich-text-mention/base/models/mention-internals.d.ts +30 -0
  23. package/dist/esm/rich-text-mention/base/models/mention-internals.js +22 -0
  24. package/dist/esm/rich-text-mention/base/models/mention-internals.js.map +1 -0
  25. package/dist/esm/rich-text-mention/base/models/mention-validator.d.ts +35 -0
  26. package/dist/esm/rich-text-mention/base/models/mention-validator.js +108 -0
  27. package/dist/esm/rich-text-mention/base/models/mention-validator.js.map +1 -0
  28. package/dist/esm/rich-text-mention/base/template.d.ts +2 -0
  29. package/dist/esm/rich-text-mention/base/template.js +6 -0
  30. package/dist/esm/rich-text-mention/base/template.js.map +1 -0
  31. package/dist/esm/rich-text-mention/users/index.d.ts +21 -0
  32. package/dist/esm/rich-text-mention/users/index.js +43 -0
  33. package/dist/esm/rich-text-mention/users/index.js.map +1 -0
  34. package/dist/esm/rich-text-mention/users/models/rich-text-mention-users-validator.d.ts +14 -0
  35. package/dist/esm/rich-text-mention/users/models/rich-text-mention-users-validator.js +23 -0
  36. package/dist/esm/rich-text-mention/users/models/rich-text-mention-users-validator.js.map +1 -0
  37. package/dist/esm/table/index.js +5 -5
  38. package/dist/esm/table/index.js.map +1 -1
  39. package/dist/esm/table/models/interactive-selection-manager.d.ts +2 -2
  40. package/dist/esm/table/models/interactive-selection-manager.js.map +1 -1
  41. package/dist/esm/table/models/selection-managers/multi-selection-manager.js.map +1 -1
  42. package/dist/esm/table/models/selection-managers/selection-manager-base.d.ts +4 -4
  43. package/dist/esm/table/models/selection-managers/selection-manager-base.js.map +1 -1
  44. package/dist/esm/table/models/table-validator.d.ts +2 -2
  45. package/dist/esm/table/models/table-validator.js +2 -2
  46. package/dist/esm/table/models/table-validator.js.map +1 -1
  47. package/dist/esm/table/models/virtualizer.d.ts +2 -2
  48. package/dist/esm/table/models/virtualizer.js.map +1 -1
  49. package/dist/esm/table/types.d.ts +9 -0
  50. package/dist/esm/table/types.js.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1,3 @@
1
1
  export declare type MappingKey = string | number | boolean;
2
+ /** For user mapping, a string formatted as a URL. */
3
+ export declare type MappingUserKey = string;
@@ -0,0 +1,15 @@
1
+ import { Mapping } from '../base';
2
+ import type { MappingUserKey } from '../base/types';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'nimble-mapping-user': MappingUser;
6
+ }
7
+ }
8
+ /**
9
+ * Maps key (url) to a user
10
+ * Non-visible configuration element for mapping rich text user mention keys to a user
11
+ */
12
+ export declare class MappingUser extends Mapping<MappingUserKey> {
13
+ displayName?: string;
14
+ }
15
+ export declare const mappingUserTag: string;
@@ -0,0 +1,21 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr } from '@microsoft/fast-element';
3
+ import { DesignSystem } from '@microsoft/fast-foundation';
4
+ import { Mapping } from '../base';
5
+ import { template } from '../base/template';
6
+ /**
7
+ * Maps key (url) to a user
8
+ * Non-visible configuration element for mapping rich text user mention keys to a user
9
+ */
10
+ export class MappingUser extends Mapping {
11
+ }
12
+ __decorate([
13
+ attr({ attribute: 'display-name' })
14
+ ], MappingUser.prototype, "displayName", void 0);
15
+ const mappingUser = MappingUser.compose({
16
+ baseName: 'mapping-user',
17
+ template
18
+ });
19
+ DesignSystem.getOrCreate().withPrefix('nimble').register(mappingUser());
20
+ export const mappingUserTag = DesignSystem.tagFor(MappingUser);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mapping/user/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAO5C;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAuB;CAGvD;AADG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;gDACR;AAEhC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,cAAc;IACxB,QAAQ;CACX,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { RichTextEditor } from '..';
2
- import type { ToolbarButton } from './types';
2
+ import { ToolbarButton } from './types';
3
3
  /**
4
4
  * Page object for the `nimble-rich-text-editor` component.
5
5
  */
@@ -13,7 +13,13 @@ export declare class RichTextEditorPageObject {
13
13
  pressShiftEnterKeysInEditor(): Promise<void>;
14
14
  pressTabKeyInEditor(): Promise<void>;
15
15
  pressShiftTabKeysInEditor(): Promise<void>;
16
- clickFooterButton(button: ToolbarButton): Promise<void>;
16
+ /**
17
+ * In testing environment, when clicking on the footer button, it may not persist in the same state if any editor transaction occurs in between.
18
+ * This behavior is likely due to dynamic modifications of formatting button states based on cursor positions during editor transactions.
19
+ * Setting the "force" parameter to true activates the formatting button state; when set to false, it deactivates the state.
20
+ * If unset, the state toggles by interacting with it once.
21
+ */
22
+ toggleFooterButton(button: ToolbarButton, force?: boolean): Promise<void>;
17
23
  getButtonCheckedState(button: ToolbarButton): boolean;
18
24
  getButtonTabIndex(button: ToolbarButton): number;
19
25
  spaceKeyActivatesButton(button: ToolbarButton): void;
@@ -1,5 +1,6 @@
1
1
  import { keySpace, keyEnter, keyTab } from '@microsoft/fast-web-utilities';
2
2
  import { waitForUpdatesAsync } from '../../../testing/async-helpers';
3
+ import { ToolbarButton } from './types';
3
4
  import { getTagsFromElement, getLeafContentsFromElement, getLastChildElement, getLastChildElementAttribute } from '../../models/testing/markdown-parser-utils';
4
5
  /**
5
6
  * Page object for the `nimble-rich-text-editor` component.
@@ -70,11 +71,30 @@ export class RichTextEditorPageObject {
70
71
  editor.dispatchEvent(shiftTabEvent);
71
72
  await waitForUpdatesAsync();
72
73
  }
73
- async clickFooterButton(button) {
74
+ /**
75
+ * In testing environment, when clicking on the footer button, it may not persist in the same state if any editor transaction occurs in between.
76
+ * This behavior is likely due to dynamic modifications of formatting button states based on cursor positions during editor transactions.
77
+ * Setting the "force" parameter to true activates the formatting button state; when set to false, it deactivates the state.
78
+ * If unset, the state toggles by interacting with it once.
79
+ */
80
+ async toggleFooterButton(button, force) {
74
81
  const toggleButton = this.getFormattingButton(button);
75
82
  const event = new Event('mousedown', { bubbles: true });
76
83
  toggleButton.dispatchEvent(event);
77
84
  toggleButton.click();
85
+ let format = Object.keys(ToolbarButton).find(key => ToolbarButton[key] === button);
86
+ // In the editor, the isActive() method expects the format name to be 'italic' instead of 'italics.'
87
+ // As it was consistently represent it as 'italics' elsewhere just updated it here
88
+ if (format === 'italics') {
89
+ format = 'italic';
90
+ }
91
+ if (force === true || force === false) {
92
+ if (this.richTextEditorElement.tiptapEditor.isActive(format)
93
+ !== force) {
94
+ toggleButton.dispatchEvent(event);
95
+ toggleButton.click();
96
+ }
97
+ }
78
98
  await waitForUpdatesAsync();
79
99
  }
80
100
  getButtonCheckedState(button) {
@@ -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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"}
@@ -6,3 +6,4 @@ export declare const ToolbarButton: {
6
6
  };
7
7
  export declare type ToolbarButton = (typeof ToolbarButton)[keyof typeof ToolbarButton];
8
8
  export declare type LabelProvider = 'toggleBold' | 'toggleItalics' | 'toggleBulletedList' | 'toggleNumberedList';
9
+ export declare type ToolbarButtonKey = keyof typeof ToolbarButton;
@@ -0,0 +1,49 @@
1
+ import { Notifier, Subscriber } from '@microsoft/fast-element';
2
+ import { FoundationElement } from '@microsoft/fast-foundation';
3
+ import type { MappingConfig } from './models/mapping-config';
4
+ import type { RichTextMentionValidator, RichTextMentionValidity } from './models/mention-validator';
5
+ import { MentionInternals, MentionInternalsOptions } from './models/mention-internals';
6
+ import { Mapping } from '../../mapping/base';
7
+ export declare type MappingConfigs = ReadonlyMap<string, MappingConfig>;
8
+ export interface RichTextMentionConfig {
9
+ mappingConfigs: MappingConfigs;
10
+ }
11
+ /**
12
+ * The base class for Mention configuration
13
+ */
14
+ export declare abstract class RichTextMention<TMentionConfig extends RichTextMentionConfig = RichTextMentionConfig, TValidator extends RichTextMentionValidator<[
15
+ ]> = RichTextMentionValidator<[]>> extends FoundationElement implements Subscriber {
16
+ /**
17
+ * @internal
18
+ */
19
+ readonly mentionInternals: MentionInternals<TMentionConfig>;
20
+ /** @internal */
21
+ readonly validator: TValidator;
22
+ /**
23
+ * A regex used to extract user ID from user key (url) while parsing and serializing a markdown.
24
+ */
25
+ pattern?: string;
26
+ /** @internal */
27
+ mappingNotifiers: Notifier[];
28
+ /** @internal */
29
+ mappings: Mapping<unknown>[];
30
+ checkValidity(): boolean;
31
+ get validity(): RichTextMentionValidity;
32
+ /**
33
+ * @internal
34
+ */
35
+ handleChange(source: unknown, args: unknown): void;
36
+ protected abstract createValidator(): TValidator;
37
+ protected abstract getMentionInternalsOptions(): MentionInternalsOptions;
38
+ protected abstract createMentionConfig(mappingConfigs: MappingConfigs): TMentionConfig;
39
+ protected abstract createMappingConfig(mapping: Mapping<unknown>): MappingConfig;
40
+ private getMappingConfigs;
41
+ /**
42
+ * Called when any Mapping related state has changed.
43
+ */
44
+ private updateMentionConfig;
45
+ private mappingsChanged;
46
+ private patternChanged;
47
+ private removeMappingObservers;
48
+ private observeMappings;
49
+ }
@@ -0,0 +1,87 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr, Observable, observable } from '@microsoft/fast-element';
3
+ import { FoundationElement } from '@microsoft/fast-foundation';
4
+ import { MentionInternals } from './models/mention-internals';
5
+ import { Mapping } from '../../mapping/base';
6
+ /**
7
+ * The base class for Mention configuration
8
+ */
9
+ export class RichTextMention extends FoundationElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ /**
13
+ * @internal
14
+ */
15
+ this.mentionInternals = new MentionInternals(this.getMentionInternalsOptions());
16
+ /** @internal */
17
+ this.validator = this.createValidator();
18
+ /** @internal */
19
+ this.mappingNotifiers = [];
20
+ /** @internal */
21
+ this.mappings = [];
22
+ }
23
+ checkValidity() {
24
+ return this.mentionInternals.validConfiguration;
25
+ }
26
+ get validity() {
27
+ return this.validator.getValidity();
28
+ }
29
+ /**
30
+ * @internal
31
+ */
32
+ handleChange(source, args) {
33
+ if (source instanceof Mapping && typeof args === 'string') {
34
+ this.updateMentionConfig();
35
+ }
36
+ }
37
+ getMappingConfigs() {
38
+ const mappingConfigs = new Map();
39
+ this.mappings.forEach(mapping => {
40
+ const href = mapping.key ?? undefined;
41
+ if (href === undefined || typeof href !== 'string') {
42
+ throw Error('mentionHref was invalid for type. Validation should have prevented this.');
43
+ }
44
+ const mappingConfig = this.createMappingConfig(mapping);
45
+ mappingConfigs.set(href, mappingConfig);
46
+ });
47
+ return mappingConfigs;
48
+ }
49
+ /**
50
+ * Called when any Mapping related state has changed.
51
+ */
52
+ updateMentionConfig() {
53
+ this.validator.validate(this.mappings, this.pattern);
54
+ this.mentionInternals.mentionConfig = this.validator.isValid()
55
+ ? this.createMentionConfig(this.getMappingConfigs())
56
+ : undefined;
57
+ }
58
+ mappingsChanged() {
59
+ this.updateMentionConfig();
60
+ this.observeMappings();
61
+ }
62
+ patternChanged() {
63
+ this.mentionInternals.pattern = this.pattern;
64
+ this.updateMentionConfig();
65
+ }
66
+ removeMappingObservers() {
67
+ this.mappingNotifiers.forEach(notifier => {
68
+ notifier.unsubscribe(this);
69
+ });
70
+ this.mappingNotifiers = [];
71
+ }
72
+ observeMappings() {
73
+ this.removeMappingObservers();
74
+ for (const mapping of this.mappings) {
75
+ const notifier = Observable.getNotifier(mapping);
76
+ notifier.subscribe(this);
77
+ this.mappingNotifiers.push(notifier);
78
+ }
79
+ }
80
+ }
81
+ __decorate([
82
+ attr
83
+ ], RichTextMention.prototype, "pattern", void 0);
84
+ __decorate([
85
+ observable
86
+ ], RichTextMention.prototype, "mappings", void 0);
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rich-text-mention/base/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Common state shared across Mapping Config
3
+ */
4
+ export declare abstract class MappingConfig {
5
+ readonly mentionHref: string | undefined;
6
+ readonly displayName: string | undefined;
7
+ constructor(mentionHref: string | undefined, displayName: string | undefined);
8
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Common state shared across Mapping Config
3
+ */
4
+ export class MappingConfig {
5
+ constructor(mentionHref, displayName) {
6
+ this.mentionHref = mentionHref;
7
+ this.displayName = displayName;
8
+ }
9
+ }
10
+ //# sourceMappingURL=mapping-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-config.js","sourceRoot":"","sources":["../../../../../src/rich-text-mention/base/models/mapping-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAgB,aAAa;IAC/B,YACoB,WAA+B,EAC/B,WAA+B;QAD/B,gBAAW,GAAX,WAAW,CAAoB;QAC/B,gBAAW,GAAX,WAAW,CAAoB;IAChD,CAAC;CACP"}
@@ -0,0 +1,6 @@
1
+ import { MappingConfig } from './mapping-config';
2
+ /**
3
+ * Mapping configuration corresponding to a user mapping
4
+ */
5
+ export declare class MappingUserConfig extends MappingConfig {
6
+ }
@@ -0,0 +1,7 @@
1
+ import { MappingConfig } from './mapping-config';
2
+ /**
3
+ * Mapping configuration corresponding to a user mapping
4
+ */
5
+ export class MappingUserConfig extends MappingConfig {
6
+ }
7
+ //# sourceMappingURL=mapping-user-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-user-config.js","sourceRoot":"","sources":["../../../../../src/rich-text-mention/base/models/mapping-user-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,30 @@
1
+ export interface MentionInternalsOptions {
2
+ readonly icon: string;
3
+ readonly character: string;
4
+ }
5
+ /**
6
+ * Internal mention state
7
+ */
8
+ export declare class MentionInternals<TMentionConfig> {
9
+ /**
10
+ * Configuration which will hold mentioning info, character, icon and pattern
11
+ */
12
+ mentionConfig?: TMentionConfig;
13
+ /**
14
+ * Whether this mention has a valid configuration.
15
+ */
16
+ validConfiguration: boolean;
17
+ /**
18
+ * Regex used to extract user ID from user key (url)
19
+ */
20
+ pattern?: string;
21
+ /**
22
+ * Icon to display on RichTextEditor Toolbar
23
+ */
24
+ readonly icon: string;
25
+ /**
26
+ * Character to show respective mention list
27
+ */
28
+ readonly character: string;
29
+ constructor(options: MentionInternalsOptions);
30
+ }
@@ -0,0 +1,22 @@
1
+ import { __decorate } from "tslib";
2
+ import { observable } from '@microsoft/fast-element';
3
+ /**
4
+ * Internal mention state
5
+ */
6
+ export class MentionInternals {
7
+ constructor(options) {
8
+ /**
9
+ * Whether this mention has a valid configuration.
10
+ */
11
+ this.validConfiguration = true;
12
+ this.icon = options.icon;
13
+ this.character = options.character;
14
+ }
15
+ }
16
+ __decorate([
17
+ observable
18
+ ], MentionInternals.prototype, "mentionConfig", void 0);
19
+ __decorate([
20
+ observable
21
+ ], MentionInternals.prototype, "validConfiguration", void 0);
22
+ //# sourceMappingURL=mention-internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-internals.js","sourceRoot":"","sources":["../../../../../src/rich-text-mention/base/models/mention-internals.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IA4BzB,YAAmB,OAAgC;QArBnD;;WAEG;QAEI,uBAAkB,GAAG,IAAI,CAAC;QAkB7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;CACJ;AA3BG;IADC,UAAU;uDAC2B;AAMtC;IADC,UAAU;4DACsB"}
@@ -0,0 +1,35 @@
1
+ import type { Mapping } from '../../../mapping/base';
2
+ import { Validator, ValidityObject } from '../../../utilities/models/validator';
3
+ import type { MentionInternals } from './mention-internals';
4
+ export interface RichTextMentionValidity extends ValidityObject {
5
+ }
6
+ declare type FlagNames<T> = T extends readonly (infer U)[] ? U : never;
7
+ export declare const baseValidityFlagNames: readonly ["unsupportedMappingType", "duplicateMappingMentionHref", "missingMentionHrefValue", "mentionHrefNotValidUrl", "mentionHrefDoesNotMatchPattern", "missingPatternAttribute", "unsupportedPatternValue"];
8
+ /**
9
+ * Validator for RichTextMention
10
+ */
11
+ export declare class RichTextMentionValidator<ValidityFlagNames extends readonly string[]> extends Validator<typeof baseValidityFlagNames | ValidityFlagNames> {
12
+ private readonly mentionInternals;
13
+ private readonly supportedMappingElements;
14
+ constructor(mentionInternals: MentionInternals<unknown>, configValidityKeys: ValidityFlagNames, supportedMappingElements: readonly (typeof Mapping<unknown>)[]);
15
+ validate(mappings: Mapping<unknown>[], pattern: string | undefined): void;
16
+ /**
17
+ * @returns an object containing flags for various ways the configuation can be invalid
18
+ */
19
+ getValidity(): RichTextMentionValidity;
20
+ /**
21
+ * Sets a particular validity condition flag's value, e.g. "hasInvalidFooValue" = true
22
+ */
23
+ protected setConditionValue(name: FlagNames<typeof baseValidityFlagNames | ValidityFlagNames>, isInvalid: boolean): void;
24
+ private updateMentionInternalsFlag;
25
+ private validateMissingPattern;
26
+ private validatePattern;
27
+ private validateMappingTypes;
28
+ private validateUniqueMentionHref;
29
+ private validateNoMissingMentionHref;
30
+ private validateHrefForUrl;
31
+ private validateHrefForPattern;
32
+ private isInvalidUrl;
33
+ private isInvalidRegex;
34
+ }
35
+ export {};
@@ -0,0 +1,108 @@
1
+ import { Validator } from '../../../utilities/models/validator';
2
+ export const baseValidityFlagNames = [
3
+ 'unsupportedMappingType',
4
+ 'duplicateMappingMentionHref',
5
+ 'missingMentionHrefValue',
6
+ 'mentionHrefNotValidUrl',
7
+ 'mentionHrefDoesNotMatchPattern',
8
+ 'missingPatternAttribute',
9
+ 'unsupportedPatternValue'
10
+ ];
11
+ /**
12
+ * Validator for RichTextMention
13
+ */
14
+ export class RichTextMentionValidator extends Validator {
15
+ constructor(mentionInternals, configValidityKeys, supportedMappingElements) {
16
+ super(configValidityKeys);
17
+ this.mentionInternals = mentionInternals;
18
+ this.supportedMappingElements = supportedMappingElements;
19
+ }
20
+ validate(mappings, pattern) {
21
+ this.untrackAll();
22
+ const mentionHrefs = mappings.map(mapping => mapping.key);
23
+ this.validateMappingTypes(mappings);
24
+ this.validateNoMissingMentionHref(mentionHrefs);
25
+ this.validateUniqueMentionHref(mentionHrefs);
26
+ this.validateMissingPattern(pattern);
27
+ this.validatePattern(pattern);
28
+ this.validateHrefForPattern(mentionHrefs, pattern);
29
+ this.validateHrefForUrl(mentionHrefs);
30
+ }
31
+ /**
32
+ * @returns an object containing flags for various ways the configuation can be invalid
33
+ */
34
+ getValidity() {
35
+ return this.getValidationFlags();
36
+ }
37
+ /**
38
+ * Sets a particular validity condition flag's value, e.g. "hasInvalidFooValue" = true
39
+ */
40
+ setConditionValue(name, isInvalid) {
41
+ if (isInvalid) {
42
+ this.track(name);
43
+ }
44
+ else {
45
+ this.untrack(name);
46
+ }
47
+ this.updateMentionInternalsFlag();
48
+ }
49
+ updateMentionInternalsFlag() {
50
+ this.mentionInternals.validConfiguration = this.isValid();
51
+ }
52
+ validateMissingPattern(pattern) {
53
+ this.setConditionValue('missingPatternAttribute', pattern === undefined);
54
+ }
55
+ validatePattern(pattern) {
56
+ this.setConditionValue('unsupportedPatternValue', pattern === undefined || this.isInvalidRegex(pattern));
57
+ }
58
+ validateMappingTypes(mappings) {
59
+ const valid = mappings.every(mapping => this.supportedMappingElements.some(mappingClass => mapping instanceof mappingClass));
60
+ this.setConditionValue('unsupportedMappingType', !valid);
61
+ }
62
+ validateUniqueMentionHref(mentionHref) {
63
+ const invalid = new Set(mentionHref).size !== mentionHref.length;
64
+ this.setConditionValue('duplicateMappingMentionHref', invalid);
65
+ }
66
+ validateNoMissingMentionHref(mentionHrefs) {
67
+ const invalid = mentionHrefs.some(href => href === undefined);
68
+ this.setConditionValue('missingMentionHrefValue', invalid);
69
+ }
70
+ validateHrefForUrl(mentionHrefs) {
71
+ const invalid = mentionHrefs.some(href => {
72
+ return (href === undefined
73
+ || typeof href !== 'string'
74
+ || this.isInvalidUrl(href));
75
+ });
76
+ this.setConditionValue('mentionHrefNotValidUrl', invalid);
77
+ }
78
+ validateHrefForPattern(mentionHrefs, pattern) {
79
+ const invalid = pattern === undefined || this.isInvalidRegex(pattern)
80
+ ? true
81
+ : mentionHrefs.some(href => {
82
+ return (href === undefined
83
+ || typeof href !== 'string'
84
+ || !RegExp(pattern).test(href));
85
+ });
86
+ this.setConditionValue('mentionHrefDoesNotMatchPattern', invalid);
87
+ }
88
+ isInvalidUrl(url) {
89
+ try {
90
+ // eslint-disable-next-line no-new
91
+ new URL(url);
92
+ return false;
93
+ }
94
+ catch (error) {
95
+ return true;
96
+ }
97
+ }
98
+ isInvalidRegex(pattern) {
99
+ try {
100
+ RegExp(pattern);
101
+ return false;
102
+ }
103
+ catch (error) {
104
+ return true;
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=mention-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-validator.js","sourceRoot":"","sources":["../../../../../src/rich-text-mention/base/models/mention-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RichTextMention } from '.';
2
+ export declare const template: import("@microsoft/fast-element").ViewTemplate<RichTextMention<import(".").RichTextMentionConfig, import("./models/mention-validator").RichTextMentionValidator<[]>>, any>;
@@ -0,0 +1,6 @@
1
+ import { slotted, html } from '@microsoft/fast-element';
2
+ export const template = html `<slot
3
+ ${slotted('mappings')}
4
+ name="mapping"
5
+ ></slot>`;
6
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/rich-text-mention/base/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGxD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAiB;MACvC,OAAO,CAAC,UAAU,CAAC;;SAEhB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { MentionInternalsOptions } from '../base/models/mention-internals';
2
+ import { MappingConfigs, RichTextMention, RichTextMentionConfig } from '../base';
3
+ import type { MappingConfig } from '../base/models/mapping-config';
4
+ import type { Mapping } from '../../mapping/base';
5
+ import type { MappingUserKey } from '../../mapping/base/types';
6
+ import { RichTextMentionUsersValidator } from './models/rich-text-mention-users-validator';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'nimble-rich-text-mention-users': RichTextMentionUsers;
10
+ }
11
+ }
12
+ /**
13
+ * Rich Text user mention configuration element which will have MappingMentionUser elements as children
14
+ */
15
+ export declare class RichTextMentionUsers extends RichTextMention<RichTextMentionConfig, RichTextMentionUsersValidator> {
16
+ protected createValidator(): RichTextMentionUsersValidator;
17
+ protected getMentionInternalsOptions(): MentionInternalsOptions;
18
+ protected createMentionConfig(mappingConfigs: MappingConfigs): RichTextMentionConfig;
19
+ protected createMappingConfig(mapping: Mapping<MappingUserKey>): MappingConfig;
20
+ }
21
+ export declare const richTextMentionUsersTag: string;
@@ -0,0 +1,43 @@
1
+ import { DesignSystem } from '@microsoft/fast-foundation';
2
+ import { RichTextMention } from '../base';
3
+ import { MappingUserConfig } from '../base/models/mapping-user-config';
4
+ import { template } from '../base/template';
5
+ import { iconAtTag } from '../../icons/at';
6
+ import { MappingUser } from '../../mapping/user';
7
+ import { RichTextMentionUsersValidator } from './models/rich-text-mention-users-validator';
8
+ /**
9
+ * Rich Text user mention configuration element which will have MappingMentionUser elements as children
10
+ */
11
+ export class RichTextMentionUsers extends RichTextMention {
12
+ createValidator() {
13
+ return new RichTextMentionUsersValidator(this.mentionInternals);
14
+ }
15
+ getMentionInternalsOptions() {
16
+ return {
17
+ icon: iconAtTag,
18
+ character: '@'
19
+ };
20
+ }
21
+ createMentionConfig(mappingConfigs) {
22
+ return {
23
+ mappingConfigs
24
+ };
25
+ }
26
+ createMappingConfig(mapping) {
27
+ if (mapping instanceof MappingUser) {
28
+ return new MappingUserConfig(mapping.key, mapping.displayName);
29
+ }
30
+ // Getting here would indicate a programming error, b/c validation will prevent
31
+ // this function from running when there is an unsupported mapping.
32
+ throw new Error('Unsupported mapping');
33
+ }
34
+ }
35
+ const nimbleRichTextMentionUsers = RichTextMentionUsers.compose({
36
+ baseName: 'rich-text-mention-users',
37
+ template
38
+ });
39
+ DesignSystem.getOrCreate()
40
+ .withPrefix('nimble')
41
+ .register(nimbleRichTextMentionUsers());
42
+ export const richTextMentionUsersTag = DesignSystem.tagFor(RichTextMentionUsers);
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rich-text-mention/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAEH,eAAe,EAElB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAQ3F;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAGzC;IACsB,eAAe;QAC9B,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpE,CAAC;IAEkB,0BAA0B;QACzC,OAAO;YACH,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,GAAG;SACjB,CAAC;IACN,CAAC;IAEkB,mBAAmB,CAClC,cAA8B;QAE9B,OAAO;YACH,cAAc;SACjB,CAAC;IACN,CAAC;IAES,mBAAmB,CACzB,OAAgC;QAEhC,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;SAClE;QACD,+EAA+E;QAC/E,mEAAmE;QACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;CACJ;AACD,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,OAAO,CAAC;IAC5D,QAAQ,EAAE,yBAAyB;IACnC,QAAQ;CACX,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC"}