@ni/nimble-components 24.0.1 → 24.1.1

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 (598) hide show
  1. package/dist/all-components-bundle.js +110 -41
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +488 -473
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/.storybook/blocks/StoryLayout.d.ts +51 -0
  6. package/dist/esm/src/all-components.d.ts +63 -0
  7. package/dist/esm/src/anchor/index.d.ts +36 -0
  8. package/dist/esm/src/anchor/styles.d.ts +1 -0
  9. package/dist/esm/src/anchor/template.d.ts +4 -0
  10. package/dist/esm/src/anchor/types.d.ts +9 -0
  11. package/dist/esm/src/anchor-base/index.d.ts +6 -0
  12. package/dist/esm/src/anchor-button/index.d.ts +37 -0
  13. package/dist/esm/src/anchor-button/styles.d.ts +1 -0
  14. package/dist/esm/src/anchor-button/template.d.ts +4 -0
  15. package/dist/esm/src/anchor-button/types.d.ts +5 -0
  16. package/dist/esm/src/anchor-menu-item/index.d.ts +36 -0
  17. package/dist/esm/src/anchor-menu-item/styles.d.ts +1 -0
  18. package/dist/esm/src/anchor-menu-item/template.d.ts +4 -0
  19. package/dist/esm/src/anchor-tab/index.d.ts +30 -0
  20. package/dist/esm/src/anchor-tab/styles.d.ts +1 -0
  21. package/dist/esm/src/anchor-tab/template.d.ts +4 -0
  22. package/dist/esm/src/anchor-tabs/index.d.ts +60 -0
  23. package/dist/esm/src/anchor-tabs/styles.d.ts +1 -0
  24. package/dist/esm/src/anchor-tabs/template.d.ts +4 -0
  25. package/dist/esm/src/anchor-tree-item/index.d.ts +57 -0
  26. package/dist/esm/src/anchor-tree-item/styles.d.ts +1 -0
  27. package/dist/esm/src/anchor-tree-item/template.d.ts +4 -0
  28. package/dist/esm/src/anchored-region/index.d.ts +12 -0
  29. package/dist/esm/src/anchored-region/styles.d.ts +1 -0
  30. package/dist/esm/src/banner/index.d.ts +47 -0
  31. package/dist/esm/src/banner/styles.d.ts +1 -0
  32. package/dist/esm/src/banner/template.d.ts +2 -0
  33. package/dist/esm/src/banner/types.d.ts +19 -0
  34. package/dist/esm/src/breadcrumb/index.d.ts +14 -0
  35. package/dist/esm/src/breadcrumb/styles.d.ts +1 -0
  36. package/dist/esm/src/breadcrumb/types.d.ts +9 -0
  37. package/dist/esm/src/breadcrumb-item/index.d.ts +12 -0
  38. package/dist/esm/src/breadcrumb-item/styles.d.ts +1 -0
  39. package/dist/esm/src/button/index.d.ts +32 -0
  40. package/dist/esm/src/button/styles.d.ts +1 -0
  41. package/dist/esm/src/button/types.d.ts +7 -0
  42. package/dist/esm/src/card/index.d.ts +12 -0
  43. package/dist/esm/src/card/styles.d.ts +1 -0
  44. package/dist/esm/src/card/template.d.ts +2 -0
  45. package/dist/esm/src/card-button/index.d.ts +18 -0
  46. package/dist/esm/src/card-button/styles.d.ts +1 -0
  47. package/dist/esm/src/checkbox/index.d.ts +12 -0
  48. package/dist/esm/src/checkbox/styles.d.ts +1 -0
  49. package/dist/esm/src/combobox/index.d.ts +82 -0
  50. package/dist/esm/src/combobox/styles.d.ts +1 -0
  51. package/dist/esm/src/combobox/template.d.ts +4 -0
  52. package/dist/esm/src/combobox/types.d.ts +2 -0
  53. package/dist/esm/src/dialog/index.d.ts +70 -0
  54. package/dist/esm/src/dialog/styles.d.ts +1 -0
  55. package/dist/esm/src/dialog/template.d.ts +2 -0
  56. package/dist/esm/src/drawer/index.d.ts +55 -0
  57. package/dist/esm/src/drawer/styles.d.ts +1 -0
  58. package/dist/esm/src/drawer/template.d.ts +2 -0
  59. package/dist/esm/src/drawer/types.d.ts +5 -0
  60. package/dist/esm/src/icon-base/index.d.ts +19 -0
  61. package/dist/esm/src/icon-base/styles.d.ts +1 -0
  62. package/dist/esm/src/icon-base/template.d.ts +2 -0
  63. package/dist/esm/src/icon-base/types.d.ts +12 -0
  64. package/dist/esm/src/icons/add.d.ts +13 -0
  65. package/dist/esm/src/icons/all-icons.d.ts +185 -0
  66. package/dist/esm/src/icons/arrow-down-right-and-arrow-up-left.d.ts +13 -0
  67. package/dist/esm/src/icons/arrow-down.d.ts +13 -0
  68. package/dist/esm/src/icons/arrow-expander-down.d.ts +13 -0
  69. package/dist/esm/src/icons/arrow-expander-left.d.ts +13 -0
  70. package/dist/esm/src/icons/arrow-expander-right.d.ts +13 -0
  71. package/dist/esm/src/icons/arrow-expander-up.d.ts +13 -0
  72. package/dist/esm/src/icons/arrow-in-circle.d.ts +13 -0
  73. package/dist/esm/src/icons/arrow-left-from-line.d.ts +13 -0
  74. package/dist/esm/src/icons/arrow-out-circle.d.ts +13 -0
  75. package/dist/esm/src/icons/arrow-partial-rotate-left.d.ts +13 -0
  76. package/dist/esm/src/icons/arrow-right-to-line.d.ts +13 -0
  77. package/dist/esm/src/icons/arrow-rotate-right.d.ts +13 -0
  78. package/dist/esm/src/icons/arrow-u-rotate-left.d.ts +13 -0
  79. package/dist/esm/src/icons/arrow-up-left-and-arrow-down-right.d.ts +13 -0
  80. package/dist/esm/src/icons/arrow-up-right-from-square.d.ts +13 -0
  81. package/dist/esm/src/icons/arrow-up.d.ts +13 -0
  82. package/dist/esm/src/icons/arrows-maximize.d.ts +13 -0
  83. package/dist/esm/src/icons/arrows-repeat.d.ts +13 -0
  84. package/dist/esm/src/icons/at.d.ts +13 -0
  85. package/dist/esm/src/icons/bars.d.ts +13 -0
  86. package/dist/esm/src/icons/bell-and-comment.d.ts +13 -0
  87. package/dist/esm/src/icons/bell-circle.d.ts +13 -0
  88. package/dist/esm/src/icons/bell-solid-circle.d.ts +13 -0
  89. package/dist/esm/src/icons/bell.d.ts +13 -0
  90. package/dist/esm/src/icons/block-with-ribbon.d.ts +13 -0
  91. package/dist/esm/src/icons/bold-b.d.ts +13 -0
  92. package/dist/esm/src/icons/book-magnifying-glass.d.ts +13 -0
  93. package/dist/esm/src/icons/calendar-check-lines.d.ts +13 -0
  94. package/dist/esm/src/icons/calendar-day.d.ts +13 -0
  95. package/dist/esm/src/icons/calendar.d.ts +13 -0
  96. package/dist/esm/src/icons/chart-diagram-child-focus.d.ts +13 -0
  97. package/dist/esm/src/icons/chart-diagram-parent-focus-two-child.d.ts +13 -0
  98. package/dist/esm/src/icons/chart-diagram-parent-focus.d.ts +13 -0
  99. package/dist/esm/src/icons/chart-diagram.d.ts +13 -0
  100. package/dist/esm/src/icons/check-dot.d.ts +13 -0
  101. package/dist/esm/src/icons/check-large.d.ts +13 -0
  102. package/dist/esm/src/icons/check.d.ts +13 -0
  103. package/dist/esm/src/icons/circle-broken.d.ts +13 -0
  104. package/dist/esm/src/icons/circle-check.d.ts +13 -0
  105. package/dist/esm/src/icons/circle-filled.d.ts +13 -0
  106. package/dist/esm/src/icons/circle-partial-broken.d.ts +13 -0
  107. package/dist/esm/src/icons/circle-slash.d.ts +13 -0
  108. package/dist/esm/src/icons/circle-x.d.ts +13 -0
  109. package/dist/esm/src/icons/circle.d.ts +13 -0
  110. package/dist/esm/src/icons/clipboard.d.ts +13 -0
  111. package/dist/esm/src/icons/clock-cog.d.ts +13 -0
  112. package/dist/esm/src/icons/clock-exclamation.d.ts +13 -0
  113. package/dist/esm/src/icons/clock-triangle.d.ts +13 -0
  114. package/dist/esm/src/icons/clock.d.ts +13 -0
  115. package/dist/esm/src/icons/clone.d.ts +13 -0
  116. package/dist/esm/src/icons/cloud-upload.d.ts +13 -0
  117. package/dist/esm/src/icons/cloud-with-arrow.d.ts +13 -0
  118. package/dist/esm/src/icons/cloud.d.ts +13 -0
  119. package/dist/esm/src/icons/cog-database-inset.d.ts +13 -0
  120. package/dist/esm/src/icons/cog-database.d.ts +13 -0
  121. package/dist/esm/src/icons/cog-small-cog.d.ts +13 -0
  122. package/dist/esm/src/icons/cog-zoomed.d.ts +13 -0
  123. package/dist/esm/src/icons/cog.d.ts +13 -0
  124. package/dist/esm/src/icons/comment.d.ts +13 -0
  125. package/dist/esm/src/icons/computer-and-monitor.d.ts +13 -0
  126. package/dist/esm/src/icons/copy-text.d.ts +13 -0
  127. package/dist/esm/src/icons/copy.d.ts +13 -0
  128. package/dist/esm/src/icons/dashboard-builder-legend.d.ts +13 -0
  129. package/dist/esm/src/icons/dashboard-builder-templates.d.ts +13 -0
  130. package/dist/esm/src/icons/dashboard-builder-tile.d.ts +13 -0
  131. package/dist/esm/src/icons/dashboard-builder.d.ts +13 -0
  132. package/dist/esm/src/icons/database-check.d.ts +13 -0
  133. package/dist/esm/src/icons/database.d.ts +13 -0
  134. package/dist/esm/src/icons/desktop.d.ts +13 -0
  135. package/dist/esm/src/icons/donut-chart.d.ts +13 -0
  136. package/dist/esm/src/icons/dot-solid-dot-stroke-measurement.d.ts +13 -0
  137. package/dist/esm/src/icons/dot-solid-dot-stroke.d.ts +13 -0
  138. package/dist/esm/src/icons/down-right-from-square.d.ts +13 -0
  139. package/dist/esm/src/icons/download.d.ts +13 -0
  140. package/dist/esm/src/icons/electronic-chip-zoomed.d.ts +13 -0
  141. package/dist/esm/src/icons/exclamation-mark.d.ts +13 -0
  142. package/dist/esm/src/icons/eye-dash.d.ts +13 -0
  143. package/dist/esm/src/icons/eye.d.ts +13 -0
  144. package/dist/esm/src/icons/fancy-a.d.ts +13 -0
  145. package/dist/esm/src/icons/file-arrow-curved-right.d.ts +13 -0
  146. package/dist/esm/src/icons/file-drawer.d.ts +13 -0
  147. package/dist/esm/src/icons/file-search.d.ts +13 -0
  148. package/dist/esm/src/icons/file.d.ts +13 -0
  149. package/dist/esm/src/icons/filter.d.ts +13 -0
  150. package/dist/esm/src/icons/floppy-disk-checkmark.d.ts +13 -0
  151. package/dist/esm/src/icons/floppy-disk-pen.d.ts +13 -0
  152. package/dist/esm/src/icons/floppy-disk-star-arrow-right.d.ts +13 -0
  153. package/dist/esm/src/icons/floppy-disk-three-dots.d.ts +13 -0
  154. package/dist/esm/src/icons/floppy-disk.d.ts +13 -0
  155. package/dist/esm/src/icons/folder-open.d.ts +13 -0
  156. package/dist/esm/src/icons/folder.d.ts +13 -0
  157. package/dist/esm/src/icons/forward-slash.d.ts +13 -0
  158. package/dist/esm/src/icons/four-dots-square.d.ts +13 -0
  159. package/dist/esm/src/icons/function.d.ts +13 -0
  160. package/dist/esm/src/icons/gauge-simple.d.ts +13 -0
  161. package/dist/esm/src/icons/grid-three-by-three.d.ts +13 -0
  162. package/dist/esm/src/icons/grid-two-by-two.d.ts +13 -0
  163. package/dist/esm/src/icons/hammer.d.ts +13 -0
  164. package/dist/esm/src/icons/hashtag.d.ts +13 -0
  165. package/dist/esm/src/icons/home.d.ts +13 -0
  166. package/dist/esm/src/icons/horizontal-triangle-outline.d.ts +13 -0
  167. package/dist/esm/src/icons/hourglass.d.ts +13 -0
  168. package/dist/esm/src/icons/indent.d.ts +13 -0
  169. package/dist/esm/src/icons/indeterminant-checkbox.d.ts +13 -0
  170. package/dist/esm/src/icons/info-circle.d.ts +13 -0
  171. package/dist/esm/src/icons/info.d.ts +13 -0
  172. package/dist/esm/src/icons/inward-squares-three.d.ts +13 -0
  173. package/dist/esm/src/icons/italic-i.d.ts +13 -0
  174. package/dist/esm/src/icons/key.d.ts +13 -0
  175. package/dist/esm/src/icons/laptop.d.ts +13 -0
  176. package/dist/esm/src/icons/layer-group.d.ts +13 -0
  177. package/dist/esm/src/icons/lightning-bolt.d.ts +13 -0
  178. package/dist/esm/src/icons/link-cancel.d.ts +13 -0
  179. package/dist/esm/src/icons/link.d.ts +13 -0
  180. package/dist/esm/src/icons/list-tree-database.d.ts +13 -0
  181. package/dist/esm/src/icons/list-tree.d.ts +13 -0
  182. package/dist/esm/src/icons/list.d.ts +13 -0
  183. package/dist/esm/src/icons/lock.d.ts +13 -0
  184. package/dist/esm/src/icons/magnifying-glass.d.ts +13 -0
  185. package/dist/esm/src/icons/markdown.d.ts +13 -0
  186. package/dist/esm/src/icons/minus-wide.d.ts +13 -0
  187. package/dist/esm/src/icons/minus.d.ts +13 -0
  188. package/dist/esm/src/icons/mobile.d.ts +13 -0
  189. package/dist/esm/src/icons/ni.d.ts +13 -0
  190. package/dist/esm/src/icons/notebook.d.ts +13 -0
  191. package/dist/esm/src/icons/number-list.d.ts +13 -0
  192. package/dist/esm/src/icons/outdent.d.ts +13 -0
  193. package/dist/esm/src/icons/outward-squares-three.d.ts +13 -0
  194. package/dist/esm/src/icons/paste.d.ts +13 -0
  195. package/dist/esm/src/icons/pause.d.ts +13 -0
  196. package/dist/esm/src/icons/pencil.d.ts +13 -0
  197. package/dist/esm/src/icons/play.d.ts +13 -0
  198. package/dist/esm/src/icons/pot-with-lid.d.ts +13 -0
  199. package/dist/esm/src/icons/question.d.ts +13 -0
  200. package/dist/esm/src/icons/rectangle-check-lines.d.ts +13 -0
  201. package/dist/esm/src/icons/running-arrow.d.ts +13 -0
  202. package/dist/esm/src/icons/screen-check-lines-calendar.d.ts +13 -0
  203. package/dist/esm/src/icons/screen-check-lines.d.ts +13 -0
  204. package/dist/esm/src/icons/server.d.ts +13 -0
  205. package/dist/esm/src/icons/share-nodes.d.ts +13 -0
  206. package/dist/esm/src/icons/shield-check.d.ts +13 -0
  207. package/dist/esm/src/icons/shield-xmark.d.ts +13 -0
  208. package/dist/esm/src/icons/signal-bars.d.ts +13 -0
  209. package/dist/esm/src/icons/sine-graph.d.ts +13 -0
  210. package/dist/esm/src/icons/skip-arrow.d.ts +13 -0
  211. package/dist/esm/src/icons/spinner.d.ts +13 -0
  212. package/dist/esm/src/icons/square-check.d.ts +13 -0
  213. package/dist/esm/src/icons/square-t.d.ts +13 -0
  214. package/dist/esm/src/icons/square-x.d.ts +13 -0
  215. package/dist/esm/src/icons/stop-square.d.ts +13 -0
  216. package/dist/esm/src/icons/systemlink.d.ts +13 -0
  217. package/dist/esm/src/icons/t.d.ts +13 -0
  218. package/dist/esm/src/icons/tablet.d.ts +13 -0
  219. package/dist/esm/src/icons/tag.d.ts +13 -0
  220. package/dist/esm/src/icons/tags.d.ts +13 -0
  221. package/dist/esm/src/icons/target-crosshairs-progress.d.ts +13 -0
  222. package/dist/esm/src/icons/target-crosshairs.d.ts +13 -0
  223. package/dist/esm/src/icons/three-circles-ascending-container.d.ts +13 -0
  224. package/dist/esm/src/icons/three-dots-line.d.ts +13 -0
  225. package/dist/esm/src/icons/three-vertical-lines.d.ts +13 -0
  226. package/dist/esm/src/icons/thumbtack.d.ts +13 -0
  227. package/dist/esm/src/icons/tile-size.d.ts +13 -0
  228. package/dist/esm/src/icons/times.d.ts +13 -0
  229. package/dist/esm/src/icons/trash.d.ts +13 -0
  230. package/dist/esm/src/icons/triangle-filled.d.ts +13 -0
  231. package/dist/esm/src/icons/triangle-two-lines-horizontal.d.ts +13 -0
  232. package/dist/esm/src/icons/triangle.d.ts +13 -0
  233. package/dist/esm/src/icons/true-false-rectangle.d.ts +13 -0
  234. package/dist/esm/src/icons/two-squares-in-brackets.d.ts +13 -0
  235. package/dist/esm/src/icons/two-triangles-between-lines.d.ts +13 -0
  236. package/dist/esm/src/icons/unlink.d.ts +13 -0
  237. package/dist/esm/src/icons/unlock.d.ts +13 -0
  238. package/dist/esm/src/icons/up-right-from-square.d.ts +13 -0
  239. package/dist/esm/src/icons/upload.d.ts +13 -0
  240. package/dist/esm/src/icons/user.d.ts +13 -0
  241. package/dist/esm/src/icons/watch.d.ts +13 -0
  242. package/dist/esm/src/icons/waveform.d.ts +13 -0
  243. package/dist/esm/src/icons/webvi-custom.d.ts +13 -0
  244. package/dist/esm/src/icons/webvi-host.d.ts +13 -0
  245. package/dist/esm/src/icons/window-code.d.ts +13 -0
  246. package/dist/esm/src/icons/window-text.d.ts +13 -0
  247. package/dist/esm/src/icons/wrench-hammer.d.ts +13 -0
  248. package/dist/esm/src/icons/xmark-check.d.ts +13 -0
  249. package/dist/esm/src/icons/xmark.d.ts +13 -0
  250. package/dist/esm/src/label-provider/base/index.d.ts +19 -0
  251. package/dist/esm/src/label-provider/core/index.d.ts +41 -0
  252. package/dist/esm/src/label-provider/core/label-token-defaults.d.ts +6 -0
  253. package/dist/esm/src/label-provider/core/label-tokens.d.ts +9 -0
  254. package/dist/esm/src/label-provider/rich-text/index.d.ts +29 -0
  255. package/dist/esm/src/label-provider/rich-text/label-token-defaults.d.ts +6 -0
  256. package/dist/esm/src/label-provider/rich-text/label-tokens.d.ts +5 -0
  257. package/dist/esm/src/label-provider/table/index.d.ts +65 -0
  258. package/dist/esm/src/label-provider/table/label-token-defaults.d.ts +6 -0
  259. package/dist/esm/src/label-provider/table/label-tokens.d.ts +17 -0
  260. package/dist/esm/src/list-option/index.d.ts +37 -0
  261. package/dist/esm/src/list-option/styles.d.ts +1 -0
  262. package/dist/esm/src/list-option/template.d.ts +8 -0
  263. package/dist/esm/src/listbox/index.d.ts +12 -0
  264. package/dist/esm/src/listbox/styles.d.ts +1 -0
  265. package/dist/esm/src/mapping/base/index.d.ts +10 -0
  266. package/dist/esm/src/mapping/base/template.d.ts +1 -0
  267. package/dist/esm/src/mapping/base/types.d.ts +3 -0
  268. package/dist/esm/src/mapping/icon/index.d.ts +27 -0
  269. package/dist/esm/src/mapping/spinner/index.d.ts +16 -0
  270. package/dist/esm/src/mapping/text/index.d.ts +16 -0
  271. package/dist/esm/src/mapping/user/index.d.ts +15 -0
  272. package/dist/esm/src/menu/index.d.ts +13 -0
  273. package/dist/esm/src/menu/styles.d.ts +1 -0
  274. package/dist/esm/src/menu-button/index.d.ts +54 -0
  275. package/dist/esm/src/menu-button/styles.d.ts +1 -0
  276. package/dist/esm/src/menu-button/template.d.ts +2 -0
  277. package/dist/esm/src/menu-button/types.d.ts +22 -0
  278. package/dist/esm/src/menu-item/index.d.ts +12 -0
  279. package/dist/esm/src/menu-item/styles.d.ts +1 -0
  280. package/dist/esm/src/number-field/index.d.ts +25 -0
  281. package/dist/esm/src/number-field/styles.d.ts +1 -0
  282. package/dist/esm/src/number-field/types.d.ts +9 -0
  283. package/dist/esm/src/patterns/button/styles.d.ts +2 -0
  284. package/dist/esm/src/patterns/button/types.d.ts +49 -0
  285. package/dist/esm/src/patterns/dialog/types.d.ts +6 -0
  286. package/dist/esm/src/patterns/dropdown/styles.d.ts +1 -0
  287. package/dist/esm/src/patterns/dropdown/types.d.ts +33 -0
  288. package/dist/esm/src/patterns/error/styles.d.ts +1 -0
  289. package/dist/esm/src/patterns/error/template.d.ts +2 -0
  290. package/dist/esm/src/patterns/error/types.d.ts +10 -0
  291. package/dist/esm/src/patterns/expand-collapse/styles.d.ts +1 -0
  292. package/dist/esm/src/radio/index.d.ts +12 -0
  293. package/dist/esm/src/radio/styles.d.ts +1 -0
  294. package/dist/esm/src/radio-group/index.d.ts +14 -0
  295. package/dist/esm/src/radio-group/styles.d.ts +1 -0
  296. package/dist/esm/src/rich-text/base/index.d.ts +49 -0
  297. package/dist/esm/src/rich-text/base/types.d.ts +5 -0
  298. package/dist/esm/src/rich-text/editor/index.d.ts +270 -0
  299. package/dist/esm/src/rich-text/editor/models/create-tiptap-editor.d.ts +5 -0
  300. package/dist/esm/src/rich-text/editor/styles.d.ts +1 -0
  301. package/dist/esm/src/rich-text/editor/template.d.ts +2 -0
  302. package/dist/esm/src/rich-text/editor/testing/rich-text-editor-utils.d.ts +6 -0
  303. package/dist/esm/src/rich-text/editor/testing/rich-text-editor.pageobject.d.ts +75 -0
  304. package/dist/esm/src/rich-text/editor/testing/types.d.ts +31 -0
  305. package/dist/esm/src/rich-text/editor/types.d.ts +27 -0
  306. package/dist/esm/src/rich-text/mention-listbox/index.d.ts +116 -0
  307. package/dist/esm/src/rich-text/mention-listbox/styles.d.ts +1 -0
  308. package/dist/esm/src/rich-text/mention-listbox/template.d.ts +2 -0
  309. package/dist/esm/src/rich-text/mention-listbox/types.d.ts +7 -0
  310. package/dist/esm/src/rich-text/models/configuration.d.ts +10 -0
  311. package/dist/esm/src/rich-text/models/editor-configuration.d.ts +10 -0
  312. package/dist/esm/src/rich-text/models/markdown-parser-mention-configuration.d.ts +14 -0
  313. package/dist/esm/src/rich-text/models/markdown-parser.d.ts +30 -0
  314. package/dist/esm/src/rich-text/models/markdown-serializer.d.ts +10 -0
  315. package/dist/esm/src/rich-text/models/mention-extension-configuration.d.ts +19 -0
  316. package/dist/esm/src/rich-text/models/rich-text-tracker.d.ts +19 -0
  317. package/dist/esm/src/rich-text/models/rich-text-validator.d.ts +15 -0
  318. package/dist/esm/src/rich-text/models/testing/markdown-parser-utils.d.ts +5 -0
  319. package/dist/esm/src/rich-text/viewer/index.d.ts +37 -0
  320. package/dist/esm/src/rich-text/viewer/styles.d.ts +1 -0
  321. package/dist/esm/src/rich-text/viewer/template.d.ts +2 -0
  322. package/dist/esm/src/rich-text/viewer/testing/rich-text-viewer.pageobject.d.ts +27 -0
  323. package/dist/esm/src/rich-text-mention/base/index.d.ts +56 -0
  324. package/dist/esm/src/rich-text-mention/base/models/mapping-config.d.ts +8 -0
  325. package/dist/esm/src/rich-text-mention/base/models/mention-internals.d.ts +45 -0
  326. package/dist/esm/src/rich-text-mention/base/models/mention-validator.d.ts +33 -0
  327. package/dist/esm/src/rich-text-mention/base/template.d.ts +2 -0
  328. package/dist/esm/src/rich-text-mention/base/types.d.ts +10 -0
  329. package/dist/esm/src/rich-text-mention/base/view/index.d.ts +20 -0
  330. package/dist/esm/src/rich-text-mention/users/index.d.ts +21 -0
  331. package/dist/esm/src/rich-text-mention/users/models/mapping-user-config.d.ts +6 -0
  332. package/dist/esm/src/rich-text-mention/users/models/rich-text-mention-users-validator.d.ts +16 -0
  333. package/dist/esm/src/rich-text-mention/users/view/index.d.ts +12 -0
  334. package/dist/esm/src/rich-text-mention/users/view/styles.d.ts +1 -0
  335. package/dist/esm/src/rich-text-mention/users/view/template.d.ts +2 -0
  336. package/dist/esm/src/rich-text-mention/users/view/testing/rich-text-mention-users-view.pageobject.d.ts +9 -0
  337. package/dist/esm/src/select/index.d.ts +281 -0
  338. package/dist/esm/src/select/models/select-form-associated.d.ts +16 -0
  339. package/dist/esm/src/select/styles.d.ts +1 -0
  340. package/dist/esm/src/select/template.d.ts +4 -0
  341. package/dist/esm/src/select/testing/select.pageobject.d.ts +39 -0
  342. package/dist/esm/src/select/types.d.ts +14 -0
  343. package/dist/esm/src/spinner/index.d.ts +20 -0
  344. package/dist/esm/src/spinner/styles.d.ts +1 -0
  345. package/dist/esm/src/spinner/template.d.ts +2 -0
  346. package/dist/esm/src/spinner/types.d.ts +9 -0
  347. package/dist/esm/src/switch/index.d.ts +12 -0
  348. package/dist/esm/src/switch/styles.d.ts +1 -0
  349. package/dist/esm/src/switch/template.d.ts +2 -0
  350. package/dist/esm/src/tab/index.d.ts +12 -0
  351. package/dist/esm/src/tab/styles.d.ts +1 -0
  352. package/dist/esm/src/tab-panel/index.d.ts +12 -0
  353. package/dist/esm/src/tab-panel/styles.d.ts +1 -0
  354. package/dist/esm/src/table/components/cell/index.d.ts +30 -0
  355. package/dist/esm/src/table/components/cell/styles.d.ts +1 -0
  356. package/dist/esm/src/table/components/cell/template.d.ts +2 -0
  357. package/dist/esm/src/table/components/group-row/index.d.ts +42 -0
  358. package/dist/esm/src/table/components/group-row/styles.d.ts +1 -0
  359. package/dist/esm/src/table/components/group-row/template.d.ts +2 -0
  360. package/dist/esm/src/table/components/header/index.d.ts +20 -0
  361. package/dist/esm/src/table/components/header/styles.d.ts +1 -0
  362. package/dist/esm/src/table/components/header/template.d.ts +2 -0
  363. package/dist/esm/src/table/components/row/index.d.ts +89 -0
  364. package/dist/esm/src/table/components/row/styles.d.ts +1 -0
  365. package/dist/esm/src/table/components/row/template.d.ts +2 -0
  366. package/dist/esm/src/table/index.d.ts +225 -0
  367. package/dist/esm/src/table/models/array-to-tree.d.ts +17 -0
  368. package/dist/esm/src/table/models/data-hierarchy-manager.d.ts +15 -0
  369. package/dist/esm/src/table/models/expansion-manager.d.ts +33 -0
  370. package/dist/esm/src/table/models/interactive-selection-manager.d.ts +18 -0
  371. package/dist/esm/src/table/models/selection-managers/disabled-selection-manager.d.ts +11 -0
  372. package/dist/esm/src/table/models/selection-managers/multi-selection-manager.d.ts +20 -0
  373. package/dist/esm/src/table/models/selection-managers/selection-manager-base.d.ts +19 -0
  374. package/dist/esm/src/table/models/selection-managers/single-selection-manager.d.ts +11 -0
  375. package/dist/esm/src/table/models/sort-operations.d.ts +7 -0
  376. package/dist/esm/src/table/models/table-layout-manager.d.ts +42 -0
  377. package/dist/esm/src/table/models/table-update-tracker.d.ts +33 -0
  378. package/dist/esm/src/table/models/table-validator.d.ts +32 -0
  379. package/dist/esm/src/table/models/virtualizer.d.ts +27 -0
  380. package/dist/esm/src/table/styles.d.ts +1 -0
  381. package/dist/esm/src/table/template.d.ts +2 -0
  382. package/dist/esm/src/table/testing/table.pageobject.d.ts +112 -0
  383. package/dist/esm/src/table/types.d.ts +186 -0
  384. package/dist/esm/src/table-column/anchor/cell-view/index.d.ts +22 -0
  385. package/dist/esm/src/table-column/anchor/cell-view/styles.d.ts +1 -0
  386. package/dist/esm/src/table-column/anchor/cell-view/template.d.ts +2 -0
  387. package/dist/esm/src/table-column/anchor/index.d.ts +77 -0
  388. package/dist/esm/src/table-column/base/cell-view/index.d.ts +22 -0
  389. package/dist/esm/src/table-column/base/cell-view/template.d.ts +3 -0
  390. package/dist/esm/src/table-column/base/group-header-view/index.d.ts +15 -0
  391. package/dist/esm/src/table-column/base/group-header-view/template.d.ts +3 -0
  392. package/dist/esm/src/table-column/base/index.d.ts +35 -0
  393. package/dist/esm/src/table-column/base/models/column-internals.d.ts +124 -0
  394. package/dist/esm/src/table-column/base/models/column-validator.d.ts +19 -0
  395. package/dist/esm/src/table-column/base/styles.d.ts +1 -0
  396. package/dist/esm/src/table-column/base/template.d.ts +2 -0
  397. package/dist/esm/src/table-column/base/types.d.ts +38 -0
  398. package/dist/esm/src/table-column/date-text/cell-view/index.d.ts +14 -0
  399. package/dist/esm/src/table-column/date-text/group-header-view/index.d.ts +15 -0
  400. package/dist/esm/src/table-column/date-text/index.d.ts +73 -0
  401. package/dist/esm/src/table-column/date-text/models/format-helper.d.ts +2 -0
  402. package/dist/esm/src/table-column/date-text/models/table-column-date-text-validator.d.ts +11 -0
  403. package/dist/esm/src/table-column/date-text/testing/table-column-date-text.pageobject.d.ts +8 -0
  404. package/dist/esm/src/table-column/date-text/types.d.ts +23 -0
  405. package/dist/esm/src/table-column/duration-text/cell-view/index.d.ts +14 -0
  406. package/dist/esm/src/table-column/duration-text/group-header-view/index.d.ts +15 -0
  407. package/dist/esm/src/table-column/duration-text/index.d.ts +26 -0
  408. package/dist/esm/src/table-column/duration-text/models/duration-formatter.d.ts +14 -0
  409. package/dist/esm/src/table-column/duration-text/testing/table-column-duration-text.pageobject.d.ts +8 -0
  410. package/dist/esm/src/table-column/enum-base/index.d.ts +50 -0
  411. package/dist/esm/src/table-column/enum-base/models/mapping-config.d.ts +7 -0
  412. package/dist/esm/src/table-column/enum-base/models/mapping-icon-config.d.ts +15 -0
  413. package/dist/esm/src/table-column/enum-base/models/mapping-key-resolver.d.ts +8 -0
  414. package/dist/esm/src/table-column/enum-base/models/mapping-spinner-config.d.ts +7 -0
  415. package/dist/esm/src/table-column/enum-base/models/mapping-text-config.d.ts +6 -0
  416. package/dist/esm/src/table-column/enum-base/models/table-column-enum-base-validator.d.ts +15 -0
  417. package/dist/esm/src/table-column/enum-base/styles.d.ts +1 -0
  418. package/dist/esm/src/table-column/enum-base/template.d.ts +3 -0
  419. package/dist/esm/src/table-column/enum-base/types.d.ts +10 -0
  420. package/dist/esm/src/table-column/enum-text/cell-view/index.d.ts +14 -0
  421. package/dist/esm/src/table-column/enum-text/group-header-view/index.d.ts +15 -0
  422. package/dist/esm/src/table-column/enum-text/index.d.ts +43 -0
  423. package/dist/esm/src/table-column/enum-text/models/table-column-enum-text-validator.d.ts +16 -0
  424. package/dist/esm/src/table-column/icon/cell-view/index.d.ts +23 -0
  425. package/dist/esm/src/table-column/icon/cell-view/template.d.ts +2 -0
  426. package/dist/esm/src/table-column/icon/group-header-view/index.d.ts +21 -0
  427. package/dist/esm/src/table-column/icon/group-header-view/styles.d.ts +1 -0
  428. package/dist/esm/src/table-column/icon/group-header-view/template.d.ts +2 -0
  429. package/dist/esm/src/table-column/icon/index.d.ts +43 -0
  430. package/dist/esm/src/table-column/icon/models/table-column-icon-validator.d.ts +19 -0
  431. package/dist/esm/src/table-column/mixins/fractional-width-column.d.ts +11 -0
  432. package/dist/esm/src/table-column/mixins/groupable-column.d.ts +11 -0
  433. package/dist/esm/src/table-column/mixins/placeholder.d.ts +9 -0
  434. package/dist/esm/src/table-column/number-text/cell-view/index.d.ts +15 -0
  435. package/dist/esm/src/table-column/number-text/group-header-view/index.d.ts +15 -0
  436. package/dist/esm/src/table-column/number-text/index.d.ts +53 -0
  437. package/dist/esm/src/table-column/number-text/models/number-text-unit-format.d.ts +23 -0
  438. package/dist/esm/src/table-column/number-text/models/table-column-number-text-validator.d.ts +16 -0
  439. package/dist/esm/src/table-column/number-text/template.d.ts +2 -0
  440. package/dist/esm/src/table-column/number-text/types.d.ts +18 -0
  441. package/dist/esm/src/table-column/testing/table-column-formatted-text.pageobject.d.ts +14 -0
  442. package/dist/esm/src/table-column/text/cell-view/index.d.ts +14 -0
  443. package/dist/esm/src/table-column/text/group-header-view/index.d.ts +15 -0
  444. package/dist/esm/src/table-column/text/index.d.ts +20 -0
  445. package/dist/esm/src/table-column/text-base/cell-view/index.d.ts +37 -0
  446. package/dist/esm/src/table-column/text-base/cell-view/styles.d.ts +1 -0
  447. package/dist/esm/src/table-column/text-base/cell-view/template.d.ts +2 -0
  448. package/dist/esm/src/table-column/text-base/cell-view/types.d.ts +8 -0
  449. package/dist/esm/src/table-column/text-base/group-header-view/index.d.ts +29 -0
  450. package/dist/esm/src/table-column/text-base/group-header-view/styles.d.ts +1 -0
  451. package/dist/esm/src/table-column/text-base/group-header-view/template.d.ts +2 -0
  452. package/dist/esm/src/table-column/text-base/index.d.ts +25 -0
  453. package/dist/esm/src/tabs/index.d.ts +13 -0
  454. package/dist/esm/src/tabs/styles.d.ts +1 -0
  455. package/dist/esm/src/tabs-toolbar/index.d.ts +12 -0
  456. package/dist/esm/src/tabs-toolbar/styles.d.ts +1 -0
  457. package/dist/esm/src/tabs-toolbar/template.d.ts +2 -0
  458. package/dist/esm/src/testing/async-helpers.d.ts +10 -0
  459. package/dist/esm/src/text-area/index.d.ts +68 -0
  460. package/dist/esm/src/text-area/styles.d.ts +1 -0
  461. package/dist/esm/src/text-area/template.d.ts +4 -0
  462. package/dist/esm/src/text-area/types.d.ts +7 -0
  463. package/dist/esm/src/text-field/index.d.ts +32 -0
  464. package/dist/esm/src/text-field/styles.d.ts +1 -0
  465. package/dist/esm/src/text-field/types.d.ts +15 -0
  466. package/dist/esm/src/theme-provider/design-token-comments.d.ts +6 -0
  467. package/dist/esm/src/theme-provider/design-token-names.d.ts +19 -0
  468. package/dist/esm/src/theme-provider/design-tokens-static.d.ts +10 -0
  469. package/dist/esm/src/theme-provider/design-tokens.d.ts +83 -0
  470. package/dist/esm/src/theme-provider/index.d.ts +30 -0
  471. package/dist/esm/src/theme-provider/styles.d.ts +1 -0
  472. package/dist/esm/src/theme-provider/template.d.ts +2 -0
  473. package/dist/esm/src/theme-provider/types.d.ts +6 -0
  474. package/dist/esm/src/toggle-button/index.d.ts +36 -0
  475. package/dist/esm/src/toggle-button/styles.d.ts +1 -0
  476. package/dist/esm/src/toggle-button/template.d.ts +4 -0
  477. package/dist/esm/src/toggle-button/types.d.ts +5 -0
  478. package/dist/esm/src/toolbar/index.d.ts +12 -0
  479. package/dist/esm/src/toolbar/styles.d.ts +1 -0
  480. package/dist/esm/src/tooltip/index.d.ts +20 -0
  481. package/dist/esm/src/tooltip/styles.d.ts +1 -0
  482. package/dist/esm/src/tooltip/template.d.ts +2 -0
  483. package/dist/esm/src/tooltip/types.d.ts +10 -0
  484. package/dist/esm/src/tree-item/index.d.ts +23 -0
  485. package/dist/esm/src/tree-item/styles.d.ts +1 -0
  486. package/dist/esm/src/tree-view/index.d.ts +29 -0
  487. package/dist/esm/src/tree-view/styles.d.ts +1 -0
  488. package/dist/esm/src/tree-view/template.d.ts +2 -0
  489. package/dist/esm/src/tree-view/types.d.ts +8 -0
  490. package/dist/esm/src/unit/base/template.d.ts +1 -0
  491. package/dist/esm/src/unit/base/unit.d.ts +9 -0
  492. package/dist/esm/src/unit/byte/index.d.ts +19 -0
  493. package/dist/esm/src/unit/volt/index.d.ts +13 -0
  494. package/dist/esm/src/utilities/directive/overflow.d.ts +36 -0
  495. package/dist/esm/src/utilities/models/converter.d.ts +2 -0
  496. package/dist/esm/src/utilities/models/document-element-lang.d.ts +9 -0
  497. package/dist/esm/src/utilities/models/string-normalizers.d.ts +5 -0
  498. package/dist/esm/src/utilities/models/tracker.d.ts +21 -0
  499. package/dist/esm/src/utilities/models/update-tracker.d.ts +7 -0
  500. package/dist/esm/src/utilities/models/validator.d.ts +11 -0
  501. package/dist/esm/src/utilities/style/accessibly-hidden.d.ts +6 -0
  502. package/dist/esm/src/utilities/style/appearance.d.ts +11 -0
  503. package/dist/esm/src/utilities/style/colors.d.ts +8 -0
  504. package/dist/esm/src/utilities/style/direction.d.ts +34 -0
  505. package/dist/esm/src/utilities/style/focus.d.ts +11 -0
  506. package/dist/esm/src/utilities/style/multivalue-property-stylesheet-behavior.d.ts +37 -0
  507. package/dist/esm/src/utilities/style/prefers-reduced-motion.d.ts +4 -0
  508. package/dist/esm/src/utilities/style/theme.d.ts +37 -0
  509. package/dist/esm/src/utilities/style/types.d.ts +5 -0
  510. package/dist/esm/src/utilities/style/user-select.d.ts +5 -0
  511. package/dist/esm/src/utilities/unit-format/decimal-unit-format.d.ts +19 -0
  512. package/dist/esm/src/utilities/unit-format/default-unit-format.d.ts +22 -0
  513. package/dist/esm/src/utilities/unit-format/scaled-unit/scaled-unit.d.ts +16 -0
  514. package/dist/esm/src/utilities/unit-format/scaled-unit-format/intl-number-format-scaled-unit-format.d.ts +11 -0
  515. package/dist/esm/src/utilities/unit-format/scaled-unit-format/manually-translated-scaled-unit-format.d.ts +43 -0
  516. package/dist/esm/src/utilities/unit-format/scaled-unit-format/scaled-unit-format.d.ts +10 -0
  517. package/dist/esm/src/utilities/unit-format/unit-format.d.ts +16 -0
  518. package/dist/esm/src/utilities/unit-format/unit-scale/byte-1024-unit-scale.d.ts +9 -0
  519. package/dist/esm/src/utilities/unit-format/unit-scale/byte-unit-scale.d.ts +9 -0
  520. package/dist/esm/src/utilities/unit-format/unit-scale/passthrough-unit-scale.d.ts +9 -0
  521. package/dist/esm/src/utilities/unit-format/unit-scale/unit-scale.d.ts +15 -0
  522. package/dist/esm/src/utilities/unit-format/unit-scale/utilities/metrix-prefixes.d.ts +1 -0
  523. package/dist/esm/src/utilities/unit-format/unit-scale/volt-unit-scale.d.ts +9 -0
  524. package/dist/esm/src/utilities/wait-until-custom-elements-defined-async.d.ts +1 -0
  525. package/dist/esm/src/wafer-map/index.d.ts +146 -0
  526. package/dist/esm/src/wafer-map/modules/computations.d.ts +39 -0
  527. package/dist/esm/src/wafer-map/modules/create-matrix-renderer.d.ts +10 -0
  528. package/dist/esm/src/wafer-map/modules/data-manager.d.ts +30 -0
  529. package/dist/esm/src/wafer-map/modules/experimental/computations.d.ts +31 -0
  530. package/dist/esm/src/wafer-map/modules/experimental/data-manager.d.ts +27 -0
  531. package/dist/esm/src/wafer-map/modules/experimental/hover-handler.d.ts +23 -0
  532. package/dist/esm/src/wafer-map/modules/experimental/worker-renderer.d.ts +12 -0
  533. package/dist/esm/src/wafer-map/modules/hover-handler.d.ts +20 -0
  534. package/dist/esm/src/wafer-map/modules/prerendering.d.ts +30 -0
  535. package/dist/esm/src/wafer-map/modules/rendering.d.ts +19 -0
  536. package/dist/esm/src/wafer-map/modules/wafer-map-update-tracker.d.ts +25 -0
  537. package/dist/esm/src/wafer-map/modules/wafer-map-validator.d.ts +16 -0
  538. package/dist/esm/src/wafer-map/modules/zoom-handler.d.ts +20 -0
  539. package/dist/esm/src/wafer-map/styles.d.ts +1 -0
  540. package/dist/esm/src/wafer-map/template.d.ts +2 -0
  541. package/dist/esm/src/wafer-map/types.d.ts +73 -0
  542. package/dist/esm/src/wafer-map/workers/matrix-renderer.d.ts +1 -0
  543. package/dist/esm/table/testing/table.pageobject.js +1 -1
  544. package/dist/esm/table/testing/table.pageobject.js.map +1 -1
  545. package/dist/esm/table-column/anchor/cell-view/index.d.ts +2 -0
  546. package/dist/esm/table-column/anchor/cell-view/index.js +12 -0
  547. package/dist/esm/table-column/anchor/cell-view/index.js.map +1 -1
  548. package/dist/esm/table-column/anchor/cell-view/styles.js +6 -1
  549. package/dist/esm/table-column/anchor/cell-view/styles.js.map +1 -1
  550. package/dist/esm/table-column/anchor/cell-view/template.js +1 -0
  551. package/dist/esm/table-column/anchor/cell-view/template.js.map +1 -1
  552. package/dist/esm/table-column/anchor/index.d.ts +5 -0
  553. package/dist/esm/table-column/anchor/index.js +7 -2
  554. package/dist/esm/table-column/anchor/index.js.map +1 -1
  555. package/dist/esm/table-column/date-text/cell-view/index.d.ts +1 -3
  556. package/dist/esm/table-column/date-text/cell-view/index.js +0 -6
  557. package/dist/esm/table-column/date-text/cell-view/index.js.map +1 -1
  558. package/dist/esm/table-column/date-text/index.d.ts +3 -1
  559. package/dist/esm/table-column/date-text/index.js +5 -1
  560. package/dist/esm/table-column/date-text/index.js.map +1 -1
  561. package/dist/esm/table-column/duration-text/cell-view/index.d.ts +1 -3
  562. package/dist/esm/table-column/duration-text/cell-view/index.js +0 -6
  563. package/dist/esm/table-column/duration-text/cell-view/index.js.map +1 -1
  564. package/dist/esm/table-column/duration-text/index.d.ts +3 -1
  565. package/dist/esm/table-column/duration-text/index.js +8 -9
  566. package/dist/esm/table-column/duration-text/index.js.map +1 -1
  567. package/dist/esm/table-column/enum-base/index.d.ts +2 -1
  568. package/dist/esm/table-column/enum-base/index.js.map +1 -1
  569. package/dist/esm/table-column/enum-text/cell-view/index.d.ts +1 -3
  570. package/dist/esm/table-column/enum-text/cell-view/index.js +0 -6
  571. package/dist/esm/table-column/enum-text/cell-view/index.js.map +1 -1
  572. package/dist/esm/table-column/mixins/placeholder.d.ts +9 -0
  573. package/dist/esm/table-column/mixins/placeholder.js +16 -0
  574. package/dist/esm/table-column/mixins/placeholder.js.map +1 -0
  575. package/dist/esm/table-column/number-text/cell-view/index.d.ts +2 -3
  576. package/dist/esm/table-column/number-text/cell-view/index.js +1 -4
  577. package/dist/esm/table-column/number-text/cell-view/index.js.map +1 -1
  578. package/dist/esm/table-column/number-text/index.d.ts +3 -1
  579. package/dist/esm/table-column/number-text/index.js +5 -1
  580. package/dist/esm/table-column/number-text/index.js.map +1 -1
  581. package/dist/esm/table-column/text/cell-view/index.d.ts +1 -1
  582. package/dist/esm/table-column/text/cell-view/index.js +1 -1
  583. package/dist/esm/table-column/text/cell-view/index.js.map +1 -1
  584. package/dist/esm/table-column/text/index.d.ts +3 -1
  585. package/dist/esm/table-column/text/index.js +5 -0
  586. package/dist/esm/table-column/text/index.js.map +1 -1
  587. package/dist/esm/table-column/text-base/cell-view/index.d.ts +20 -1
  588. package/dist/esm/table-column/text-base/cell-view/index.js +34 -0
  589. package/dist/esm/table-column/text-base/cell-view/index.js.map +1 -1
  590. package/dist/esm/table-column/text-base/cell-view/styles.js +6 -1
  591. package/dist/esm/table-column/text-base/cell-view/styles.js.map +1 -1
  592. package/dist/esm/table-column/text-base/cell-view/template.d.ts +1 -1
  593. package/dist/esm/table-column/text-base/cell-view/template.js +5 -3
  594. package/dist/esm/table-column/text-base/cell-view/template.js.map +1 -1
  595. package/dist/esm/table-column/text-base/index.d.ts +3 -0
  596. package/dist/esm/table-column/text-base/index.js +2 -1
  597. package/dist/esm/table-column/text-base/index.js.map +1 -1
  598. package/package.json +17 -14
