@ni/nimble-components 34.3.0 → 34.3.2

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 (113) hide show
  1. package/dist/all-components-bundle.js +231 -162
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +4029 -3984
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/anchor/template.js +0 -1
  6. package/dist/esm/anchor/template.js.map +1 -1
  7. package/dist/esm/banner/template.js +0 -1
  8. package/dist/esm/banner/template.js.map +1 -1
  9. package/dist/esm/breadcrumb/breadcrumb.foundation.spec.d.ts +1 -0
  10. package/dist/esm/breadcrumb/breadcrumb.foundation.spec.js +116 -0
  11. package/dist/esm/breadcrumb/breadcrumb.foundation.spec.js.map +1 -0
  12. package/dist/esm/breadcrumb/index.d.ts +31 -0
  13. package/dist/esm/breadcrumb/index.js +56 -2
  14. package/dist/esm/breadcrumb/index.js.map +1 -1
  15. package/dist/esm/breadcrumb/styles.js +25 -4
  16. package/dist/esm/breadcrumb/styles.js.map +1 -1
  17. package/dist/esm/breadcrumb/template.d.ts +8 -0
  18. package/dist/esm/breadcrumb/template.js +43 -0
  19. package/dist/esm/breadcrumb/template.js.map +1 -0
  20. package/dist/esm/breadcrumb/testing/breadcrumb.pageobject.d.ts +19 -0
  21. package/dist/esm/breadcrumb/testing/breadcrumb.pageobject.js +89 -0
  22. package/dist/esm/breadcrumb/testing/breadcrumb.pageobject.js.map +1 -0
  23. package/dist/esm/combobox/template.js +0 -2
  24. package/dist/esm/combobox/template.js.map +1 -1
  25. package/dist/esm/list-option/template.js +0 -1
  26. package/dist/esm/list-option/template.js.map +1 -1
  27. package/dist/esm/list-option-group/template.js +0 -1
  28. package/dist/esm/list-option-group/template.js.map +1 -1
  29. package/dist/esm/menu/template.js +0 -3
  30. package/dist/esm/menu/template.js.map +1 -1
  31. package/dist/esm/menu-button/template.js +0 -1
  32. package/dist/esm/menu-button/template.js.map +1 -1
  33. package/dist/esm/patterns/required-visible/template.js +0 -1
  34. package/dist/esm/patterns/required-visible/template.js.map +1 -1
  35. package/dist/esm/patterns/tabs/template.js +0 -1
  36. package/dist/esm/patterns/tabs/template.js.map +1 -1
  37. package/dist/esm/radio-group/template.js +0 -1
  38. package/dist/esm/radio-group/template.js.map +1 -1
  39. package/dist/esm/rich-text/editor/template.js +0 -1
  40. package/dist/esm/rich-text/editor/template.js.map +1 -1
  41. package/dist/esm/rich-text/mention-listbox/template.js +0 -2
  42. package/dist/esm/rich-text/mention-listbox/template.js.map +1 -1
  43. package/dist/esm/rich-text/models/markdown-parser.js.map +1 -1
  44. package/dist/esm/select/index.js.map +1 -1
  45. package/dist/esm/select/template.js +0 -3
  46. package/dist/esm/select/template.js.map +1 -1
  47. package/dist/esm/spinner/template.js +0 -3
  48. package/dist/esm/spinner/template.js.map +1 -1
  49. package/dist/esm/switch/template.js +0 -1
  50. package/dist/esm/switch/template.js.map +1 -1
  51. package/dist/esm/table/components/cell/template.js +0 -1
  52. package/dist/esm/table/components/cell/template.js.map +1 -1
  53. package/dist/esm/table/components/group-row/template.js +0 -3
  54. package/dist/esm/table/components/group-row/template.js.map +1 -1
  55. package/dist/esm/table/components/header/template.js +0 -1
  56. package/dist/esm/table/components/header/template.js.map +1 -1
  57. package/dist/esm/table/components/row/template.js +0 -1
  58. package/dist/esm/table/components/row/template.js.map +1 -1
  59. package/dist/esm/table/index.js.map +1 -1
  60. package/dist/esm/table/models/expansion-manager.js.map +1 -1
  61. package/dist/esm/table/models/keyboard-navigation-manager.js +1 -2
  62. package/dist/esm/table/models/keyboard-navigation-manager.js.map +1 -1
  63. package/dist/esm/table/models/virtualizer.js.map +1 -1
  64. package/dist/esm/table/template.js +0 -1
  65. package/dist/esm/table/template.js.map +1 -1
  66. package/dist/esm/table/testing/table.pageobject.js.map +1 -1
  67. package/dist/esm/table-column/anchor/cell-view/index.js.map +1 -1
  68. package/dist/esm/table-column/anchor/cell-view/template.js +0 -3
  69. package/dist/esm/table-column/anchor/cell-view/template.js.map +1 -1
  70. package/dist/esm/table-column/anchor/index.js.map +1 -1
  71. package/dist/esm/table-column/base/cell-view/template.js +0 -1
  72. package/dist/esm/table-column/base/cell-view/template.js.map +1 -1
  73. package/dist/esm/table-column/base/index.js.map +1 -1
  74. package/dist/esm/table-column/base/template.js +0 -1
  75. package/dist/esm/table-column/base/template.js.map +1 -1
  76. package/dist/esm/table-column/date-text/cell-view/index.js.map +1 -1
  77. package/dist/esm/table-column/date-text/group-header-view/index.js.map +1 -1
  78. package/dist/esm/table-column/date-text/index.js.map +1 -1
  79. package/dist/esm/table-column/duration-text/cell-view/index.js.map +1 -1
  80. package/dist/esm/table-column/duration-text/group-header-view/index.js.map +1 -1
  81. package/dist/esm/table-column/mapping/cell-view/index.js.map +1 -1
  82. package/dist/esm/table-column/mapping/cell-view/template.js +0 -1
  83. package/dist/esm/table-column/mapping/cell-view/template.js.map +1 -1
  84. package/dist/esm/table-column/mapping/group-header-view/index.js.map +1 -1
  85. package/dist/esm/table-column/mapping/group-header-view/template.js +0 -1
  86. package/dist/esm/table-column/mapping/group-header-view/template.js.map +1 -1
  87. package/dist/esm/table-column/mapping/index.js.map +1 -1
  88. package/dist/esm/table-column/menu-button/cell-view/index.js.map +1 -1
  89. package/dist/esm/table-column/number-text/cell-view/index.js.map +1 -1
  90. package/dist/esm/table-column/number-text/group-header-view/index.js.map +1 -1
  91. package/dist/esm/table-column/number-text/index.js.map +1 -1
  92. package/dist/esm/table-column/number-text/models/number-text-unit-format.js.map +1 -1
  93. package/dist/esm/table-column/number-text/template.js +0 -1
  94. package/dist/esm/table-column/number-text/template.js.map +1 -1
  95. package/dist/esm/table-column/text/cell-view/index.js.map +1 -1
  96. package/dist/esm/table-column/text/group-header-view/index.js.map +1 -1
  97. package/dist/esm/table-column/text/index.js.map +1 -1
  98. package/dist/esm/table-column/text-base/cell-view/template.js +0 -1
  99. package/dist/esm/table-column/text-base/cell-view/template.js.map +1 -1
  100. package/dist/esm/tabs-toolbar/template.js +0 -2
  101. package/dist/esm/tabs-toolbar/template.js.map +1 -1
  102. package/dist/esm/toggle-button/template.js +0 -3
  103. package/dist/esm/toggle-button/template.js.map +1 -1
  104. package/dist/esm/tooltip/template.js +0 -1
  105. package/dist/esm/tooltip/template.js.map +1 -1
  106. package/dist/esm/tree-view/template.js +0 -1
  107. package/dist/esm/tree-view/template.js.map +1 -1
  108. package/dist/esm/utilities/style/theme.js.map +1 -1
  109. package/dist/esm/utilities/unit-format/default-unit-format.js.map +1 -1
  110. package/dist/esm/wafer-map/index.js.map +1 -1
  111. package/dist/esm/wafer-map/modules/create-matrix-renderer.js.map +1 -1
  112. package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
  113. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/combobox/template.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ViewTemplate, html, ref, slotted, when } from '@ni/fast-element';\nimport {\n type FoundationElementTemplate,\n type ComboboxOptions,\n startSlotTemplate,\n endSlotTemplate,\n Listbox\n} from '@ni/fast-foundation';\nimport type { Combobox } from '.';\nimport { anchoredRegionTag } from '../anchored-region';\nimport { DropdownPosition } from '../patterns/dropdown/types';\nimport { overflow } from '../utilities/directive/overflow';\nimport { filterNoResultsLabel } from '../label-provider/core/label-tokens';\nimport { createRequiredVisibleLabelTemplate } from '../patterns/required-visible/template';\n\nconst labelTemplate = createRequiredVisibleLabelTemplate(html<Combobox>`\n <label part=\"label\" class=\"label\">\n <slot></slot>\n </label>\n`);\n\n/* eslint-disable @typescript-eslint/indent */\n// prettier-ignore\nexport const template: FoundationElementTemplate<\nViewTemplate<Combobox>,\nComboboxOptions\n> = (context, definition) => html`\n <template\n aria-disabled=\"${x => x.ariaDisabled}\"\n autocomplete=\"${x => x.autocomplete}\"\n class=\"${x => (x.open ? 'open' : '')} ${x => (x.disabled ? 'disabled' : '')} ${x => x.position}\"\n ?open=\"${x => x.open}\"\n tabindex=\"${x => (!x.disabled ? '0' : null)}\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n @focusout=\"${(x, c) => x.focusoutHandler(c.event as FocusEvent)}\"\n @keydown=\"${(x, c) => x.keydownHandler(c.event as KeyboardEvent)}\"\n >\n ${labelTemplate}\n <div class=\"control\" part=\"control\" ${ref('controlWrapper')}>\n ${startSlotTemplate(context, definition)}\n <slot name=\"control\">\n <input\n aria-activedescendant=\"${x => (x.open ? x.ariaActiveDescendant : null)}\"\n aria-autocomplete=\"${x => x.ariaAutoComplete}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-required=\"${x => x.requiredVisible}\"\n aria-haspopup=\"listbox\"\n class=\"selected-value\"\n part=\"selected-value\"\n placeholder=\"${x => x.placeholder}\"\n role=\"combobox\"\n type=\"text\"\n ?disabled=\"${x => x.disabled}\"\n :value=\"${x => x.value}\"\n @input=\"${(x, c) => x.inputHandler(c.event as InputEvent)}\"\n @keyup=\"${(x, c) => x.keyupHandler(c.event as KeyboardEvent)}\"\n ${ref('control')}\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow && x.value ? x.value : null)}\n />\n <div class=\"indicator\" part=\"indicator\" aria-hidden=\"true\">\n <slot name=\"indicator\">\n ${definition.indicator || ''}\n </slot>\n </div>\n </slot>\n ${endSlotTemplate(context, definition)}\n </div>\n <${anchoredRegionTag}\n ${ref('region')}\n class=\"anchored-region\"\n fixed-placement\n auto-update-mode=\"auto\"\n vertical-default-position=\"${x => (x.positionAttribute === DropdownPosition.above ? 'top' : 'bottom')}\"\n vertical-positioning-mode=\"${x => (!x.positionAttribute ? 'dynamic' : 'locktodefault')}\"\n horizontal-default-position=\"center\"\n horizontal-positioning-mode=\"locktodefault\"\n horizontal-scaling=\"anchor\"\n ?hidden=\"${x => !x.open}\">\n <div\n class=\"\n listbox\n scrollable-region\n ${x => (x.filteredOptions.length === 0 ? 'empty' : '')}\n \"\n id=\"${x => x.listboxId}\"\n part=\"listbox\"\n role=\"listbox\"\n ?disabled=\"${x => x.disabled}\"\n style=\"--ni-private-listbox-available-viewport-height: ${x => x.availableViewportHeight}px;\"\n ${ref('listbox')}\n >\n <slot name=\"option\"\n ${slotted({\n filter: (n: Node) => n instanceof HTMLElement && Listbox.slottedOptionFilter(n),\n flatten: true,\n property: 'slottedOptions',\n })}\n ></slot>\n ${when(x => x.filteredOptions.length === 0, html<Combobox>`\n <span class=\"no-results-label\">\n ${x => filterNoResultsLabel.getValueFor(x)}\n </span>\n `)}\n </div>\n </${anchoredRegionTag}>\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/combobox/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAGH,iBAAiB,EACjB,eAAe,EACf,OAAO,EACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAE3F,MAAM,aAAa,GAAG,kCAAkC,CAAC,IAAI,CAAU;;;;CAItE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAGjB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAA;;yBAER,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;wBACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;iBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;iBACrF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACR,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;kBACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;qBAC5C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;oBACnD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAsB,CAAC;;UAE9D,aAAa;8CACuB,GAAG,CAAC,gBAAgB,CAAC;cACrD,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;;;6CAGP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;yCACjD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;qCAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;qCACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;qCACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;qCACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;;;mCAIxB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;;;iCAGpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;8BAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;8BACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;8BAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAsB,CAAC;sBAC1D,GAAG,CAAC,SAAS,CAAC;sBACd,QAAQ,CAAC,aAAa,CAAC;4BACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;;;;0BAIlD,UAAU,CAAC,SAAS,IAAI,EAAE;;;;cAItC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;;WAEvC,iBAAiB;cACd,GAAG,CAAC,QAAQ,CAAC;;;;yCAIc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;yCACxE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;;;;uBAI3E,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;;;;;sBAKb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;;sBAEpD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;;;6BAGT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yEAC6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;kBACrF,GAAG,CAAC,SAAS,CAAC;;;sBAGV,OAAO,CAAC;IACN,MAAM,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,YAAY,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,gBAAgB;CAC7B,CAAC;;kBAEJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAU;;0BAEhD,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;;iBAEjD,CAAC;;YAEN,iBAAiB;;CAE5B,CAAC","sourcesContent":["import { type ViewTemplate, html, ref, slotted, when } from '@ni/fast-element';\nimport {\n type FoundationElementTemplate,\n type ComboboxOptions,\n startSlotTemplate,\n endSlotTemplate,\n Listbox\n} from '@ni/fast-foundation';\nimport type { Combobox } from '.';\nimport { anchoredRegionTag } from '../anchored-region';\nimport { DropdownPosition } from '../patterns/dropdown/types';\nimport { overflow } from '../utilities/directive/overflow';\nimport { filterNoResultsLabel } from '../label-provider/core/label-tokens';\nimport { createRequiredVisibleLabelTemplate } from '../patterns/required-visible/template';\n\nconst labelTemplate = createRequiredVisibleLabelTemplate(html<Combobox>`\n <label part=\"label\" class=\"label\">\n <slot></slot>\n </label>\n`);\n\nexport const template: FoundationElementTemplate<\nViewTemplate<Combobox>,\nComboboxOptions\n> = (context, definition) => html`\n <template\n aria-disabled=\"${x => x.ariaDisabled}\"\n autocomplete=\"${x => x.autocomplete}\"\n class=\"${x => (x.open ? 'open' : '')} ${x => (x.disabled ? 'disabled' : '')} ${x => x.position}\"\n ?open=\"${x => x.open}\"\n tabindex=\"${x => (!x.disabled ? '0' : null)}\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n @focusout=\"${(x, c) => x.focusoutHandler(c.event as FocusEvent)}\"\n @keydown=\"${(x, c) => x.keydownHandler(c.event as KeyboardEvent)}\"\n >\n ${labelTemplate}\n <div class=\"control\" part=\"control\" ${ref('controlWrapper')}>\n ${startSlotTemplate(context, definition)}\n <slot name=\"control\">\n <input\n aria-activedescendant=\"${x => (x.open ? x.ariaActiveDescendant : null)}\"\n aria-autocomplete=\"${x => x.ariaAutoComplete}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-required=\"${x => x.requiredVisible}\"\n aria-haspopup=\"listbox\"\n class=\"selected-value\"\n part=\"selected-value\"\n placeholder=\"${x => x.placeholder}\"\n role=\"combobox\"\n type=\"text\"\n ?disabled=\"${x => x.disabled}\"\n :value=\"${x => x.value}\"\n @input=\"${(x, c) => x.inputHandler(c.event as InputEvent)}\"\n @keyup=\"${(x, c) => x.keyupHandler(c.event as KeyboardEvent)}\"\n ${ref('control')}\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow && x.value ? x.value : null)}\n />\n <div class=\"indicator\" part=\"indicator\" aria-hidden=\"true\">\n <slot name=\"indicator\">\n ${definition.indicator || ''}\n </slot>\n </div>\n </slot>\n ${endSlotTemplate(context, definition)}\n </div>\n <${anchoredRegionTag}\n ${ref('region')}\n class=\"anchored-region\"\n fixed-placement\n auto-update-mode=\"auto\"\n vertical-default-position=\"${x => (x.positionAttribute === DropdownPosition.above ? 'top' : 'bottom')}\"\n vertical-positioning-mode=\"${x => (!x.positionAttribute ? 'dynamic' : 'locktodefault')}\"\n horizontal-default-position=\"center\"\n horizontal-positioning-mode=\"locktodefault\"\n horizontal-scaling=\"anchor\"\n ?hidden=\"${x => !x.open}\">\n <div\n class=\"\n listbox\n scrollable-region\n ${x => (x.filteredOptions.length === 0 ? 'empty' : '')}\n \"\n id=\"${x => x.listboxId}\"\n part=\"listbox\"\n role=\"listbox\"\n ?disabled=\"${x => x.disabled}\"\n style=\"--ni-private-listbox-available-viewport-height: ${x => x.availableViewportHeight}px;\"\n ${ref('listbox')}\n >\n <slot name=\"option\"\n ${slotted({\n filter: (n: Node) => n instanceof HTMLElement && Listbox.slottedOptionFilter(n),\n flatten: true,\n property: 'slottedOptions',\n })}\n ></slot>\n ${when(x => x.filteredOptions.length === 0, html<Combobox>`\n <span class=\"no-results-label\">\n ${x => filterNoResultsLabel.getValueFor(x)}\n </span>\n `)}\n </div>\n </${anchoredRegionTag}>\n </template>\n`;\n"]}
