@pnp/spfx-controls-react 3.26.0-beta.3386420 → 3.26.0-beta.3440811

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 (240) hide show
  1. package/CHANGELOG.json +6 -1
  2. package/CHANGELOG.md +4 -1
  3. package/jest-output/JUnit.xml +116 -110
  4. package/lib/DetailsList.d.ts +3 -0
  5. package/lib/DetailsList.d.ts.map +1 -0
  6. package/lib/DetailsList.js +2 -0
  7. package/lib/DetailsList.js.map +1 -0
  8. package/lib/common/telemetry/version.js +1 -1
  9. package/lib/controls/DetailsList/DetailsList.d.ts +4 -0
  10. package/lib/controls/DetailsList/DetailsList.d.ts.map +1 -0
  11. package/lib/controls/DetailsList/DetailsList.js +277 -0
  12. package/lib/controls/DetailsList/DetailsList.js.map +1 -0
  13. package/lib/controls/DetailsList/DetailsList.test.d.ts +2 -0
  14. package/lib/controls/DetailsList/DetailsList.test.d.ts.map +1 -0
  15. package/lib/controls/DetailsList/DetailsList.types.d.ts +230 -0
  16. package/lib/controls/DetailsList/DetailsList.types.d.ts.map +1 -0
  17. package/lib/controls/DetailsList/DetailsList.types.js +37 -0
  18. package/lib/controls/DetailsList/DetailsList.types.js.map +1 -0
  19. package/lib/controls/DetailsList/DetailsList.utils.d.ts +21 -0
  20. package/lib/controls/DetailsList/DetailsList.utils.d.ts.map +1 -0
  21. package/lib/controls/DetailsList/DetailsList.utils.js +122 -0
  22. package/lib/controls/DetailsList/DetailsList.utils.js.map +1 -0
  23. package/lib/controls/DetailsList/DetailsListContent.d.ts +3 -0
  24. package/lib/controls/DetailsList/DetailsListContent.d.ts.map +1 -0
  25. package/lib/controls/DetailsList/DetailsListContent.js +9 -0
  26. package/lib/controls/DetailsList/DetailsListContent.js.map +1 -0
  27. package/lib/controls/DetailsList/DetailsListGroupHeader.d.ts +21 -0
  28. package/lib/controls/DetailsList/DetailsListGroupHeader.d.ts.map +1 -0
  29. package/lib/controls/DetailsList/DetailsListGroupHeader.js +41 -0
  30. package/lib/controls/DetailsList/DetailsListGroupHeader.js.map +1 -0
  31. package/lib/controls/DetailsList/DetailsListHeader.d.ts +33 -0
  32. package/lib/controls/DetailsList/DetailsListHeader.d.ts.map +1 -0
  33. package/lib/controls/DetailsList/DetailsListHeader.js +94 -0
  34. package/lib/controls/DetailsList/DetailsListHeader.js.map +1 -0
  35. package/lib/controls/DetailsList/DetailsListRow.d.ts +49 -0
  36. package/lib/controls/DetailsList/DetailsListRow.d.ts.map +1 -0
  37. package/lib/controls/DetailsList/DetailsListRow.js +124 -0
  38. package/lib/controls/DetailsList/DetailsListRow.js.map +1 -0
  39. package/lib/controls/DetailsList/DetailsListShimmerRows.d.ts +18 -0
  40. package/lib/controls/DetailsList/DetailsListShimmerRows.d.ts.map +1 -0
  41. package/lib/controls/DetailsList/DetailsListShimmerRows.js +34 -0
  42. package/lib/controls/DetailsList/DetailsListShimmerRows.js.map +1 -0
  43. package/lib/controls/DetailsList/index.d.ts +3 -0
  44. package/lib/controls/DetailsList/index.d.ts.map +1 -0
  45. package/lib/controls/DetailsList/index.js +3 -0
  46. package/lib/controls/DetailsList/index.js.map +1 -0
  47. package/lib/controls/DetailsList/useDetailsListColumns.d.ts +30 -0
  48. package/lib/controls/DetailsList/useDetailsListColumns.d.ts.map +1 -0
  49. package/lib/controls/DetailsList/useDetailsListColumns.js +145 -0
  50. package/lib/controls/DetailsList/useDetailsListColumns.js.map +1 -0
  51. package/lib/controls/DetailsList/useDetailsListGroups.d.ts +11 -0
  52. package/lib/controls/DetailsList/useDetailsListGroups.d.ts.map +1 -0
  53. package/lib/controls/DetailsList/useDetailsListGroups.js +24 -0
  54. package/lib/controls/DetailsList/useDetailsListGroups.js.map +1 -0
  55. package/lib/controls/DetailsList/useDetailsListSelection.d.ts +27 -0
  56. package/lib/controls/DetailsList/useDetailsListSelection.d.ts.map +1 -0
  57. package/lib/controls/DetailsList/useDetailsListSelection.js +114 -0
  58. package/lib/controls/DetailsList/useDetailsListSelection.js.map +1 -0
  59. package/lib/controls/DetailsList/useDetailsListStyles.d.ts +42 -0
  60. package/lib/controls/DetailsList/useDetailsListStyles.d.ts.map +1 -0
  61. package/lib/controls/DetailsList/useDetailsListStyles.js +338 -0
  62. package/lib/controls/DetailsList/useDetailsListStyles.js.map +1 -0
  63. package/lib/controls/DetailsList/useDetailsListViewport.d.ts +23 -0
  64. package/lib/controls/DetailsList/useDetailsListViewport.d.ts.map +1 -0
  65. package/lib/controls/DetailsList/useDetailsListViewport.js +86 -0
  66. package/lib/controls/DetailsList/useDetailsListViewport.js.map +1 -0
  67. package/lib/index.d.ts +1 -0
  68. package/lib/index.d.ts.map +1 -1
  69. package/lib/index.js +1 -0
  70. package/lib/index.js.map +1 -1
  71. package/lib/loc/bg-bg.js +9 -0
  72. package/lib/loc/bg-bg.js.map +1 -1
  73. package/lib/loc/ca-es.js +9 -0
  74. package/lib/loc/ca-es.js.map +1 -1
  75. package/lib/loc/cs-cz.js +9 -0
  76. package/lib/loc/cs-cz.js.map +1 -1
  77. package/lib/loc/da-dk.js +9 -0
  78. package/lib/loc/da-dk.js.map +1 -1
  79. package/lib/loc/de-de.js +9 -0
  80. package/lib/loc/de-de.js.map +1 -1
  81. package/lib/loc/el-gr.js +9 -0
  82. package/lib/loc/el-gr.js.map +1 -1
  83. package/lib/loc/en-us.js +9 -0
  84. package/lib/loc/en-us.js.map +1 -1
  85. package/lib/loc/es-es.js +9 -0
  86. package/lib/loc/es-es.js.map +1 -1
  87. package/lib/loc/et-ee.js +9 -0
  88. package/lib/loc/et-ee.js.map +1 -1
  89. package/lib/loc/eu-es.js +9 -0
  90. package/lib/loc/eu-es.js.map +1 -1
  91. package/lib/loc/fi-fi.js +9 -0
  92. package/lib/loc/fi-fi.js.map +1 -1
  93. package/lib/loc/fr-ca.js +9 -0
  94. package/lib/loc/fr-ca.js.map +1 -1
  95. package/lib/loc/fr-fr.js +9 -0
  96. package/lib/loc/fr-fr.js.map +1 -1
  97. package/lib/loc/it-it.js +9 -0
  98. package/lib/loc/it-it.js.map +1 -1
  99. package/lib/loc/ja-jp.js +9 -0
  100. package/lib/loc/ja-jp.js.map +1 -1
  101. package/lib/loc/lt-lt.js +9 -0
  102. package/lib/loc/lt-lt.js.map +1 -1
  103. package/lib/loc/lv-lv.js +9 -0
  104. package/lib/loc/lv-lv.js.map +1 -1
  105. package/lib/loc/nb-no.js +9 -0
  106. package/lib/loc/nb-no.js.map +1 -1
  107. package/lib/loc/nl-nl.js +9 -0
  108. package/lib/loc/nl-nl.js.map +1 -1
  109. package/lib/loc/pl-pl.js +9 -0
  110. package/lib/loc/pl-pl.js.map +1 -1
  111. package/lib/loc/pt-br.js +9 -0
  112. package/lib/loc/pt-br.js.map +1 -1
  113. package/lib/loc/pt-pt.js +9 -0
  114. package/lib/loc/pt-pt.js.map +1 -1
  115. package/lib/loc/ro-ro.js +9 -0
  116. package/lib/loc/ro-ro.js.map +1 -1
  117. package/lib/loc/ru-ru.js +9 -0
  118. package/lib/loc/ru-ru.js.map +1 -1
  119. package/lib/loc/sk-sk.js +9 -0
  120. package/lib/loc/sk-sk.js.map +1 -1
  121. package/lib/loc/sr-latn-rs.js +9 -0
  122. package/lib/loc/sr-latn-rs.js.map +1 -1
  123. package/lib/loc/sv-se.js +9 -0
  124. package/lib/loc/sv-se.js.map +1 -1
  125. package/lib/loc/tr-tr.js +9 -0
  126. package/lib/loc/tr-tr.js.map +1 -1
  127. package/lib/loc/vi-vn.js +9 -0
  128. package/lib/loc/vi-vn.js.map +1 -1
  129. package/lib/loc/zh-cn.js +9 -0
  130. package/lib/loc/zh-cn.js.map +1 -1
  131. package/lib/loc/zh-tw.js +9 -0
  132. package/lib/loc/zh-tw.js.map +1 -1
  133. package/lib-commonjs/DetailsList.js +12 -0
  134. package/lib-commonjs/DetailsList.js.map +1 -0
  135. package/lib-commonjs/common/telemetry/version.js +1 -1
  136. package/lib-commonjs/controls/DetailsList/DetailsList.js +280 -0
  137. package/lib-commonjs/controls/DetailsList/DetailsList.js.map +1 -0
  138. package/lib-commonjs/controls/DetailsList/DetailsList.types.js +38 -0
  139. package/lib-commonjs/controls/DetailsList/DetailsList.types.js.map +1 -0
  140. package/lib-commonjs/controls/DetailsList/DetailsList.utils.js +130 -0
  141. package/lib-commonjs/controls/DetailsList/DetailsList.utils.js.map +1 -0
  142. package/lib-commonjs/controls/DetailsList/DetailsListContent.js +14 -0
  143. package/lib-commonjs/controls/DetailsList/DetailsListContent.js.map +1 -0
  144. package/lib-commonjs/controls/DetailsList/DetailsListGroupHeader.js +45 -0
  145. package/lib-commonjs/controls/DetailsList/DetailsListGroupHeader.js.map +1 -0
  146. package/lib-commonjs/controls/DetailsList/DetailsListHeader.js +98 -0
  147. package/lib-commonjs/controls/DetailsList/DetailsListHeader.js.map +1 -0
  148. package/lib-commonjs/controls/DetailsList/DetailsListRow.js +128 -0
  149. package/lib-commonjs/controls/DetailsList/DetailsListRow.js.map +1 -0
  150. package/lib-commonjs/controls/DetailsList/DetailsListShimmerRows.js +39 -0
  151. package/lib-commonjs/controls/DetailsList/DetailsListShimmerRows.js.map +1 -0
  152. package/lib-commonjs/controls/DetailsList/index.js +8 -0
  153. package/lib-commonjs/controls/DetailsList/index.js.map +1 -0
  154. package/lib-commonjs/controls/DetailsList/useDetailsListColumns.js +149 -0
  155. package/lib-commonjs/controls/DetailsList/useDetailsListColumns.js.map +1 -0
  156. package/lib-commonjs/controls/DetailsList/useDetailsListGroups.js +29 -0
  157. package/lib-commonjs/controls/DetailsList/useDetailsListGroups.js.map +1 -0
  158. package/lib-commonjs/controls/DetailsList/useDetailsListSelection.js +119 -0
  159. package/lib-commonjs/controls/DetailsList/useDetailsListSelection.js.map +1 -0
  160. package/lib-commonjs/controls/DetailsList/useDetailsListStyles.js +342 -0
  161. package/lib-commonjs/controls/DetailsList/useDetailsListStyles.js.map +1 -0
  162. package/lib-commonjs/controls/DetailsList/useDetailsListViewport.js +91 -0
  163. package/lib-commonjs/controls/DetailsList/useDetailsListViewport.js.map +1 -0
  164. package/lib-commonjs/index.js +1 -0
  165. package/lib-commonjs/index.js.map +1 -1
  166. package/lib-commonjs/loc/bg-bg.js +9 -0
  167. package/lib-commonjs/loc/bg-bg.js.map +1 -1
  168. package/lib-commonjs/loc/ca-es.js +9 -0
  169. package/lib-commonjs/loc/ca-es.js.map +1 -1
  170. package/lib-commonjs/loc/cs-cz.js +9 -0
  171. package/lib-commonjs/loc/cs-cz.js.map +1 -1
  172. package/lib-commonjs/loc/da-dk.js +9 -0
  173. package/lib-commonjs/loc/da-dk.js.map +1 -1
  174. package/lib-commonjs/loc/de-de.js +9 -0
  175. package/lib-commonjs/loc/de-de.js.map +1 -1
  176. package/lib-commonjs/loc/el-gr.js +9 -0
  177. package/lib-commonjs/loc/el-gr.js.map +1 -1
  178. package/lib-commonjs/loc/en-us.js +9 -0
  179. package/lib-commonjs/loc/en-us.js.map +1 -1
  180. package/lib-commonjs/loc/es-es.js +9 -0
  181. package/lib-commonjs/loc/es-es.js.map +1 -1
  182. package/lib-commonjs/loc/et-ee.js +9 -0
  183. package/lib-commonjs/loc/et-ee.js.map +1 -1
  184. package/lib-commonjs/loc/eu-es.js +9 -0
  185. package/lib-commonjs/loc/eu-es.js.map +1 -1
  186. package/lib-commonjs/loc/fi-fi.js +9 -0
  187. package/lib-commonjs/loc/fi-fi.js.map +1 -1
  188. package/lib-commonjs/loc/fr-ca.js +9 -0
  189. package/lib-commonjs/loc/fr-ca.js.map +1 -1
  190. package/lib-commonjs/loc/fr-fr.js +9 -0
  191. package/lib-commonjs/loc/fr-fr.js.map +1 -1
  192. package/lib-commonjs/loc/it-it.js +9 -0
  193. package/lib-commonjs/loc/it-it.js.map +1 -1
  194. package/lib-commonjs/loc/ja-jp.js +9 -0
  195. package/lib-commonjs/loc/ja-jp.js.map +1 -1
  196. package/lib-commonjs/loc/lt-lt.js +9 -0
  197. package/lib-commonjs/loc/lt-lt.js.map +1 -1
  198. package/lib-commonjs/loc/lv-lv.js +9 -0
  199. package/lib-commonjs/loc/lv-lv.js.map +1 -1
  200. package/lib-commonjs/loc/nb-no.js +9 -0
  201. package/lib-commonjs/loc/nb-no.js.map +1 -1
  202. package/lib-commonjs/loc/nl-nl.js +9 -0
  203. package/lib-commonjs/loc/nl-nl.js.map +1 -1
  204. package/lib-commonjs/loc/pl-pl.js +9 -0
  205. package/lib-commonjs/loc/pl-pl.js.map +1 -1
  206. package/lib-commonjs/loc/pt-br.js +9 -0
  207. package/lib-commonjs/loc/pt-br.js.map +1 -1
  208. package/lib-commonjs/loc/pt-pt.js +9 -0
  209. package/lib-commonjs/loc/pt-pt.js.map +1 -1
  210. package/lib-commonjs/loc/ro-ro.js +9 -0
  211. package/lib-commonjs/loc/ro-ro.js.map +1 -1
  212. package/lib-commonjs/loc/ru-ru.js +9 -0
  213. package/lib-commonjs/loc/ru-ru.js.map +1 -1
  214. package/lib-commonjs/loc/sk-sk.js +9 -0
  215. package/lib-commonjs/loc/sk-sk.js.map +1 -1
  216. package/lib-commonjs/loc/sr-latn-rs.js +9 -0
  217. package/lib-commonjs/loc/sr-latn-rs.js.map +1 -1
  218. package/lib-commonjs/loc/sv-se.js +9 -0
  219. package/lib-commonjs/loc/sv-se.js.map +1 -1
  220. package/lib-commonjs/loc/tr-tr.js +9 -0
  221. package/lib-commonjs/loc/tr-tr.js.map +1 -1
  222. package/lib-commonjs/loc/vi-vn.js +9 -0
  223. package/lib-commonjs/loc/vi-vn.js.map +1 -1
  224. package/lib-commonjs/loc/zh-cn.js +9 -0
  225. package/lib-commonjs/loc/zh-cn.js.map +1 -1
  226. package/lib-commonjs/loc/zh-tw.js +9 -0
  227. package/lib-commonjs/loc/zh-tw.js.map +1 -1
  228. package/lib-commonjs/webparts/controlsTest/ControlsTestWebPart.manifest.json +1 -0
  229. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js +27 -0
  230. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js.map +1 -1
  231. package/lib-commonjs/webparts/controlsTest/components/TestDetailsListControl.js +335 -0
  232. package/lib-commonjs/webparts/controlsTest/components/TestDetailsListControl.js.map +1 -0
  233. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js +1 -1
  234. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js.map +1 -1
  235. package/package.json +2 -2
  236. package/release/analysis-logs/lint.sarif +1139 -954
  237. package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +34 -33
  238. package/release/manifests/57ebd944-98ed-43f9-b722-e959d6dac6ad.manifest.json +33 -33
  239. package/release/manifests/f9c6b930-8d5d-4550-bfd9-ed5f6ca443a8.manifest.json +33 -33
  240. package/tests/__mocks__/ControlStrings.js +21 -0
