@ni/nimble-components 20.14.8 → 20.14.10

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 (47) hide show
  1. package/dist/all-components-bundle.js +386 -136
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +2496 -2464
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/combobox/index.d.ts +2 -0
  6. package/dist/esm/combobox/index.js +5 -0
  7. package/dist/esm/combobox/index.js.map +1 -1
  8. package/dist/esm/combobox/template.js +3 -0
  9. package/dist/esm/combobox/template.js.map +1 -1
  10. package/dist/esm/list-option/index.d.ts +6 -3
  11. package/dist/esm/list-option/index.js +17 -14
  12. package/dist/esm/list-option/index.js.map +1 -1
  13. package/dist/esm/list-option/styles.js +3 -0
  14. package/dist/esm/list-option/styles.js.map +1 -1
  15. package/dist/esm/list-option/template.d.ts +8 -0
  16. package/dist/esm/list-option/template.js +34 -0
  17. package/dist/esm/list-option/template.js.map +1 -0
  18. package/dist/esm/rich-text/models/markdown-parser-mention-configuration.d.ts +15 -0
  19. package/dist/esm/rich-text/models/markdown-parser-mention-configuration.js +26 -0
  20. package/dist/esm/rich-text/models/markdown-parser-mention-configuration.js.map +1 -0
  21. package/dist/esm/rich-text/models/markdown-parser.d.ts +9 -2
  22. package/dist/esm/rich-text/models/markdown-parser.js +34 -9
  23. package/dist/esm/rich-text/models/markdown-parser.js.map +1 -1
  24. package/dist/esm/rich-text/models/testing/markdown-parser-utils.d.ts +1 -0
  25. package/dist/esm/rich-text/models/testing/markdown-parser-utils.js +3 -0
  26. package/dist/esm/rich-text/models/testing/markdown-parser-utils.js.map +1 -1
  27. package/dist/esm/rich-text/viewer/index.d.ts +24 -0
  28. package/dist/esm/rich-text/viewer/index.js +66 -4
  29. package/dist/esm/rich-text/viewer/index.js.map +1 -1
  30. package/dist/esm/rich-text/viewer/styles.js +14 -1
  31. package/dist/esm/rich-text/viewer/styles.js.map +1 -1
  32. package/dist/esm/rich-text/viewer/template.js +4 -2
  33. package/dist/esm/rich-text/viewer/template.js.map +1 -1
  34. package/dist/esm/rich-text/viewer/testing/rich-text-viewer.pageobject.d.ts +1 -0
  35. package/dist/esm/rich-text/viewer/testing/rich-text-viewer.pageobject.js +6 -3
  36. package/dist/esm/rich-text/viewer/testing/rich-text-viewer.pageobject.js.map +1 -1
  37. package/dist/esm/rich-text-mention/base/models/mention-internals.d.ts +5 -0
  38. package/dist/esm/rich-text-mention/base/models/mention-internals.js +1 -0
  39. package/dist/esm/rich-text-mention/base/models/mention-internals.js.map +1 -1
  40. package/dist/esm/rich-text-mention/users/index.js +3 -1
  41. package/dist/esm/rich-text-mention/users/index.js.map +1 -1
  42. package/dist/esm/select/index.d.ts +2 -0
  43. package/dist/esm/select/index.js +5 -0
  44. package/dist/esm/select/index.js.map +1 -1
  45. package/dist/esm/select/template.js +2 -1
  46. package/dist/esm/select/template.js.map +1 -1
  47. package/package.json +1 -1
@@ -37,6 +37,8 @@ export declare class Combobox extends FoundationCombobox implements DropdownPatt
37
37
  * @internal
38
38
  */
39
39
  controlWrapper?: HTMLElement;
40
+ /** @internal */
41
+ hasOverflow: boolean;
40
42
  get value(): string;
41
43
  set value(next: string);
42
44
  private valueUpdatedByInput;
@@ -17,6 +17,8 @@ export class Combobox extends FoundationCombobox {
17
17
  super(...arguments);
18
18
  this.appearance = DropdownAppearance.underline;
19
19
  this.errorVisible = false;
20
+ /** @internal */
21
+ this.hasOverflow = false;
20
22
  this.valueUpdatedByInput = false;
21
23
  }