@@ -6,7 +6,6 @@ import { overflow } from '../utilities/directive/overflow';
6
6
  * The template for the {@link @ni/fast-foundation#(ListboxOption:class)} component.
7
7
  * @public
8
8
  */
9
- // prettier-ignore
10
9
  export const template = (context, definition) => html `
11
10
  <template
12
11
  aria-checked="${x => x.ariaChecked}"
@@ -1 +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,kBAAkB,CAAC;AAEtD,OAAO,EACH,iBAAiB,EAGjB,eAAe,EAClB,MAAM,qBAAqB,CAAC;AAE7B,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;;;;UAIR,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","sourcesContent":["// 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\nimport { html, ref, slotted } from '@ni/fast-element';\nimport type { ViewTemplate } from '@ni/fast-element';\nimport {\n startSlotTemplate,\n type FoundationElementTemplate,\n type ListboxOptionOptions,\n endSlotTemplate\n} from '@ni/fast-foundation';\nimport type { ListOption } from '.';\nimport { overflow } from '../utilities/directive/overflow';\n\n/**\n * The template for the {@link @ni/fast-foundation#(ListboxOption:class)} component.\n * @public\n */\n// prettier-ignore\nexport const template: FoundationElementTemplate<\nViewTemplate<ListOption>,\nListboxOptionOptions\n> = (context, definition) => html`\n <template\n aria-checked=\"${x => x.ariaChecked}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-posinset=\"${x => x.ariaPosInSet}\"\n aria-selected=\"${x => x.ariaSelected}\"\n aria-setsize=\"${x => x.ariaSetSize}\"\n class=\"${x => [x.checked && 'checked', x.selected && 'selected', x.disabled && 'disabled']\n .filter(Boolean)\n .join(' ')}\"\n role=\"option\"\n slot=\"option\"\n >\n ${startSlotTemplate(context, definition)}\n <span\n class=\"content\"\n part=\"content\"\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow && x.elementTextContent ? x.elementTextContent : null)}\n >\n <slot ${ref('contentSlot')} ${slotted('content')}></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </template>\n`;\n"]}
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,kBAAkB,CAAC;AAEtD,OAAO,EACH,iBAAiB,EAGjB,eAAe,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D;;;GAGG;AACH,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;;;;UAIR,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","sourcesContent":["// 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\nimport { html, ref, slotted } from '@ni/fast-element';\nimport type { ViewTemplate } from '@ni/fast-element';\nimport {\n startSlotTemplate,\n type FoundationElementTemplate,\n type ListboxOptionOptions,\n endSlotTemplate\n} from '@ni/fast-foundation';\nimport type { ListOption } from '.';\nimport { overflow } from '../utilities/directive/overflow';\n\n/**\n * The template for the {@link @ni/fast-foundation#(ListboxOption:class)} component.\n * @public\n */\nexport const template: FoundationElementTemplate<\nViewTemplate<ListOption>,\nListboxOptionOptions\n> = (context, definition) => html`\n <template\n aria-checked=\"${x => x.ariaChecked}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-posinset=\"${x => x.ariaPosInSet}\"\n aria-selected=\"${x => x.ariaSelected}\"\n aria-setsize=\"${x => x.ariaSetSize}\"\n class=\"${x => [x.checked && 'checked', x.selected && 'selected', x.disabled && 'disabled']\n .filter(Boolean)\n .join(' ')}\"\n role=\"option\"\n slot=\"option\"\n >\n ${startSlotTemplate(context, definition)}\n <span\n class=\"content\"\n part=\"content\"\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow && x.elementTextContent ? x.elementTextContent : null)}\n >\n <slot ${ref('contentSlot')} ${slotted('content')}></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </template>\n`;\n"]}
@@ -4,7 +4,6 @@ import { ListOption } from '../list-option';
4
4
  const isListOption = (n) => {
5
5
  return n instanceof ListOption;
6
6
  };
