@pnp/spfx-controls-react 3.26.0-beta.3386473 → 3.26.0-beta.3440836
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.
- package/CHANGELOG.json +4 -1
- package/CHANGELOG.md +5 -1
- package/jest-output/JUnit.xml +104 -98
- package/lib/DetailsList.d.ts +3 -0
- package/lib/DetailsList.d.ts.map +1 -0
- package/lib/DetailsList.js +2 -0
- package/lib/DetailsList.js.map +1 -0
- package/lib/common/telemetry/version.js +1 -1
- package/lib/controls/DetailsList/DetailsList.d.ts +4 -0
- package/lib/controls/DetailsList/DetailsList.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsList.js +277 -0
- package/lib/controls/DetailsList/DetailsList.js.map +1 -0
- package/lib/controls/DetailsList/DetailsList.test.d.ts +2 -0
- package/lib/controls/DetailsList/DetailsList.test.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsList.types.d.ts +230 -0
- package/lib/controls/DetailsList/DetailsList.types.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsList.types.js +37 -0
- package/lib/controls/DetailsList/DetailsList.types.js.map +1 -0
- package/lib/controls/DetailsList/DetailsList.utils.d.ts +21 -0
- package/lib/controls/DetailsList/DetailsList.utils.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsList.utils.js +122 -0
- package/lib/controls/DetailsList/DetailsList.utils.js.map +1 -0
- package/lib/controls/DetailsList/DetailsListContent.d.ts +3 -0
- package/lib/controls/DetailsList/DetailsListContent.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsListContent.js +9 -0
- package/lib/controls/DetailsList/DetailsListContent.js.map +1 -0
- package/lib/controls/DetailsList/DetailsListGroupHeader.d.ts +21 -0
- package/lib/controls/DetailsList/DetailsListGroupHeader.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsListGroupHeader.js +41 -0
- package/lib/controls/DetailsList/DetailsListGroupHeader.js.map +1 -0
- package/lib/controls/DetailsList/DetailsListHeader.d.ts +33 -0
- package/lib/controls/DetailsList/DetailsListHeader.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsListHeader.js +94 -0
- package/lib/controls/DetailsList/DetailsListHeader.js.map +1 -0
- package/lib/controls/DetailsList/DetailsListRow.d.ts +49 -0
- package/lib/controls/DetailsList/DetailsListRow.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsListRow.js +124 -0
- package/lib/controls/DetailsList/DetailsListRow.js.map +1 -0
- package/lib/controls/DetailsList/DetailsListShimmerRows.d.ts +18 -0
- package/lib/controls/DetailsList/DetailsListShimmerRows.d.ts.map +1 -0
- package/lib/controls/DetailsList/DetailsListShimmerRows.js +34 -0
- package/lib/controls/DetailsList/DetailsListShimmerRows.js.map +1 -0
- package/lib/controls/DetailsList/index.d.ts +3 -0
- package/lib/controls/DetailsList/index.d.ts.map +1 -0
- package/lib/controls/DetailsList/index.js +3 -0
- package/lib/controls/DetailsList/index.js.map +1 -0
- package/lib/controls/DetailsList/useDetailsListColumns.d.ts +30 -0
- package/lib/controls/DetailsList/useDetailsListColumns.d.ts.map +1 -0
- package/lib/controls/DetailsList/useDetailsListColumns.js +145 -0
- package/lib/controls/DetailsList/useDetailsListColumns.js.map +1 -0
- package/lib/controls/DetailsList/useDetailsListGroups.d.ts +11 -0
- package/lib/controls/DetailsList/useDetailsListGroups.d.ts.map +1 -0
- package/lib/controls/DetailsList/useDetailsListGroups.js +24 -0
- package/lib/controls/DetailsList/useDetailsListGroups.js.map +1 -0
- package/lib/controls/DetailsList/useDetailsListSelection.d.ts +27 -0
- package/lib/controls/DetailsList/useDetailsListSelection.d.ts.map +1 -0
- package/lib/controls/DetailsList/useDetailsListSelection.js +114 -0
- package/lib/controls/DetailsList/useDetailsListSelection.js.map +1 -0
- package/lib/controls/DetailsList/useDetailsListStyles.d.ts +42 -0
- package/lib/controls/DetailsList/useDetailsListStyles.d.ts.map +1 -0
- package/lib/controls/DetailsList/useDetailsListStyles.js +338 -0
- package/lib/controls/DetailsList/useDetailsListStyles.js.map +1 -0
- package/lib/controls/DetailsList/useDetailsListViewport.d.ts +23 -0
- package/lib/controls/DetailsList/useDetailsListViewport.d.ts.map +1 -0
- package/lib/controls/DetailsList/useDetailsListViewport.js +86 -0
- package/lib/controls/DetailsList/useDetailsListViewport.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/loc/bg-bg.js +9 -0
- package/lib/loc/bg-bg.js.map +1 -1
- package/lib/loc/ca-es.js +9 -0
- package/lib/loc/ca-es.js.map +1 -1
- package/lib/loc/cs-cz.js +9 -0
- package/lib/loc/cs-cz.js.map +1 -1
- package/lib/loc/da-dk.js +9 -0
- package/lib/loc/da-dk.js.map +1 -1
- package/lib/loc/de-de.js +9 -0
- package/lib/loc/de-de.js.map +1 -1
- package/lib/loc/el-gr.js +9 -0
- package/lib/loc/el-gr.js.map +1 -1
- package/lib/loc/en-us.js +9 -0
- package/lib/loc/en-us.js.map +1 -1
- package/lib/loc/es-es.js +9 -0
- package/lib/loc/es-es.js.map +1 -1
- package/lib/loc/et-ee.js +9 -0
- package/lib/loc/et-ee.js.map +1 -1
- package/lib/loc/eu-es.js +9 -0
- package/lib/loc/eu-es.js.map +1 -1
- package/lib/loc/fi-fi.js +9 -0
- package/lib/loc/fi-fi.js.map +1 -1
- package/lib/loc/fr-ca.js +9 -0
- package/lib/loc/fr-ca.js.map +1 -1
- package/lib/loc/fr-fr.js +9 -0
- package/lib/loc/fr-fr.js.map +1 -1
- package/lib/loc/it-it.js +9 -0
- package/lib/loc/it-it.js.map +1 -1
- package/lib/loc/ja-jp.js +9 -0
- package/lib/loc/ja-jp.js.map +1 -1
- package/lib/loc/lt-lt.js +9 -0
- package/lib/loc/lt-lt.js.map +1 -1
- package/lib/loc/lv-lv.js +9 -0
- package/lib/loc/lv-lv.js.map +1 -1
- package/lib/loc/nb-no.js +9 -0
- package/lib/loc/nb-no.js.map +1 -1
- package/lib/loc/nl-nl.js +9 -0
- package/lib/loc/nl-nl.js.map +1 -1
- package/lib/loc/pl-pl.js +9 -0
- package/lib/loc/pl-pl.js.map +1 -1
- package/lib/loc/pt-br.js +9 -0
- package/lib/loc/pt-br.js.map +1 -1
- package/lib/loc/pt-pt.js +9 -0
- package/lib/loc/pt-pt.js.map +1 -1
- package/lib/loc/ro-ro.js +9 -0
- package/lib/loc/ro-ro.js.map +1 -1
- package/lib/loc/ru-ru.js +9 -0
- package/lib/loc/ru-ru.js.map +1 -1
- package/lib/loc/sk-sk.js +9 -0
- package/lib/loc/sk-sk.js.map +1 -1
- package/lib/loc/sr-latn-rs.js +9 -0
- package/lib/loc/sr-latn-rs.js.map +1 -1
- package/lib/loc/sv-se.js +9 -0
- package/lib/loc/sv-se.js.map +1 -1
- package/lib/loc/tr-tr.js +9 -0
- package/lib/loc/tr-tr.js.map +1 -1
- package/lib/loc/vi-vn.js +9 -0
- package/lib/loc/vi-vn.js.map +1 -1
- package/lib/loc/zh-cn.js +9 -0
- package/lib/loc/zh-cn.js.map +1 -1
- package/lib/loc/zh-tw.js +9 -0
- package/lib/loc/zh-tw.js.map +1 -1
- package/lib-commonjs/DetailsList.js +12 -0
- package/lib-commonjs/DetailsList.js.map +1 -0
- package/lib-commonjs/common/telemetry/version.js +1 -1
- package/lib-commonjs/controls/DetailsList/DetailsList.js +280 -0
- package/lib-commonjs/controls/DetailsList/DetailsList.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsList.types.js +38 -0
- package/lib-commonjs/controls/DetailsList/DetailsList.types.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsList.utils.js +130 -0
- package/lib-commonjs/controls/DetailsList/DetailsList.utils.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsListContent.js +14 -0
- package/lib-commonjs/controls/DetailsList/DetailsListContent.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsListGroupHeader.js +45 -0
- package/lib-commonjs/controls/DetailsList/DetailsListGroupHeader.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsListHeader.js +98 -0
- package/lib-commonjs/controls/DetailsList/DetailsListHeader.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsListRow.js +128 -0
- package/lib-commonjs/controls/DetailsList/DetailsListRow.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/DetailsListShimmerRows.js +39 -0
- package/lib-commonjs/controls/DetailsList/DetailsListShimmerRows.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/index.js +8 -0
- package/lib-commonjs/controls/DetailsList/index.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListColumns.js +149 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListColumns.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListGroups.js +29 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListGroups.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListSelection.js +119 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListSelection.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListStyles.js +342 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListStyles.js.map +1 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListViewport.js +91 -0
- package/lib-commonjs/controls/DetailsList/useDetailsListViewport.js.map +1 -0
- package/lib-commonjs/index.js +1 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/loc/bg-bg.js +9 -0
- package/lib-commonjs/loc/bg-bg.js.map +1 -1
- package/lib-commonjs/loc/ca-es.js +9 -0
- package/lib-commonjs/loc/ca-es.js.map +1 -1
- package/lib-commonjs/loc/cs-cz.js +9 -0
- package/lib-commonjs/loc/cs-cz.js.map +1 -1
- package/lib-commonjs/loc/da-dk.js +9 -0
- package/lib-commonjs/loc/da-dk.js.map +1 -1
- package/lib-commonjs/loc/de-de.js +9 -0
- package/lib-commonjs/loc/de-de.js.map +1 -1
- package/lib-commonjs/loc/el-gr.js +9 -0
- package/lib-commonjs/loc/el-gr.js.map +1 -1
- package/lib-commonjs/loc/en-us.js +9 -0
- package/lib-commonjs/loc/en-us.js.map +1 -1
- package/lib-commonjs/loc/es-es.js +9 -0
- package/lib-commonjs/loc/es-es.js.map +1 -1
- package/lib-commonjs/loc/et-ee.js +9 -0
- package/lib-commonjs/loc/et-ee.js.map +1 -1
- package/lib-commonjs/loc/eu-es.js +9 -0
- package/lib-commonjs/loc/eu-es.js.map +1 -1
- package/lib-commonjs/loc/fi-fi.js +9 -0
- package/lib-commonjs/loc/fi-fi.js.map +1 -1
- package/lib-commonjs/loc/fr-ca.js +9 -0
- package/lib-commonjs/loc/fr-ca.js.map +1 -1
- package/lib-commonjs/loc/fr-fr.js +9 -0
- package/lib-commonjs/loc/fr-fr.js.map +1 -1
- package/lib-commonjs/loc/it-it.js +9 -0
- package/lib-commonjs/loc/it-it.js.map +1 -1
- package/lib-commonjs/loc/ja-jp.js +9 -0
- package/lib-commonjs/loc/ja-jp.js.map +1 -1
- package/lib-commonjs/loc/lt-lt.js +9 -0
- package/lib-commonjs/loc/lt-lt.js.map +1 -1
- package/lib-commonjs/loc/lv-lv.js +9 -0
- package/lib-commonjs/loc/lv-lv.js.map +1 -1
- package/lib-commonjs/loc/nb-no.js +9 -0
- package/lib-commonjs/loc/nb-no.js.map +1 -1
- package/lib-commonjs/loc/nl-nl.js +9 -0
- package/lib-commonjs/loc/nl-nl.js.map +1 -1
- package/lib-commonjs/loc/pl-pl.js +9 -0
- package/lib-commonjs/loc/pl-pl.js.map +1 -1
- package/lib-commonjs/loc/pt-br.js +9 -0
- package/lib-commonjs/loc/pt-br.js.map +1 -1
- package/lib-commonjs/loc/pt-pt.js +9 -0
- package/lib-commonjs/loc/pt-pt.js.map +1 -1
- package/lib-commonjs/loc/ro-ro.js +9 -0
- package/lib-commonjs/loc/ro-ro.js.map +1 -1
- package/lib-commonjs/loc/ru-ru.js +9 -0
- package/lib-commonjs/loc/ru-ru.js.map +1 -1
- package/lib-commonjs/loc/sk-sk.js +9 -0
- package/lib-commonjs/loc/sk-sk.js.map +1 -1
- package/lib-commonjs/loc/sr-latn-rs.js +9 -0
- package/lib-commonjs/loc/sr-latn-rs.js.map +1 -1
- package/lib-commonjs/loc/sv-se.js +9 -0
- package/lib-commonjs/loc/sv-se.js.map +1 -1
- package/lib-commonjs/loc/tr-tr.js +9 -0
- package/lib-commonjs/loc/tr-tr.js.map +1 -1
- package/lib-commonjs/loc/vi-vn.js +9 -0
- package/lib-commonjs/loc/vi-vn.js.map +1 -1
- package/lib-commonjs/loc/zh-cn.js +9 -0
- package/lib-commonjs/loc/zh-cn.js.map +1 -1
- package/lib-commonjs/loc/zh-tw.js +9 -0
- package/lib-commonjs/loc/zh-tw.js.map +1 -1
- package/lib-commonjs/webparts/controlsTest/ControlsTestWebPart.manifest.json +1 -0
- package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js +27 -0
- package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js.map +1 -1
- package/lib-commonjs/webparts/controlsTest/components/TestDetailsListControl.js +335 -0
- package/lib-commonjs/webparts/controlsTest/components/TestDetailsListControl.js.map +1 -0
- package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js +1 -1
- package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js.map +1 -1
- package/package.json +2 -2
- package/release/analysis-logs/lint.sarif +1139 -954
- package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +34 -33
- package/release/manifests/57ebd944-98ed-43f9-b722-e959d6dac6ad.manifest.json +33 -33
- package/release/manifests/f9c6b930-8d5d-4550-bfd9-ed5f6ca443a8.manifest.json +33 -33
- 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 @@
|
|
|
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
|