22
24
  get value() {
@@ -206,6 +208,9 @@ __decorate([
206
208
  __decorate([
207
209
  observable
208
210
  ], Combobox.prototype, "controlWrapper", void 0);
211
+ __decorate([
212
+ observable
213
+ ], Combobox.prototype, "hasOverflow", void 0);
209
214
  const nimbleCombobox = Combobox.compose({
210
215
  baseName: 'combobox',
211
216
  baseClass: FoundationCombobox,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/combobox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/combobox/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { html, ref, slotted } from '@microsoft/fast-element';
2
2
  import { startSlotTemplate, endSlotTemplate, Listbox } from '@microsoft/fast-foundation';
3
3
  import { anchoredRegionTag } from '../anchored-region';
4
4
  import { DropdownPosition } from '../patterns/dropdown/types';
5
+ import { overflow } from '../utilities/directive/overflow';
5
6
  // prettier-ignore
6
7
  export const template = (context, definition) => html `
7
8
  <template
@@ -34,6 +35,8 @@ export const template = (context, definition) => html `
34
35
  @input="${(x, c) => x.inputHandler(c.event)}"
35
36
  @keyup="${(x, c) => x.keyupHandler(c.event)}"
36
37
  ${ref('control')}
38
+ ${overflow('hasOverflow')}
39
+ title=${x => (x.hasOverflow && x.value ? x.value : null)}
37
40
  />
38
41
  <div class="indicator" part="indicator" aria-hidden="true">
39
42
  <slot name="indicator">
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/combobox/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/combobox/template.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,11 @@ declare global {
8
8
  * A nimble-styled HTML listbox option
9
9
  */
10
10
  export declare class ListOption extends FoundationListboxOption {
11
- get value(): string;
12
- set value(value: string);
13
- connectedCallback(): void;
11
+ /** @internal */
12
+ contentSlot: HTMLSlotElement;
13
+ /** @internal */
14
+ hasOverflow: boolean;
15
+ /** @internal */
16
+ get elementTextContent(): string;
14
17
  }
15
18
  export declare const listOptionTag: string;
@@ -1,25 +1,28 @@
1
- import { DesignSystem, ListboxOption as FoundationListboxOption, listboxOptionTemplate as template } from '@microsoft/fast-foundation';
1
+ import { __decorate } from "tslib";
2
+ import { DesignSystem, ListboxOption as FoundationListboxOption } from '@microsoft/fast-foundation';
3
+ import { observable } from '@microsoft/fast-element';
2
4
  import { styles } from './styles';
5
+ import { template } from './template';
3
6
  /**
4
7
  * A nimble-styled HTML listbox option
5
8
  */
6
9
  export class ListOption extends FoundationListboxOption {
7
- // Workaround for https://github.com/microsoft/fast/issues/5219
8
- get value() {
9
- return super.value;
10
+ constructor() {
11
+ super(...arguments);
12
+ /** @internal */
13
+ this.hasOverflow = false;
10
14
  }
11
- set value(value) {
12
- // Coerce value to string
13
- super.value = `${value}`;
14
- if (this.$fastController.isConnected) {
15
- this.setAttribute('value', this.value);
16
- }
17
- }
18
- connectedCallback() {
19
- super.connectedCallback();
20
- this.setAttribute('value', this.value);
15
+ /** @internal */
16
+ get elementTextContent() {
17
+ return this.contentSlot
18
+ .assignedNodes()
19
+ .map(node => node.textContent?.trim())
20
+ .join(' ');
21
21
  }
22
22
  }
23
+ __decorate([
24
+ observable
25
+ ], ListOption.prototype, "hasOverflow", void 0);
23
26
  const nimbleListOption = ListOption.compose({
24
27
  baseName: 'list-option',
25
28
  baseClass: FoundationListboxOption,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/list-option/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,qBAAqB,IAAI,QAAQ,EACpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,uBAAuB;IACnD,+DAA+D;IAC/D,IAAoB,KAAK;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,IAAoB,KAAK,CAAC,KAAa;QACnC,yBAAyB;QACzB,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;IACL,CAAC;IAEe,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,uBAAuB;IAClC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/list-option/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,YAAY,EACZ,aAAa,IAAI,uBAAuB,EAC3C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,uBAAuB;IAAvD;;QAII,gBAAgB;QAET,gBAAW,GAAG,KAAK,CAAC;IAS/B,CAAC;IAPG,gBAAgB;IAChB,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,WAAW;aAClB,aAAa,EAAE;aACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;aACrC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AATG;IADC,UAAU;+CACgB;AAW/B,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,uBAAuB;IAClC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -18,6 +18,9 @@ export const styles = css `
18
18
 
19
19
  .content {
20
20
  padding: 8px 4px;
21
+ white-space: nowrap;
22
+ overflow: hidden;
23
+ text-overflow: ellipsis;
21
24
  }
22
25
 
23
26
  :host([aria-selected='true']) {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/list-option/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,aAAa,EAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;;kBAGN,aAAa;;;;;;;;;;;;;;4BAcH,iBAAiB;;;;4BAIjB,sBAAsB;;;;4BAItB,cAAc;;;;;;;;aAQ7B,YAAY;sCACa,gBAAgB;6BACzB,gBAAgB;;;;;;;4BAOjB,iBAAiB;;;;iBAI5B,qBAAqB;;;;;;;;;;;;CAYrC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/list-option/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,aAAa,EAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;;kBAGN,aAAa;;;;;;;;;;;;;;;;;4BAiBH,iBAAiB;;;;4BAIjB,sBAAsB;;;;4BAItB,cAAc;;;;;;;;aAQ7B,YAAY;sCACa,gBAAgB;6BACzB,gBAAgB;;;;;;;4BAOjB,iBAAiB;;;;iBAI5B,qBAAqB;;;;;;;;;;;;CAYrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ViewTemplate } from '@microsoft/fast-element';
2
+ import { type FoundationElementTemplate, type ListboxOptionOptions } from '@microsoft/fast-foundation';
3
+ import type { ListOption } from '.';
4
+ /**
5
+ * The template for the {@link @microsoft/fast-foundation#(ListboxOption:class)} component.
6
+ * @public
7
+ */
8
+ export declare const template: FoundationElementTemplate<ViewTemplate<ListOption>, ListboxOptionOptions>;
@@ -0,0 +1,34 @@
1
+ // Based on template in FAST repo: https://github.com/microsoft/fast/blob/2ea80697bc3a5193e6123fb08ac3be2a76571aeb/packages/web-components/fast-foundation/src/listbox-option/listbox-option.template.ts
2
+ import { html, ref, slotted } from '@microsoft/fast-element';
3
+ import { startSlotTemplate, endSlotTemplate } from '@microsoft/fast-foundation';
4
+ import { overflow } from '../utilities/directive/overflow';
5
+ /**
6
+ * The template for the {@link @microsoft/fast-foundation#(ListboxOption:class)} component.
7
+ * @public
8
+ */
9
+ // prettier-ignore
10
+ export const template = (context, definition) => html `
11
+ <template
12
+ aria-checked="${x => x.ariaChecked}"
13
+ aria-disabled="${x => x.ariaDisabled}"
14
+ aria-posinset="${x => x.ariaPosInSet}"
15
+ aria-selected="${x => x.ariaSelected}"
16
+ aria-setsize="${x => x.ariaSetSize}"
17
+ class="${x => [x.checked && 'checked', x.selected && 'selected', x.disabled && 'disabled']
18
+ .filter(Boolean)
19
+ .join(' ')}"
20
+ role="option"
21
+ >
22
+ ${startSlotTemplate(context, definition)}
23
+ <span
24
+ class="content"
25
+ part="content"
26
+ ${overflow('hasOverflow')}
27
+ title=${x => (x.hasOverflow && x.elementTextContent ? x.elementTextContent : null)}
28
+ >
29
+ <slot ${ref('contentSlot')} ${slotted('content')}></slot>
30
+ </span>
31
+ ${endSlotTemplate(context, definition)}
32
+ </template>
33
+ `;
34
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/list-option/template.ts"],"names":[],"mappings":"AAAA,wMAAwM;AACxM,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACH,iBAAiB,EAGjB,eAAe,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D;;;GAGG;AACH,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAGjB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAA;;wBAET,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;yBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;yBACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;yBACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;wBACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;iBACzB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;KACzF,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,GAAG,CAAC;;;UAGR,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;;;;cAIlC,QAAQ,CAAC,aAAa,CAAC;oBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;;oBAE1E,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;;UAElD,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;;CAE7C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { RichTextMentionConfig } from '../../rich-text-mention/base';
2
+ import type { MentionInternals } from '../../rich-text-mention/base/models/mention-internals';
3
+ /**
4
+ * A configuration object for a Markdown parser, to be used by the viewer and editor components.
5
+ * This object maintains the necessary internal values for handling mentions within the Markdown parser.
6
+ */
7
+ export declare class MarkdownParserMentionConfiguration {
8
+ readonly viewElement: string;
9
+ private readonly regexPattern;
10
+ private readonly mappingConfigs?;
11
+ constructor(mentionInternals: MentionInternals<RichTextMentionConfig>);
12
+ isValidMentionHref(mentionHref: string): boolean;
13
+ getDisplayName(mentionHref: string): string | undefined;
14
+ private extractMentionId;
15
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A configuration object for a Markdown parser, to be used by the viewer and editor components.
3
+ * This object maintains the necessary internal values for handling mentions within the Markdown parser.
4
+ */
5
+ export class MarkdownParserMentionConfiguration {
6
+ constructor(mentionInternals) {
7
+ this.regexPattern = new RegExp(mentionInternals.pattern ?? '');
8
+ this.mappingConfigs = mentionInternals.mentionConfig?.mappingConfigs;
9
+ this.viewElement = mentionInternals.viewElement;
10
+ }
11
+ isValidMentionHref(mentionHref) {
12
+ return this.regexPattern.test(mentionHref);
13
+ }
14
+ getDisplayName(mentionHref) {
15
+ const mentionMapping = this.mappingConfigs?.get(mentionHref);
16
+ const mentionId = this.extractMentionId(mentionHref);
17
+ return mentionMapping?.displayName ?? mentionId;
18
+ }
19
+ extractMentionId(mentionHref) {
20
+ const regexpArray = this.regexPattern.exec(mentionHref);
21
+ // Matches and gets the first group specified in the regex pattern
22
+ // that renders as an alternative to the display name if missing.
23
+ return regexpArray?.[1] ?? undefined;
24
+ }
25
+ }
26
+ //# sourceMappingURL=markdown-parser-mention-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser-mention-configuration.js","sourceRoot":"","sources":["../../../../src/rich-text/models/markdown-parser-mention-configuration.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,OAAO,kCAAkC;IAM3C,YACI,gBAAyD;QAEzD,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC;IACpD,CAAC;IAEM,kBAAkB,CAAC,WAAmB;QACzC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,WAAmB;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,cAAc,EAAE,WAAW,IAAI,SAAS,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,WAAmB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExD,kEAAkE;QAClE,iEAAiE;QACjE,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACzC,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
+ import type { MarkdownParserMentionConfiguration } from './markdown-parser-mention-configuration';
1
2
  /**
2
3
  * Provides markdown parser for rich text components
3
4
  */
@@ -5,12 +6,18 @@ export declare class RichTextMarkdownParser {
5
6
  private static readonly updatedSchema;
6
7
  private static readonly markdownParser;
7
8
  private static readonly domSerializer;
9
+ /**
10
+ * The markdown parser is static (shared across all rich text components) because it is expensive to create.
11
+ * To configure parse calls with the mention configurations which can be unique per component instance
12
+ * we store static configuration in this member and access it from Prosemirror callbacks.
13
+ */
14
+ private static mentionConfigs?;
8
15
  /**
9
16
  * This function takes a markdown string, parses it using the ProseMirror MarkdownParser, serializes the parsed content into a
10
17
  * DOM structure using a DOMSerializer, and returns the serialized result.
11
18
  * If the markdown parser returns null, it will clear the viewer component by creating an empty document fragment.
12
19
  */
13
- static parseMarkdownToDOM(value: string): HTMLElement | DocumentFragment;
20
+ static parseMarkdownToDOM(value: string, markdownParserMentionConfig?: MarkdownParserMentionConfiguration[]): HTMLElement | DocumentFragment;
14
21
  private static initializeMarkdownParser;
15
- private static getSchemaWithLinkConfiguration;
22
+ private static getCustomSchemaConfiguration;
16
23
  }
@@ -11,12 +11,18 @@ export class RichTextMarkdownParser {
11
11
  * DOM structure using a DOMSerializer, and returns the serialized result.
12
12
  * If the markdown parser returns null, it will clear the viewer component by creating an empty document fragment.
13
13
  */
14
- static parseMarkdownToDOM(value) {
15
- const parsedMarkdownContent = this.markdownParser.parse(value);
16
- if (parsedMarkdownContent === null) {
17
- return document.createDocumentFragment();
14
+ static parseMarkdownToDOM(value, markdownParserMentionConfig) {
15
+ try {
16
+ this.mentionConfigs = markdownParserMentionConfig;
17
+ const parsedMarkdownContent = this.markdownParser.parse(value);
18
+ if (parsedMarkdownContent === null) {
19
+ return document.createDocumentFragment();
20
+ }
21
+ return this.domSerializer.serializeFragment(parsedMarkdownContent.content);
22
+ }
23
+ finally {
24
+ this.mentionConfigs = undefined;
18
25
  }
19
- return this.domSerializer.serializeFragment(parsedMarkdownContent.content);
20
26
  }
21
27
  static initializeMarkdownParser() {
22
28
  /**
@@ -35,7 +41,6 @@ export class RichTextMarkdownParser {
35
41
  'autolink',
36
42
  'newline'
37
43
  ]);
38
- supportedTokenizerRules.validateLink = href => /^https?:\/\//i.test(href);
39
44
  /**
40
45
  * In order to display encoded characters, non-ASCII characters, emojis, and other special characters in their original form,
41
46
  * we bypass the default normalization of link text in markdown-it. This is done because we support only "AutoLink" feature in CommonMark flavor.
@@ -47,7 +52,7 @@ export class RichTextMarkdownParser {
47
52
  supportedTokenizerRules.normalizeLinkText = url => url;
48
53
  return new MarkdownParser(this.updatedSchema, supportedTokenizerRules, defaultMarkdownParser.tokens);
49
54
  }
50
- static getSchemaWithLinkConfiguration() {
55
+ static getCustomSchemaConfiguration() {
51
56
  return new Schema({
52
57
  nodes: schema.spec.nodes,
53
58
  marks: {
@@ -63,10 +68,30 @@ export class RichTextMarkdownParser {
63
68
  // See: https://github.com/ni/nimble/issues/1527
64
69
  excludes: '_',
65
70
  toDOM(node) {
71
+ const href = node.attrs.href;
72
+ const currentMention = RichTextMarkdownParser.mentionConfigs?.find(mention => mention.isValidMentionHref(href));
73
+ const displayName = currentMention?.getDisplayName(href);
74
+ if (currentMention && displayName) {
75
+ return [
76
+ currentMention.viewElement,
77
+ {
78
+ 'mention-href': href,
79
+ 'mention-label': displayName,
80
+ 'disable-editing': true
81
+ }
82
+ ];
83
+ }
66
84
  return [
67
85
  anchorTag,
68
86
  {
69
- href: node.attrs.href,
87
+ /**
88
+ * Both mention and absolute link markdown share the autolink format in CommonMark flavor.
89
+ * Absolute links with HTTP/HTTPS will be rendered as links. Absolute links that match the
90
+ * mention pattern will be rendered as mention view element. Absolute links without HTTP/HTTPS
91
+ * scheme and no matching mention pattern will be rendered as plain text (anchor with no href).
92
+ * With this, the user can click the links only when the scheme is HTTP/HTTPS
93
+ */
94
+ href: /^https?:\/\//i.test(href) ? href : null,
70
95
  rel: node.attrs.rel
71
96
  }
72
97
  ];
@@ -79,7 +104,7 @@ export class RichTextMarkdownParser {
79
104
  }
80
105
  }
81
106
  _a = RichTextMarkdownParser;
82
- RichTextMarkdownParser.updatedSchema = _a.getSchemaWithLinkConfiguration();
107
+ RichTextMarkdownParser.updatedSchema = _a.getCustomSchemaConfiguration();
83
108
  RichTextMarkdownParser.markdownParser = _a.initializeMarkdownParser();
84
109
  RichTextMarkdownParser.domSerializer = DOMSerializer.fromSchema(_a.updatedSchema);
85
110
  //# sourceMappingURL=markdown-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../../src/rich-text/models/markdown-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,MAAM,EACN,qBAAqB,EACrB,cAAc,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAQ/B;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAC5B,KAAa;QAEb,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAChC,OAAO,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACvC,qBAAqB,CAAC,OAAO,CAChC,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,wBAAwB;QACnC;;;;;WAKG;QACH,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErF,uGAAuG;QACvG,oCAAoC;QACpC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,MAAM,CAAC;YAC9D,UAAU;YACV,MAAM;YACN,QAAQ;YACR,UAAU;YACV,SAAS;SACZ,CAAC,CAAC;QAEH,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E;;;;;;;WAOG;QACH,uBAAuB,CAAC,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QAEvD,OAAO,IAAI,cAAc,CACrB,IAAI,CAAC,aAAa,EAClB,uBAAuB,EACvB,qBAAqB,CAAC,MAAM,CAC/B,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,8BAA8B;QACzC,OAAO,IAAI,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,KAAK,EAAE;gBACH,IAAI,EAAE;oBACF,KAAK,EAAE;wBACH,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;qBAC1C;oBACD,wDAAwD;oBACxD,gDAAgD;oBAChD,SAAS,EAAE,KAAK;oBAChB,+DAA+D;oBAC/D,gDAAgD;oBAChD,QAAQ,EAAE,GAAG;oBACb,KAAK,CAAC,IAAI;wBACN,OAAO;4BACH,SAAS;4BACT;gCACI,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAY;gCAC7B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAW;6BAC9B;yBACJ,CAAC;oBACN,CAAC;iBACJ;gBACD,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE;gBAChC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE;aAC3C;SACJ,CAAC,CAAC;IACP,CAAC;;;AA3FuB,oCAAa,GAAG,EAAI,CAAC,8BAA8B,EAAE,CAAC;AAEtD,qCAAc,GAAG,EAAI,CAAC,wBAAwB,EAAE,CAAC;AACjD,oCAAa,GAAG,aAAa,CAAC,UAAU,CAC5D,EAAI,CAAC,aAAa,CACrB,CAAC"}
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../../src/rich-text/models/markdown-parser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare const getTagsFromElement: (doc: DocumentFragment | HTMLElement) => string[];
2
2
  export declare const getLeafContentsFromElement: (doc: DocumentFragment | HTMLElement) => string[];
3
3
  export declare const getLastChildElementAttribute: (attribute: string, doc: DocumentFragment | HTMLElement) => string;
4
+ export declare const lastChildElementHasAttribute: (attribute: string, doc: DocumentFragment | HTMLElement) => boolean;
4
5
  export declare function getLastChildElement(doc: DocumentFragment | HTMLElement): Element | null | undefined;
@@ -13,6 +13,9 @@ export const getLeafContentsFromElement = (doc) => {
13
13
  export const getLastChildElementAttribute = (attribute, doc) => {
14
14
  return getLastChildElement(doc)?.getAttribute(attribute) ?? '';
15
15
  };
16
+ export const lastChildElementHasAttribute = (attribute, doc) => {
17
+ return getLastChildElement(doc)?.hasAttribute(attribute) ?? false;
18
+ };
16
19
  export function getLastChildElement(doc) {
17
20
  let lastElement = doc.lastElementChild;
18
21
  while (lastElement?.lastElementChild) {
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser-utils.js","sourceRoot":"","sources":["../../../../../src/rich-text/models/testing/markdown-parser-utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,GAAmC,EAC3B,EAAE;IACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,GAAmC,EAC3B,EAAE;IACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;SACD,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CACxC,SAAiB,EACjB,GAAmC,EAC7B,EAAE;IACR,OAAO,mBAAmB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAC/B,GAAmC;IAEnC,IAAI,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAEvC,OAAO,WAAW,EAAE,gBAAgB,EAAE;QAClC,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC;KAC9C;IACD,OAAO,WAAW,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"markdown-parser-utils.js","sourceRoot":"","sources":["../../../../../src/rich-text/models/testing/markdown-parser-utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,GAAmC,EAC3B,EAAE;IACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,GAAmC,EAC3B,EAAE;IACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;SACD,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CACxC,SAAiB,EACjB,GAAmC,EAC7B,EAAE;IACR,OAAO,mBAAmB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CACxC,SAAiB,EACjB,GAAmC,EAC5B,EAAE;IACT,OAAO,mBAAmB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAC/B,GAAmC;IAEnC,IAAI,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAEvC,OAAO,WAAW,EAAE,gBAAgB,EAAE;QAClC,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC;KAC9C;IACD,OAAO,WAAW,CAAC;AACvB,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { FoundationElement } from '@microsoft/fast-foundation';
2
+ import { RichTextMention } from '../../rich-text-mention/base';
3
+ import { MarkdownParserMentionConfiguration } from '../models/markdown-parser-mention-configuration';
2
4
  declare global {
3
5
  interface HTMLElementTagNameMap {
4
6
  'nimble-rich-text-viewer': RichTextViewer;
@@ -18,6 +20,19 @@ export declare class RichTextViewer extends FoundationElement {
18
20
  * @internal
19
21
  */
20
22
  viewer: HTMLDivElement;
23
+ /**
24
+ * @internal
25
+ */
26
+ mentionElements: RichTextMention[];
27
+ /**
28
+ * @internal
29
+ */
30
+ mentionInternalsConfig: MarkdownParserMentionConfiguration[];
31
+ /**
32
+ * @internal
33
+ */
34
+ readonly childItems: Element[];
35
+ private mentionInternalsNotifiers;
21
36
  /**
22
37
  * @internal
23
38
  */
@@ -26,6 +41,15 @@ export declare class RichTextViewer extends FoundationElement {
26
41
  * @internal
27
42
  */
28
43
  markdownChanged(): void;
44
+ /**
45
+ * @internal
46
+ */
47
+ handleChange(source: unknown, args: unknown): void;
48
+ private childItemsChanged;
49
+ private updateMentionsFromChildItems;
50
+ private observeMentions;
51
+ private removeMentionObservers;
52
+ private updateMentionInternalsConfig;
29
53
  private updateView;
30
54
  }
31
55
  export declare const richTextViewerTag: string;
@@ -1,9 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
3
- import { observable } from '@microsoft/fast-element';
3
+ import { Observable, observable } from '@microsoft/fast-element';
4
4
  import { template } from './template';
5
5
  import { styles } from './styles';
6
6
  import { RichTextMarkdownParser } from '../models/markdown-parser';
7
+ import { RichTextMention } from '../../rich-text-mention/base';
8
+ import { MentionInternals } from '../../rich-text-mention/base/models/mention-internals';
9
+ import { MarkdownParserMentionConfiguration } from '../models/markdown-parser-mention-configuration';
7
10
  /**
8
11
  * A nimble styled rich text viewer
9
12
  */
@@ -16,6 +19,19 @@ export class RichTextViewer extends FoundationElement {
16
19
  * Markdown string to render its corresponding rich text content in the component.
17
20
  */
18
21
  this.markdown = '';
22
+ /**
23
+ * @internal
24
+ */
25
+ this.mentionElements = [];
26
+ /**
27
+ * @internal
28
+ */
29
+ this.mentionInternalsConfig = [];
30
+ /**
31
+ * @internal
32
+ */
33
+ this.childItems = [];
34
+ this.mentionInternalsNotifiers = [];
19
35
  }
20
36
  /**
21
37
  * @internal
@@ -28,13 +44,56 @@ export class RichTextViewer extends FoundationElement {
28
44
  * @internal
29
45
  */
30
46
  markdownChanged() {
31
- if (this.$fastController.isConnected) {
32
- this.updateView();
47
+ this.updateView();
48
+ }
49
+ /**
50
+ * @internal
51
+ */
52
+ handleChange(source, args) {
53
+ if (source instanceof MentionInternals && typeof args === 'string') {
54
+ this.updateMentionInternalsConfig();
33
55
  }
34
56
  }
57
+ childItemsChanged() {
58
+ void this.updateMentionsFromChildItems();
59
+ }
60
+ async updateMentionsFromChildItems() {
61
+ const definedElements = this.childItems.map(async (item) => (item.matches(':not(:defined)')
62
+ ? customElements.whenDefined(item.localName)
63
+ : Promise.resolve()));
64
+ await Promise.all(definedElements);
65
+ this.mentionElements = this.childItems.filter((x) => x instanceof RichTextMention);
66
+ this.observeMentions();
67
+ this.updateMentionInternalsConfig();
68
+ }
69
+ observeMentions() {
70
+ this.removeMentionObservers();
71
+ for (const mention of this.mentionElements) {
72
+ const notifierInternals = Observable.getNotifier(mention.mentionInternals);
73
+ notifierInternals.subscribe(this);
74
+ this.mentionInternalsNotifiers.push(notifierInternals);
75
+ }
76
+ }
77
+ removeMentionObservers() {
78
+ this.mentionInternalsNotifiers.forEach(notifier => {
79
+ notifier.unsubscribe(this);
80
+ });
81
+ this.mentionInternalsNotifiers = [];
82
+ }
83
+ updateMentionInternalsConfig() {
84
+ // TODO: Add a rich text validator to check if the `mentionElements` contains duplicate configuration element
85
+ // For example, having two `nimble-rich-text-mention-users` within the children of rich text viewer or editor is an invalid configuration
86
+ this.mentionInternalsConfig = this.mentionElements
87
+ .filter(mention => mention.mentionInternals.validConfiguration)
88
+ .map(mention => new MarkdownParserMentionConfiguration(mention.mentionInternals));
89
+ this.updateView();
90
+ }
35
91
  updateView() {
92
+ if (!this.$fastController.isConnected) {
93
+ return;
94
+ }
36
95
  if (this.markdown) {
37
- const serializedContent = RichTextMarkdownParser.parseMarkdownToDOM(this.markdown);
96
+ const serializedContent = RichTextMarkdownParser.parseMarkdownToDOM(this.markdown, this.mentionInternalsConfig);
38
97
  this.viewer.replaceChildren(serializedContent);
39
98
  }
40
99
  else {
@@ -45,6 +104,9 @@ export class RichTextViewer extends FoundationElement {
45
104
  __decorate([
46
105
  observable
47
106
  ], RichTextViewer.prototype, "markdown", void 0);
107
+ __decorate([
108
+ observable
109
+ ], RichTextViewer.prototype, "childItems", void 0);
48
110
  const nimbleRichTextViewer = RichTextViewer.compose({
49
111
  baseName: 'rich-text-viewer',
50
112
  template,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rich-text/viewer/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAQnE;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IAArD;;QACI;;;;WAIG;QAEI,aAAQ,GAAG,EAAE,CAAC;IAkCzB,CAAC;IA3BG;;OAEG;IACa,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;IACL,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,kBAAkB,CAC/D,IAAI,CAAC,QAAQ,CAChB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;SAC9B;IACL,CAAC;CACJ;AAlCG;IADC,UAAU;gDACU;AAoCzB,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,CAAC;IAChD,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rich-text/viewer/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '@microsoft/fast-foundation';
3
- import { bodyFont, bodyFontColor } from '../../theme-provider/design-tokens';
3
+ import { bodyFont, bodyFontColor, linkFontColor } from '../../theme-provider/design-tokens';
4
4
  export const styles = css `
5
5
  ${display('flex')}
6
6
 
@@ -39,5 +39,18 @@ export const styles = css `
39
39
  li > p:empty {
40
40
  display: none;
41
41
  }
42
+
43
+ ${
44
+ /**
45
+ * When an absolute link is not HTTPS/HTTP, the anchor tag renders without an `href`, appearing as plain text.
46
+ * However, the `nimble-anchor` displays differently in color when the `href` attribute is absent.
47
+ * To ensure a consistent appearance, the font color is forced to the default link color regardless of the `href`
48
+ * attribute's presence.
49
+ *
50
+ * See models/markdown-parser.ts where link elements are emitted for more info.
51
+ */ ''}
52
+ nimble-anchor::part(control) {
53
+ color: ${linkFontColor};
54
+ }
42
55
  `;
43
56
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/rich-text/viewer/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;iBAEP,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BxB;AACE,gLAAgL,CAAC,EACrL;;;;CAIH,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/rich-text/viewer/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,QAAQ,EACR,aAAa,EACb,aAAa,EAChB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;iBAEP,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BxB;AACE,gLAAgL,CAAC,EACrL;;;;;MAKE;AACE;;;;;;;GAOG,CAAC,EACR;;iBAEa,aAAa;;CAE7B,CAAC"}
@@ -1,5 +1,7 @@
1
- import { html, ref } from '@microsoft/fast-element';
1
+ import { children, elements, html, ref } from '@microsoft/fast-element';
2
2
  export const template = html `
3
- <div ${ref('viewer')} class="viewer"></div>
3
+ <template ${children({ property: 'childItems', filter: elements() })}>
4
+ <div ${ref('viewer')} class="viewer"></div>
5
+ </template>
4
6
  `;
5
7
  //# sourceMappingURL=template.js.map