@@ -0,0 +1,16 @@
1
+ import type { WaferMap } from '..';
2
+ import type { WaferMapValidity } from '../types';
3
+ /**
4
+ * Helper class for the nimble-wafer-map to validate that the wafer maps's grid dimensions
5
+ * configuration is valid and report which aspects of the configuration are valid or invalid.
6
+ */
7
+ export declare class WaferMapValidator {
8
+ private readonly wafermap;
9
+ private invalidGridDimensions;
10
+ private invalidDiesTableSchema;
11
+ constructor(wafermap: WaferMap);
12
+ getValidity(): WaferMapValidity;
13
+ isValid(): boolean;
14
+ validateGridDimensions(): boolean;
15
+ validateDiesTableSchema(): boolean;
16
+ }
@@ -0,0 +1,20 @@
1
+ import type { WaferMap } from '..';
2
+ /**
3
+ * ZoomHandler deals with user interactions and events like zooming
4
+ */
5
+ export declare class ZoomHandler {
6
+ private readonly wafermap;
7
+ private readonly scaleExtent;
8
+ private readonly minExtentPoint;
9
+ constructor(wafermap: WaferMap);
10
+ /**
11
+ * @internal
12
+ */
13
+ connect(): void;
14
+ /**
15
+ * @internal
16
+ */
17
+ disconnect(): void;
18
+ private createZoomBehavior;
19
+ private readonly onWheelMove;
20
+ }
@@ -0,0 +1 @@
1
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -0,0 +1,2 @@
1
+ import type { WaferMap } from '.';
2
+ export declare const template: import("@microsoft/fast-element").ViewTemplate<WaferMap<import("./types").WaferRequiredFields>, any>;
@@ -0,0 +1,73 @@
1
+ import type { Float64, Int32 } from 'apache-arrow';
2
+ export declare const WaferMapOriginLocation: {
3
+ readonly bottomLeft: "bottom-left";
4
+ readonly bottomRight: "bottom-right";
5
+ readonly topLeft: "top-left";
6
+ readonly topRight: "top-right";
7
+ };
8
+ export type WaferMapOriginLocation = (typeof WaferMapOriginLocation)[keyof typeof WaferMapOriginLocation];
9
+ export declare const WaferMapOrientation: {
10
+ readonly top: "top";
11
+ readonly bottom: "bottom";
12
+ readonly left: "left";
13
+ readonly right: "right";
14
+ };
15
+ export type WaferMapOrientation = (typeof WaferMapOrientation)[keyof typeof WaferMapOrientation];
16
+ export declare const HoverDieOpacity: {
17
+ readonly show: "show";
18
+ readonly hide: "hide";
19
+ };
20
+ export type HoverDieOpacity = (typeof HoverDieOpacity)[keyof typeof HoverDieOpacity];
21
+ export declare const WaferMapColorScaleMode: {
22
+ readonly linear: "linear";
23
+ readonly ordinal: "ordinal";
24
+ };
25
+ export type WaferMapColorScaleMode = (typeof WaferMapColorScaleMode)[keyof typeof WaferMapColorScaleMode];
26
+ export interface WaferMapDie {
27
+ value: string;
28
+ x: number;
29
+ y: number;
30
+ metadata?: unknown;
31
+ tags?: string[];
32
+ }
33
+ export interface HoverDie {
34
+ index: number;
35
+ x: number;
36
+ y: number;
37
+ }
38
+ export interface WaferMapColorScale {
39
+ colors: string[];
40
+ values: string[];
41
+ }
42
+ export interface Dimensions {
43
+ readonly width: number;
44
+ readonly height: number;
45
+ }
46
+ export interface Margin {
47
+ readonly top: number;
48
+ readonly right: number;
49
+ readonly bottom: number;
50
+ readonly left: number;
51
+ }
52
+ export interface DieRenderInfo {
53
+ readonly x: number;
54
+ readonly y: number;
55
+ readonly fillStyle: string;
56
+ readonly text: string;
57
+ }
58
+ export interface PointCoordinates {
59
+ readonly x: number;
60
+ readonly y: number;
61
+ }
62
+ export interface ValidityObject {
63
+ [key: string]: boolean;
64
+ }
65
+ export interface WaferMapValidity extends ValidityObject {
66
+ readonly invalidGridDimensions: boolean;
67
+ readonly invalidDiesTableSchema: boolean;
68
+ }
69
+ export type WaferRequiredFields = {
70
+ colIndex: Int32;
71
+ rowIndex: Int32;
72
+ value: Float64;
73
+ };
@@ -0,0 +1 @@
1
+ export declare const workerCode = "var MatrixRenderer = (function (exports) {\n 'use strict';\n\n /**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n const proxyMarker = Symbol(\"Comlink.proxy\");\n const createEndpoint = Symbol(\"Comlink.endpoint\");\n const releaseProxy = Symbol(\"Comlink.releaseProxy\");\n const finalizer = Symbol(\"Comlink.finalizer\");\n const throwMarker = Symbol(\"Comlink.thrown\");\n const isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n /**\n * Internal transfer handle to handle objects marked to proxy.\n */\n const proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n };\n /**\n * Internal transfer handler to handle thrown exceptions.\n */\n const throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n };\n /**\n * Allows customizing the serialization of certain values.\n */\n const transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n ]);\n function isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n }\n function expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n }\n function isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n }\n function closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n }\n function wrap(ep, target) {\n return createProxy(ep, [], target);\n }\n function throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n }\n function releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n }\n const proxyCounter = new WeakMap();\n const proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\n function registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n }\n function unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n }\n function createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously \u00AF\\_(\u30C4)_/\u00AF\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn\u2019t happen.\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n }\n function myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n }\n function processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n }\n const transferCache = new WeakMap();\n function transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n }\n function proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n }\n function toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n }\n function fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n }\n function requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n }\n function generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n }\n\n /**\n * MatrixRenderer class is meant to be used within a Web Worker context,\n * using Comlink to facilitate communication between the main thread and the worker.\n * The MatrixRenderer class manages a matrix of dies, once an instance of MatrixRenderer is created,\n * it is exposed to the main thread using Comlink's `expose` method.\n * This setup is used in the wafer-map component to perform heavy computational duties\n */\n class MatrixRenderer {\n constructor() {\n this.dieMatrix = Uint8Array.from([]);\n }\n emptyMatrix() {\n this.dieMatrix = Uint8Array.from([]);\n }\n updateMatrix(data) {\n this.dieMatrix = Uint8Array.from(data);\n }\n }\n expose(MatrixRenderer);\n\n exports.MatrixRenderer = MatrixRenderer;\n\n return exports;\n\n})({});\n";
@@ -199,7 +199,7 @@ export class TablePageObject {
199
199
  }