7
- // prettier-ignore
8
7
  export const template = html `
9
8
  <template
10
9
  role="group"
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/list-option-group/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,YAAY,GAAG,CAAC,CAAO,EAAW,EAAE;IACtC,OAAO,CAAC,YAAY,UAAU,CAAC;AACnC,CAAC,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAiB;;;kBAG3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;;;YAGzB,QAAQ,CAAC,aAAa,CAAC;;;gBAGnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;kBAC5D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;;UAEvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1E,GAAG,CAAC,WAAW,CAAC;gCACA,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;;;;;;UAMxE,OAAO,CAAC;IACV,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,aAAa;CAC1B,CAAC;;;;CAIL,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { ListOptionGroup } from '.';\nimport { overflow } from '../utilities/directive/overflow';\nimport { ListOption } from '../list-option';\n\nconst isListOption = (n: Node): boolean => {\n return n instanceof ListOption;\n};\n\n// prettier-ignore\nexport const template = html<ListOptionGroup>`\n<template\n role=\"group\"\n aria-label=\"${x => x.labelContent}\"\n slot=\"option\"\n>\n <span ${overflow('hasOverflow')} \n class=\"label-display\"\n aria-hidden=\"true\"\n title=${x => (x.hasOverflow && x.labelContent ? x.labelContent : null)}\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n >\n ${when(x => (typeof x.label === 'string'), html<ListOptionGroup>`${x => x.label}`)} \n <slot ${ref('labelSlot')}\n class=\"label-slot ${x => (typeof x.label === 'string' ? 'hidden' : '')}\"\n >\n </slot>\n </span>\n <span class=\"content\" part=\"content\" role=\"none\">\n <slot name=\"option\"\n ${slotted({\n flatten: true,\n filter: (n: Node) => isListOption(n),\n property: 'listOptions'\n })}\n></slot>\n </span>\n</template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/list-option-group/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,YAAY,GAAG,CAAC,CAAO,EAAW,EAAE;IACtC,OAAO,CAAC,YAAY,UAAU,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAiB;;;kBAG3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;;;YAGzB,QAAQ,CAAC,aAAa,CAAC;;;gBAGnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;kBAC5D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;;UAEvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1E,GAAG,CAAC,WAAW,CAAC;gCACA,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;;;;;;UAMxE,OAAO,CAAC;IACV,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,aAAa;CAC1B,CAAC;;;;CAIL,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { ListOptionGroup } from '.';\nimport { overflow } from '../utilities/directive/overflow';\nimport { ListOption } from '../list-option';\n\nconst isListOption = (n: Node): boolean => {\n return n instanceof ListOption;\n};\n\nexport const template = html<ListOptionGroup>`\n<template\n role=\"group\"\n aria-label=\"${x => x.labelContent}\"\n slot=\"option\"\n>\n <span ${overflow('hasOverflow')} \n class=\"label-display\"\n aria-hidden=\"true\"\n title=${x => (x.hasOverflow && x.labelContent ? x.labelContent : null)}\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n >\n ${when(x => (typeof x.label === 'string'), html<ListOptionGroup>`${x => x.label}`)} \n <slot ${ref('labelSlot')}\n class=\"label-slot ${x => (typeof x.label === 'string' ? 'hidden' : '')}\"\n >\n </slot>\n </span>\n <span class=\"content\" part=\"content\" role=\"none\">\n <slot name=\"option\"\n ${slotted({\n flatten: true,\n filter: (n: Node) => isListOption(n),\n property: 'listOptions'\n })}\n></slot>\n </span>\n</template>\n`;\n"]}
@@ -1,6 +1,4 @@
1
1
  import { children, html, slotted } from '@ni/fast-element';
2
- /* eslint-disable @typescript-eslint/indent */
3
- // prettier-ignore
4
2
  export const template = () => html `
5
3
  <template
6
4
  slot="${x => {
@@ -17,5 +15,4 @@ export const template = () => html `
17
15
  <slot ${slotted('items')}></slot>
18
16
  </template>
19
17
  `;
20
- /* eslint-enable @typescript-eslint/indent */
21
18
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/menu/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAI9E,8CAA8C;AAC9C,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAEjB,GAAG,EAAE,CAAC,IAAI,CAAA;;gBAEE,CAAC,CAAC,EAAE;IACR,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;;oBAEW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAsB,CAAC;qBACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAmB,CAAC;UAC5D,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC;;gBAEhH,OAAO,CAAC,OAAO,CAAC;;CAE/B,CAAC;AACF,6CAA6C","sourcesContent":["import { children, html, slotted, type ViewTemplate } from '@ni/fast-element';\nimport type { FoundationElementTemplate } from '@ni/fast-foundation';\nimport type { Menu } from '.';\n\n/* eslint-disable @typescript-eslint/indent */\n// prettier-ignore\nexport const template: FoundationElementTemplate<\nViewTemplate<Menu>\n> = () => html`\n <template\n slot=\"${x => {\n if (x.slot) {\n return x.slot;\n }\n return x.isNestedMenu() ? 'submenu' : undefined;\n }}\"\n role=\"menu\"\n @keydown=\"${(x, c) => x.handleMenuKeyDown(c.event as KeyboardEvent)}\"\n @focusout=\"${(x, c) => x.handleFocusOut(c.event as FocusEvent)}\"\n ${children({ property: 'itemIcons', subtree: true, attributeFilter: ['slot'], selector: ':scope > * > [slot=\"start\"]' })}\n >\n <slot ${slotted('items')}></slot>\n </template>\n`;\n/* eslint-enable @typescript-eslint/indent */\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/menu/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAI9E,MAAM,CAAC,MAAM,QAAQ,GAEjB,GAAG,EAAE,CAAC,IAAI,CAAA;;gBAEE,CAAC,CAAC,EAAE;IACR,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;;oBAEW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAsB,CAAC;qBACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAmB,CAAC;UAC5D,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC;;gBAEhH,OAAO,CAAC,OAAO,CAAC;;CAE/B,CAAC","sourcesContent":["import { children, html, slotted, type ViewTemplate } from '@ni/fast-element';\nimport type { FoundationElementTemplate } from '@ni/fast-foundation';\nimport type { Menu } from '.';\n\nexport const template: FoundationElementTemplate<\nViewTemplate<Menu>\n> = () => html`\n <template\n slot=\"${x => {\n if (x.slot) {\n return x.slot;\n }\n return x.isNestedMenu() ? 'submenu' : undefined;\n }}\"\n role=\"menu\"\n @keydown=\"${(x, c) => x.handleMenuKeyDown(c.event as KeyboardEvent)}\"\n @focusout=\"${(x, c) => x.handleFocusOut(c.event as FocusEvent)}\"\n ${children({ property: 'itemIcons', subtree: true, attributeFilter: ['slot'], selector: ':scope > * > [slot=\"start\"]' })}\n >\n <slot ${slotted('items')}></slot>\n </template>\n`;\n"]}
@@ -1,7 +1,6 @@
1
1
  import { html, ref, slotted, when } from '@ni/fast-element';
2
2
  import { toggleButtonTag } from '../toggle-button';
3
3
  import { anchoredRegionTag } from '../anchored-region';