@@ -0,0 +1,21 @@
1
+ import type { DetailsListKey, IColumn, IDetailsListGroup } from './DetailsList.types';
2
+ export interface IDetailsListItemEntry<T> {
3
+ type: 'item';
4
+ key: DetailsListKey;
5
+ item: T;
6
+ itemIndex: number;
7
+ height: number;
8
+ }
9
+ export interface IDetailsListGroupEntry<T> {
10
+ type: 'group';
11
+ key: string;
12
+ group: IDetailsListGroup<T>;
13
+ height: number;
14
+ }
15
+ export type DetailsListEntry<T> = IDetailsListItemEntry<T> | IDetailsListGroupEntry<T>;
16
+ export declare const clampColumnWidth: <T>(column: IColumn<T>, width: number) => number;
17
+ export declare const calculateColumnWidths: <T>(columns: readonly IColumn<T>[], widthOverrides: Readonly<Record<string, number>>, availableWidth: number, justifyColumns: boolean) => Readonly<Record<string, number>>;
18
+ export declare const buildDetailsListEntries: <T>(items: readonly T[], groups: readonly IDetailsListGroup<T>[] | undefined, rowHeight: number, groupHeaderHeight: number, getKey: (item: T, index: number) => DetailsListKey, isGroupCollapsed: (group: IDetailsListGroup<T>) => boolean) => readonly DetailsListEntry<T>[];
19
+ export declare const calculateEntryOffsets: <T>(entries: readonly DetailsListEntry<T>[]) => readonly number[];
20
+ export declare const findEntryIndexAtOffset: (offsets: readonly number[], offset: number) => number;
21
+ //# sourceMappingURL=DetailsList.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsList.utils.d.ts","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsList.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B,qBAAqB,CAAC,CAAC,CAAC,GACxB,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAE9B,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAClB,OAAO,MAAM,KACZ,MAIA,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAAI,CAAC,EACrC,SAAS,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,EAC9B,gBAAgB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAChD,gBAAgB,MAAM,EACtB,gBAAgB,OAAO,KACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuDjC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,EACvC,OAAO,SAAS,CAAC,EAAE,EACnB,QAAQ,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EACnD,WAAW,MAAM,EACjB,mBAAmB,MAAM,EACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,cAAc,EAClD,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,KACzD,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAiD9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,EACrC,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,KACtC,SAAS,MAAM,EAMjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,MAAM,EAAE,EAC1B,QAAQ,MAAM,KACb,MAqBF,CAAC"}
@@ -0,0 +1,122 @@
1
+ export var clampColumnWidth = function (column, width) {
2
+ var _a;
3
+ return Math.max(column.minWidth, Math.min(width, (_a = column.maxWidth) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY));
4
+ };
5
+ export var calculateColumnWidths = function (columns, widthOverrides, availableWidth, justifyColumns) {
6
+ var widths = columns.map(function (column) {
7
+ var _a, _b;
8
+ return clampColumnWidth(column, (_b = (_a = widthOverrides[column.key]) !== null && _a !== void 0 ? _a : column.currentWidth) !== null && _b !== void 0 ? _b : column.minWidth);
9
+ });
10
+ var remainingWidth = justifyColumns
11
+ ? Math.max(0, availableWidth - widths.reduce(function (total, width) { return total + width; }, 0))
12
+ : 0;
13
+ var activeIndexes = columns
14
+ .map(function (column, index) { return ({ column: column, index: index }); })
15
+ .filter(function (_a) {
16
+ var _b;
17
+ var column = _a.column, index = _a.index;
18
+ return !Object.prototype.hasOwnProperty.call(widthOverrides, column.key) &&
19
+ widths[index] < ((_b = column.maxWidth) !== null && _b !== void 0 ? _b : Number.POSITIVE_INFINITY);
20
+ })
21
+ .map(function (_a) {
22
+ var index = _a.index;
23
+ return index;
24
+ });
25
+ var _loop_1 = function () {
26
+ var totalWeight = activeIndexes.reduce(function (total, index) {
27
+ var _a, _b;
28
+ return total +
29
+ ((_b = (_a = columns[index].flexGrow) !== null && _a !== void 0 ? _a : columns[index].targetWidthProportion) !== null && _b !== void 0 ? _b : 1);
30
+ }, 0);
31
+ var distributedWidth = 0;
32
+ activeIndexes.forEach(function (index) {
33
+ var _a, _b;
34
+ var column = columns[index];
35
+ var weight = (_b = (_a = column.flexGrow) !== null && _a !== void 0 ? _a : column.targetWidthProportion) !== null && _b !== void 0 ? _b : 1;
36
+ var share = remainingWidth * (weight / totalWeight);
37
+ var nextWidth = clampColumnWidth(column, widths[index] + share);
38
+ distributedWidth += nextWidth - widths[index];
39
+ widths[index] = nextWidth;
40
+ });
41
+ if (distributedWidth <= 0.5) {
42
+ return "break";
43
+ }
44
+ remainingWidth -= distributedWidth;
45
+ activeIndexes = activeIndexes.filter(function (index) { var _a; return widths[index] < ((_a = columns[index].maxWidth) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY); });
46
+ };
47
+ while (remainingWidth > 0.5 && activeIndexes.length > 0) {
48
+ var state_1 = _loop_1();
49
+ if (state_1 === "break")
50
+ break;
51
+ }
52
+ return Object.fromEntries(columns.map(function (column, index) { return [column.key, widths[index]]; }));
53
+ };
54
+ export var buildDetailsListEntries = function (items, groups, rowHeight, groupHeaderHeight, getKey, isGroupCollapsed) {
55
+ if (!(groups === null || groups === void 0 ? void 0 : groups.length)) {
56
+ return items.map(function (item, itemIndex) { return ({
57
+ type: 'item',
58
+ key: getKey(item, itemIndex),
59
+ item: item,
60
+ itemIndex: itemIndex,
61
+ height: rowHeight,
62
+ }); });
63
+ }
64
+ var entries = [];
65
+ var appendGroup = function (group) {
66
+ var _a;
67
+ entries.push({
68
+ type: 'group',
69
+ key: group.key,
70
+ group: group,
71
+ height: groupHeaderHeight,
72
+ });
73
+ if (isGroupCollapsed(group)) {
74
+ return;
75
+ }
76
+ if ((_a = group.children) === null || _a === void 0 ? void 0 : _a.length) {
77
+ group.children.forEach(appendGroup);
78
+ return;
79
+ }
80
+ var lastIndex = Math.min(items.length, group.startIndex + group.count);
81
+ for (var itemIndex = group.startIndex; itemIndex < lastIndex; itemIndex += 1) {
82
+ var item = items[itemIndex];
83
+ entries.push({
84
+ type: 'item',
85
+ key: getKey(item, itemIndex),
86
+ item: item,
87
+ itemIndex: itemIndex,
88
+ height: rowHeight,
89
+ });
90
+ }
91
+ };
92
+ groups.forEach(appendGroup);
93
+ return entries;
94
+ };
95
+ export var calculateEntryOffsets = function (entries) {
96
+ var offsets = [0];
97
+ entries.forEach(function (entry) {
98
+ return offsets.push(offsets[offsets.length - 1] + entry.height);
99
+ });
100
+ return offsets;
101
+ };
102
+ export var findEntryIndexAtOffset = function (offsets, offset) {
103
+ if (offsets.length <= 1) {
104
+ return 0;
105
+ }
106
+ var low = 0;
107
+ var high = offsets.length - 2;
108
+ while (low <= high) {
109
+ var middle = Math.floor((low + high) / 2);
110
+ if (offsets[middle] <= offset && offset < offsets[middle + 1]) {
111
+ return middle;
112
+ }
113
+ if (offset < offsets[middle]) {
114
+ high = middle - 1;
115
+ }
116
+ else {
117
+ low = middle + 1;
118
+ }
119
+ }
120
+ return Math.max(0, Math.min(low, offsets.length - 2));
121
+ };
122
+ //# sourceMappingURL=DetailsList.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsList.utils.js","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsList.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const renderDetailsListContent: (content: React.ReactNode, className?: string) => React.ReactNode;
3
+ //# sourceMappingURL=DetailsListContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListContent.d.ts","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,eAAO,MAAM,wBAAwB,GACnC,SAAS,KAAK,CAAC,SAAS,EACxB,YAAY,MAAM,KACjB,KAAK,CAAC,SAKR,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Text } from '@fluentui/react-components';
3
+ export var renderDetailsListContent = function (content, className) {
4
+ if (typeof content === 'string' || typeof content === 'number') {
5
+ return React.createElement(Text, { className: className }, content);
6
+ }
7
+ return content;
8
+ };
9
+ //# sourceMappingURL=DetailsListContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListContent.js","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,OAAwB,EACxB,SAAkB;IAElB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,oBAAC,IAAI,IAAC,SAAS,EAAE,SAAS,IAAG,OAAO,CAAQ,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import type { IDetailsListProps } from './DetailsList.types';
3
+ import type { IDetailsListGroupEntry } from './DetailsList.utils';
4
+ import type { useDetailsListStyles } from './useDetailsListStyles';
5
+ interface DetailsListGroupHeaderProps<T> {
6
+ entry: IDetailsListGroupEntry<T>;
7
+ entryIndex: number;
8
+ isCollapsed: boolean;
9
+ onToggle: () => void;
10
+ isHeaderVisible: boolean;
11
+ shouldVirtualize: boolean;
12
+ entryTop: number;
13
+ groupHeaderHeight: number;
14
+ gridTemplateColumns: string;
15
+ classes: ReturnType<typeof useDetailsListStyles>;
16
+ style: React.CSSProperties | undefined;
17
+ onRenderGroupHeader: IDetailsListProps<T>['onRenderGroupHeader'];
18
+ }
19
+ export declare const DetailsListGroupHeader: <T>({ entry, entryIndex, isCollapsed, onToggle, isHeaderVisible, shouldVirtualize, entryTop, groupHeaderHeight, gridTemplateColumns, classes, style, onRenderGroupHeader, }: DetailsListGroupHeaderProps<T>) => React.ReactElement;
20
+ export {};
21
+ //# sourceMappingURL=DetailsListGroupHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListGroupHeader.d.ts","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListGroupHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAA4B,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,UAAU,2BAA2B,CAAC,CAAC;IACrC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACjD,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IACvC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;CAClE;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAG,yKAaxC,2BAA2B,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YA4DzC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { __assign } from "tslib";
2
+ import * as React from 'react';
3
+ import { Button, Text } from '@fluentui/react-components';
4
+ import { ChevronDown16Regular, ChevronRight16Regular } from '@fluentui/react-icons';
5
+ export var DetailsListGroupHeader = function (_a) {
6
+ var entry = _a.entry, entryIndex = _a.entryIndex, isCollapsed = _a.isCollapsed, onToggle = _a.onToggle, isHeaderVisible = _a.isHeaderVisible, shouldVirtualize = _a.shouldVirtualize, entryTop = _a.entryTop, groupHeaderHeight = _a.groupHeaderHeight, gridTemplateColumns = _a.gridTemplateColumns, classes = _a.classes, style = _a.style, onRenderGroupHeader = _a.onRenderGroupHeader;
7
+ var groupProps = {
8
+ group: entry.group,
9
+ isCollapsed: isCollapsed,
10
+ onToggle: onToggle,
11
+ };
12
+ var defaultRender = function (renderProps) {
13
+ var _a;
14
+ return (React.createElement("div", { role: "row", "aria-rowindex": entryIndex + (isHeaderVisible ? 2 : 1), className: classes.groupHeader, style: __assign(__assign({ gridTemplateColumns: gridTemplateColumns, minHeight: groupHeaderHeight, height: groupHeaderHeight }, style), (shouldVirtualize
15
+ ? {
16
+ position: 'absolute',
17
+ top: entryTop,
18
+ right: 0,
19
+ left: 0,
20
+ }
21
+ : {})) },
22
+ React.createElement(Button, { appearance: "subtle", size: "small", role: "gridcell", "aria-expanded": !renderProps.isCollapsed, className: classes.groupButton, style: {
23
+ gridColumn: '1 / -1',
24
+ // Fluent UI 9 Button centers its content by default. Group labels
25
+ // follow the list's leading edge instead.
26
+ justifyContent: 'flex-start',
27
+ textAlign: 'left',
28
+ }, onClick: renderProps.onToggle },
29
+ Array.from({ length: (_a = renderProps.group.level) !== null && _a !== void 0 ? _a : 0 }, function (_, level) { return (React.createElement("span", { key: level, "aria-hidden": true, className: classes.groupIndent })); }),
30
+ renderProps.isCollapsed ? React.createElement(ChevronRight16Regular, null) : React.createElement(ChevronDown16Regular, null),
31
+ React.createElement(Text, { weight: "semibold", truncate: true }, renderProps.group.name),
32
+ React.createElement(Text, { style: { color: 'inherit' } },
33
+ "(",
34
+ renderProps.group.count,
35
+ ")"))));
36
+ };
37
+ return (React.createElement(React.Fragment, null, onRenderGroupHeader
38
+ ? onRenderGroupHeader(groupProps, defaultRender)
39
+ : defaultRender(groupProps)));
40
+ };
41
+ //# sourceMappingURL=DetailsListGroupHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListGroupHeader.js","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListGroupHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAqBpF,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAK,EAaV;QAZ/B,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,gBAAgB,sBAAA,EAChB,QAAQ,cAAA,EACR,iBAAiB,uBAAA,EACjB,mBAAmB,yBAAA,EACnB,OAAO,aAAA,EACP,KAAK,WAAA,EACL,mBAAmB,yBAAA;IAEnB,IAAM,UAAU,GAAgC;QAC9C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,aAAA;QACX,QAAQ,UAAA;KACT,CAAC;IACF,IAAM,aAAa,GAAG,UAAC,WAAwC;;QAAyB,OAAA,CACtF,6BACE,IAAI,EAAC,KAAK,mBACK,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,KAAK,sBACH,mBAAmB,qBAAA,EACnB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB,IACtB,KAAK,GACL,CAAC,gBAAgB;gBAClB,CAAC,CAAC;oBACE,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,CAAC;iBACR;gBACH,CAAC,CAAC,EAAE,CAAC;YAGT,oBAAC,MAAM,IACL,UAAU,EAAC,QAAQ,EACnB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,UAAU,mBACA,CAAC,WAAW,CAAC,WAAW,EACvC,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,KAAK,EAAE;oBACL,UAAU,EAAE,QAAQ;oBACpB,kEAAkE;oBAClE,0CAA0C;oBAC1C,cAAc,EAAE,YAAY;oBAC5B,SAAS,EAAE,MAAM;iBAClB,EACD,OAAO,EAAE,WAAW,CAAC,QAAQ;gBAE5B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAA,WAAW,CAAC,KAAK,CAAC,KAAK,mCAAI,CAAC,EAAE,EAAE,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,CAClE,8BAAM,GAAG,EAAE,KAAK,uBAAc,SAAS,EAAE,OAAO,CAAC,WAAW,GAAI,CACjE,EAFmE,CAEnE,CAAC;gBACD,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAC,qBAAqB,OAAG,CAAC,CAAC,CAAC,oBAAC,oBAAoB,OAAG;gBAC/E,oBAAC,IAAI,IAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,UAC7B,WAAW,CAAC,KAAK,CAAC,IAAI,CAClB;gBACP,oBAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;;oBAAI,WAAW,CAAC,KAAK,CAAC,KAAK;wBAAS,CAC9D,CACL,CACP,CAAA;KAAA,CAAC;IAEF,OAAO,CACL,0CACG,mBAAmB;QAClB,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC;QAChD,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAC5B,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import type { IColumn, IColumnReorderOptions, IDetailsListProps } from './DetailsList.types';
3
+ import { CheckboxVisibility, ColumnDragEndLocation, SelectionMode } from './DetailsList.types';
4
+ import type { useDetailsListStyles } from './useDetailsListStyles';
5
+ interface DetailsListHeaderProps<T> {
6
+ columns: readonly IColumn<T>[];
7
+ selectionMode: SelectionMode;
8
+ checkboxVisibility: CheckboxVisibility;
9
+ isAllSelected: boolean;
10
+ isPartiallySelected: boolean;
11
+ onToggleSelectAll: (event: React.SyntheticEvent) => void;
12
+ showSelectionColumn: boolean;
13
+ ariaLabelForSelectionColumn: string;
14
+ ariaLabelForSelectAllCheckbox: string;
15
+ gridTemplateColumns: string;
16
+ style: React.CSSProperties | undefined;
17
+ classes: ReturnType<typeof useDetailsListStyles>;
18
+ columnWidths: Readonly<Record<string, number>>;
19
+ columnReorderOptions: IColumnReorderOptions<T> | undefined;
20
+ draggedColumnIndexRef: React.MutableRefObject<number | undefined>;
21
+ columnDropLocationRef: React.MutableRefObject<ColumnDragEndLocation>;
22
+ isColumnDraggable: (columnIndex: number) => boolean;
23
+ handleColumnDrop: (targetIndex: number) => void;
24
+ resizeColumn: (column: IColumn<T>, columnIndex: number, width: number) => void;
25
+ autoFitColumn: (column: IColumn<T>, columnIndex: number) => void;
26
+ beginColumnResize: (event: React.PointerEvent<HTMLButtonElement>, column: IColumn<T>, columnIndex: number) => void;
27
+ onColumnHeaderClick: IDetailsListProps<T>['onColumnHeaderClick'];
28
+ onColumnHeaderContextMenu: IDetailsListProps<T>['onColumnHeaderContextMenu'];
29
+ onRenderDetailsHeader: IDetailsListProps<T>['onRenderDetailsHeader'];
30
+ }
31
+ export declare const DetailsListHeader: <T>({ columns, selectionMode, checkboxVisibility, isAllSelected, isPartiallySelected, onToggleSelectAll, showSelectionColumn, ariaLabelForSelectionColumn, ariaLabelForSelectAllCheckbox, gridTemplateColumns, style, classes, columnWidths, columnReorderOptions, draggedColumnIndexRef, columnDropLocationRef, isColumnDraggable, handleColumnDrop, resizeColumn, autoFitColumn, beginColumnResize, onColumnHeaderClick, onColumnHeaderContextMenu, onRenderDetailsHeader, }: DetailsListHeaderProps<T>) => React.ReactElement;
32
+ export {};
33
+ //# sourceMappingURL=DetailsListHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListHeader.d.ts","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EAErB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAInE,UAAU,sBAAsB,CAAC,CAAC;IAChC,OAAO,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2BAA2B,EAAE,MAAM,CAAC;IACpC,6BAA6B,EAAE,MAAM,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACjD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3D,qBAAqB,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClE,qBAAqB,EAAE,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACrE,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,iBAAiB,EAAE,CACjB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAC5C,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACjE,yBAAyB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC7E,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;CACtE;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAG,4cAyBnC,sBAAsB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAuKpC,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { __assign } from "tslib";
2
+ import * as React from 'react';
3
+ import * as strings from 'ControlStrings';
4
+ import { Button, Checkbox, mergeClasses } from '@fluentui/react-components';
5
+ import { ArrowSortDown16Regular, ArrowSortUp16Regular, ChevronDown16Regular, Filter16Regular, ReOrderDotsVertical16Regular, } from '@fluentui/react-icons';
6
+ import { ColumnActionsMode, ColumnDragEndLocation, SelectionMode, } from './DetailsList.types';
7
+ import { renderDetailsListContent } from './DetailsListContent';
8
+ var COLUMN_RESIZE_KEYBOARD_STEP = 10;
9
+ export var DetailsListHeader = function (_a) {
10
+ var columns = _a.columns, selectionMode = _a.selectionMode, checkboxVisibility = _a.checkboxVisibility, isAllSelected = _a.isAllSelected, isPartiallySelected = _a.isPartiallySelected, onToggleSelectAll = _a.onToggleSelectAll, showSelectionColumn = _a.showSelectionColumn, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, gridTemplateColumns = _a.gridTemplateColumns, style = _a.style, classes = _a.classes, columnWidths = _a.columnWidths, columnReorderOptions = _a.columnReorderOptions, draggedColumnIndexRef = _a.draggedColumnIndexRef, columnDropLocationRef = _a.columnDropLocationRef, isColumnDraggable = _a.isColumnDraggable, handleColumnDrop = _a.handleColumnDrop, resizeColumn = _a.resizeColumn, autoFitColumn = _a.autoFitColumn, beginColumnResize = _a.beginColumnResize, onColumnHeaderClick = _a.onColumnHeaderClick, onColumnHeaderContextMenu = _a.onColumnHeaderContextMenu, onRenderDetailsHeader = _a.onRenderDetailsHeader;
11
+ var headerProps = {
12
+ columns: columns,
13
+ selectionMode: selectionMode,
14
+ checkboxVisibility: checkboxVisibility,
15
+ isAllSelected: isAllSelected,
16
+ isPartiallySelected: isPartiallySelected,
17
+ onToggleSelectAll: onToggleSelectAll,
18
+ };
19
+ var defaultRender = function (renderProps) { return (React.createElement("div", { role: "row", className: classes.headerRow, style: __assign({ gridTemplateColumns: gridTemplateColumns }, style) },
20
+ showSelectionColumn && (React.createElement("div", { role: "columnheader", "aria-colindex": 1, "aria-label": ariaLabelForSelectionColumn, className: classes.selectionCell }, renderProps.selectionMode === SelectionMode.multiple && (React.createElement(Checkbox, { checked: renderProps.isPartiallySelected ? 'mixed' : renderProps.isAllSelected, "aria-label": ariaLabelForSelectAllCheckbox, onChange: function (event) { return renderProps.onToggleSelectAll(event); } })))),
21
+ renderProps.columns.map(function (column, columnIndex) {
22
+ var _a;
23
+ var isActionable = column.columnActionsMode !== ColumnActionsMode.disabled;
24
+ var isDraggable = isColumnDraggable(columnIndex);
25
+ var ariaSort = column.isSorted
26
+ ? column.isSortedDescending
27
+ ? 'descending'
28
+ : 'ascending'
29
+ : 'none';
30
+ var headerContent = column.onRenderHeader
31
+ ? column.onRenderHeader(column)
32
+ : column.name;
33
+ return (React.createElement("div", { key: column.key, role: "columnheader", "aria-colindex": columnIndex + (showSelectionColumn ? 2 : 1), "aria-sort": ariaSort, "aria-label": (_a = column.ariaLabel) !== null && _a !== void 0 ? _a : column.name, "data-details-column-key": column.key, draggable: isDraggable, className: mergeClasses(classes.headerCell, column.headerClassName), onContextMenu: function (event) {
34
+ var _a;
35
+ (_a = column.onColumnContextMenu) === null || _a === void 0 ? void 0 : _a.call(column, column, event);
36
+ onColumnHeaderContextMenu === null || onColumnHeaderContextMenu === void 0 ? void 0 : onColumnHeaderContextMenu(column, event);
37
+ }, onDragStart: function (event) {
38
+ var _a;
39
+ draggedColumnIndexRef.current = columnIndex;
40
+ columnDropLocationRef.current = ColumnDragEndLocation.outside;
41
+ event.dataTransfer.effectAllowed = 'move';
42
+ event.dataTransfer.setData('text/plain', column.key);
43
+ (_a = columnReorderOptions === null || columnReorderOptions === void 0 ? void 0 : columnReorderOptions.onColumnDragStart) === null || _a === void 0 ? void 0 : _a.call(columnReorderOptions, true);
44
+ }, onDragOver: function (event) {
45
+ if (draggedColumnIndexRef.current !== undefined && isColumnDraggable(columnIndex)) {
46
+ event.preventDefault();
47
+ event.dataTransfer.dropEffect = 'move';
48
+ }
49
+ }, onDrop: function (event) {
50
+ event.preventDefault();
51
+ handleColumnDrop(columnIndex);
52
+ }, onDragEnd: function () {
53
+ var _a, _b;
54
+ (_a = columnReorderOptions === null || columnReorderOptions === void 0 ? void 0 : columnReorderOptions.onColumnDragStart) === null || _a === void 0 ? void 0 : _a.call(columnReorderOptions, false);
55
+ (_b = columnReorderOptions === null || columnReorderOptions === void 0 ? void 0 : columnReorderOptions.onDragEnd) === null || _b === void 0 ? void 0 : _b.call(columnReorderOptions, columnDropLocationRef.current);
56
+ draggedColumnIndexRef.current = undefined;
57
+ columnDropLocationRef.current = ColumnDragEndLocation.outside;
58
+ } },
59
+ React.createElement(Button, { appearance: "subtle", size: "small", disabled: !isActionable, className: classes.headerButton, title: column.name, onClick: function (event) {
60
+ var _a;
61
+ (_a = column.onColumnClick) === null || _a === void 0 ? void 0 : _a.call(column, event, column);
62
+ onColumnHeaderClick === null || onColumnHeaderClick === void 0 ? void 0 : onColumnHeaderClick(event, column);
63
+ }, onKeyDown: function (event) { var _a; return (_a = column.onColumnKeyDown) === null || _a === void 0 ? void 0 : _a.call(column, event, column); } },
64
+ isDraggable && (React.createElement(ReOrderDotsVertical16Regular, { "aria-hidden": true, className: classes.headerIcon })),
65
+ column.icon,
66
+ !column.isIconOnly && (renderDetailsListContent(headerContent, classes.headerLabel)),
67
+ (column.isSorted || column.showSortIconWhenUnsorted) &&
68
+ (column.isSortedDescending ? (React.createElement(ArrowSortDown16Regular, { "aria-label": column.sortDescendingAriaLabel, className: classes.headerIcon })) : (React.createElement(ArrowSortUp16Regular, { "aria-label": column.isSorted ? column.sortAscendingAriaLabel : column.sortableAriaLabel, className: classes.headerIcon }))),
69
+ column.isFiltered && (React.createElement(Filter16Regular, { "aria-label": column.filterAriaLabel, className: classes.headerIcon })),
70
+ column.columnActionsMode === ColumnActionsMode.hasDropdown && (React.createElement(ChevronDown16Regular, { className: classes.headerIcon }))),
71
+ column.isResizable && (React.createElement(Button, { appearance: "transparent", size: "small", "aria-label": strings.DetailsListResizeColumnAriaLabel.replace('{0}', column.name), className: classes.resizeHandle, onClick: function (event) { return event.stopPropagation(); }, onDoubleClick: function () { return autoFitColumn(column, columnIndex); }, onPointerDown: function (event) { return beginColumnResize(event, column, columnIndex); }, onKeyDown: function (event) {
72
+ if (event.key === 'ArrowLeft') {
73
+ event.preventDefault();
74
+ resizeColumn(column, columnIndex, columnWidths[column.key] - COLUMN_RESIZE_KEYBOARD_STEP);
75
+ }
76
+ else if (event.key === 'ArrowRight') {
77
+ event.preventDefault();
78
+ resizeColumn(column, columnIndex, columnWidths[column.key] + COLUMN_RESIZE_KEYBOARD_STEP);
79
+ }
80
+ else if (event.key === 'Home') {
81
+ event.preventDefault();
82
+ resizeColumn(column, columnIndex, column.minWidth);
83
+ }
84
+ else if (event.key === 'End' && column.maxWidth !== undefined) {
85
+ event.preventDefault();
86
+ resizeColumn(column, columnIndex, column.maxWidth);
87
+ }
88
+ } }))));
89
+ }))); };
90
+ return (React.createElement(React.Fragment, null, onRenderDetailsHeader
91
+ ? onRenderDetailsHeader(headerProps, defaultRender)
92
+ : defaultRender(headerProps)));
93
+ };
94
+ //# sourceMappingURL=DetailsListHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListHeader.js","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import type { DetailsListKey, IColumn, IDetailsListProps } from './DetailsList.types';
3
+ import { CheckboxVisibility, SelectionMode } from './DetailsList.types';
4
+ import type { IDetailsListItemEntry } from './DetailsList.utils';
5
+ import type { useDetailsListStyles } from './useDetailsListStyles';
6
+ interface DetailsListRowProps<T> {
7
+ entry: IDetailsListItemEntry<T>;
8
+ entryIndex: number;
9
+ columns: readonly IColumn<T>[];
10
+ selectedKeySet: ReadonlySet<DetailsListKey>;
11
+ disabledKeySet: ReadonlySet<DetailsListKey>;
12
+ compact: boolean;
13
+ activeItemIndex: number;
14
+ setActiveItemIndex: React.Dispatch<React.SetStateAction<number>>;
15
+ dropTargetKey: DetailsListKey | undefined;
16
+ setDropTargetKey: React.Dispatch<React.SetStateAction<DetailsListKey | undefined>>;
17
+ draggedItemRef: React.MutableRefObject<{
18
+ item: T;
19
+ index: number;
20
+ } | undefined>;
21
+ effectiveRowHeight: number;
22
+ entryTop: number;
23
+ gridTemplateColumns: string;
24
+ isHeaderVisible: boolean;
25
+ shouldVirtualize: boolean;
26
+ showSelectionColumn: boolean;
27
+ selectionMode: SelectionMode;
28
+ selectionControlName: string;
29
+ checkboxVisibility: CheckboxVisibility;
30
+ ariaLabelForSelectionColumn: string;
31
+ isSelectedOnFocus: boolean;
32
+ classes: ReturnType<typeof useDetailsListStyles>;
33
+ rowStyle: React.CSSProperties | undefined;
34
+ cellStyle: React.CSSProperties | undefined;
35
+ selectItem: (item: T, itemIndex: number, event: React.SyntheticEvent, preserveExistingSelection: boolean) => void;
36
+ handleRowKeyDown: (event: React.KeyboardEvent<HTMLDivElement>, item: T, itemIndex: number) => void;
37
+ onActiveItemChanged: IDetailsListProps<T>['onActiveItemChanged'];
38
+ onItemInvoked: IDetailsListProps<T>['onItemInvoked'];
39
+ onItemContextMenu: IDetailsListProps<T>['onItemContextMenu'];
40
+ dragDropEvents: IDetailsListProps<T>['dragDropEvents'];
41
+ getRowAriaLabel: IDetailsListProps<T>['getRowAriaLabel'];
42
+ getRowAriaDescribedBy: IDetailsListProps<T>['getRowAriaDescribedBy'];
43
+ onRenderItemColumn: IDetailsListProps<T>['onRenderItemColumn'];
44
+ onRenderField: IDetailsListProps<T>['onRenderField'];
45
+ onRenderRow: IDetailsListProps<T>['onRenderRow'];
46
+ }
47
+ export declare const DetailsListRow: <T>({ entry, entryIndex, columns, selectedKeySet, disabledKeySet, compact, activeItemIndex, setActiveItemIndex, dropTargetKey, setDropTargetKey, draggedItemRef, effectiveRowHeight, entryTop, gridTemplateColumns, isHeaderVisible, shouldVirtualize, showSelectionColumn, selectionMode, selectionControlName, checkboxVisibility, ariaLabelForSelectionColumn, isSelectedOnFocus, classes, rowStyle, cellStyle, selectItem, handleRowKeyDown, onActiveItemChanged, onItemInvoked, onItemContextMenu, dragDropEvents, getRowAriaLabel, getRowAriaDescribedBy, onRenderItemColumn, onRenderField, onRenderRow, }: DetailsListRowProps<T>) => React.ReactElement;
48
+ export {};
49
+ //# sourceMappingURL=DetailsListRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsListRow.d.ts","sourceRoot":"","sources":["../../../src/controls/DetailsList/DetailsListRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { __assign } from "tslib";
2
+ import * as React from 'react';
3
+ import * as strings from 'ControlStrings';
4
+ import { Checkbox, mergeClasses, Radio } from '@fluentui/react-components';
5
+ import { CheckboxVisibility, SelectionMode } from './DetailsList.types';
6
+ import { renderDetailsListContent } from './DetailsListContent';
7
+ var isInteractiveTarget = function (target) {
8
+ return target instanceof Element &&
9
+ Boolean(target.closest('a, button, input, select, textarea, [role="button"], [data-selection-disabled]'));
10
+ };
11
+ var DetailsListCell = function (_a) {
12
+ var _b;
13
+ var item = _a.item, itemIndex = _a.itemIndex, column = _a.column, isSelected = _a.isSelected, ariaColumnIndex = _a.ariaColumnIndex, classes = _a.classes, style = _a.style, onRenderItemColumn = _a.onRenderItemColumn, onRenderField = _a.onRenderField;
14
+ var rawContent = column.onRender
15
+ ? column.onRender(item, itemIndex, column)
16
+ : onRenderItemColumn
17
+ ? onRenderItemColumn(item, itemIndex, column)
18
+ : column.fieldName
19
+ ? String((_b = item[column.fieldName]) !== null && _b !== void 0 ? _b : '')
20
+ : '';
21
+ var fieldProps = {
22
+ item: item,
23
+ itemIndex: itemIndex,
24
+ isSelected: isSelected,
25
+ column: column,
26
+ children: rawContent,
27
+ };
28
+ var defaultRender = function (renderProps) { return (React.createElement("div", { role: renderProps.column.isRowHeader ? 'rowheader' : 'gridcell', "aria-colindex": ariaColumnIndex, "data-details-column-key": renderProps.column.key, className: mergeClasses(classes.cell, renderProps.column.isPadded && classes.paddedCell, renderProps.column.isMultiline && classes.multilineCell, renderProps.column.isRowHeader && classes.rowHeaderCell, renderProps.column.className), style: style, title: typeof renderProps.children === 'string' || typeof renderProps.children === 'number'
29
+ ? String(renderProps.children)
30
+ : undefined }, renderDetailsListContent(renderProps.children, classes.cellText))); };
31
+ return React.createElement(React.Fragment, null, onRenderField ? onRenderField(fieldProps, defaultRender) : defaultRender(fieldProps));
32
+ };
33
+ export var DetailsListRow = function (_a) {
34
+ var entry = _a.entry, entryIndex = _a.entryIndex, columns = _a.columns, selectedKeySet = _a.selectedKeySet, disabledKeySet = _a.disabledKeySet, compact = _a.compact, activeItemIndex = _a.activeItemIndex, setActiveItemIndex = _a.setActiveItemIndex, dropTargetKey = _a.dropTargetKey, setDropTargetKey = _a.setDropTargetKey, draggedItemRef = _a.draggedItemRef, effectiveRowHeight = _a.effectiveRowHeight, entryTop = _a.entryTop, gridTemplateColumns = _a.gridTemplateColumns, isHeaderVisible = _a.isHeaderVisible, shouldVirtualize = _a.shouldVirtualize, showSelectionColumn = _a.showSelectionColumn, selectionMode = _a.selectionMode, selectionControlName = _a.selectionControlName, checkboxVisibility = _a.checkboxVisibility, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, isSelectedOnFocus = _a.isSelectedOnFocus, classes = _a.classes, rowStyle = _a.rowStyle, cellStyle = _a.cellStyle, selectItem = _a.selectItem, handleRowKeyDown = _a.handleRowKeyDown, onActiveItemChanged = _a.onActiveItemChanged, onItemInvoked = _a.onItemInvoked, onItemContextMenu = _a.onItemContextMenu, dragDropEvents = _a.dragDropEvents, getRowAriaLabel = _a.getRowAriaLabel, getRowAriaDescribedBy = _a.getRowAriaDescribedBy, onRenderItemColumn = _a.onRenderItemColumn, onRenderField = _a.onRenderField, onRenderRow = _a.onRenderRow;
35
+ var item = entry.item, itemIndex = entry.itemIndex, itemKey = entry.key;
36
+ var isSelected = selectedKeySet.has(itemKey);
37
+ var isDisabled = disabledKeySet.has(itemKey);
38
+ var rowProps = {
39
+ item: item,
40
+ itemIndex: itemIndex,
41
+ itemKey: itemKey,
42
+ columns: columns,
43
+ isSelected: isSelected,
44
+ compact: compact,
45
+ disabled: isDisabled,
46
+ onToggleSelection: function (event) { return selectItem(item, itemIndex, event, true); },
47
+ onInvoke: function (event) { return onItemInvoked === null || onItemInvoked === void 0 ? void 0 : onItemInvoked(item, itemIndex, event); },
48
+ };
49
+ var defaultRender = function (renderProps) {
50
+ var _a, _b;
51
+ return (React.createElement("div", { role: "row", "aria-rowindex": entryIndex + (isHeaderVisible ? 2 : 1), "aria-selected": selectionMode === SelectionMode.none ? undefined : renderProps.isSelected, "aria-disabled": renderProps.disabled || undefined, "aria-label": getRowAriaLabel === null || getRowAriaLabel === void 0 ? void 0 : getRowAriaLabel(renderProps.item), "aria-describedby": getRowAriaDescribedBy === null || getRowAriaDescribedBy === void 0 ? void 0 : getRowAriaDescribedBy(renderProps.item), "data-details-row-index": renderProps.itemIndex, tabIndex: activeItemIndex === renderProps.itemIndex ? 0 : -1, draggable: Boolean((_b = (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.canDrag) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, renderProps.item, renderProps.itemIndex)) !== null && _b !== void 0 ? _b : dragDropEvents), className: mergeClasses(classes.row, renderProps.isSelected && classes.selectedRow, renderProps.disabled && classes.disabledRow, dropTargetKey === renderProps.itemKey && classes.dropTargetRow), style: __assign(__assign({ gridTemplateColumns: gridTemplateColumns, minHeight: effectiveRowHeight, height: effectiveRowHeight }, rowStyle), (shouldVirtualize
52
+ ? {
53
+ position: 'absolute',
54
+ top: entryTop,
55
+ right: 0,
56
+ left: 0,
57
+ }
58
+ : {})), onClick: function (event) {
59
+ if (!isInteractiveTarget(event.target)) {
60
+ selectItem(renderProps.item, renderProps.itemIndex, event, false);
61
+ }
62
+ }, onDoubleClick: function (event) { return onItemInvoked === null || onItemInvoked === void 0 ? void 0 : onItemInvoked(renderProps.item, renderProps.itemIndex, event); }, onContextMenu: function (event) {
63
+ if ((onItemContextMenu === null || onItemContextMenu === void 0 ? void 0 : onItemContextMenu(renderProps.item, renderProps.itemIndex, event)) !== true) {
64
+ event.preventDefault();
65
+ }
66
+ }, onFocus: function (event) {
67
+ setActiveItemIndex(renderProps.itemIndex);
68
+ onActiveItemChanged === null || onActiveItemChanged === void 0 ? void 0 : onActiveItemChanged(renderProps.item, renderProps.itemIndex, event);
69
+ if (isSelectedOnFocus && !renderProps.isSelected) {
70
+ selectItem(renderProps.item, renderProps.itemIndex, event, false);
71
+ }
72
+ }, onKeyDown: function (event) { return handleRowKeyDown(event, renderProps.item, renderProps.itemIndex); }, onDragStart: function (event) {
73
+ var _a;
74
+ draggedItemRef.current = { item: renderProps.item, index: renderProps.itemIndex };
75
+ event.dataTransfer.effectAllowed = 'move';
76
+ event.dataTransfer.setData('text/plain', String(renderProps.itemKey));
77
+ (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.onDragStart) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, renderProps.item, renderProps.itemIndex, event);
78
+ }, onDragEnter: function (event) {
79
+ var _a, _b, _c;
80
+ var draggedItem = draggedItemRef.current;
81
+ if (draggedItem &&
82
+ ((_b = (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.canDrop) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, draggedItem.item, renderProps.item, renderProps.itemIndex)) !== null && _b !== void 0 ? _b : true)) {
83
+ setDropTargetKey(renderProps.itemKey);
84
+ (_c = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.onDragEnter) === null || _c === void 0 ? void 0 : _c.call(dragDropEvents, renderProps.item, renderProps.itemIndex, event);
85
+ }
86
+ }, onDragOver: function (event) {
87
+ if (dropTargetKey === renderProps.itemKey) {
88
+ event.preventDefault();
89
+ event.dataTransfer.dropEffect = 'move';
90
+ }
91
+ }, onDragLeave: function (event) {
92
+ var _a;
93
+ if (!event.currentTarget.contains(event.relatedTarget)) {
94
+ setDropTargetKey(undefined);
95
+ (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.onDragLeave) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, renderProps.item, renderProps.itemIndex, event);
96
+ }
97
+ }, onDrop: function (event) {
98
+ var _a;
99
+ event.preventDefault();
100
+ var draggedItem = draggedItemRef.current;
101
+ if (draggedItem) {
102
+ (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.onDrop) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, draggedItem.item, renderProps.item, renderProps.itemIndex, event);
103
+ }
104
+ setDropTargetKey(undefined);
105
+ }, onDragEnd: function (event) {
106
+ var _a;
107
+ (_a = dragDropEvents === null || dragDropEvents === void 0 ? void 0 : dragDropEvents.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(dragDropEvents, renderProps.item, renderProps.itemIndex, event);
108
+ draggedItemRef.current = undefined;
109
+ setDropTargetKey(undefined);
110
+ } },
111
+ showSelectionColumn && (React.createElement("div", { role: "gridcell", "aria-colindex": 1, "aria-label": ariaLabelForSelectionColumn, className: mergeClasses(classes.selectionCell, checkboxVisibility === CheckboxVisibility.onHover &&
112
+ !renderProps.isSelected &&
113
+ classes.selectionCellOnHover) }, selectionMode === SelectionMode.single ? (React.createElement(Radio, { name: selectionControlName, value: String(renderProps.itemKey), checked: renderProps.isSelected, disabled: renderProps.disabled, "aria-label": strings.DetailsListSelectRowAriaLabel.replace('{0}', String(renderProps.itemIndex + 1)), onChange: function (event) {
114
+ event.stopPropagation();
115
+ renderProps.onToggleSelection(event);
116
+ } })) : (React.createElement(Checkbox, { checked: renderProps.isSelected, disabled: renderProps.disabled, "aria-label": strings.DetailsListSelectRowAriaLabel.replace('{0}', String(renderProps.itemIndex + 1)), onChange: function (event) {
117
+ event.stopPropagation();
118
+ renderProps.onToggleSelection(event);
119
+ } })))),
120
+ renderProps.columns.map(function (column, columnIndex) { return (React.createElement(DetailsListCell, { key: column.key, item: renderProps.item, itemIndex: renderProps.itemIndex, column: column, isSelected: renderProps.isSelected, ariaColumnIndex: columnIndex + (showSelectionColumn ? 2 : 1), classes: classes, style: cellStyle, onRenderItemColumn: onRenderItemColumn, onRenderField: onRenderField })); })));
121
+ };
122
+ return React.createElement(React.Fragment, null, onRenderRow ? onRenderRow(rowProps, defaultRender) : defaultRender(rowProps));
123
+ };
124
+ //# sourceMappingURL=DetailsListRow.js.map