200
200
  async scrollToLastRowAsync() {
201
201
  const scrollElement = this.tableElement.viewport;
202
- scrollElement.scrollTop = scrollElement.scrollHeight;
202
+ scrollElement.scroll({ top: scrollElement.scrollHeight });
203
203
  await waitForUpdatesAsync();
204
204
  }
205
205
  getCellActionMenu(rowIndex, columnIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"table.pageobject.js","sourceRoot":"","sources":["../../../../src/table/testing/table.pageobject.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Checkbox } from '@microsoft/fast-foundation';\nimport { keyShift } from '@microsoft/fast-web-utilities';\nimport type { Table } from '..';\nimport type { TableHeader } from '../components/header';\nimport {\n TableColumnSortDirection,\n TableRecord,\n TableRowSelectionState\n} from '../types';\nimport { waitForUpdatesAsync } from '../../testing/async-helpers';\nimport type { MenuButton } from '../../menu-button';\nimport type { TableCell } from '../components/cell';\nimport type { TableGroupHeaderView } from '../../table-column/base/group-header-view';\nimport { TableCellView } from '../../table-column/base/cell-view';\nimport type { TableRow } from '../components/row';\nimport { Anchor, anchorTag } from '../../anchor';\nimport type { TableGroupRow } from '../components/group-row';\nimport type { Button } from '../../button';\nimport { Icon } from '../../icon-base';\nimport { Spinner, spinnerTag } from '../../spinner';\n\n/**\n * Summary information about a column that is sorted in the table for use in the `TablePageObject`.\n */\nexport interface SortedColumn {\n columnId?: string;\n sortDirection: TableColumnSortDirection;\n}\n\n/**\n * Page object for the `nimble-table` component to provide consistent ways\n * of querying and interacting with the component during tests.\n */\nexport class TablePageObject<T extends TableRecord> {\n public constructor(private readonly tableElement: Table<T>) {}\n\n public getRenderedHeaderCount(): number {\n const headers = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-header'\n )!;\n return headers.length;\n }\n\n public getRenderedCellCountForRow(rowIndex: number): number {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n return cells.length;\n }\n\n public getHeaderContent(columnIndex: number): Node | undefined {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return this.getHeaderContentElement(headers.item(columnIndex));\n }\n\n public getHeaderElement(columnIndex: number): TableHeader {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return headers.item(columnIndex);\n }\n\n public getHeaderTitle(columnIndex: number): string {\n const column = this.tableElement.columns[columnIndex];\n return (\n column?.shadowRoot!.firstElementChild?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToHeader(\n columnIndex: number,\n event: Event\n ): boolean | undefined {\n const column = this.tableElement.columns[columnIndex];\n return column?.shadowRoot!.firstElementChild?.dispatchEvent(event);\n }\n\n public getHeaderRenderedWidth(columnIndex: number): number {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return headers[columnIndex]!.getBoundingClientRect().width;\n }\n\n public async clickColumnHeader(\n columnIndex: number,\n shiftKeyDown = false\n ): Promise<void> {\n const clickEvent = new MouseEvent('click', {\n shiftKey: shiftKeyDown,\n bubbles: true\n } as MouseEventInit);\n this.getHeaderElement(columnIndex).dispatchEvent(clickEvent);\n await waitForUpdatesAsync();\n }\n\n public getRenderedRowCount(): number {\n return this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-row'\n ).length;\n }\n\n public getRenderedGroupRowCount(): number {\n return this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n ).length;\n }\n\n public getAllGroupRowsExpandedState(): boolean[] {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n return Array.from(groupRows).map(row => row.expanded);\n }\n\n public getAllDataRowsExpandedState(): boolean[] {\n const rows = this.tableElement.shadowRoot!.querySelectorAll('nimble-table-row');\n return Array.from(rows).map(row => row.expanded);\n }\n\n public getRenderedCellView(\n rowIndex: number,\n columnIndex: number\n ): TableCellView {\n const cell = this.getCell(rowIndex, columnIndex);\n const cellView = cell.shadowRoot!.firstElementChild;\n if (!(cellView instanceof TableCellView)) {\n throw new Error(\n 'Cell view not found in cell - ensure cellViewTag is set for column'\n );\n }\n return cellView as TableCellView;\n }\n\n public getRenderedCellViewById(\n recordId: string,\n columnId: string\n ): TableCellView {\n const cell = this.getCellById(recordId, columnId);\n const cellView = cell.shadowRoot!.firstElementChild;\n if (!(cellView instanceof TableCellView)) {\n throw new Error(\n 'Cell view not found in cell - ensure cellViewTag is set for column'\n );\n }\n return cellView as TableCellView;\n }\n\n public getRenderedCellTextContent(\n rowIndex: number,\n columnIndex: number\n ): string {\n return (\n this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.textContent?.trim() ?? ''\n );\n }\n\n public getRenderedCellAnchor(\n rowIndex: number,\n columnIndex: number\n ): Anchor {\n const anchor = this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector(anchorTag);\n if (!anchor) {\n throw new Error(\n `Anchor not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return anchor;\n }\n\n public getRenderedIconColumnCellIconSeverity(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (!content || !(content instanceof Icon)) {\n throw new Error(\n `Icon not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.severity ?? '';\n }\n\n public getRenderedIconColumnCellIconAriaLabel(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.getAttribute('aria-label') ?? '';\n }\n\n public getRenderedIconColumnCellIconTagName(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.tagName.toLocaleLowerCase();\n }\n\n public getRenderedIconColumnGroupHeaderIconTagName(\n groupRowIndex: number\n ): string {\n const content = this.getGroupRowHeaderView(groupRowIndex).shadowRoot!\n .firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at group header ${groupRowIndex}`\n );\n }\n return content.tagName.toLocaleLowerCase();\n }\n\n public getRenderedGroupHeaderTextContent(groupRowIndex: number): string {\n return (\n this.getGroupRowHeaderView(\n groupRowIndex\n ).shadowRoot!.textContent?.trim() ?? ''\n );\n }\n\n public getAllRenderedGroupHeaderTextContent(): string[] {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n return Array.from(groupRows).map((_, i) => {\n return this.getRenderedGroupHeaderTextContent(i);\n });\n }\n\n public getCellTitle(rowIndex: number, columnIndex: number): string {\n const cellView = this.getRenderedCellView(rowIndex, columnIndex);\n return (\n cellView.shadowRoot!.firstElementChild?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToCell(\n rowIndex: number,\n columnIndex: number,\n event: Event\n ): boolean | undefined {\n const cellView = this.getRenderedCellView(rowIndex, columnIndex);\n return cellView.shadowRoot!.firstElementChild?.dispatchEvent(event);\n }\n\n public getGroupHeaderTitle(groupRowIndex: number): string {\n const groupHeader = this.getGroupRowHeaderView(groupRowIndex);\n return (\n groupHeader\n .shadowRoot!.querySelector('span')\n ?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToGroupHeader(\n groupRowIndex: number,\n event: Event\n ): boolean | undefined {\n const groupHeader = this.getGroupRowHeaderView(groupRowIndex);\n return groupHeader\n .shadowRoot!.querySelector('span')\n ?.dispatchEvent(event);\n }\n\n public getRecordId(rowIndex: number): string | undefined {\n return this.getRow(rowIndex).recordId;\n }\n\n public getRowWidth(): number {\n const tableRowContainer = this.tableElement.shadowRoot!.querySelector(\n '.table-row-container'\n );\n return tableRowContainer!.scrollWidth;\n }\n\n public async sizeTableToGivenRowWidth(\n rowWidth: number,\n table: Table<T>\n ): Promise<void> {\n if (!table.$fastController.isConnected) {\n throw Error(\n 'The element must be connected before calling this method'\n );\n }\n\n table.style.width = `${\n rowWidth\n + table.headerRowActionContainer.getBoundingClientRect().width\n + table.virtualizer.headerContainerMarginRight\n }px`;\n await waitForUpdatesAsync();\n }\n\n public getCellRenderedWidth(rowIndex: number, columnIndex: number): number {\n const cell = this.getCell(rowIndex, columnIndex);\n const actualWidth = cell.getBoundingClientRect().width;\n // Round to one decimal place. This is to work around a bug in Chrome related to\n // fractional widths (e.g. '1fr') in grid layouts that results in some numerical\n // precision issues. See: https://bugs.chromium.org/p/chromium/issues/detail?id=1515685\n return Math.round(actualWidth * 10) / 10;\n }\n\n public getTotalCellRenderedWidth(): number {\n const row = this.getRow(0);\n const cells = row?.shadowRoot?.querySelectorAll('nimble-table-cell');\n return Array.from(cells!).reduce((p, c) => {\n return p + c.getBoundingClientRect().width;\n }, 0);\n }\n\n public async scrollToLastRowAsync(): Promise<void> {\n const scrollElement = this.tableElement.viewport;\n scrollElement.scrollTop = scrollElement.scrollHeight;\n await waitForUpdatesAsync();\n }\n\n public getCellActionMenu(\n rowIndex: number,\n columnIndex: number\n ): MenuButton | null {\n return this.getCell(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector<MenuButton>('nimble-menu-button');\n }\n\n public async clickCellActionMenu(\n rowIndex: number,\n columnIndex: number\n ): Promise<void> {\n this.setRowHoverState(rowIndex, true);\n await waitForUpdatesAsync();\n\n const menuButton = this.getCellActionMenu(rowIndex, columnIndex);\n if (!menuButton) {\n throw new Error('Cannot click on a non-visible action menu');\n }\n\n menuButton.toggleButton!.control.click();\n }\n\n public isCellActionMenuVisible(\n rowIndex: number,\n columnIndex: number\n ): boolean {\n const actionMenu = this.getCellActionMenu(rowIndex, columnIndex);\n if (!actionMenu) {\n return false;\n }\n\n return window.getComputedStyle(actionMenu).display !== 'none';\n }\n\n public setRowHoverState(rowIndex: number, hover: boolean): void {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n if (hover) {\n cells.forEach(cell => cell.style.setProperty(\n '--ni-private-table-cell-action-menu-display',\n 'block'\n ));\n } else {\n cells.forEach(cell => cell.style.removeProperty(\n '--ni-private-table-cell-action-menu-display'\n ));\n }\n }\n\n public async clickGroupRow(groupRowIndex: number): Promise<void> {\n const groupRow = this.getGroupRow(groupRowIndex);\n groupRow.click();\n await waitForUpdatesAsync();\n }\n\n public async clickRow(\n rowIndex: number,\n modifiers: { shiftKey?: boolean, ctrlKey?: boolean } = {}\n ): Promise<void> {\n const row = this.getRow(rowIndex);\n const event = new MouseEvent('click', modifiers);\n row.dispatchEvent(event);\n await waitForUpdatesAsync();\n }\n\n public getIsRowSelectable(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n return row.selectable;\n }\n\n public getIsRowSelected(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n return row.selected;\n }\n\n public toggleGroupRowExpandedState(groupRowIndex: number): void {\n this.getGroupRow(groupRowIndex).click();\n }\n\n public clickCollapseAllButton(): void {\n this.getCollapseAllButton()?.click();\n }\n\n public clickDataRowExpandCollapseButton(rowIndex: number): void {\n const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);\n if (!expandCollapseButton) {\n throw new Error(\n 'The provided row index has no visible expand collapse button associated with it.'\n );\n }\n\n expandCollapseButton.click();\n }\n\n public isCollapseAllButtonVisible(): boolean {\n const collapseButton = this.getCollapseAllButton();\n if (collapseButton) {\n return (\n window.getComputedStyle(collapseButton).visibility === 'visible'\n );\n }\n return false;\n }\n\n public isDataRowExpandCollapseButtonVisible(rowIndex: number): boolean {\n const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);\n return expandCollapseButton !== null;\n }\n\n public isDataRowLoadingSpinnerVisible(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n const spinner = row.shadowRoot!.querySelector(spinnerTag);\n return spinner !== null;\n }\n\n public isTableSelectionCheckboxVisible(): boolean {\n const checkbox = this.getSelectionCheckboxForTable();\n return this.isCheckboxVisible(checkbox);\n }\n\n public getTableSelectionState(): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForTable();\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickTableSelectionCheckbox(): void {\n const checkbox = this.getSelectionCheckboxForTable();\n checkbox!.click();\n }\n\n public isRowSelectionCheckboxVisible(rowIndex: number): boolean {\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n return this.isCheckboxVisible(checkbox);\n }\n\n public getRowSelectionState(rowIndex: number): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickRowSelectionCheckbox(rowIndex: number, shiftKey = false): void {\n if (shiftKey) {\n const shiftKeyDownEvent = new KeyboardEvent('keydown', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyDownEvent);\n }\n\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n checkbox!.click();\n\n if (shiftKey) {\n const shiftKeyUpEvent = new KeyboardEvent('keyup', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyUpEvent);\n }\n }\n\n public getGroupRowSelectionState(\n groupRowIndex: number\n ): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForGroupRow(groupRowIndex);\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickGroupRowSelectionCheckbox(\n groupRowIndex: number,\n shiftKey = false\n ): void {\n if (shiftKey) {\n const shiftKeyDownEvent = new KeyboardEvent('keydown', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyDownEvent);\n }\n\n const checkbox = this.getSelectionCheckboxForGroupRow(groupRowIndex);\n checkbox!.click();\n\n if (shiftKey) {\n const shiftKeyUpEvent = new KeyboardEvent('keyup', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyUpEvent);\n }\n }\n\n /**\n * @param columnIndex The index of the column to the left of a divider being dragged. Thus, this\n * can not be given a value representing the last visible column index.\n * @param deltas The series of mouse movements in the x-direction while sizing a column.\n */\n public dragSizeColumnByRightDivider(\n columnIndex: number,\n deltas: readonly number[]\n ): void {\n const divider = this.getColumnRightDivider(columnIndex);\n if (!divider) {\n throw new Error(\n 'The provided column index has no right divider associated with it.'\n );\n }\n const dividerRect = divider.getBoundingClientRect();\n let currentMouseX = (dividerRect.x + dividerRect.width) / 2;\n const mouseDownEvent = new MouseEvent('mousedown', {\n clientX: currentMouseX,\n clientY: (dividerRect.y + dividerRect.height) / 2\n });\n divider.dispatchEvent(mouseDownEvent);\n\n for (const delta of deltas) {\n currentMouseX += delta;\n const mouseMoveEvent = new MouseEvent('mousemove', {\n clientX: currentMouseX\n });\n document.dispatchEvent(mouseMoveEvent);\n }\n\n const mouseUpEvent = new MouseEvent('mouseup');\n document.dispatchEvent(mouseUpEvent);\n }\n\n /**\n * @param columnIndex The index of the column to the right of a divider being dragged. Thus, this\n * value must be greater than 0 and less than the total number of visible columns.\n * @param deltas The series of mouse movements in the x-direction while sizing a column.\n */\n public dragSizeColumnByLeftDivider(\n columnIndex: number,\n deltas: readonly number[]\n ): void {\n const divider = this.getColumnLeftDivider(columnIndex);\n if (!divider) {\n throw new Error(\n 'The provided column index has no left divider associated with it.'\n );\n }\n const dividerRect = divider.getBoundingClientRect();\n let currentMouseX = (dividerRect.x + dividerRect.width) / 2;\n const mouseDownEvent = new MouseEvent('mousedown', {\n clientX: currentMouseX,\n clientY: (dividerRect.y + dividerRect.height) / 2\n });\n divider.dispatchEvent(mouseDownEvent);\n\n for (const delta of deltas) {\n currentMouseX += delta;\n const mouseMoveEvent = new MouseEvent('mousemove', {\n clientX: currentMouseX\n });\n document.dispatchEvent(mouseMoveEvent);\n }\n\n const mouseUpEvent = new MouseEvent('mouseup');\n document.dispatchEvent(mouseUpEvent);\n }\n\n public getColumnRightDivider(index: number): HTMLElement | null {\n const headerContainers = this.tableElement.shadowRoot!.querySelectorAll('.header-container');\n if (index < 0 || index >= headerContainers.length) {\n throw new Error(\n 'Invalid column index. Index must be greater than or equal to 0 and less than the number of visible columns.'\n );\n }\n\n return headerContainers[index]!.querySelector('.column-divider.right');\n }\n\n public getColumnLeftDivider(index: number): HTMLElement | null {\n const headerContainers = this.tableElement.shadowRoot!.querySelectorAll('.header-container');\n if (index < 0 || index >= headerContainers.length) {\n throw new Error(\n 'Invalid column index. Index must be greater than or equal to 0 and less than the number of visible columns.'\n );\n }\n\n return headerContainers[index]!.querySelector('.column-divider.left');\n }\n\n public isVerticalScrollbarVisible(): boolean {\n return (\n this.tableElement.viewport.clientHeight\n < this.tableElement.viewport.scrollHeight\n );\n }\n\n public isHorizontalScrollbarVisible(): boolean {\n return (\n this.tableElement.viewport.clientWidth\n < this.tableElement.viewport.scrollWidth\n );\n }\n\n public getSortedColumns(): SortedColumn[] {\n return this.tableElement.columns\n .filter(\n x => !x.sortingDisabled\n && typeof x.columnInternals.currentSortIndex === 'number'\n && x.columnInternals.currentSortDirection\n !== TableColumnSortDirection.none\n )\n .sort(\n (a, b) => a.columnInternals.currentSortIndex!\n - b.columnInternals.currentSortIndex!\n )\n .map(x => {\n return {\n columnId: x.columnId,\n sortDirection: x.columnInternals.currentSortDirection\n };\n });\n }\n\n public getGroupedColumns(): string[] {\n return this.tableElement.columns\n .filter(\n x => !x.columnInternals.groupingDisabled\n && typeof x.columnInternals.groupIndex === 'number'\n )\n .sort(\n (a, b) => a.columnInternals.groupIndex!\n - b.columnInternals.groupIndex!\n )\n .map(x => x.columnId ?? '');\n }\n\n public getChildRowCountForGroup(groupRowIndex: number): number {\n const groupRow = this.getGroupRow(groupRowIndex);\n const countDisplayString = groupRow\n .shadowRoot!.querySelector('.group-row-child-count')!\n .textContent!.trim();\n // Remove the parenthesis to get just the number as a string\n const countString = countDisplayString.substring(\n 1,\n countDisplayString.length - 1\n );\n return Number(countString);\n }\n\n private getRow(rowIndex: number): TableRow {\n const rows = this.tableElement.shadowRoot!.querySelectorAll('nimble-table-row');\n if (rowIndex >= rows.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered rows'\n );\n }\n\n return rows.item(rowIndex);\n }\n\n private getRowById(recordId: string): TableRow {\n const row: TableRow | null = this.tableElement.shadowRoot!.querySelector(\n `nimble-table-row[record-id=\"${CSS.escape(recordId)}\"]`\n );\n if (!row) {\n throw new Error(\n 'Row with given id was not found. It may not be scrolled into view.'\n );\n }\n\n return row;\n }\n\n private getCell(rowIndex: number, columnIndex: number): TableCell {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n if (columnIndex >= cells.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return cells.item(columnIndex);\n }\n\n private getCellById(recordId: string, columnId: string): TableCell {\n const row = this.getRowById(recordId);\n const cell: TableCell | null = row.shadowRoot!.querySelector(\n `nimble-table-cell[column-id=\"${CSS.escape(columnId)}\"]`\n );\n\n if (!cell) {\n throw new Error('Cell with given columnId was not found in row');\n }\n\n return cell;\n }\n\n private getCollapseAllButton(): Button | null {\n return this.tableElement.shadowRoot!.querySelector<Button>(\n '.collapse-all-button'\n );\n }\n\n private getExpandCollapseButtonForRow(rowIndex: number): Button | null {\n const row = this.getRow(rowIndex);\n const rowExpandCollapseButton = row.shadowRoot!.querySelector<Button>(\n '.expand-collapse-button'\n );\n if (!rowExpandCollapseButton) {\n const firstCell = this.getCell(rowIndex, 0);\n return firstCell?.shadowRoot!.querySelector<Button>(\n '.expand-collapse-button'\n );\n }\n\n return rowExpandCollapseButton;\n }\n\n private getSelectionCheckboxForRow(rowIndex: number): Checkbox | null {\n const row = this.getRow(rowIndex);\n return row.shadowRoot!.querySelector('.selection-checkbox');\n }\n\n private getSelectionCheckboxForGroupRow(\n groupRowIndex: number\n ): Checkbox | null {\n const groupRow = this.getGroupRow(groupRowIndex);\n return groupRow.shadowRoot!.querySelector('.selection-checkbox');\n }\n\n private getSelectionCheckboxForTable(): Checkbox | null {\n return this.tableElement.shadowRoot!.querySelector<Checkbox>(\n '.header-row .selection-checkbox'\n );\n }\n\n private isCheckboxVisible(checkbox: Checkbox | null): boolean {\n return !!checkbox && !checkbox.hidden;\n }\n\n private getSelectionStateOfCheckbox(\n checkbox: Checkbox | null\n ): TableRowSelectionState {\n if (!checkbox) {\n throw new Error('Cannot get selection state from null checkbox');\n }\n\n if (checkbox.indeterminate) {\n return TableRowSelectionState.partiallySelected;\n }\n if (checkbox.checked) {\n return TableRowSelectionState.selected;\n }\n return TableRowSelectionState.notSelected;\n }\n\n private getGroupRow(groupRowIndex: number): TableGroupRow {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n if (groupRowIndex >= groupRows.length) {\n throw new Error(\n 'Attempting to index past the total number of group rows'\n );\n }\n\n return groupRows.item(groupRowIndex);\n }\n\n private getGroupRowHeaderView(groupRowIndex: number): TableGroupHeaderView {\n const groupRow = this.getGroupRow(groupRowIndex);\n return groupRow.shadowRoot!.querySelector('.group-header-view')!;\n }\n\n private getHeaderContentElement(\n element: HTMLElement | HTMLSlotElement\n ): Node | undefined {\n const nodeChildren = this.isSlotElement(element)\n ? element.assignedNodes()\n : element.shadowRoot?.childNodes;\n if (!nodeChildren) {\n return undefined;\n }\n\n const slotElement = Array.from(nodeChildren)?.find<HTMLSlotElement>(\n this.isSlotElement\n );\n if (slotElement) {\n return this.getHeaderContentElement(slotElement);\n }\n\n return nodeChildren[0]; // header content should be first item in final slot element\n }\n\n private readonly isSlotElement = (\n element: Node | undefined\n ): element is HTMLSlotElement => {\n return element?.nodeName === 'SLOT' ?? false;\n };\n}\n"]}