4
- // prettier-ignore
5
4
  export const template = html `
6
5
  <template
7
6
  ?open="${x => x.open}"
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/menu-button/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAY;;iBAEvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;qBACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;;WAE5D,eAAe;;0BAEA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;kCACT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;+BAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;wBAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;yBACV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;wBAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;6BAEV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;uBACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAAC;wBACpD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAsB,CAAC;cAC1E,GAAG,CAAC,cAAc,CAAC;;;cAGnB,EAAE,CAAC,wFAAwF;;;;YAI7F,eAAe;UACjB,IAAI,CACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EACX,IAAI,CAAY;eACT,iBAAiB;;;;;6CAKa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;6CAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;2BAClE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE;4BAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAsB,CAAC;kBAClE,GAAG,CAAC,QAAQ,CAAC;;;wCAGS,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;;gBAE7D,iBAAiB;SACxB,CACJ;;CAEJ,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { MenuButton } from '.';\nimport { toggleButtonTag } from '../toggle-button';\nimport { anchoredRegionTag } from '../anchored-region';\n\n// prettier-ignore\nexport const template = html<MenuButton>`\n <template\n ?open=\"${x => x.open}\"\n @focusout=\"${(x, c) => x.focusoutHandler(c.event as FocusEvent)}\"\n >\n <${toggleButtonTag}\n part=\"button\"\n appearance=\"${x => x.appearance}\"\n appearance-variant=\"${x => x.appearanceVariant}\"\n ?content-hidden=\"${x => x.contentHidden}\"\n ?checked=\"${x => x.open}\"\n ?disabled=\"${x => x.disabled}\"\n tabindex=\"${x => x.tabIndex}\"\n aria-haspopup=\"true\"\n aria-expanded=\"${x => x.open}\"\n @change=\"${(x, c) => x.toggleButtonCheckedChangeHandler(c.event)}\"\n @keydown=\"${(x, c) => x.toggleButtonKeyDownHandler(c.event as KeyboardEvent)}\"\n ${ref('toggleButton')}\n exportparts=\"start,end\"\n >\n ${'' /* Forward the contents of the 'start', 'end', and default slots to the toggle button */}\n <slot slot=\"start\" name=\"start\"></slot>\n <slot></slot>\n <slot slot=\"end\" name=\"end\"></slot>\n </${toggleButtonTag}>\n ${when(\n x => x.open,\n html<MenuButton>`\n <${anchoredRegionTag}\n fixed-placement=\"true\"\n auto-update-mode=\"auto\"\n horizontal-inset=\"true\"\n horizontal-positioning-mode=\"dynamic\"\n vertical-positioning-mode=\"${x => (x.position === 'auto' ? 'dynamic' : 'locktodefault')}\"\n vertical-default-position=\"${x => (x.position === 'above' ? 'top' : 'bottom')}\"\n @loaded=\"${x => x.regionLoadedHandler()}\"\n @keydown=\"${(x, c) => x.menuKeyDownHandler(c.event as KeyboardEvent)}\"\n ${ref('region')}\n >\n <span part=\"menu\">\n <slot name=\"menu\" ${slotted({ property: 'slottedMenus' })}></slot>\n </span>\n </${anchoredRegionTag}>\n `\n )}\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/menu-button/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAY;;iBAEvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;qBACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;;WAE5D,eAAe;;0BAEA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;kCACT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;+BAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;wBAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;yBACV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;wBAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;6BAEV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;uBACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAAC;wBACpD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAsB,CAAC;cAC1E,GAAG,CAAC,cAAc,CAAC;;;cAGnB,EAAE,CAAC,wFAAwF;;;;YAI7F,eAAe;UACjB,IAAI,CACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EACX,IAAI,CAAY;eACT,iBAAiB;;;;;6CAKa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;6CAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;2BAClE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE;4BAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAsB,CAAC;kBAClE,GAAG,CAAC,QAAQ,CAAC;;;wCAGS,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;;gBAE7D,iBAAiB;SACxB,CACJ;;CAEJ,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { MenuButton } from '.';\nimport { toggleButtonTag } from '../toggle-button';\nimport { anchoredRegionTag } from '../anchored-region';\n\nexport const template = html<MenuButton>`\n <template\n ?open=\"${x => x.open}\"\n @focusout=\"${(x, c) => x.focusoutHandler(c.event as FocusEvent)}\"\n >\n <${toggleButtonTag}\n part=\"button\"\n appearance=\"${x => x.appearance}\"\n appearance-variant=\"${x => x.appearanceVariant}\"\n ?content-hidden=\"${x => x.contentHidden}\"\n ?checked=\"${x => x.open}\"\n ?disabled=\"${x => x.disabled}\"\n tabindex=\"${x => x.tabIndex}\"\n aria-haspopup=\"true\"\n aria-expanded=\"${x => x.open}\"\n @change=\"${(x, c) => x.toggleButtonCheckedChangeHandler(c.event)}\"\n @keydown=\"${(x, c) => x.toggleButtonKeyDownHandler(c.event as KeyboardEvent)}\"\n ${ref('toggleButton')}\n exportparts=\"start,end\"\n >\n ${'' /* Forward the contents of the 'start', 'end', and default slots to the toggle button */}\n <slot slot=\"start\" name=\"start\"></slot>\n <slot></slot>\n <slot slot=\"end\" name=\"end\"></slot>\n </${toggleButtonTag}>\n ${when(\n x => x.open,\n html<MenuButton>`\n <${anchoredRegionTag}\n fixed-placement=\"true\"\n auto-update-mode=\"auto\"\n horizontal-inset=\"true\"\n horizontal-positioning-mode=\"dynamic\"\n vertical-positioning-mode=\"${x => (x.position === 'auto' ? 'dynamic' : 'locktodefault')}\"\n vertical-default-position=\"${x => (x.position === 'above' ? 'top' : 'bottom')}\"\n @loaded=\"${x => x.regionLoadedHandler()}\"\n @keydown=\"${(x, c) => x.menuKeyDownHandler(c.event as KeyboardEvent)}\"\n ${ref('region')}\n >\n <span part=\"menu\">\n <slot name=\"menu\" ${slotted({ property: 'slottedMenus' })}></slot>\n </span>\n </${anchoredRegionTag}>\n `\n )}\n </template>\n`;\n"]}
@@ -6,7 +6,6 @@ import { iconAsteriskTag } from '../../icons/asterisk';
6
6
  *
7
7
  * This function is intended to be used with components leveraging `mixinRequiredVisiblePattern`.
8
8
  */
9
- /* eslint-disable @typescript-eslint/indent */
10
9
  export function createRequiredVisibleLabelTemplate(labelTemplate) {
11
10
  return html `
12
11
  <div class="annotated-label">
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/patterns/required-visible/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;GAKG;AACH,8CAA8C;AAC9C,MAAM,UAAU,kCAAkC,CAC9C,aAAmD;IAEnD,OAAO,IAAI,CAAA;;cAED,aAAa;cACb,IAAI,CACF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EACtB,IAAI,CAAA;mBACD,eAAe,6CAA6C,eAAe;aACjF,CACA;;KAER,CAAC;AACN,CAAC","sourcesContent":["import { ViewTemplate, html, when } from '@ni/fast-element';\nimport { iconAsteriskTag } from '../../icons/asterisk';\nimport type { RequiredVisiblePattern } from './types';\n\n/**\n * Given the template for a control label, creates a new template that includes\n * an icon next to the label to indicate whether or not the control is required.\n *\n * This function is intended to be used with components leveraging `mixinRequiredVisiblePattern`.\n */\n/* eslint-disable @typescript-eslint/indent */\nexport function createRequiredVisibleLabelTemplate(\n labelTemplate: ViewTemplate<RequiredVisiblePattern>\n): ViewTemplate<RequiredVisiblePattern> {\n return html`\n <div class=\"annotated-label\">\n ${labelTemplate}\n ${when(\n x => x.requiredVisible,\n html`\n <${iconAsteriskTag} class=\"required-icon\" severity=\"error\"></${iconAsteriskTag}>\n `\n )}\n </div>\n `;\n}\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/patterns/required-visible/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAC9C,aAAmD;IAEnD,OAAO,IAAI,CAAA;;cAED,aAAa;cACb,IAAI,CACF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EACtB,IAAI,CAAA;mBACD,eAAe,6CAA6C,eAAe;aACjF,CACA;;KAER,CAAC;AACN,CAAC","sourcesContent":["import { ViewTemplate, html, when } from '@ni/fast-element';\nimport { iconAsteriskTag } from '../../icons/asterisk';\nimport type { RequiredVisiblePattern } from './types';\n\n/**\n * Given the template for a control label, creates a new template that includes\n * an icon next to the label to indicate whether or not the control is required.\n *\n * This function is intended to be used with components leveraging `mixinRequiredVisiblePattern`.\n */\nexport function createRequiredVisibleLabelTemplate(\n labelTemplate: ViewTemplate<RequiredVisiblePattern>\n): ViewTemplate<RequiredVisiblePattern> {\n return html`\n <div class=\"annotated-label\">\n ${labelTemplate}\n ${when(\n x => x.requiredVisible,\n html`\n <${iconAsteriskTag} class=\"required-icon\" severity=\"error\"></${iconAsteriskTag}>\n `\n )}\n </div>\n `;\n}\n"]}
@@ -5,7 +5,6 @@ import { iconArrowExpanderLeftTag } from '../../icons/arrow-expander-left';
5
5
  import { iconArrowExpanderRightTag } from '../../icons/arrow-expander-right';
6
6
  import { ButtonAppearance } from '../button/types';
7
7
  import { scrollForwardLabel, scrollBackwardLabel } from '../../label-provider/core/label-tokens';
8
- // prettier-ignore
9
8
  export const template = (context, definition) => html `
10
9
  <div
11
10
  class="tab-bar"
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/patterns/tabs/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACH,eAAe,EACf,iBAAiB,EAGpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,wCAAwC,CAAC;AAEhD,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAGjB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAA;;;;UAIvB,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;UACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAW;eACzC,SAAS;;;8BAGM,gBAAgB,CAAC,KAAK;;0BAE1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE;kBAClC,GAAG,CAAC,kBAAkB,CAAC;;kBAEvB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;mBACrC,wBAAwB,mBAAmB,wBAAwB;gBACtE,SAAS;SAChB,CAAC;;;;;cAKI,GAAG,CAAC,SAAS,CAAC;;sCAEU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,gBAAgB,OAAO,CAAC,MAAM,CAAC;;;UAG7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAW;eACzC,SAAS;;;8BAGM,gBAAgB,CAAC,KAAK;;0BAE1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;;kBAEnC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;mBACtC,yBAAyB,mBAAmB,yBAAyB;gBACxE,SAAS;SAChB,CAAC;UACA,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;;MAExC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,IAAI,CAAM;;oCAER,OAAO,CAAC,WAAW,CAAC;;KAEnD,CAAC;CACL,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { ViewTemplate } from '@ni/fast-element';\nimport {\n endSlotTemplate,\n startSlotTemplate,\n type FoundationElementTemplate,\n type TabsOptions\n} from '@ni/fast-foundation';\nimport type { Tabs } from '../../tabs';\nimport { buttonTag } from '../../button';\nimport { iconArrowExpanderLeftTag } from '../../icons/arrow-expander-left';\nimport { iconArrowExpanderRightTag } from '../../icons/arrow-expander-right';\nimport type { TabsOwner } from './types';\nimport { ButtonAppearance } from '../button/types';\nimport {\n scrollForwardLabel,\n scrollBackwardLabel\n} from '../../label-provider/core/label-tokens';\n\n// prettier-ignore\nexport const template: FoundationElementTemplate<\nViewTemplate<TabsOwner>,\nTabsOptions\n> = (context, definition) => html`\n <div\n class=\"tab-bar\"\n >\n ${startSlotTemplate(context, definition)}\n ${when(x => x.showScrollButtons, html<TabsOwner>`\n <${buttonTag} \n content-hidden\n class=\"scroll-button left\"\n appearance=\"${ButtonAppearance.ghost}\"\n tabindex=\"-1\"\n @click=\"${x => x.onScrollLeftClick()}\"\n ${ref('leftScrollButton')}\n >\n ${x => scrollForwardLabel.getValueFor(x)}\n <${iconArrowExpanderLeftTag} slot=\"start\"></${iconArrowExpanderLeftTag}>\n </${buttonTag}>\n `)}\n <div\n class=\"tablist\"\n part=\"tablist\"\n role=\"tablist\"\n ${ref('tablist')}\n >\n <slot class=\"tab\" name=\"${x => x.tabSlotName}\" part=\"tab\" ${slotted('tabs')}>\n </slot>\n </div>\n ${when(x => x.showScrollButtons, html<TabsOwner>`\n <${buttonTag}\n content-hidden\n class=\"scroll-button right\"\n appearance=\"${ButtonAppearance.ghost}\"\n tabindex=\"-1\"\n @click=\"${x => x.onScrollRightClick()}\"\n >\n ${x => scrollBackwardLabel.getValueFor(x)}\n <${iconArrowExpanderRightTag} slot=\"start\"></${iconArrowExpanderRightTag}>\n </${buttonTag}>\n `)}\n ${endSlotTemplate(context, definition)}\n </div>\n ${when(x => 'tabpanels' in x, html<Tabs>`\n <div class=\"tabpanel\" part=\"tabpanel\">\n <slot name=\"tabpanel\" ${slotted('tabpanels')}></slot>\n </div>\n `)}\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/patterns/tabs/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACH,eAAe,EACf,iBAAiB,EAGpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAGjB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAA;;;;UAIvB,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;UACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAW;eACzC,SAAS;;;8BAGM,gBAAgB,CAAC,KAAK;;0BAE1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE;kBAClC,GAAG,CAAC,kBAAkB,CAAC;;kBAEvB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;mBACrC,wBAAwB,mBAAmB,wBAAwB;gBACtE,SAAS;SAChB,CAAC;;;;;cAKI,GAAG,CAAC,SAAS,CAAC;;sCAEU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,gBAAgB,OAAO,CAAC,MAAM,CAAC;;;UAG7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAW;eACzC,SAAS;;;8BAGM,gBAAgB,CAAC,KAAK;;0BAE1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;;kBAEnC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;mBACtC,yBAAyB,mBAAmB,yBAAyB;gBACxE,SAAS;SAChB,CAAC;UACA,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;;MAExC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,IAAI,CAAM;;oCAER,OAAO,CAAC,WAAW,CAAC;;KAEnD,CAAC;CACL,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport type { ViewTemplate } from '@ni/fast-element';\nimport {\n endSlotTemplate,\n startSlotTemplate,\n type FoundationElementTemplate,\n type TabsOptions\n} from '@ni/fast-foundation';\nimport type { Tabs } from '../../tabs';\nimport { buttonTag } from '../../button';\nimport { iconArrowExpanderLeftTag } from '../../icons/arrow-expander-left';\nimport { iconArrowExpanderRightTag } from '../../icons/arrow-expander-right';\nimport type { TabsOwner } from './types';\nimport { ButtonAppearance } from '../button/types';\nimport {\n scrollForwardLabel,\n scrollBackwardLabel\n} from '../../label-provider/core/label-tokens';\n\nexport const template: FoundationElementTemplate<\nViewTemplate<TabsOwner>,\nTabsOptions\n> = (context, definition) => html`\n <div\n class=\"tab-bar\"\n >\n ${startSlotTemplate(context, definition)}\n ${when(x => x.showScrollButtons, html<TabsOwner>`\n <${buttonTag} \n content-hidden\n class=\"scroll-button left\"\n appearance=\"${ButtonAppearance.ghost}\"\n tabindex=\"-1\"\n @click=\"${x => x.onScrollLeftClick()}\"\n ${ref('leftScrollButton')}\n >\n ${x => scrollForwardLabel.getValueFor(x)}\n <${iconArrowExpanderLeftTag} slot=\"start\"></${iconArrowExpanderLeftTag}>\n </${buttonTag}>\n `)}\n <div\n class=\"tablist\"\n part=\"tablist\"\n role=\"tablist\"\n ${ref('tablist')}\n >\n <slot class=\"tab\" name=\"${x => x.tabSlotName}\" part=\"tab\" ${slotted('tabs')}>\n </slot>\n </div>\n ${when(x => x.showScrollButtons, html<TabsOwner>`\n <${buttonTag}\n content-hidden\n class=\"scroll-button right\"\n appearance=\"${ButtonAppearance.ghost}\"\n tabindex=\"-1\"\n @click=\"${x => x.onScrollRightClick()}\"\n >\n ${x => scrollBackwardLabel.getValueFor(x)}\n <${iconArrowExpanderRightTag} slot=\"start\"></${iconArrowExpanderRightTag}>\n </${buttonTag}>\n `)}\n ${endSlotTemplate(context, definition)}\n </div>\n ${when(x => 'tabpanels' in x, html<Tabs>`\n <div class=\"tabpanel\" part=\"tabpanel\">\n <slot name=\"tabpanel\" ${slotted('tabpanels')}></slot>\n </div>\n `)}\n`;\n"]}
@@ -4,7 +4,6 @@ import { errorTextTemplate } from '../patterns/error/template';
4
4
  import { iconExclamationMarkTag } from '../icons/exclamation-mark';
5
5
  import { createRequiredVisibleLabelTemplate } from '../patterns/required-visible/template';
6
6
  const labelTemplate = createRequiredVisibleLabelTemplate(html `<slot name="label"></slot>`);
7
- /* eslint-disable @typescript-eslint/indent */
8
7
  export const template = html `
9
8
  <template
10
9
  role="radiogroup"
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/radio-group/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAE3F,MAAM,aAAa,GAAG,kCAAkC,CACpD,IAAI,CAAY,4BAA4B,CAC/C,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAY;;;yBAGf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;kBAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;oBAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAsB,CAAC;qBACnD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;;;cAGzD,aAAa;eACZ,sBAAsB;;;iBAGpB,sBAAsB;;;wCAGC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;;;;kBAIjG,OAAO,CAAC;IACN,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC;CACnC,CAAC;;cAEJ,iBAAiB;;;CAG9B,CAAC","sourcesContent":["import { elements, html, slotted } from '@ni/fast-element';\nimport { Orientation } from '@ni/fast-web-utilities';\nimport type { RadioGroup } from '.';\nimport { errorTextTemplate } from '../patterns/error/template';\nimport { iconExclamationMarkTag } from '../icons/exclamation-mark';\nimport { createRequiredVisibleLabelTemplate } from '../patterns/required-visible/template';\n\nconst labelTemplate = createRequiredVisibleLabelTemplate(\n html<RadioGroup>`<slot name=\"label\"></slot>`\n);\n\n/* eslint-disable @typescript-eslint/indent */\nexport const template = html<RadioGroup>`\n <template\n role=\"radiogroup\"\n aria-disabled=\"${x => x.disabled}\"\n aria-readonly=\"${x => x.readOnly}\"\n aria-required=\"${x => x.requiredVisible}\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n @keydown=\"${(x, c) => x.keydownHandler(c.event as KeyboardEvent)}\"\n @focusout=\"${(x, c) => x.focusOutHandler(c.event as FocusEvent)}\"\n >\n <div class=\"label-container\">\n ${labelTemplate}\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon\"\n ></${iconExclamationMarkTag}>\n </div>\n <div\n class=\"positioning-region ${x => (x.orientation === Orientation.horizontal ? 'horizontal' : 'vertical')}\"\n part=\"positioning-region\"\n >\n <slot\n ${slotted({\n property: 'slottedRadioButtons',\n filter: elements('[role=radio]')\n })}\n ></slot>\n ${errorTextTemplate}\n </div>\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/radio-group/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAE3F,MAAM,aAAa,GAAG,kCAAkC,CACpD,IAAI,CAAY,4BAA4B,CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAY;;;yBAGf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;kBAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;oBAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAsB,CAAC;qBACnD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;;;cAGzD,aAAa;eACZ,sBAAsB;;;iBAGpB,sBAAsB;;;wCAGC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;;;;kBAIjG,OAAO,CAAC;IACN,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC;CACnC,CAAC;;cAEJ,iBAAiB;;;CAG9B,CAAC","sourcesContent":["import { elements, html, slotted } from '@ni/fast-element';\nimport { Orientation } from '@ni/fast-web-utilities';\nimport type { RadioGroup } from '.';\nimport { errorTextTemplate } from '../patterns/error/template';\nimport { iconExclamationMarkTag } from '../icons/exclamation-mark';\nimport { createRequiredVisibleLabelTemplate } from '../patterns/required-visible/template';\n\nconst labelTemplate = createRequiredVisibleLabelTemplate(\n html<RadioGroup>`<slot name=\"label\"></slot>`\n);\n\nexport const template = html<RadioGroup>`\n <template\n role=\"radiogroup\"\n aria-disabled=\"${x => x.disabled}\"\n aria-readonly=\"${x => x.readOnly}\"\n aria-required=\"${x => x.requiredVisible}\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n @keydown=\"${(x, c) => x.keydownHandler(c.event as KeyboardEvent)}\"\n @focusout=\"${(x, c) => x.focusOutHandler(c.event as FocusEvent)}\"\n >\n <div class=\"label-container\">\n ${labelTemplate}\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon\"\n ></${iconExclamationMarkTag}>\n </div>\n <div\n class=\"positioning-region ${x => (x.orientation === Orientation.horizontal ? 'horizontal' : 'vertical')}\"\n part=\"positioning-region\"\n >\n <slot\n ${slotted({\n property: 'slottedRadioButtons',\n filter: elements('[role=radio]')\n })}\n ></slot>\n ${errorTextTemplate}\n </div>\n </template>\n`;\n"]}
@@ -11,7 +11,6 @@ import { iconExclamationMarkTag } from '../../icons/exclamation-mark';
11
11
  import { richTextMentionListboxTag } from '../mention-listbox';