1
+ {"version":3,"file":"table.pageobject.js","sourceRoot":"","sources":["../../../../src/table/testing/table.pageobject.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Checkbox } from '@microsoft/fast-foundation';\nimport { keyShift } from '@microsoft/fast-web-utilities';\nimport type { Table } from '..';\nimport type { TableHeader } from '../components/header';\nimport {\n TableColumnSortDirection,\n TableRecord,\n TableRowSelectionState\n} from '../types';\nimport { waitForUpdatesAsync } from '../../testing/async-helpers';\nimport type { MenuButton } from '../../menu-button';\nimport type { TableCell } from '../components/cell';\nimport type { TableGroupHeaderView } from '../../table-column/base/group-header-view';\nimport { TableCellView } from '../../table-column/base/cell-view';\nimport type { TableRow } from '../components/row';\nimport { Anchor, anchorTag } from '../../anchor';\nimport type { TableGroupRow } from '../components/group-row';\nimport type { Button } from '../../button';\nimport { Icon } from '../../icon-base';\nimport { Spinner, spinnerTag } from '../../spinner';\n\n/**\n * Summary information about a column that is sorted in the table for use in the `TablePageObject`.\n */\nexport interface SortedColumn {\n columnId?: string;\n sortDirection: TableColumnSortDirection;\n}\n\n/**\n * Page object for the `nimble-table` component to provide consistent ways\n * of querying and interacting with the component during tests.\n */\nexport class TablePageObject<T extends TableRecord> {\n public constructor(private readonly tableElement: Table<T>) {}\n\n public getRenderedHeaderCount(): number {\n const headers = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-header'\n )!;\n return headers.length;\n }\n\n public getRenderedCellCountForRow(rowIndex: number): number {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n return cells.length;\n }\n\n public getHeaderContent(columnIndex: number): Node | undefined {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return this.getHeaderContentElement(headers.item(columnIndex));\n }\n\n public getHeaderElement(columnIndex: number): TableHeader {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return headers.item(columnIndex);\n }\n\n public getHeaderTitle(columnIndex: number): string {\n const column = this.tableElement.columns[columnIndex];\n return (\n column?.shadowRoot!.firstElementChild?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToHeader(\n columnIndex: number,\n event: Event\n ): boolean | undefined {\n const column = this.tableElement.columns[columnIndex];\n return column?.shadowRoot!.firstElementChild?.dispatchEvent(event);\n }\n\n public getHeaderRenderedWidth(columnIndex: number): number {\n const headers = this.tableElement.shadowRoot!.querySelectorAll<TableHeader>(\n 'nimble-table-header'\n )!;\n if (columnIndex >= headers.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return headers[columnIndex]!.getBoundingClientRect().width;\n }\n\n public async clickColumnHeader(\n columnIndex: number,\n shiftKeyDown = false\n ): Promise<void> {\n const clickEvent = new MouseEvent('click', {\n shiftKey: shiftKeyDown,\n bubbles: true\n } as MouseEventInit);\n this.getHeaderElement(columnIndex).dispatchEvent(clickEvent);\n await waitForUpdatesAsync();\n }\n\n public getRenderedRowCount(): number {\n return this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-row'\n ).length;\n }\n\n public getRenderedGroupRowCount(): number {\n return this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n ).length;\n }\n\n public getAllGroupRowsExpandedState(): boolean[] {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n return Array.from(groupRows).map(row => row.expanded);\n }\n\n public getAllDataRowsExpandedState(): boolean[] {\n const rows = this.tableElement.shadowRoot!.querySelectorAll('nimble-table-row');\n return Array.from(rows).map(row => row.expanded);\n }\n\n public getRenderedCellView(\n rowIndex: number,\n columnIndex: number\n ): TableCellView {\n const cell = this.getCell(rowIndex, columnIndex);\n const cellView = cell.shadowRoot!.firstElementChild;\n if (!(cellView instanceof TableCellView)) {\n throw new Error(\n 'Cell view not found in cell - ensure cellViewTag is set for column'\n );\n }\n return cellView as TableCellView;\n }\n\n public getRenderedCellViewById(\n recordId: string,\n columnId: string\n ): TableCellView {\n const cell = this.getCellById(recordId, columnId);\n const cellView = cell.shadowRoot!.firstElementChild;\n if (!(cellView instanceof TableCellView)) {\n throw new Error(\n 'Cell view not found in cell - ensure cellViewTag is set for column'\n );\n }\n return cellView as TableCellView;\n }\n\n public getRenderedCellTextContent(\n rowIndex: number,\n columnIndex: number\n ): string {\n return (\n this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.textContent?.trim() ?? ''\n );\n }\n\n public getRenderedCellAnchor(\n rowIndex: number,\n columnIndex: number\n ): Anchor {\n const anchor = this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector(anchorTag);\n if (!anchor) {\n throw new Error(\n `Anchor not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return anchor;\n }\n\n public getRenderedIconColumnCellIconSeverity(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (!content || !(content instanceof Icon)) {\n throw new Error(\n `Icon not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.severity ?? '';\n }\n\n public getRenderedIconColumnCellIconAriaLabel(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.getAttribute('aria-label') ?? '';\n }\n\n public getRenderedIconColumnCellIconTagName(\n rowIndex: number,\n columnIndex: number\n ): string {\n const content = this.getRenderedCellView(rowIndex, columnIndex)\n .shadowRoot!.firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return content.tagName.toLocaleLowerCase();\n }\n\n public getRenderedIconColumnGroupHeaderIconTagName(\n groupRowIndex: number\n ): string {\n const content = this.getGroupRowHeaderView(groupRowIndex).shadowRoot!\n .firstElementChild;\n if (\n !content\n || !(content instanceof Icon || content instanceof Spinner)\n ) {\n throw new Error(\n `Icon or Spinner not found at group header ${groupRowIndex}`\n );\n }\n return content.tagName.toLocaleLowerCase();\n }\n\n public getRenderedGroupHeaderTextContent(groupRowIndex: number): string {\n return (\n this.getGroupRowHeaderView(\n groupRowIndex\n ).shadowRoot!.textContent?.trim() ?? ''\n );\n }\n\n public getAllRenderedGroupHeaderTextContent(): string[] {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n return Array.from(groupRows).map((_, i) => {\n return this.getRenderedGroupHeaderTextContent(i);\n });\n }\n\n public getCellTitle(rowIndex: number, columnIndex: number): string {\n const cellView = this.getRenderedCellView(rowIndex, columnIndex);\n return (\n cellView.shadowRoot!.firstElementChild?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToCell(\n rowIndex: number,\n columnIndex: number,\n event: Event\n ): boolean | undefined {\n const cellView = this.getRenderedCellView(rowIndex, columnIndex);\n return cellView.shadowRoot!.firstElementChild?.dispatchEvent(event);\n }\n\n public getGroupHeaderTitle(groupRowIndex: number): string {\n const groupHeader = this.getGroupRowHeaderView(groupRowIndex);\n return (\n groupHeader\n .shadowRoot!.querySelector('span')\n ?.getAttribute('title') ?? ''\n );\n }\n\n public dispatchEventToGroupHeader(\n groupRowIndex: number,\n event: Event\n ): boolean | undefined {\n const groupHeader = this.getGroupRowHeaderView(groupRowIndex);\n return groupHeader\n .shadowRoot!.querySelector('span')\n ?.dispatchEvent(event);\n }\n\n public getRecordId(rowIndex: number): string | undefined {\n return this.getRow(rowIndex).recordId;\n }\n\n public getRowWidth(): number {\n const tableRowContainer = this.tableElement.shadowRoot!.querySelector(\n '.table-row-container'\n );\n return tableRowContainer!.scrollWidth;\n }\n\n public async sizeTableToGivenRowWidth(\n rowWidth: number,\n table: Table<T>\n ): Promise<void> {\n if (!table.$fastController.isConnected) {\n throw Error(\n 'The element must be connected before calling this method'\n );\n }\n\n table.style.width = `${\n rowWidth\n + table.headerRowActionContainer.getBoundingClientRect().width\n + table.virtualizer.headerContainerMarginRight\n }px`;\n await waitForUpdatesAsync();\n }\n\n public getCellRenderedWidth(rowIndex: number, columnIndex: number): number {\n const cell = this.getCell(rowIndex, columnIndex);\n const actualWidth = cell.getBoundingClientRect().width;\n // Round to one decimal place. This is to work around a bug in Chrome related to\n // fractional widths (e.g. '1fr') in grid layouts that results in some numerical\n // precision issues. See: https://bugs.chromium.org/p/chromium/issues/detail?id=1515685\n return Math.round(actualWidth * 10) / 10;\n }\n\n public getTotalCellRenderedWidth(): number {\n const row = this.getRow(0);\n const cells = row?.shadowRoot?.querySelectorAll('nimble-table-cell');\n return Array.from(cells!).reduce((p, c) => {\n return p + c.getBoundingClientRect().width;\n }, 0);\n }\n\n public async scrollToLastRowAsync(): Promise<void> {\n const scrollElement = this.tableElement.viewport;\n scrollElement.scroll({ top: scrollElement.scrollHeight });\n await waitForUpdatesAsync();\n }\n\n public getCellActionMenu(\n rowIndex: number,\n columnIndex: number\n ): MenuButton | null {\n return this.getCell(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector<MenuButton>('nimble-menu-button');\n }\n\n public async clickCellActionMenu(\n rowIndex: number,\n columnIndex: number\n ): Promise<void> {\n this.setRowHoverState(rowIndex, true);\n await waitForUpdatesAsync();\n\n const menuButton = this.getCellActionMenu(rowIndex, columnIndex);\n if (!menuButton) {\n throw new Error('Cannot click on a non-visible action menu');\n }\n\n menuButton.toggleButton!.control.click();\n }\n\n public isCellActionMenuVisible(\n rowIndex: number,\n columnIndex: number\n ): boolean {\n const actionMenu = this.getCellActionMenu(rowIndex, columnIndex);\n if (!actionMenu) {\n return false;\n }\n\n return window.getComputedStyle(actionMenu).display !== 'none';\n }\n\n public setRowHoverState(rowIndex: number, hover: boolean): void {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n if (hover) {\n cells.forEach(cell => cell.style.setProperty(\n '--ni-private-table-cell-action-menu-display',\n 'block'\n ));\n } else {\n cells.forEach(cell => cell.style.removeProperty(\n '--ni-private-table-cell-action-menu-display'\n ));\n }\n }\n\n public async clickGroupRow(groupRowIndex: number): Promise<void> {\n const groupRow = this.getGroupRow(groupRowIndex);\n groupRow.click();\n await waitForUpdatesAsync();\n }\n\n public async clickRow(\n rowIndex: number,\n modifiers: { shiftKey?: boolean, ctrlKey?: boolean } = {}\n ): Promise<void> {\n const row = this.getRow(rowIndex);\n const event = new MouseEvent('click', modifiers);\n row.dispatchEvent(event);\n await waitForUpdatesAsync();\n }\n\n public getIsRowSelectable(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n return row.selectable;\n }\n\n public getIsRowSelected(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n return row.selected;\n }\n\n public toggleGroupRowExpandedState(groupRowIndex: number): void {\n this.getGroupRow(groupRowIndex).click();\n }\n\n public clickCollapseAllButton(): void {\n this.getCollapseAllButton()?.click();\n }\n\n public clickDataRowExpandCollapseButton(rowIndex: number): void {\n const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);\n if (!expandCollapseButton) {\n throw new Error(\n 'The provided row index has no visible expand collapse button associated with it.'\n );\n }\n\n expandCollapseButton.click();\n }\n\n public isCollapseAllButtonVisible(): boolean {\n const collapseButton = this.getCollapseAllButton();\n if (collapseButton) {\n return (\n window.getComputedStyle(collapseButton).visibility === 'visible'\n );\n }\n return false;\n }\n\n public isDataRowExpandCollapseButtonVisible(rowIndex: number): boolean {\n const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);\n return expandCollapseButton !== null;\n }\n\n public isDataRowLoadingSpinnerVisible(rowIndex: number): boolean {\n const row = this.getRow(rowIndex);\n const spinner = row.shadowRoot!.querySelector(spinnerTag);\n return spinner !== null;\n }\n\n public isTableSelectionCheckboxVisible(): boolean {\n const checkbox = this.getSelectionCheckboxForTable();\n return this.isCheckboxVisible(checkbox);\n }\n\n public getTableSelectionState(): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForTable();\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickTableSelectionCheckbox(): void {\n const checkbox = this.getSelectionCheckboxForTable();\n checkbox!.click();\n }\n\n public isRowSelectionCheckboxVisible(rowIndex: number): boolean {\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n return this.isCheckboxVisible(checkbox);\n }\n\n public getRowSelectionState(rowIndex: number): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickRowSelectionCheckbox(rowIndex: number, shiftKey = false): void {\n if (shiftKey) {\n const shiftKeyDownEvent = new KeyboardEvent('keydown', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyDownEvent);\n }\n\n const checkbox = this.getSelectionCheckboxForRow(rowIndex);\n checkbox!.click();\n\n if (shiftKey) {\n const shiftKeyUpEvent = new KeyboardEvent('keyup', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyUpEvent);\n }\n }\n\n public getGroupRowSelectionState(\n groupRowIndex: number\n ): TableRowSelectionState {\n const checkbox = this.getSelectionCheckboxForGroupRow(groupRowIndex);\n return this.getSelectionStateOfCheckbox(checkbox);\n }\n\n public clickGroupRowSelectionCheckbox(\n groupRowIndex: number,\n shiftKey = false\n ): void {\n if (shiftKey) {\n const shiftKeyDownEvent = new KeyboardEvent('keydown', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyDownEvent);\n }\n\n const checkbox = this.getSelectionCheckboxForGroupRow(groupRowIndex);\n checkbox!.click();\n\n if (shiftKey) {\n const shiftKeyUpEvent = new KeyboardEvent('keyup', {\n key: keyShift\n } as KeyboardEventInit);\n document.dispatchEvent(shiftKeyUpEvent);\n }\n }\n\n /**\n * @param columnIndex The index of the column to the left of a divider being dragged. Thus, this\n * can not be given a value representing the last visible column index.\n * @param deltas The series of mouse movements in the x-direction while sizing a column.\n */\n public dragSizeColumnByRightDivider(\n columnIndex: number,\n deltas: readonly number[]\n ): void {\n const divider = this.getColumnRightDivider(columnIndex);\n if (!divider) {\n throw new Error(\n 'The provided column index has no right divider associated with it.'\n );\n }\n const dividerRect = divider.getBoundingClientRect();\n let currentMouseX = (dividerRect.x + dividerRect.width) / 2;\n const mouseDownEvent = new MouseEvent('mousedown', {\n clientX: currentMouseX,\n clientY: (dividerRect.y + dividerRect.height) / 2\n });\n divider.dispatchEvent(mouseDownEvent);\n\n for (const delta of deltas) {\n currentMouseX += delta;\n const mouseMoveEvent = new MouseEvent('mousemove', {\n clientX: currentMouseX\n });\n document.dispatchEvent(mouseMoveEvent);\n }\n\n const mouseUpEvent = new MouseEvent('mouseup');\n document.dispatchEvent(mouseUpEvent);\n }\n\n /**\n * @param columnIndex The index of the column to the right of a divider being dragged. Thus, this\n * value must be greater than 0 and less than the total number of visible columns.\n * @param deltas The series of mouse movements in the x-direction while sizing a column.\n */\n public dragSizeColumnByLeftDivider(\n columnIndex: number,\n deltas: readonly number[]\n ): void {\n const divider = this.getColumnLeftDivider(columnIndex);\n if (!divider) {\n throw new Error(\n 'The provided column index has no left divider associated with it.'\n );\n }\n const dividerRect = divider.getBoundingClientRect();\n let currentMouseX = (dividerRect.x + dividerRect.width) / 2;\n const mouseDownEvent = new MouseEvent('mousedown', {\n clientX: currentMouseX,\n clientY: (dividerRect.y + dividerRect.height) / 2\n });\n divider.dispatchEvent(mouseDownEvent);\n\n for (const delta of deltas) {\n currentMouseX += delta;\n const mouseMoveEvent = new MouseEvent('mousemove', {\n clientX: currentMouseX\n });\n document.dispatchEvent(mouseMoveEvent);\n }\n\n const mouseUpEvent = new MouseEvent('mouseup');\n document.dispatchEvent(mouseUpEvent);\n }\n\n public getColumnRightDivider(index: number): HTMLElement | null {\n const headerContainers = this.tableElement.shadowRoot!.querySelectorAll('.header-container');\n if (index < 0 || index >= headerContainers.length) {\n throw new Error(\n 'Invalid column index. Index must be greater than or equal to 0 and less than the number of visible columns.'\n );\n }\n\n return headerContainers[index]!.querySelector('.column-divider.right');\n }\n\n public getColumnLeftDivider(index: number): HTMLElement | null {\n const headerContainers = this.tableElement.shadowRoot!.querySelectorAll('.header-container');\n if (index < 0 || index >= headerContainers.length) {\n throw new Error(\n 'Invalid column index. Index must be greater than or equal to 0 and less than the number of visible columns.'\n );\n }\n\n return headerContainers[index]!.querySelector('.column-divider.left');\n }\n\n public isVerticalScrollbarVisible(): boolean {\n return (\n this.tableElement.viewport.clientHeight\n < this.tableElement.viewport.scrollHeight\n );\n }\n\n public isHorizontalScrollbarVisible(): boolean {\n return (\n this.tableElement.viewport.clientWidth\n < this.tableElement.viewport.scrollWidth\n );\n }\n\n public getSortedColumns(): SortedColumn[] {\n return this.tableElement.columns\n .filter(\n x => !x.sortingDisabled\n && typeof x.columnInternals.currentSortIndex === 'number'\n && x.columnInternals.currentSortDirection\n !== TableColumnSortDirection.none\n )\n .sort(\n (a, b) => a.columnInternals.currentSortIndex!\n - b.columnInternals.currentSortIndex!\n )\n .map(x => {\n return {\n columnId: x.columnId,\n sortDirection: x.columnInternals.currentSortDirection\n };\n });\n }\n\n public getGroupedColumns(): string[] {\n return this.tableElement.columns\n .filter(\n x => !x.columnInternals.groupingDisabled\n && typeof x.columnInternals.groupIndex === 'number'\n )\n .sort(\n (a, b) => a.columnInternals.groupIndex!\n - b.columnInternals.groupIndex!\n )\n .map(x => x.columnId ?? '');\n }\n\n public getChildRowCountForGroup(groupRowIndex: number): number {\n const groupRow = this.getGroupRow(groupRowIndex);\n const countDisplayString = groupRow\n .shadowRoot!.querySelector('.group-row-child-count')!\n .textContent!.trim();\n // Remove the parenthesis to get just the number as a string\n const countString = countDisplayString.substring(\n 1,\n countDisplayString.length - 1\n );\n return Number(countString);\n }\n\n private getRow(rowIndex: number): TableRow {\n const rows = this.tableElement.shadowRoot!.querySelectorAll('nimble-table-row');\n if (rowIndex >= rows.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered rows'\n );\n }\n\n return rows.item(rowIndex);\n }\n\n private getRowById(recordId: string): TableRow {\n const row: TableRow | null = this.tableElement.shadowRoot!.querySelector(\n `nimble-table-row[record-id=\"${CSS.escape(recordId)}\"]`\n );\n if (!row) {\n throw new Error(\n 'Row with given id was not found. It may not be scrolled into view.'\n );\n }\n\n return row;\n }\n\n private getCell(rowIndex: number, columnIndex: number): TableCell {\n const row = this.getRow(rowIndex);\n const cells = row.shadowRoot!.querySelectorAll('nimble-table-cell');\n if (columnIndex >= cells.length) {\n throw new Error(\n 'Attempting to index past the total number of rendered columns'\n );\n }\n\n return cells.item(columnIndex);\n }\n\n private getCellById(recordId: string, columnId: string): TableCell {\n const row = this.getRowById(recordId);\n const cell: TableCell | null = row.shadowRoot!.querySelector(\n `nimble-table-cell[column-id=\"${CSS.escape(columnId)}\"]`\n );\n\n if (!cell) {\n throw new Error('Cell with given columnId was not found in row');\n }\n\n return cell;\n }\n\n private getCollapseAllButton(): Button | null {\n return this.tableElement.shadowRoot!.querySelector<Button>(\n '.collapse-all-button'\n );\n }\n\n private getExpandCollapseButtonForRow(rowIndex: number): Button | null {\n const row = this.getRow(rowIndex);\n const rowExpandCollapseButton = row.shadowRoot!.querySelector<Button>(\n '.expand-collapse-button'\n );\n if (!rowExpandCollapseButton) {\n const firstCell = this.getCell(rowIndex, 0);\n return firstCell?.shadowRoot!.querySelector<Button>(\n '.expand-collapse-button'\n );\n }\n\n return rowExpandCollapseButton;\n }\n\n private getSelectionCheckboxForRow(rowIndex: number): Checkbox | null {\n const row = this.getRow(rowIndex);\n return row.shadowRoot!.querySelector('.selection-checkbox');\n }\n\n private getSelectionCheckboxForGroupRow(\n groupRowIndex: number\n ): Checkbox | null {\n const groupRow = this.getGroupRow(groupRowIndex);\n return groupRow.shadowRoot!.querySelector('.selection-checkbox');\n }\n\n private getSelectionCheckboxForTable(): Checkbox | null {\n return this.tableElement.shadowRoot!.querySelector<Checkbox>(\n '.header-row .selection-checkbox'\n );\n }\n\n private isCheckboxVisible(checkbox: Checkbox | null): boolean {\n return !!checkbox && !checkbox.hidden;\n }\n\n private getSelectionStateOfCheckbox(\n checkbox: Checkbox | null\n ): TableRowSelectionState {\n if (!checkbox) {\n throw new Error('Cannot get selection state from null checkbox');\n }\n\n if (checkbox.indeterminate) {\n return TableRowSelectionState.partiallySelected;\n }\n if (checkbox.checked) {\n return TableRowSelectionState.selected;\n }\n return TableRowSelectionState.notSelected;\n }\n\n private getGroupRow(groupRowIndex: number): TableGroupRow {\n const groupRows = this.tableElement.shadowRoot!.querySelectorAll(\n 'nimble-table-group-row'\n );\n if (groupRowIndex >= groupRows.length) {\n throw new Error(\n 'Attempting to index past the total number of group rows'\n );\n }\n\n return groupRows.item(groupRowIndex);\n }\n\n private getGroupRowHeaderView(groupRowIndex: number): TableGroupHeaderView {\n const groupRow = this.getGroupRow(groupRowIndex);\n return groupRow.shadowRoot!.querySelector('.group-header-view')!;\n }\n\n private getHeaderContentElement(\n element: HTMLElement | HTMLSlotElement\n ): Node | undefined {\n const nodeChildren = this.isSlotElement(element)\n ? element.assignedNodes()\n : element.shadowRoot?.childNodes;\n if (!nodeChildren) {\n return undefined;\n }\n\n const slotElement = Array.from(nodeChildren)?.find<HTMLSlotElement>(\n this.isSlotElement\n );\n if (slotElement) {\n return this.getHeaderContentElement(slotElement);\n }\n\n return nodeChildren[0]; // header content should be first item in final slot element\n }\n\n private readonly isSlotElement = (\n element: Node | undefined\n ): element is HTMLSlotElement => {\n return element?.nodeName === 'SLOT' ?? false;\n };\n}\n"]}
@@ -13,6 +13,8 @@ export declare class TableColumnAnchorCellView extends TableCellView<TableColumn
13
13
  /** @internal */
14
14
  hasOverflow: boolean;
15
15
  /** @internal */
16
+ isPlaceholder: boolean;
17
+ /** @internal */
16
18
  anchor?: Anchor;
17
19
  get text(): string;
18
20
  focusedRecycleCallback(): void;
@@ -12,8 +12,17 @@ export class TableColumnAnchorCellView extends TableCellView {
12
12
  super(...arguments);
13
13
  /** @internal */
14
14
  this.hasOverflow = false;
15
+ /** @internal */
16
+ this.isPlaceholder = false;
15
17
  }
16
18
  get text() {
19
+ const displayedText = this.cellRecord?.label ?? this.cellRecord?.href;
20
+ if ((displayedText === undefined || displayedText === null)
21
+ && this.columnConfig?.placeholder) {
22
+ this.isPlaceholder = true;
23
+ return this.columnConfig.placeholder;
24
+ }
25
+ this.isPlaceholder = false;
17
26
  if (typeof this.cellRecord?.label === 'string') {
18
27
  return this.cellRecord.label;
19
28
  }
@@ -29,6 +38,9 @@ export class TableColumnAnchorCellView extends TableCellView {
29
38
  __decorate([
30
39
  observable
31
40
  ], TableColumnAnchorCellView.prototype, "hasOverflow", void 0);
41
+ __decorate([
42
+ observable
43
+ ], TableColumnAnchorCellView.prototype, "isPlaceholder", void 0);
32
44
  __decorate([
33
45
  volatile
34
46
  ], TableColumnAnchorCellView.prototype, "text", null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAG9C;IAHD;;QAII,gBAAgB;QAET,gBAAW,GAAG,KAAK,CAAC;IAmB/B,CAAC;IAbG,IAAW,IAAI;QACX,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,QAAQ,EAAE;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SAChC;QACD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SAC/B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEe,sBAAsB;QAClC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;CACJ;AAnBG;IADC,UAAU;8DACgB;AAM3B;IADC,QAAQ;qDASR;AAOL,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,CAAC;IACrD,QAAQ,EAAE,+BAA+B;IACzC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,sCAAsC,CAAC","sourcesContent":["import { observable, volatile } from '@microsoft/fast-element';\nimport { DesignSystem } from '@microsoft/fast-foundation';\nimport type {\n TableColumnAnchorCellRecord,\n TableColumnAnchorColumnConfig\n} from '..';\nimport type { Anchor } from '../../../anchor';\nimport { TableCellView } from '../../base/cell-view';\nimport { styles } from './styles';\nimport { template } from './template';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-anchor-cell-view': TableColumnAnchorCellView;\n }\n}\n\n/**\n * A cell view for displaying links\n */\nexport class TableColumnAnchorCellView extends TableCellView<\nTableColumnAnchorCellRecord,\nTableColumnAnchorColumnConfig\n> {\n /** @internal */\n @observable\n public hasOverflow = false;\n\n /** @internal */\n public anchor?: Anchor;\n\n @volatile\n public get text(): string {\n if (typeof this.cellRecord?.label === 'string') {\n return this.cellRecord.label;\n }\n if (typeof this.cellRecord?.href === 'string') {\n return this.cellRecord.href;\n }\n return '';\n }\n\n public override focusedRecycleCallback(): void {\n this.anchor?.blur();\n }\n}\n\nconst anchorCellView = TableColumnAnchorCellView.compose({\n baseName: 'table-column-anchor-cell-view',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());\nexport const tableColumnAnchorCellViewTag = 'nimble-table-column-anchor-cell-view';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAG9C;IAHD;;QAII,gBAAgB;QAET,gBAAW,GAAG,KAAK,CAAC;QAE3B,gBAAgB;QAET,kBAAa,GAAG,KAAK,CAAC;IA6BjC,CAAC;IAvBG,IAAW,IAAI;QACX,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;QACtE,IACI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC;eACpD,IAAI,CAAC,YAAY,EAAE,WAAW,EACnC;YACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;SACxC;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,QAAQ,EAAE;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SAChC;QACD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SAC/B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEe,sBAAsB;QAClC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;CACJ;AAjCG;IADC,UAAU;8DACgB;AAI3B;IADC,UAAU;gEACkB;AAM7B;IADC,QAAQ;qDAmBR;AAOL,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,CAAC;IACrD,QAAQ,EAAE,+BAA+B;IACzC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,sCAAsC,CAAC","sourcesContent":["import { observable, volatile } from '@microsoft/fast-element';\nimport { DesignSystem } from '@microsoft/fast-foundation';\nimport type {\n TableColumnAnchorCellRecord,\n TableColumnAnchorColumnConfig\n} from '..';\nimport type { Anchor } from '../../../anchor';\nimport { TableCellView } from '../../base/cell-view';\nimport { styles } from './styles';\nimport { template } from './template';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-anchor-cell-view': TableColumnAnchorCellView;\n }\n}\n\n/**\n * A cell view for displaying links\n */\nexport class TableColumnAnchorCellView extends TableCellView<\nTableColumnAnchorCellRecord,\nTableColumnAnchorColumnConfig\n> {\n /** @internal */\n @observable\n public hasOverflow = false;\n\n /** @internal */\n @observable\n public isPlaceholder = false;\n\n /** @internal */\n public anchor?: Anchor;\n\n @volatile\n public get text(): string {\n const displayedText = this.cellRecord?.label ?? this.cellRecord?.href;\n if (\n (displayedText === undefined || displayedText === null)\n && this.columnConfig?.placeholder\n ) {\n this.isPlaceholder = true;\n return this.columnConfig.placeholder;\n }\n\n this.isPlaceholder = false;\n if (typeof this.cellRecord?.label === 'string') {\n return this.cellRecord.label;\n }\n if (typeof this.cellRecord?.href === 'string') {\n return this.cellRecord.href;\n }\n return '';\n }\n\n public override focusedRecycleCallback(): void {\n this.anchor?.blur();\n }\n}\n\nconst anchorCellView = TableColumnAnchorCellView.compose({\n baseName: 'table-column-anchor-cell-view',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());\nexport const tableColumnAnchorCellViewTag = 'nimble-table-column-anchor-cell-view';\n"]}
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { bodyFont, bodyFontColor } from '../../../theme-provider/design-tokens';
2
+ import { bodyFont, bodyFontColor, placeholderFont, placeholderFontColor } from '../../../theme-provider/design-tokens';
3
3
  export const styles = css `
4
4
  :host {
5
5
  width: fit-content;
@@ -21,5 +21,10 @@ export const styles = css `
21
21
  overflow: hidden;
22
22
  text-overflow: ellipsis;
23
23
  }
24
+
25
+ :host(.placeholder) span {
26
+ font: ${placeholderFont};
27
+ color: ${placeholderFontColor};
28
+ }
24
29
  `;
25
30
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEhF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;gBAeT,QAAQ;iBACP,aAAa;;;;;CAK7B,CAAC","sourcesContent":["import { css } from '@microsoft/fast-element';\nimport { bodyFont, bodyFontColor } from '../../../theme-provider/design-tokens';\n\nexport const styles = css`\n :host {\n width: fit-content;\n max-width: 100%;\n height: fit-content;\n align-self: center;\n }\n\n nimble-anchor {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n font: ${bodyFont};\n color: ${bodyFontColor};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACH,QAAQ,EACR,aAAa,EACb,eAAe,EACf,oBAAoB,EACvB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;gBAeT,QAAQ;iBACP,aAAa;;;;;;;gBAOd,eAAe;iBACd,oBAAoB;;CAEpC,CAAC","sourcesContent":["import { css } from '@microsoft/fast-element';\nimport {\n bodyFont,\n bodyFontColor,\n placeholderFont,\n placeholderFontColor\n} from '../../../theme-provider/design-tokens';\n\nexport const styles = css`\n :host {\n width: fit-content;\n max-width: 100%;\n height: fit-content;\n align-self: center;\n }\n\n nimble-anchor {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n font: ${bodyFont};\n color: ${bodyFontColor};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n :host(.placeholder) span {\n font: ${placeholderFont};\n color: ${placeholderFontColor};\n }\n`;\n"]}
@@ -11,6 +11,7 @@ export const template = html `
11
11
  }
12
12
  return true;
13
13
  }}"
14
+ class="${x => (x.isPlaceholder ? 'placeholder' : '')}"
14
15
  >
15
16
  ${when(x => typeof x.cellRecord?.href === 'string', html `
16
17
  <${anchorTag}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/template.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAA2B;;kBAErC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACf,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;KAC7B;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;;UAEC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,CAA2B;eAC5E,SAAS;kBACN,GAAG,CAAC,QAAQ,CAAC;kBACb,QAAQ,CAAC,aAAa,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI;4BACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ;wBACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI;kCACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc;uBAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG;0BACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM;wBAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI;4BACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ;qCACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,eAAe;8BAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU;wBACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;;kBAE1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBACb,SAAS,GAAG,CAAC;UACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,CAA2B;;kBAEzE,QAAQ,CAAC,aAAa,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;;kBAE1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACT,CAAC;;CAEpB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/indent */\nimport { html, ref, when } from '@microsoft/fast-element';\nimport type { TableColumnAnchorCellView } from '.';\nimport { anchorTag } from '../../../anchor';\nimport { overflow } from '../../../utilities/directive/overflow';\n\n// prettier-ignore\nexport const template = html<TableColumnAnchorCellView>`\n <template\n @click=\"${(x, c) => {\n if (typeof x.cellRecord?.href === 'string') {\n c.event.stopPropagation();\n }\n return true;\n }}\"\n >\n ${when(x => typeof x.cellRecord?.href === 'string', html<TableColumnAnchorCellView>`\n <${anchorTag}\n ${ref('anchor')}\n ${overflow('hasOverflow')}\n href=\"${x => x.cellRecord?.href}\"\n hreflang=\"${x => x.columnConfig?.hreflang}\"\n ping=\"${x => x.columnConfig?.ping}\"\n referrerpolicy=\"${x => x.columnConfig?.referrerpolicy}\"\n rel=\"${x => x.columnConfig?.rel}\"\n target=\"${x => x.columnConfig?.target}\"\n type=\"${x => x.columnConfig?.type}\"\n download=\"${x => x.columnConfig?.download}\"\n ?underline-hidden=\"${x => x.columnConfig?.underlineHidden}\"\n appearance=\"${x => x.columnConfig?.appearance}\"\n title=${x => (x.hasOverflow ? x.text : null)}\n >\n ${x => x.text}\n </${anchorTag}>`)}\n ${when(x => typeof x.cellRecord?.href !== 'string', html<TableColumnAnchorCellView>`\n <span\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow ? x.text : null)}\n >\n ${x => x.text}\n </span>`)}\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table-column/anchor/cell-view/template.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAA2B;;kBAErC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACf,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;KAC7B;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;iBACQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;;UAElD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,CAA2B;eAC5E,SAAS;kBACN,GAAG,CAAC,QAAQ,CAAC;kBACb,QAAQ,CAAC,aAAa,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI;4BACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ;wBACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI;kCACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc;uBAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG;0BACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM;wBAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI;4BACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ;qCACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,eAAe;8BAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU;wBACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;;kBAE1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBACb,SAAS,GAAG,CAAC;UACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,CAA2B;;kBAEzE,QAAQ,CAAC,aAAa,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;;kBAE1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACT,CAAC;;CAEpB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/indent */\nimport { html, ref, when } from '@microsoft/fast-element';\nimport type { TableColumnAnchorCellView } from '.';\nimport { anchorTag } from '../../../anchor';\nimport { overflow } from '../../../utilities/directive/overflow';\n\n// prettier-ignore\nexport const template = html<TableColumnAnchorCellView>`\n <template\n @click=\"${(x, c) => {\n if (typeof x.cellRecord?.href === 'string') {\n c.event.stopPropagation();\n }\n return true;\n }}\"\n class=\"${x => (x.isPlaceholder ? 'placeholder' : '')}\"\n >\n ${when(x => typeof x.cellRecord?.href === 'string', html<TableColumnAnchorCellView>`\n <${anchorTag}\n ${ref('anchor')}\n ${overflow('hasOverflow')}\n href=\"${x => x.cellRecord?.href}\"\n hreflang=\"${x => x.columnConfig?.hreflang}\"\n ping=\"${x => x.columnConfig?.ping}\"\n referrerpolicy=\"${x => x.columnConfig?.referrerpolicy}\"\n rel=\"${x => x.columnConfig?.rel}\"\n target=\"${x => x.columnConfig?.target}\"\n type=\"${x => x.columnConfig?.type}\"\n download=\"${x => x.columnConfig?.download}\"\n ?underline-hidden=\"${x => x.columnConfig?.underlineHidden}\"\n appearance=\"${x => x.columnConfig?.appearance}\"\n title=${x => (x.hasOverflow ? x.text : null)}\n >\n ${x => x.text}\n </${anchorTag}>`)}\n ${when(x => typeof x.cellRecord?.href !== 'string', html<TableColumnAnchorCellView>`\n <span\n ${overflow('hasOverflow')}\n title=${x => (x.hasOverflow ? x.text : null)}\n >\n ${x => x.text}\n </span>`)}\n </template>\n`;\n"]}
@@ -13,6 +13,7 @@ export interface TableColumnAnchorColumnConfig {
13
13
  target?: string;
14
14
  type?: string;
15
15
  download?: string;
16
+ placeholder?: string;
16
17
  }
17
18
  declare global {
18
19
  interface HTMLElementTagNameMap {
@@ -31,6 +32,9 @@ declare const TableColumnAnchor_base: (abstract new (...args: any[]) => {
31
32
  fractionalWidthChanged(): void;
32
33
  minPixelWidthChanged(): void;
33
34
  readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown>;
35
+ }) & (abstract new (...args: any[]) => {
36
+ placeholder?: string | undefined;
37
+ placeholderChanged(): void;
34
38
  }) & ((abstract new () => TableColumn<TableColumnAnchorColumnConfig>) & {
35
39
  compose<T extends import("@microsoft/fast-foundation").FoundationElementDefinition = import("@microsoft/fast-foundation").FoundationElementDefinition, K extends import("@microsoft/fast-element").Constructable<import("@microsoft/fast-foundation").FoundationElement> = import("@microsoft/fast-element").Constructable<import("@microsoft/fast-foundation").FoundationElement>>(this: K, elementDefinition: T): (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<T> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<T, K>;
36
40
  from<TBase extends {
@@ -54,6 +58,7 @@ export declare class TableColumnAnchor extends TableColumnAnchor_base {
54
58
  target?: string;
55
59
  type?: string;
56
60
  download?: string;
61
+ placeholderChanged(): void;
57
62
  protected getColumnInternalsOptions(): ColumnInternalsOptions;
58
63
  protected labelFieldNameChanged(): void;
59
64
  protected hrefFieldNameChanged(): void;
@@ -7,16 +7,20 @@ import { template } from '../base/template';
7
7
  import { TableColumnSortOperation } from '../base/types';
8
8
  import { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';
9
9
  import { mixinGroupableColumnAPI } from '../mixins/groupable-column';
10
+ import { mixinColumnWithPlaceholderAPI } from '../mixins/placeholder';
10
11
  import { tableColumnAnchorCellViewTag } from './cell-view';
11
12
  import { tableColumnTextGroupHeaderViewTag } from '../text/group-header-view';
12
13
  /**
13
14
  * A table column for displaying links.
14
15
  */
15
- export class TableColumnAnchor extends mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI((TableColumn))) {
16
+ export class TableColumnAnchor extends mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI(mixinColumnWithPlaceholderAPI((TableColumn)))) {
16
17
  constructor() {
17
18
  super(...arguments);
18
19
  this.underlineHidden = false;
19
20
  }
21
+ placeholderChanged() {
22
+ this.updateColumnConfig();
23
+ }
20
24
  getColumnInternalsOptions() {
21
25
  return {
22
26
  cellRecordFieldNames: ['label', 'href'],
@@ -76,7 +80,8 @@ export class TableColumnAnchor extends mixinGroupableColumnAPI(mixinFractionalWi
76
80
  rel: this.rel,
77
81
  target: this.target,
78
82
  type: this.type,
79
- download: this.download
83
+ download: this.download,
84
+ placeholder: this.placeholder
80
85
  };
81
86
  }
82
87
  }