12
12
  import { buttonTag } from '../../button';
13
13
  import { listOptionTag } from '../../list-option';
14
- // prettier-ignore
15
14
  export const template = html `
16
15
  <template
17
16
  ${children({ property: 'childItems', filter: elements() })}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/rich-text/editor/template.ts"],"names":[],"mappings":"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","sourcesContent":["import { children, elements, html, ref, repeat } from '@ni/fast-element';\nimport type { RichTextEditor } from '.';\nimport { toolbarTag } from '../../toolbar';\nimport { toggleButtonTag } from '../../toggle-button';\nimport { iconBoldBTag } from '../../icons/bold-b';\nimport { iconItalicITag } from '../../icons/italic-i';\nimport { iconListTag } from '../../icons/list';\nimport { iconNumberListTag } from '../../icons/number-list';\nimport {\n richTextToggleBoldLabel,\n richTextToggleItalicsLabel,\n richTextToggleBulletedListLabel,\n richTextToggleNumberedListLabel\n} from '../../label-provider/rich-text/label-tokens';\nimport { errorTextTemplate } from '../../patterns/error/template';\nimport { iconExclamationMarkTag } from '../../icons/exclamation-mark';\nimport { richTextMentionListboxTag } from '../mention-listbox';\nimport type { MentionExtensionConfiguration } from '../models/mention-extension-configuration';\nimport { buttonTag } from '../../button';\nimport type { MappingConfig } from '../../rich-text-mention/base/models/mapping-config';\nimport { listOptionTag } from '../../list-option';\nimport type { MentionDetail } from './types';\n\n// prettier-ignore\nexport const template = html<RichTextEditor>`\n <template\n ${children({ property: 'childItems', filter: elements() })}\n @focusout=\"${x => x.focusoutHandler()}\"\n >\n <div class=\"container\">\n <section ${ref('editorContainer')} class=\"editor-container\">\n </section>\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon ${x => (x.scrollbarWidth >= 0 ? 'scrollbar-width-calculated' : '')}\"\n style=\"--ni-private-rich-text-editor-scrollbar-width: ${x => x.scrollbarWidth}px;\"\n ></${iconExclamationMarkTag}>\n <section class=\"footer-section\">\n <${toolbarTag}>\n <${toggleButtonTag}\n ${ref('boldButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleBoldLabel.getValueFor(x)}\n @click=${x => x.boldButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.boldButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleBoldLabel.getValueFor(x)}\n <${iconBoldBTag} slot=\"start\"></${iconBoldBTag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('italicsButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleItalicsLabel.getValueFor(x)}\n @click=${x => x.italicsButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.italicsButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleItalicsLabel.getValueFor(x)}\n <${iconItalicITag} slot=\"start\"></${iconItalicITag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('bulletListButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleBulletedListLabel.getValueFor(x)}\n @click=${x => x.bulletListButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.bulletListButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleBulletedListLabel.getValueFor(x)}\n <${iconListTag} slot=\"start\"></${iconListTag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('numberedListButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleNumberedListLabel.getValueFor(x)}\n @click=${x => x.numberedListButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.numberedListButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleNumberedListLabel.getValueFor(x)}\n <${iconNumberListTag} slot=\"start\"></${iconNumberListTag}>\n </${toggleButtonTag}>\n ${repeat(x => x.getMentionExtensionConfig(), html<MentionExtensionConfiguration, RichTextEditor>`\n <${buttonTag}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${(_x, c) => c.parent.disabled}\"\n slot=\"start\"\n title=${x => x.buttonLabel}\n @click=${(x, c) => c.parent.mentionButtonClick(x.character)}\n >\n ${x => x.buttonLabel}\n ${x => x.iconTemplate}\n </${buttonTag}>\n `)}\n </${toolbarTag}>\n <span class=\"footer-actions\" part=\"footer-actions\">\n <slot name=\"footer-actions\"></slot>\n </span>\n </section>\n ${errorTextTemplate}\n </div>\n <${richTextMentionListboxTag}\n ${ref('mentionListbox')}\n @mention-selected=${(x, c) => x.onMentionSelect(c.event as CustomEvent<MentionDetail>)}\n >\n ${repeat(x => Array.from(x.activeMappingConfigs ? x.activeMappingConfigs.values() : []), html<MappingConfig>`\n <${listOptionTag} value=\"${x => x.mentionHref}\">${x => x.displayName}</${listOptionTag}>\n `, { recycle: false })}\n </${richTextMentionListboxTag}>\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/rich-text/editor/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACH,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,+BAA+B,EAClC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAgB;;UAElC,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;qBAC7C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;;uBAGtB,GAAG,CAAC,iBAAiB,CAAC;;eAE9B,sBAAsB;;oCAED,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;wEAC5B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc;iBAC5E,sBAAsB;;mBAEpB,UAAU;uBACN,eAAe;0BACZ,GAAG,CAAC,YAAY,CAAC;;;qCAGN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;gCAEpB,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;iCAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;kCACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;mCACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAsB,CAAC;;0BAEhE,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;2BAC1C,YAAY,mBAAmB,YAAY;wBAC9C,eAAe;uBAChB,eAAe;0BACZ,GAAG,CAAC,eAAe,CAAC;;;qCAGT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;gCAEpB,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;iCAC7C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;kCAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;mCACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAsB,CAAC;;0BAEnE,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;2BAC7C,cAAc,mBAAmB,cAAc;wBAClD,eAAe;uBAChB,eAAe;0BACZ,GAAG,CAAC,kBAAkB,CAAC;;;qCAGZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;gCAEpB,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;iCAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE;kCAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;mCACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAsB,CAAC;;0BAEtE,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;2BAClD,WAAW,mBAAmB,WAAW;wBAC5C,eAAe;uBAChB,eAAe;0BACZ,GAAG,CAAC,oBAAoB,CAAC;;;qCAGd,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;gCAEpB,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;iCAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE;kCAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;mCACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAsB,CAAC;;0BAExE,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;2BAClD,iBAAiB,mBAAmB,iBAAiB;wBACxD,eAAe;sBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,IAAI,CAA+C;2BACzF,SAAS;;;yCAGK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;;oCAEjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;qCACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;;8BAEzD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;8BAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;4BACrB,SAAS;qBAChB,CAAC;oBACF,UAAU;;;;;cAKhB,iBAAiB;;WAEpB,yBAAyB;cACtB,GAAG,CAAC,gBAAgB,CAAC;gCACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmC,CAAC;;cAEpF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAe;mBACrG,aAAa,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,aAAa;aACzF,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACtB,yBAAyB;;CAEpC,CAAC","sourcesContent":["import { children, elements, html, ref, repeat } from '@ni/fast-element';\nimport type { RichTextEditor } from '.';\nimport { toolbarTag } from '../../toolbar';\nimport { toggleButtonTag } from '../../toggle-button';\nimport { iconBoldBTag } from '../../icons/bold-b';\nimport { iconItalicITag } from '../../icons/italic-i';\nimport { iconListTag } from '../../icons/list';\nimport { iconNumberListTag } from '../../icons/number-list';\nimport {\n richTextToggleBoldLabel,\n richTextToggleItalicsLabel,\n richTextToggleBulletedListLabel,\n richTextToggleNumberedListLabel\n} from '../../label-provider/rich-text/label-tokens';\nimport { errorTextTemplate } from '../../patterns/error/template';\nimport { iconExclamationMarkTag } from '../../icons/exclamation-mark';\nimport { richTextMentionListboxTag } from '../mention-listbox';\nimport type { MentionExtensionConfiguration } from '../models/mention-extension-configuration';\nimport { buttonTag } from '../../button';\nimport type { MappingConfig } from '../../rich-text-mention/base/models/mapping-config';\nimport { listOptionTag } from '../../list-option';\nimport type { MentionDetail } from './types';\n\nexport const template = html<RichTextEditor>`\n <template\n ${children({ property: 'childItems', filter: elements() })}\n @focusout=\"${x => x.focusoutHandler()}\"\n >\n <div class=\"container\">\n <section ${ref('editorContainer')} class=\"editor-container\">\n </section>\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon ${x => (x.scrollbarWidth >= 0 ? 'scrollbar-width-calculated' : '')}\"\n style=\"--ni-private-rich-text-editor-scrollbar-width: ${x => x.scrollbarWidth}px;\"\n ></${iconExclamationMarkTag}>\n <section class=\"footer-section\">\n <${toolbarTag}>\n <${toggleButtonTag}\n ${ref('boldButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleBoldLabel.getValueFor(x)}\n @click=${x => x.boldButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.boldButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleBoldLabel.getValueFor(x)}\n <${iconBoldBTag} slot=\"start\"></${iconBoldBTag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('italicsButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleItalicsLabel.getValueFor(x)}\n @click=${x => x.italicsButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.italicsButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleItalicsLabel.getValueFor(x)}\n <${iconItalicITag} slot=\"start\"></${iconItalicITag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('bulletListButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleBulletedListLabel.getValueFor(x)}\n @click=${x => x.bulletListButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.bulletListButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleBulletedListLabel.getValueFor(x)}\n <${iconListTag} slot=\"start\"></${iconListTag}>\n </${toggleButtonTag}>\n <${toggleButtonTag}\n ${ref('numberedListButton')}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${x => x.disabled}\"\n slot=\"start\"\n title=${x => richTextToggleNumberedListLabel.getValueFor(x)}\n @click=${x => x.numberedListButtonClick()}\n @change=${(x, c) => x.stopEventPropagation(c.event)}\n @keydown=${(x, c) => x.numberedListButtonKeyDown(c.event as KeyboardEvent)}\n >\n ${x => richTextToggleNumberedListLabel.getValueFor(x)}\n <${iconNumberListTag} slot=\"start\"></${iconNumberListTag}>\n </${toggleButtonTag}>\n ${repeat(x => x.getMentionExtensionConfig(), html<MentionExtensionConfiguration, RichTextEditor>`\n <${buttonTag}\n appearance=\"ghost\"\n content-hidden\n ?disabled=\"${(_x, c) => c.parent.disabled}\"\n slot=\"start\"\n title=${x => x.buttonLabel}\n @click=${(x, c) => c.parent.mentionButtonClick(x.character)}\n >\n ${x => x.buttonLabel}\n ${x => x.iconTemplate}\n </${buttonTag}>\n `)}\n </${toolbarTag}>\n <span class=\"footer-actions\" part=\"footer-actions\">\n <slot name=\"footer-actions\"></slot>\n </span>\n </section>\n ${errorTextTemplate}\n </div>\n <${richTextMentionListboxTag}\n ${ref('mentionListbox')}\n @mention-selected=${(x, c) => x.onMentionSelect(c.event as CustomEvent<MentionDetail>)}\n >\n ${repeat(x => Array.from(x.activeMappingConfigs ? x.activeMappingConfigs.values() : []), html<MappingConfig>`\n <${listOptionTag} value=\"${x => x.mentionHref}\">${x => x.displayName}</${listOptionTag}>\n `, { recycle: false })}\n </${richTextMentionListboxTag}>\n </template>\n`;\n"]}
@@ -2,8 +2,6 @@ import { html, ref, slotted, when } from '@ni/fast-element';
2
2
  import { Listbox } from '@ni/fast-foundation';
3
3
  import { anchoredRegionTag } from '../../anchored-region';
4
4
  import { filterNoResultsLabel } from '../../label-provider/core/label-tokens';
5
- /* eslint-disable @typescript-eslint/indent */
6
- // prettier-ignore
7
5
  export const template = html `
8
6
  <template>
9
7
  <${anchoredRegionTag}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/rich-text/mention-listbox/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,8CAA8C;AAC9C,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAwB;;WAEzC,iBAAiB;cACd,GAAG,CAAC,QAAQ,CAAC;;;;;;;;;uBASJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;;;;;sBAKb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;;;;0BAIhD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;6BAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yEAC6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;kBACrF,GAAG,CAAC,SAAS,CAAC;;;sBAGV,OAAO,CAAC;IACN,MAAM,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,YAAY,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,gBAAgB;CAC7B,CAAC;;;kBAGJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAwB;;0BAE9D,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;;iBAEjD,CAAC;;YAEN,iBAAiB;;CAE5B,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport { Listbox } from '@ni/fast-foundation';\nimport type { RichTextMentionListbox } from '.';\nimport { anchoredRegionTag } from '../../anchored-region';\nimport { filterNoResultsLabel } from '../../label-provider/core/label-tokens';\n\n/* eslint-disable @typescript-eslint/indent */\n// prettier-ignore\nexport const template = html<RichTextMentionListbox>`\n <template>\n <${anchoredRegionTag}\n ${ref('region')}\n class=\"anchored-region\"\n fixed-placement\n auto-update-mode=\"auto\"\n vertical-default-position=\"bottom\"\n vertical-positioning-mode=\"locktodefault\"\n horizontal-default-position=\"center\"\n horizontal-positioning-mode=\"locktodefault\"\n horizontal-scaling=\"anchor\"\n ?hidden=\"${x => !x.open}\">\n <div\n class=\"\n listbox\n scrollable-region\n ${x => (x.filteredOptions.length === 0 ? 'empty' : '')}\n \"\n part=\"listbox\"\n role=\"listbox\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n ?disabled=\"${x => x.disabled}\"\n style=\"--ni-private-listbox-available-viewport-height: ${x => x.availableViewportHeight}px;\"\n ${ref('listbox')}\n >\n <slot name=\"option\"\n ${slotted({\n filter: (n: Node) => n instanceof HTMLElement && Listbox.slottedOptionFilter(n),\n flatten: true,\n property: 'slottedOptions'\n })}\n >\n </slot>\n ${when(x => x.filteredOptions.length === 0, html<RichTextMentionListbox>`\n <span class=\"no-results-label\">\n ${x => filterNoResultsLabel.getValueFor(x)}\n </span>\n `)}\n </div>\n </${anchoredRegionTag}>\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/rich-text/mention-listbox/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAwB;;WAEzC,iBAAiB;cACd,GAAG,CAAC,QAAQ,CAAC;;;;;;;;;uBASJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;;;;;sBAKb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;;;;0BAIhD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;6BAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;yEAC6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;kBACrF,GAAG,CAAC,SAAS,CAAC;;;sBAGV,OAAO,CAAC;IACN,MAAM,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,YAAY,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,gBAAgB;CAC7B,CAAC;;;kBAGJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAwB;;0BAE9D,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;;iBAEjD,CAAC;;YAEN,iBAAiB;;CAE5B,CAAC","sourcesContent":["import { html, ref, slotted, when } from '@ni/fast-element';\nimport { Listbox } from '@ni/fast-foundation';\nimport type { RichTextMentionListbox } from '.';\nimport { anchoredRegionTag } from '../../anchored-region';\nimport { filterNoResultsLabel } from '../../label-provider/core/label-tokens';\n\nexport const template = html<RichTextMentionListbox>`\n <template>\n <${anchoredRegionTag}\n ${ref('region')}\n class=\"anchored-region\"\n fixed-placement\n auto-update-mode=\"auto\"\n vertical-default-position=\"bottom\"\n vertical-positioning-mode=\"locktodefault\"\n horizontal-default-position=\"center\"\n horizontal-positioning-mode=\"locktodefault\"\n horizontal-scaling=\"anchor\"\n ?hidden=\"${x => !x.open}\">\n <div\n class=\"\n listbox\n scrollable-region\n ${x => (x.filteredOptions.length === 0 ? 'empty' : '')}\n \"\n part=\"listbox\"\n role=\"listbox\"\n @click=\"${(x, c) => x.clickHandler(c.event as MouseEvent)}\"\n ?disabled=\"${x => x.disabled}\"\n style=\"--ni-private-listbox-available-viewport-height: ${x => x.availableViewportHeight}px;\"\n ${ref('listbox')}\n >\n <slot name=\"option\"\n ${slotted({\n filter: (n: Node) => n instanceof HTMLElement && Listbox.slottedOptionFilter(n),\n flatten: true,\n property: 'slottedOptions'\n })}\n >\n </slot>\n ${when(x => x.filteredOptions.length === 0, html<RichTextMentionListbox>`\n <span class=\"no-results-label\">\n ${x => filterNoResultsLabel.getValueFor(x)}\n </span>\n `)}\n </div>\n </${anchoredRegionTag}>\n </template>\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../../src/rich-text/models/markdown-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n schema,\n defaultMarkdownParser,\n MarkdownParser\n} from 'prosemirror-markdown';\nimport { DOMSerializer, Schema } from 'prosemirror-model';\nimport { anchorTag } from '../../anchor';\nimport type { MarkdownParserMentionConfiguration } from './markdown-parser-mention-configuration';\n\nexport interface ParseResult {\n fragment: HTMLElement | DocumentFragment;\n mentionedHrefs: string[];\n}\n\n/**\n * Provides markdown parser for rich text components\n */\nexport class RichTextMarkdownParser {\n private static readonly mentionedHrefs: Set<string> = new Set();\n private static readonly updatedSchema = this.getCustomSchemaConfiguration();\n\n private static readonly markdownParser = this.initializeMarkdownParser();\n private static readonly domSerializer = DOMSerializer.fromSchema(\n this.updatedSchema\n );\n\n /**\n * The markdown parser is static (shared across all rich text components) because it is expensive to create.\n * To configure parse calls with the mention configurations which can be unique per component instance\n * we store static configuration in this member and access it from Prosemirror callbacks.\n */\n private static mentionConfigs?: MarkdownParserMentionConfiguration[];\n\n /**\n * This function takes a markdown string, parses it using the ProseMirror MarkdownParser, serializes the parsed content into a\n * DOM structure using a DOMSerializer, and returns the serialized result.\n * If the markdown parser returns null, it will clear the viewer component by creating an empty document fragment.\n */\n public static parseMarkdownToDOM(\n value: string,\n markdownParserMentionConfig?: MarkdownParserMentionConfiguration[]\n ): ParseResult {\n try {\n RichTextMarkdownParser.setup(markdownParserMentionConfig);\n const parsedMarkdownContent = this.markdownParser.parse(value);\n if (parsedMarkdownContent === null) {\n return {\n fragment: document.createDocumentFragment(),\n mentionedHrefs: Array.from(\n RichTextMarkdownParser.mentionedHrefs\n )\n };\n }\n return {\n fragment: this.domSerializer.serializeFragment(\n parsedMarkdownContent.content\n ),\n mentionedHrefs: Array.from(\n RichTextMarkdownParser.mentionedHrefs\n )\n };\n } finally {\n RichTextMarkdownParser.cleanup();\n }\n }\n\n private static initializeMarkdownParser(): MarkdownParser {\n /**\n * It configures the tokenizer of the default Markdown parser with the 'zero' preset.\n * The 'zero' preset is a configuration with no rules enabled by default to selectively enable specific rules.\n * https://github.com/markdown-it/markdown-it/blob/2b6cac25823af011ff3bc7628bc9b06e483c5a08/lib/presets/zero.js#L1\n *\n */\n const zeroTokenizerConfiguration = defaultMarkdownParser.tokenizer.configure('zero');\n\n // The detailed information of the supported rules were provided in the below CommonMark spec document.\n // https://spec.commonmark.org/0.30/\n const supportedTokenizerRules = zeroTokenizerConfiguration.enable([\n 'emphasis',\n 'list',\n 'escape',\n 'autolink',\n 'newline'\n ]);\n\n /**\n * In order to display encoded characters, non-ASCII characters, emojis, and other special characters in their original form,\n * we bypass the default normalization of link text in markdown-it. This is done because we support only \"AutoLink\" feature in CommonMark flavor.\n * \"normalizeLinkText\" method reference in markdown-it: https://github.com/markdown-it/markdown-it/blob/2b6cac25823af011ff3bc7628bc9b06e483c5a08/lib/index.js#L67C1-L86C2\n *\n * We can use the default normalization once hyperlink support is added.\n * See: https://github.com/ni/nimble/issues/1527\n */\n supportedTokenizerRules.normalizeLinkText = url => url;\n\n return new MarkdownParser(\n this.updatedSchema,\n supportedTokenizerRules,\n defaultMarkdownParser.tokens\n );\n }\n\n private static getCustomSchemaConfiguration(): Schema {\n return new Schema({\n nodes: schema.spec.nodes,\n marks: {\n link: {\n attrs: {\n href: {},\n rel: { default: 'noopener noreferrer' },\n // Adding `class` here is a workaround to render two mentions without a whitespace as display names\n // This attribute can be removed when the below issue is resolved\n // https://github.com/ni/nimble/issues/1707\n class: { default: '' }\n },\n // Inclusive can be updated when hyperlink support added\n // See: https://github.com/ni/nimble/issues/1527\n inclusive: false,\n // Excludes can be removed/enabled when hyperlink support added\n // See: https://github.com/ni/nimble/issues/1527\n excludes: '_',\n toDOM(node) {\n const href = node.attrs.href as string;\n const currentMention = RichTextMarkdownParser.mentionConfigs?.find(\n mention => mention.isValidMentionHref(href)\n );\n const displayName = currentMention?.getDisplayName(href);\n\n if (currentMention && displayName) {\n RichTextMarkdownParser.mentionedHrefs.add(href);\n\n return [\n currentMention.viewElement,\n {\n 'mention-href': href,\n 'mention-label': displayName\n }\n ];\n }\n\n return [\n anchorTag,\n {\n /**\n * Both mention and absolute link markdown share the autolink format in CommonMark flavor.\n * Absolute links with HTTP/HTTPS will be rendered as links. Absolute links that match the\n * mention pattern will be rendered as mention view element. Absolute links without HTTP/HTTPS\n * scheme and no matching mention pattern will be rendered as plain text (anchor with no href).\n * With this, the user can click the links only when the scheme is HTTP/HTTPS\n */\n href: RichTextMarkdownParser.startsWithHttpOrHttps(\n href\n )\n ? href\n : null,\n rel: node.attrs.rel as Attr,\n // Adding `class` here is a workaround to render two mentions without a whitespace as display names\n // This attribute can be removed when the below issue is resolved\n // https://github.com/ni/nimble/issues/1707\n class: href,\n 'underline-hidden':\n RichTextMarkdownParser.startsWithHttpOrHttps(\n href\n )\n ? null\n : true\n }\n ];\n }\n },\n em: schema.spec.marks.get('em')!,\n strong: schema.spec.marks.get('strong')!\n }\n });\n }\n\n private static setup(\n markdownParserMentionConfig:\n | MarkdownParserMentionConfiguration[]\n | undefined\n ): void {\n RichTextMarkdownParser.mentionConfigs = markdownParserMentionConfig;\n RichTextMarkdownParser.mentionedHrefs.clear();\n }\n\n private static cleanup(): void {\n RichTextMarkdownParser.mentionConfigs = undefined;\n RichTextMarkdownParser.mentionedHrefs.clear();\n }\n\n private static startsWithHttpOrHttps(href: string): boolean {\n return /^https?:\\/\\//i.test(href);\n }\n}\n"]}
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../../src/rich-text/models/markdown-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n schema,\n defaultMarkdownParser,\n MarkdownParser\n} from 'prosemirror-markdown';\nimport { DOMSerializer, Schema } from 'prosemirror-model';\nimport { anchorTag } from '../../anchor';\nimport type { MarkdownParserMentionConfiguration } from './markdown-parser-mention-configuration';\n\nexport interface ParseResult {\n fragment: HTMLElement | DocumentFragment;\n mentionedHrefs: string[];\n}\n\n/**\n * Provides markdown parser for rich text components\n */\nexport class RichTextMarkdownParser {\n private static readonly mentionedHrefs: Set<string> = new Set();\n private static readonly updatedSchema = this.getCustomSchemaConfiguration();\n\n private static readonly markdownParser = this.initializeMarkdownParser();\n private static readonly domSerializer = DOMSerializer.fromSchema(\n this.updatedSchema\n );\n\n /**\n * The markdown parser is static (shared across all rich text components) because it is expensive to create.\n * To configure parse calls with the mention configurations which can be unique per component instance\n * we store static configuration in this member and access it from Prosemirror callbacks.\n */\n private static mentionConfigs?: MarkdownParserMentionConfiguration[];\n\n /**\n * This function takes a markdown string, parses it using the ProseMirror MarkdownParser, serializes the parsed content into a\n * DOM structure using a DOMSerializer, and returns the serialized result.\n * If the markdown parser returns null, it will clear the viewer component by creating an empty document fragment.\n */\n public static parseMarkdownToDOM(\n value: string,\n markdownParserMentionConfig?: MarkdownParserMentionConfiguration[]\n ): ParseResult {\n try {\n RichTextMarkdownParser.setup(markdownParserMentionConfig);\n const parsedMarkdownContent = this.markdownParser.parse(value);\n if (parsedMarkdownContent === null) {\n return {\n fragment: document.createDocumentFragment(),\n mentionedHrefs: Array.from(\n RichTextMarkdownParser.mentionedHrefs\n )\n };\n }\n return {\n fragment: this.domSerializer.serializeFragment(\n parsedMarkdownContent.content\n ),\n mentionedHrefs: Array.from(\n RichTextMarkdownParser.mentionedHrefs\n )\n };\n } finally {\n RichTextMarkdownParser.cleanup();\n }\n }\n\n private static initializeMarkdownParser(): MarkdownParser {\n /**\n * It configures the tokenizer of the default Markdown parser with the 'zero' preset.\n * The 'zero' preset is a configuration with no rules enabled by default to selectively enable specific rules.\n * https://github.com/markdown-it/markdown-it/blob/2b6cac25823af011ff3bc7628bc9b06e483c5a08/lib/presets/zero.js#L1\n *\n */\n const zeroTokenizerConfiguration = defaultMarkdownParser.tokenizer.configure('zero');\n\n // The detailed information of the supported rules were provided in the below CommonMark spec document.\n // https://spec.commonmark.org/0.30/\n const supportedTokenizerRules = zeroTokenizerConfiguration.enable([\n 'emphasis',\n 'list',\n 'escape',\n 'autolink',\n 'newline'\n ]);\n\n /**\n * In order to display encoded characters, non-ASCII characters, emojis, and other special characters in their original form,\n * we bypass the default normalization of link text in markdown-it. This is done because we support only \"AutoLink\" feature in CommonMark flavor.\n * \"normalizeLinkText\" method reference in markdown-it: https://github.com/markdown-it/markdown-it/blob/2b6cac25823af011ff3bc7628bc9b06e483c5a08/lib/index.js#L67C1-L86C2\n *\n * We can use the default normalization once hyperlink support is added.\n * See: https://github.com/ni/nimble/issues/1527\n */\n supportedTokenizerRules.normalizeLinkText = url => url;\n\n return new MarkdownParser(\n this.updatedSchema,\n supportedTokenizerRules,\n defaultMarkdownParser.tokens\n );\n }\n\n private static getCustomSchemaConfiguration(): Schema {\n return new Schema({\n nodes: schema.spec.nodes,\n marks: {\n link: {\n attrs: {\n href: {},\n rel: { default: 'noopener noreferrer' },\n // Adding `class` here is a workaround to render two mentions without a whitespace as display names\n // This attribute can be removed when the below issue is resolved\n // https://github.com/ni/nimble/issues/1707\n class: { default: '' }\n },\n // Inclusive can be updated when hyperlink support added\n // See: https://github.com/ni/nimble/issues/1527\n inclusive: false,\n // Excludes can be removed/enabled when hyperlink support added\n // See: https://github.com/ni/nimble/issues/1527\n excludes: '_',\n toDOM(node) {\n const href = node.attrs.href as string;\n const currentMention = RichTextMarkdownParser.mentionConfigs?.find(\n mention => mention.isValidMentionHref(href)\n );\n const displayName = currentMention?.getDisplayName(href);\n\n if (currentMention && displayName) {\n RichTextMarkdownParser.mentionedHrefs.add(href);\n\n return [\n currentMention.viewElement,\n {\n 'mention-href': href,\n 'mention-label': displayName\n }\n ];\n }\n\n return [\n anchorTag,\n {\n /**\n * Both mention and absolute link markdown share the autolink format in CommonMark flavor.\n * Absolute links with HTTP/HTTPS will be rendered as links. Absolute links that match the\n * mention pattern will be rendered as mention view element. Absolute links without HTTP/HTTPS\n * scheme and no matching mention pattern will be rendered as plain text (anchor with no href).\n * With this, the user can click the links only when the scheme is HTTP/HTTPS\n */\n href: RichTextMarkdownParser.startsWithHttpOrHttps(\n href\n )\n ? href\n : null,\n rel: node.attrs.rel as Attr,\n // Adding `class` here is a workaround to render two mentions without a whitespace as display names\n // This attribute can be removed when the below issue is resolved\n // https://github.com/ni/nimble/issues/1707\n class: href,\n 'underline-hidden':\n RichTextMarkdownParser.startsWithHttpOrHttps(\n href\n )\n ? null\n : true\n }\n ];\n }\n },\n em: schema.spec.marks.get('em')!,\n strong: schema.spec.marks.get('strong')!\n }\n });\n }\n\n private static setup(\n markdownParserMentionConfig:\n | MarkdownParserMentionConfiguration[]\n | undefined\n ): void {\n RichTextMarkdownParser.mentionConfigs = markdownParserMentionConfig;\n RichTextMarkdownParser.mentionedHrefs.clear();\n }\n\n private static cleanup(): void {\n RichTextMarkdownParser.mentionConfigs = undefined;\n RichTextMarkdownParser.mentionedHrefs.clear();\n }\n\n private static startsWithHttpOrHttps(href: string): boolean {\n return /^https?:\\/\\//i.test(href);\n }\n}\n"]}