phx-react 1.3.1796 → 1.3.1798
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/dist/cjs/components/TableReport/TableReport.d.ts +2 -2
- package/dist/cjs/components/TableReport/TableReport.js +51 -21
- package/dist/cjs/components/TableReport/TableReport.js.map +1 -1
- package/dist/cjs/components/TableReport/component/ExpandedRows.d.ts +23 -0
- package/dist/cjs/components/TableReport/component/ExpandedRows.js +163 -0
- package/dist/cjs/components/TableReport/component/ExpandedRows.js.map +1 -0
- package/dist/cjs/components/TableReport/component/PaginaitonSelected.js +4 -1
- package/dist/cjs/components/TableReport/component/PaginaitonSelected.js.map +1 -1
- package/dist/cjs/components/TableReport/component/Pagination.js +4 -1
- package/dist/cjs/components/TableReport/component/Pagination.js.map +1 -1
- package/dist/cjs/components/TableReport/component/Row.d.ts +6 -1
- package/dist/cjs/components/TableReport/component/Row.js +10 -2
- package/dist/cjs/components/TableReport/component/Row.js.map +1 -1
- package/dist/cjs/components/TableReport/component/Search.js +7 -3
- package/dist/cjs/components/TableReport/component/Search.js.map +1 -1
- package/dist/cjs/components/TableReport/component/TableBodyRows.d.ts +33 -0
- package/dist/cjs/components/TableReport/component/TableBodyRows.js +68 -0
- package/dist/cjs/components/TableReport/component/TableBodyRows.js.map +1 -0
- package/dist/cjs/components/TableReport/component/TruncatedTooltip.d.ts +16 -0
- package/dist/cjs/components/TableReport/component/TruncatedTooltip.js +46 -0
- package/dist/cjs/components/TableReport/component/TruncatedTooltip.js.map +1 -0
- package/dist/cjs/components/TableReport/types.d.ts +6 -4
- package/dist/cjs/components/TableReport/utils.d.ts +4 -4
- package/dist/cjs/components/TableReport/utils.js +11 -9
- package/dist/cjs/components/TableReport/utils.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +48 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/esm/components/TableReport/TableReport.d.ts +2 -2
- package/dist/esm/components/TableReport/TableReport.js +52 -22
- package/dist/esm/components/TableReport/TableReport.js.map +1 -1
- package/dist/esm/components/TableReport/component/ExpandedRows.d.ts +23 -0
- package/dist/esm/components/TableReport/component/ExpandedRows.js +160 -0
- package/dist/esm/components/TableReport/component/ExpandedRows.js.map +1 -0
- package/dist/esm/components/TableReport/component/PaginaitonSelected.js +4 -1
- package/dist/esm/components/TableReport/component/PaginaitonSelected.js.map +1 -1
- package/dist/esm/components/TableReport/component/Pagination.js +4 -1
- package/dist/esm/components/TableReport/component/Pagination.js.map +1 -1
- package/dist/esm/components/TableReport/component/Row.d.ts +6 -1
- package/dist/esm/components/TableReport/component/Row.js +10 -2
- package/dist/esm/components/TableReport/component/Row.js.map +1 -1
- package/dist/esm/components/TableReport/component/Search.js +7 -3
- package/dist/esm/components/TableReport/component/Search.js.map +1 -1
- package/dist/esm/components/TableReport/component/TableBodyRows.d.ts +33 -0
- package/dist/esm/components/TableReport/component/TableBodyRows.js +65 -0
- package/dist/esm/components/TableReport/component/TableBodyRows.js.map +1 -0
- package/dist/esm/components/TableReport/component/TruncatedTooltip.d.ts +16 -0
- package/dist/esm/components/TableReport/component/TruncatedTooltip.js +43 -0
- package/dist/esm/components/TableReport/component/TruncatedTooltip.js.map +1 -0
- package/dist/esm/components/TableReport/types.d.ts +6 -4
- package/dist/esm/components/TableReport/utils.d.ts +4 -4
- package/dist/esm/components/TableReport/utils.js +11 -9
- package/dist/esm/components/TableReport/utils.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +48 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RowChildrenConfig } from './ExpandedRows';
|
|
3
|
+
import { TBodyComponent, TMergeConfig, TSelectedAllPeople, TTableData } from '../types';
|
|
4
|
+
interface TableBodyRowsProps {
|
|
5
|
+
border: boolean;
|
|
6
|
+
brSetSelectedPeople(value: TTableData): void;
|
|
7
|
+
expandedRowKeys: Array<string>;
|
|
8
|
+
getRowChildren(data: TTableData): RowChildrenConfig | null;
|
|
9
|
+
getRowKey(data: TTableData, dataIdx: number): string;
|
|
10
|
+
handleClick(data: TTableData, isHighlightRow: boolean): void;
|
|
11
|
+
isHighLight(data: TTableData): boolean;
|
|
12
|
+
mergeConfig: TMergeConfig;
|
|
13
|
+
readonly: boolean;
|
|
14
|
+
rowClassName(keyIdx: number, dataIdx: number): string;
|
|
15
|
+
rowHighlightReadonly: boolean;
|
|
16
|
+
rows: Array<TTableData>;
|
|
17
|
+
selectedAllPeople?: TSelectedAllPeople;
|
|
18
|
+
selectedPeople: Array<TTableData>;
|
|
19
|
+
spacing: boolean;
|
|
20
|
+
tableKey: string;
|
|
21
|
+
textCenter: boolean;
|
|
22
|
+
thBody: Array<string>;
|
|
23
|
+
thBodyComponent?: TBodyComponent;
|
|
24
|
+
toggleRowExpanded(rowKey: string): void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Renders table report body rows and their optional expanded child rows.
|
|
28
|
+
*
|
|
29
|
+
* @param props - Body row data, table configuration, and row interaction handlers.
|
|
30
|
+
* @returns Table body row elements.
|
|
31
|
+
*/
|
|
32
|
+
declare function TableBodyRows({ rows, ...config }: TableBodyRowsProps): React.JSX.Element;
|
|
33
|
+
export default TableBodyRows;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
+
const types_1 = require("../../types");
|
|
6
|
+
const ExpandedRows_1 = tslib_1.__importDefault(require("./ExpandedRows"));
|
|
7
|
+
const Row_1 = tslib_1.__importDefault(require("./Row"));
|
|
8
|
+
const RowMerge_1 = tslib_1.__importDefault(require("./RowMerge"));
|
|
9
|
+
/**
|
|
10
|
+
* Renders one body cell using either merge-row or normal-row behavior.
|
|
11
|
+
*
|
|
12
|
+
* @param props - Cell data, table configuration, and expansion state.
|
|
13
|
+
* @returns A table body cell component.
|
|
14
|
+
*/
|
|
15
|
+
function TableBodyCell({ bodyKey, border, brSetSelectedPeople, data, dataIdx, isExpanded, isHighlight, keyIdx, mergeConfig, readonly, rowChildren, rowClassName, rowHighlightReadonly, rowKey, selectedAllPeople, selectedPeople, tableKey, thBodyComponent, toggleRowExpanded, }) {
|
|
16
|
+
const commonProps = {
|
|
17
|
+
border,
|
|
18
|
+
bodyKey,
|
|
19
|
+
brSetSelectedPeople,
|
|
20
|
+
className: rowClassName(keyIdx, dataIdx),
|
|
21
|
+
data,
|
|
22
|
+
dataIdx,
|
|
23
|
+
highlightReadonly: rowHighlightReadonly,
|
|
24
|
+
selectedAllPeople,
|
|
25
|
+
isHighlight,
|
|
26
|
+
selectedPeople,
|
|
27
|
+
keyIdx,
|
|
28
|
+
thBodyComponent,
|
|
29
|
+
readonly,
|
|
30
|
+
tableKey,
|
|
31
|
+
};
|
|
32
|
+
if (mergeConfig.isMergeRowData) {
|
|
33
|
+
return react_1.default.createElement(RowMerge_1.default, { ...commonProps, mergeConfig: mergeConfig });
|
|
34
|
+
}
|
|
35
|
+
return (react_1.default.createElement(Row_1.default, { ...commonProps, expandable: rowChildren && keyIdx === rowChildren.columnIndex
|
|
36
|
+
? {
|
|
37
|
+
enable: true,
|
|
38
|
+
isExpanded,
|
|
39
|
+
onToggle: () => toggleRowExpanded(rowKey),
|
|
40
|
+
}
|
|
41
|
+
: undefined }));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Renders one parent table row and its expanded children.
|
|
45
|
+
*
|
|
46
|
+
* @param props - Row data, table configuration, and expansion handlers.
|
|
47
|
+
* @returns One parent row with optional expanded rows.
|
|
48
|
+
*/
|
|
49
|
+
function TableBodyRow({ data, dataIdx, expandedRowKeys, getRowChildren, getRowKey, handleClick, isHighLight, mergeConfig, thBody, ...restProps }) {
|
|
50
|
+
const rowChildren = getRowChildren(data);
|
|
51
|
+
const rowKey = getRowKey(data, dataIdx);
|
|
52
|
+
const isExpanded = expandedRowKeys.includes(rowKey);
|
|
53
|
+
const isHighlight = isHighLight(data);
|
|
54
|
+
return (react_1.default.createElement(react_1.default.Fragment, { key: rowKey },
|
|
55
|
+
react_1.default.createElement("tr", { className: (0, types_1.classNames)('group', isHighlight && 'bg-gray-100 font-semibold'), onClick: () => handleClick(data, isHighlight) }, thBody.map((bodyKey, keyIdx) => (react_1.default.createElement(TableBodyCell, { key: keyIdx, ...restProps, bodyKey: bodyKey, data: data, dataIdx: dataIdx, isExpanded: isExpanded, isHighlight: isHighlight, keyIdx: keyIdx, mergeConfig: mergeConfig, rowChildren: rowChildren, rowKey: rowKey })))),
|
|
56
|
+
!mergeConfig.isMergeRowData && rowChildren && isExpanded && (react_1.default.createElement(ExpandedRows_1.default, { border: restProps.border, dataIdx: dataIdx, rowChildren: rowChildren, selectedAllPeople: restProps.selectedAllPeople, spacing: restProps.spacing, textCenter: restProps.textCenter, thBody: thBody }))));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Renders table report body rows and their optional expanded child rows.
|
|
60
|
+
*
|
|
61
|
+
* @param props - Body row data, table configuration, and row interaction handlers.
|
|
62
|
+
* @returns Table body row elements.
|
|
63
|
+
*/
|
|
64
|
+
function TableBodyRows({ rows, ...config }) {
|
|
65
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, rows.map((data, dataIdx) => (react_1.default.createElement(TableBodyRow, { key: config.getRowKey(data, dataIdx), ...config, data: data, dataIdx: dataIdx })))));
|
|
66
|
+
}
|
|
67
|
+
exports.default = TableBodyRows;
|
|
68
|
+
//# sourceMappingURL=TableBodyRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBodyRows.js","sourceRoot":"","sources":["../../../../../src/components/TableReport/component/TableBodyRows.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
interface TruncatedTooltipProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
content?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Renders plain truncated text, and wraps it with PHXTooltip only when the text overflows.
|
|
9
|
+
*
|
|
10
|
+
* @param children - Text content to render and measure.
|
|
11
|
+
* @param className - Optional class names for the measured text element.
|
|
12
|
+
* @param content - Optional custom tooltip content.
|
|
13
|
+
* @returns Text content with tooltip behavior only when truncated.
|
|
14
|
+
*/
|
|
15
|
+
declare function TruncatedTooltip({ children, className, content }: TruncatedTooltipProps): React.JSX.Element;
|
|
16
|
+
export default TruncatedTooltip;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
const ToolTip_1 = tslib_1.__importDefault(require("../../ToolTip/ToolTip"));
|
|
6
|
+
const types_1 = require("../../types");
|
|
7
|
+
/**
|
|
8
|
+
* Renders plain truncated text, and wraps it with PHXTooltip only when the text overflows.
|
|
9
|
+
*
|
|
10
|
+
* @param children - Text content to render and measure.
|
|
11
|
+
* @param className - Optional class names for the measured text element.
|
|
12
|
+
* @param content - Optional custom tooltip content.
|
|
13
|
+
* @returns Text content with tooltip behavior only when truncated.
|
|
14
|
+
*/
|
|
15
|
+
function TruncatedTooltip({ children, className, content }) {
|
|
16
|
+
const contentRef = (0, react_1.useRef)(null);
|
|
17
|
+
const [isTruncated, setIsTruncated] = (0, react_1.useState)(false);
|
|
18
|
+
const tooltipContent = content !== null && content !== void 0 ? content : (typeof children === 'string' || typeof children === 'number' ? String(children) : null);
|
|
19
|
+
/**
|
|
20
|
+
* Updates whether the rendered text is visually truncated.
|
|
21
|
+
*
|
|
22
|
+
* @returns void.
|
|
23
|
+
*/
|
|
24
|
+
const updateTruncatedState = () => {
|
|
25
|
+
const element = contentRef.current;
|
|
26
|
+
if (!element)
|
|
27
|
+
return;
|
|
28
|
+
setIsTruncated(element.scrollWidth > element.clientWidth);
|
|
29
|
+
};
|
|
30
|
+
(0, react_1.useEffect)(() => {
|
|
31
|
+
updateTruncatedState();
|
|
32
|
+
const element = contentRef.current;
|
|
33
|
+
if (!element || typeof ResizeObserver === 'undefined')
|
|
34
|
+
return;
|
|
35
|
+
const resizeObserver = new ResizeObserver(updateTruncatedState);
|
|
36
|
+
resizeObserver.observe(element);
|
|
37
|
+
return () => resizeObserver.disconnect();
|
|
38
|
+
}, [children]);
|
|
39
|
+
const textElement = (react_1.default.createElement("span", { ref: contentRef, className: (0, types_1.classNames)('block min-w-0 overflow-hidden text-ellipsis', className) }, children));
|
|
40
|
+
if (!tooltipContent || !isTruncated) {
|
|
41
|
+
return textElement;
|
|
42
|
+
}
|
|
43
|
+
return (react_1.default.createElement(ToolTip_1.default, { className: 'block w-full min-w-0 text-gray-900', content: tooltipContent }, textElement));
|
|
44
|
+
}
|
|
45
|
+
exports.default = TruncatedTooltip;
|
|
46
|
+
//# sourceMappingURL=TruncatedTooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TruncatedTooltip.js","sourceRoot":"","sources":["../../../../../src/components/TableReport/component/TruncatedTooltip.tsx"],"names":[],"mappings":";;;AAAA,uDAAqE;AACrE,4EAA8C;AAC9C,uCAAwC;AAQxC;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAyB;IAC/E,MAAM,UAAU,GAAG,IAAA,cAAM,EAAkB,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAErD,MAAM,cAAc,GAClB,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAErG;;;;OAIG;IACH,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,cAAc,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3D,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,oBAAoB,EAAE,CAAA;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,CAAC,OAAO,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAM;QAE7D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAA;QAC/D,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE/B,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;IAC1C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,WAAW,GAAG,CAClB,wCAAM,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,IAAA,kBAAU,EAAC,6CAA6C,EAAE,SAAS,CAAC,IACnG,QAAQ,CACJ,CACR,CAAA;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,OAAO,CACL,8BAAC,iBAAU,IAAC,SAAS,EAAC,oCAAoC,EAAC,OAAO,EAAE,cAAc,IAC/E,WAAW,CACD,CACd,CAAA;AACH,CAAC;AAED,kBAAe,gBAAgB,CAAA"}
|
|
@@ -10,10 +10,16 @@ export interface THeader {
|
|
|
10
10
|
children?: Array<THeader>;
|
|
11
11
|
}
|
|
12
12
|
export type TTableData = Record<string, any>;
|
|
13
|
+
export interface RowChildrenData {
|
|
14
|
+
headers: Array<string>;
|
|
15
|
+
body: Array<string>;
|
|
16
|
+
data: Array<Record<string, any>>;
|
|
17
|
+
}
|
|
13
18
|
export interface TBodyComponent {
|
|
14
19
|
[key: string]: (value: any, itemBody: any) => {
|
|
15
20
|
value: any;
|
|
16
21
|
row?: number;
|
|
22
|
+
children?: RowChildrenData;
|
|
17
23
|
};
|
|
18
24
|
}
|
|
19
25
|
export interface TMergeConfig {
|
|
@@ -48,10 +54,6 @@ export interface TSelectedAllPeople {
|
|
|
48
54
|
hideSelectedAction?: boolean;
|
|
49
55
|
}
|
|
50
56
|
export interface NavigationUrlApply {
|
|
51
|
-
router: AppRouterInstance;
|
|
52
|
-
searchParams: ReadonlyURLSearchParams;
|
|
53
|
-
}
|
|
54
|
-
export interface NavigationUrlApplyTableReport {
|
|
55
57
|
router?: AppRouterInstance;
|
|
56
58
|
searchParams: ReadonlyURLSearchParams;
|
|
57
59
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { ReadonlyURLSearchParams } from 'next/navigation';
|
|
2
2
|
import { TBodyComponent, THeader, TMergeConfig, TTableData } from './types';
|
|
3
|
-
import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';
|
|
4
3
|
export declare const getMaxDepth: (headers: Array<THeader>) => number;
|
|
5
4
|
export declare const buildHeaderRows: (headers: Array<THeader>, level?: number, rows?: any[], maxDepth?: number, startIndex?: number) => any[];
|
|
6
5
|
export declare const countLeaf: (header: THeader) => number;
|
|
7
6
|
export declare const renderCell: (data: TTableData, columnKey: string, thComponent?: TBodyComponent) => {
|
|
8
7
|
value: any;
|
|
9
8
|
row: number;
|
|
9
|
+
children: import("./types").RowChildrenData | null;
|
|
10
10
|
};
|
|
11
11
|
export declare const findColumnKeyMerge: (mergeConfig: TMergeConfig, columnIndex: number) => string;
|
|
12
12
|
export declare function buildRowSpan(tableData: Array<TTableData>, mergeConfig: TMergeConfig): TTableData[];
|
|
13
13
|
export declare const applyUrlQuery: {
|
|
14
14
|
get: (searchParams: ReadonlyURLSearchParams, key: string) => string | null;
|
|
15
|
-
set: (
|
|
15
|
+
set: (routerPush: (href: string) => void, searchParams: ReadonlyURLSearchParams, data: Array<{
|
|
16
16
|
key: string;
|
|
17
17
|
value: string;
|
|
18
18
|
}>) => void;
|
|
19
|
-
delete: (
|
|
20
|
-
multipleMethod: (
|
|
19
|
+
delete: (routerPush: (href: string) => void, searchParams: ReadonlyURLSearchParams, key: Array<string>) => void;
|
|
20
|
+
multipleMethod: (routerPush: (href: string) => void, searchParams: ReadonlyURLSearchParams, data: Array<{
|
|
21
21
|
key: string;
|
|
22
22
|
value: string;
|
|
23
23
|
method: "get" | "set" | "delete";
|
|
@@ -43,12 +43,14 @@ exports.countLeaf = countLeaf;
|
|
|
43
43
|
const renderCell = (data, columnKey, thComponent) => {
|
|
44
44
|
const value = data[columnKey];
|
|
45
45
|
if (thComponent && (thComponent === null || thComponent === void 0 ? void 0 : thComponent[columnKey])) {
|
|
46
|
+
const componentCell = thComponent[columnKey](value, data);
|
|
46
47
|
return {
|
|
47
|
-
value:
|
|
48
|
-
row:
|
|
48
|
+
value: componentCell.value,
|
|
49
|
+
row: componentCell.row || 1,
|
|
50
|
+
children: (componentCell === null || componentCell === void 0 ? void 0 : componentCell.children) || null,
|
|
49
51
|
};
|
|
50
52
|
}
|
|
51
|
-
return { value: value !== null && value !== void 0 ? value : '', row: 1 };
|
|
53
|
+
return { value: value !== null && value !== void 0 ? value : '', row: 1, children: null };
|
|
52
54
|
};
|
|
53
55
|
exports.renderCell = renderCell;
|
|
54
56
|
const findColumnKeyMerge = (mergeConfig, columnIndex) => {
|
|
@@ -81,22 +83,22 @@ exports.applyUrlQuery = {
|
|
|
81
83
|
const params = new URLSearchParams(searchParams.toString());
|
|
82
84
|
return params.get(key);
|
|
83
85
|
},
|
|
84
|
-
set: (
|
|
86
|
+
set: (routerPush, searchParams, data) => {
|
|
85
87
|
const params = new URLSearchParams(searchParams.toString());
|
|
86
88
|
for (const item of data) {
|
|
87
89
|
const { key, value } = item;
|
|
88
90
|
params.set(key, value);
|
|
89
91
|
}
|
|
90
|
-
|
|
92
|
+
routerPush(`?${params.toString()}`);
|
|
91
93
|
},
|
|
92
|
-
delete: (
|
|
94
|
+
delete: (routerPush, searchParams, key) => {
|
|
93
95
|
const params = new URLSearchParams(searchParams.toString());
|
|
94
96
|
for (const item of key) {
|
|
95
97
|
params.delete(item);
|
|
96
98
|
}
|
|
97
|
-
|
|
99
|
+
routerPush(`?${params.toString()}`);
|
|
98
100
|
},
|
|
99
|
-
multipleMethod: (
|
|
101
|
+
multipleMethod: (routerPush, searchParams, data) => {
|
|
100
102
|
const params = new URLSearchParams(searchParams.toString());
|
|
101
103
|
for (const item of data) {
|
|
102
104
|
const { key, value, method } = item;
|
|
@@ -107,7 +109,7 @@ exports.applyUrlQuery = {
|
|
|
107
109
|
params[method](key, value);
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
|
-
|
|
112
|
+
routerPush(`?${params.toString()}`);
|
|
111
113
|
},
|
|
112
114
|
};
|
|
113
115
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/TableReport/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/TableReport/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ exports.DEFAULT_HEADING_FONT_SIZES = {
|
|
|
21
21
|
h5: '18px',
|
|
22
22
|
h6: '16px',
|
|
23
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Applies the heading font size to every text node inside an element.
|
|
26
|
+
* @param node Element whose text descendants should receive the font size.
|
|
27
|
+
* @param defaultFontSize Font size to write into each text node style.
|
|
28
|
+
*/
|
|
24
29
|
function applyHeadingFontSize(node, defaultFontSize) {
|
|
25
30
|
for (const textNode of node.getAllTextNodes()) {
|
|
26
31
|
const styles = (0, selection_1.getStyleObjectFromCSS)(textNode.getStyle());
|
|
@@ -30,12 +35,38 @@ function applyHeadingFontSize(node, defaultFontSize) {
|
|
|
30
35
|
}));
|
|
31
36
|
}
|
|
32
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Finds the list item that owns a node.
|
|
40
|
+
* @param node Node inside or equal to a list item.
|
|
41
|
+
* @returns Matching list item, or null when the node is not in a list item.
|
|
42
|
+
*/
|
|
33
43
|
function getListItemNode(node) {
|
|
34
44
|
return (0, list_1.$isListItemNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, list_1.$isListItemNode)(parent));
|
|
35
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Finds the heading that owns a node.
|
|
48
|
+
* @param node Node inside or equal to a heading.
|
|
49
|
+
* @returns Matching heading, or null when the node is not in a heading.
|
|
50
|
+
*/
|
|
36
51
|
function getHeadingNode(node) {
|
|
37
52
|
return (0, rich_text_1.$isHeadingNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, rich_text_1.$isHeadingNode)(parent));
|
|
38
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether the current range is only part of one top-level block.
|
|
56
|
+
* @param selection Current range selection.
|
|
57
|
+
* @returns True when the selection should be formatted inline instead of changing the block type.
|
|
58
|
+
*/
|
|
59
|
+
function isPartialSelectionInsideSingleBlock(selection) {
|
|
60
|
+
if (selection.isCollapsed()) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
const anchorBlock = selection.anchor.getNode().getTopLevelElement();
|
|
64
|
+
const focusBlock = selection.focus.getNode().getTopLevelElement();
|
|
65
|
+
if (anchorBlock === null || focusBlock === null || !anchorBlock.is(focusBlock)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return selection.getTextContent().length < anchorBlock.getTextContent().length;
|
|
69
|
+
}
|
|
39
70
|
/**
|
|
40
71
|
* Gets the heading tag represented by the current selected list item font size.
|
|
41
72
|
* @param editor Active Lexical editor.
|
|
@@ -158,13 +189,23 @@ function HeaderDropdown({ editor, value }) {
|
|
|
158
189
|
value: 'quote',
|
|
159
190
|
},
|
|
160
191
|
];
|
|
192
|
+
/**
|
|
193
|
+
* Applies a paragraph, quote, or heading choice to the current editor selection.
|
|
194
|
+
* @param nextValue Selected dropdown value.
|
|
195
|
+
*/
|
|
161
196
|
const handleChangeFont = (nextValue) => {
|
|
162
197
|
if (nextValue === 'paragraph') {
|
|
163
198
|
editor.update(() => {
|
|
199
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
200
|
+
if ((0, lexical_1.$isRangeSelection)(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
201
|
+
(0, selection_1.$patchStyleText)(selection, {
|
|
202
|
+
'font-size': '14px',
|
|
203
|
+
});
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
164
206
|
if (applyListItemFontSize('14px')) {
|
|
165
207
|
return;
|
|
166
208
|
}
|
|
167
|
-
const selection = (0, lexical_1.$getSelection)();
|
|
168
209
|
(0, selection_1.$setBlocksType)(selection, () => (0, lexical_1.$createParagraphNode)(), (prevNode) => applyHeadingFontSize(prevNode, '14px'));
|
|
169
210
|
const nextSelection = (0, lexical_1.$getSelection)();
|
|
170
211
|
if ((0, lexical_1.$isRangeSelection)(nextSelection)) {
|
|
@@ -184,6 +225,12 @@ function HeaderDropdown({ editor, value }) {
|
|
|
184
225
|
editor.update(() => {
|
|
185
226
|
const selection = (0, lexical_1.$getSelection)();
|
|
186
227
|
const headingTag = nextValue;
|
|
228
|
+
if ((0, lexical_1.$isRangeSelection)(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
229
|
+
(0, selection_1.$patchStyleText)(selection, {
|
|
230
|
+
'font-size': exports.DEFAULT_HEADING_FONT_SIZES[headingTag],
|
|
231
|
+
});
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
187
234
|
if (applyListItemFontSize(exports.DEFAULT_HEADING_FONT_SIZES[headingTag])) {
|
|
188
235
|
return;
|
|
189
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":";;;AA2FA,8DAgCC;AAMD,kEAYC;AAED,wEAoCC;AAED,sDAqCC;AAED,iCAgHC;;AA5UD,kDAAkH;AAClH,0DAAyB;AACzB,kDAM2B;AAC3B,wCAAkE;AAClE,0CAAoD;AACpD,qCAQgB;AAEH,QAAA,0BAA0B,GAAmC;IACxE,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;CACX,CAAA;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAiB,EAAE,eAAuB;IACtE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAA,iCAAqB,EAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEzD,QAAQ,CAAC,QAAQ,CACf,IAAA,iCAAqB,EAAC;YACpB,GAAG,MAAM;YACT,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC,CAAA;AACtG,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAiB;IACvC,OAAO,IAAA,0BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC,CAAA;AACpG,CAAC;AAED;;;;GAIG;AACH,SAAS,mCAAmC,CAAC,SAAyB;IACpE,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAA;IACnE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAA;IAEjE,IAAI,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC,MAAM,CAAA;AAChF,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,MAAqB;IAC7D,IAAI,kBAAkB,GAA0B,IAAI,CAAA;IAEpD,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAChC,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;QAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAA,iCAAqB,EAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;YACxF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,kCAA0B,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,gBAAgB,CAChD,CAAA;YAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAmB,CAAA;gBACtD,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,UAA0B;IACpE,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAM;IACR,CAAC;IAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAkB,EAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kCAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;AACH,CAAC;AAED,SAAgB,8BAA8B,CAAC,MAAqB;IAClE,IAAI,iBAAiB,GAAkB,IAAI,CAAA;IAE3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;QAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAe,CAAA;QAC3C,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;YAExC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,kCAA0B,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;YAExE,iBAAiB,GAAG,eAAe,CAAA;YACnC,oBAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAA,2BAAe,EAAC,SAAS,EAAE;gBACzB,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,SAAgB,qBAAqB,CAAC,eAAuB;IAC3D,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC7C,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,oBAAoB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;QACnD,YAAY,CAAC,YAAY,CACvB,IAAA,iCAAqB,EAAC;YACpB,GAAG,IAAA,iCAAqB,EAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACrD,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAA,2BAAe,EAAC,SAAS,EAAE;QACzB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAwB,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAA4C;IAChG,MAAM,WAAW,GAAG;QAClB;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW;SACnB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;SACf;KACF,CAAA;IAED;;;OAGG;IACH,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC7C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;gBAEjC,IAAI,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,IAAA,2BAAe,EAAC,SAAS,EAAE;wBACzB,WAAW,EAAE,MAAM;qBACpB,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAM;gBACR,CAAC;gBAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAoB,GAAE,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrD,CAAA;gBAED,MAAM,aAAa,GAAG,IAAA,uBAAa,GAAE,CAAA;gBAErC,IAAI,IAAA,2BAAiB,EAAC,aAAa,CAAC,EAAE,CAAC;oBACrC,IAAA,2BAAe,EAAC,aAAa,EAAE;wBAC7B,WAAW,EAAE,MAAM;qBACpB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAQ,IAAA,uBAAa,GAAE,CAAA;gBACtC,IAAA,0BAAc,EAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAA,4BAAgB,GAAE,CAAC,CAAA;YACrD,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;gBACjC,MAAM,UAAU,GAAG,SAA2B,CAAA;gBAE9C,IAAI,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,IAAA,2BAAe,EAAC,SAAS,EAAE;wBACzB,WAAW,EAAE,kCAA0B,CAAC,UAAU,CAAC;qBACpD,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED,IAAI,qBAAqB,CAAC,kCAA0B,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBAClE,OAAM;gBACR,CAAC;gBAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAkB,EAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kCAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC,EACD,SAAS,EAAC,mIAAmI,EAC7I,KAAK,EAAE,KAAK,IAEX,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,OAAO,CACL,0CAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IACrC,OAAO,CAAC,IAAI,CACN,CACV,CAAA;QACH,CAAC,CAAC,CACK;QACT,uCAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { NavigationUrlApply, TBodyComponent, THeader, TMergeConfig, TPagination, TSearch, TSelectedAllPeople, TTableData } from './types';
|
|
3
3
|
export interface TableReportProps {
|
|
4
4
|
tableData: Array<TTableData>;
|
|
5
5
|
thHeader: Array<THeader>;
|
|
@@ -24,7 +24,7 @@ export interface TableReportProps {
|
|
|
24
24
|
textCenter?: boolean;
|
|
25
25
|
isHeaderBgWhite?: boolean;
|
|
26
26
|
isResetPagination?: boolean;
|
|
27
|
-
configUrlApply?:
|
|
27
|
+
configUrlApply?: NavigationUrlApply;
|
|
28
28
|
onSelectionChange?: (selectedRows: any[]) => void;
|
|
29
29
|
forceClearSelection?: boolean | string;
|
|
30
30
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
import { classNames } from '../types';
|
|
4
|
-
import { applyUrlQuery, buildHeaderRows, buildRowSpan, getMaxDepth } from './utils';
|
|
5
|
-
import
|
|
6
|
-
import Row from './component/Row';
|
|
4
|
+
import { applyUrlQuery, buildHeaderRows, buildRowSpan, getMaxDepth, renderCell } from './utils';
|
|
5
|
+
import TableBodyRows from './component/TableBodyRows';
|
|
7
6
|
import Search from './component/Search';
|
|
8
7
|
import { PHXEmptyRecord } from '../EmptyRecord';
|
|
9
8
|
import { PHXSkeleton } from '../Skeleton';
|
|
@@ -12,34 +11,63 @@ import Header from './component/Header';
|
|
|
12
11
|
import SelectedAction from '../TableV3/SelectedAction';
|
|
13
12
|
import { MagnifyingGlassIcon } from '@heroicons/react/24/solid';
|
|
14
13
|
import { PHXEmptySearch } from '../EmptySearch';
|
|
15
|
-
import {
|
|
14
|
+
import { PHXUseDirectLink } from '../../hooks/direct-link';
|
|
16
15
|
export function PHXTableReport({ tableData, thHeader, thBody, thBodyComponent, mergeConfig = { isMergeRowData: false, columnPosition: [] }, rowHighlightConfig, search = {
|
|
17
16
|
enable: false,
|
|
18
17
|
loading: false,
|
|
19
18
|
}, loading, pagination, readonly = false, onClick, type = 'default', selectedAllPeople, tableKey = 'table-report', border = true, spacing = true, textCenter = true, isHeaderBgWhite = false, isResetPagination = false, configUrlApply, onSelectionChange, forceClearSelection = false, }) {
|
|
20
19
|
const checkbox = useRef();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
router: (configUrlApply === null || configUrlApply === void 0 ? void 0 : configUrlApply.router) || router,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return;
|
|
31
|
-
};
|
|
32
|
-
const updateConfigUrlApply = getConfigUrlApply();
|
|
20
|
+
/**
|
|
21
|
+
* Falls back to the shared direct-link hook when a router instance is not provided.
|
|
22
|
+
*
|
|
23
|
+
* @returns A direct-link navigation callback.
|
|
24
|
+
*/
|
|
25
|
+
const directLink = PHXUseDirectLink();
|
|
33
26
|
const [isSearch, setIsSearch] = useState(false);
|
|
34
27
|
const [selectedPeople, setSelectedPeople] = useState([]);
|
|
35
28
|
const [checked, setChecked] = useState(false);
|
|
36
29
|
const [indeterminate, setIndeterminate] = useState(false);
|
|
30
|
+
const [expandedRowKeys, setExpandedRowKeys] = useState([]);
|
|
37
31
|
const [currentPage, setCurrentPage] = useState(1);
|
|
38
32
|
const [offset, setOffset] = useState(0);
|
|
39
33
|
const maxDepth = getMaxDepth(thHeader);
|
|
40
34
|
const rows = buildHeaderRows(thHeader, 0, [], maxDepth, 0);
|
|
41
35
|
const rowClassName = (keyIdx, dataIdx) => classNames('text-xs whitespace-nowrap text-gray-900', textCenter ? 'text-center' : 'pl-8 text-left', spacing ? 'px-2 py-2.5' : '', keyIdx !== 0 && border && 'border-l', dataIdx !== 0 && 'border-t', dataIdx === tableData.length - 1 && keyIdx === 0 && !(pagination === null || pagination === void 0 ? void 0 : pagination.enable) && 'rounded-bl-lg', dataIdx === tableData.length - 1 && keyIdx === thBody.length - 1 && !(pagination === null || pagination === void 0 ? void 0 : pagination.enable) && 'rounded-br-lg');
|
|
42
|
-
const isHighLight = (data) => !!(rowHighlightConfig && data[rowHighlightConfig.key] === rowHighlightConfig.value);
|
|
36
|
+
const isHighLight = (data) => !!((rowHighlightConfig === null || rowHighlightConfig === void 0 ? void 0 : rowHighlightConfig.key) && data[rowHighlightConfig.key] === rowHighlightConfig.value);
|
|
37
|
+
/**
|
|
38
|
+
* Resolves a stable key for expansion state tracking.
|
|
39
|
+
*
|
|
40
|
+
* @param data - Current table row data.
|
|
41
|
+
* @param dataIdx - Current row index.
|
|
42
|
+
* @returns Stable row key.
|
|
43
|
+
*/
|
|
44
|
+
const getRowKey = (data, dataIdx) => String(data.id || data._id || data.key || `${tableKey}-${dataIdx}`);
|
|
45
|
+
/**
|
|
46
|
+
* Finds the first body column that declares child rows.
|
|
47
|
+
*
|
|
48
|
+
* @param data - Current table row data.
|
|
49
|
+
* @returns Child row configuration, or null when the row has no children.
|
|
50
|
+
*/
|
|
51
|
+
const getRowChildren = (data) => {
|
|
52
|
+
var _a;
|
|
53
|
+
for (const [columnIndex, bodyKey] of thBody.entries()) {
|
|
54
|
+
const children = renderCell(data, bodyKey, thBodyComponent).children;
|
|
55
|
+
if (!((_a = children === null || children === void 0 ? void 0 : children.data) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
return { columnIndex, children };
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Toggles the expanded state for one table row.
|
|
64
|
+
*
|
|
65
|
+
* @param rowKey - Stable row key to toggle.
|
|
66
|
+
* @returns void.
|
|
67
|
+
*/
|
|
68
|
+
const toggleRowExpanded = (rowKey) => {
|
|
69
|
+
setExpandedRowKeys((current) => current.includes(rowKey) ? current.filter((item) => item !== rowKey) : [...current, rowKey]);
|
|
70
|
+
};
|
|
43
71
|
const handleClick = (data, isHighlightRow) => {
|
|
44
72
|
if (isHighlightRow && !(rowHighlightConfig === null || rowHighlightConfig === void 0 ? void 0 : rowHighlightConfig.readonly)) {
|
|
45
73
|
if (onClick) {
|
|
@@ -69,14 +97,15 @@ export function PHXTableReport({ tableData, thHeader, thBody, thBodyComponent, m
|
|
|
69
97
|
}
|
|
70
98
|
}, [forceClearSelection]);
|
|
71
99
|
useEffect(() => {
|
|
100
|
+
var _a;
|
|
72
101
|
if (isResetPagination) {
|
|
73
102
|
setCurrentPage(1);
|
|
74
103
|
setOffset(0);
|
|
75
104
|
if (pagination === null || pagination === void 0 ? void 0 : pagination.onChange) {
|
|
76
105
|
pagination.onChange(1);
|
|
77
106
|
}
|
|
78
|
-
if (
|
|
79
|
-
applyUrlQuery.set(
|
|
107
|
+
if (configUrlApply) {
|
|
108
|
+
applyUrlQuery.set(((_a = configUrlApply === null || configUrlApply === void 0 ? void 0 : configUrlApply.router) === null || _a === void 0 ? void 0 : _a.push) || directLink, configUrlApply.searchParams, [
|
|
80
109
|
{ key: `pagi-${tableKey}`, value: '1' },
|
|
81
110
|
]);
|
|
82
111
|
}
|
|
@@ -94,7 +123,7 @@ export function PHXTableReport({ tableData, thHeader, thBody, thBodyComponent, m
|
|
|
94
123
|
return (React.createElement(React.Fragment, null,
|
|
95
124
|
loading ? (React.createElement(PHXSkeleton, { type: 'table' })) : (React.createElement(React.Fragment, null, tableData.length > 0 || (tableData.length === 0 && isSearch) ? (React.createElement("div", { className: 'overflow-hidden rounded-lg bg-white shadow-[0rem_.3125rem_.3125rem_-.15625rem_rgba(0,0,0,.03),0rem_.1875rem_.1875rem_-.09375rem_rgba(0,0,0,.02),0rem_.125rem_.125rem_-.0625rem_rgba(0,0,0,.02),0rem_.0625rem_.0625rem_-.03125rem_rgba(0,0,0,.03),0rem_.03125rem_.03125rem_0rem_rgba(0,0,0,.04),0rem_0rem_0rem_.0625rem_rgba(0,0,0,.06)] ring-1 ring-gray-300' },
|
|
96
125
|
search && search.enable && (React.createElement("div", { className: classNames('relative flex h-9 flex-row items-center rounded-tl-lg rounded-tr-lg px-3 ring-1 ring-gray-300', isSearch ? 'border-none' : 'justify-end', type === 'in-card' ? 'bg-gray-50' : 'bg-white') },
|
|
97
|
-
React.createElement(Search, { isSearch: isSearch, search: search, setIsSearch: setIsSearch, type: type, setCurrentPage: setCurrentPage, setOffset: setOffset, paginationChange: pagination === null || pagination === void 0 ? void 0 : pagination.onChange, tableKey: tableKey, configUrlApply:
|
|
126
|
+
React.createElement(Search, { isSearch: isSearch, search: search, setIsSearch: setIsSearch, type: type, setCurrentPage: setCurrentPage, setOffset: setOffset, paginationChange: pagination === null || pagination === void 0 ? void 0 : pagination.onChange, tableKey: tableKey, configUrlApply: configUrlApply }),
|
|
98
127
|
React.createElement("button", { className: classNames('ml-1 flex rounded-lg bg-white px-2 py-1 text-xs font-normal text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 active:bg-gray-200 active:pb-[0.2rem] active:pt-[0.3rem] active:shadow-[0rem_0.125rem_0.1rem_0rem_#0004_inset] sm:ml-0', isSearch ? 'pointer-events-none opacity-0' : 'opacity-100'), onClick: () => setIsSearch(true), type: 'button' },
|
|
99
128
|
React.createElement(MagnifyingGlassIcon, { className: 'h-4 w-4' })),
|
|
100
129
|
React.createElement("div", { className: 'absolute bottom-0 left-0 h-[1px] w-full bg-white' }))),
|
|
@@ -104,9 +133,10 @@ export function PHXTableReport({ tableData, thHeader, thBody, thBodyComponent, m
|
|
|
104
133
|
React.createElement("table", { className: 'min-w-full divide-y divide-gray-300' },
|
|
105
134
|
React.createElement("thead", null,
|
|
106
135
|
React.createElement(Header, { isHeaderBgWhite: isHeaderBgWhite, border: border, checkbox: checkbox, checked: checked, rows: rows, search: search, selectedAllPeople: selectedAllPeople, tableKey: tableKey, toggleAll: toggleAll, spacing: spacing, textCenter: textCenter })),
|
|
107
|
-
React.createElement("tbody", null,
|
|
136
|
+
React.createElement("tbody", null,
|
|
137
|
+
React.createElement(TableBodyRows, { border: border, brSetSelectedPeople: brSetSelectedPeople, expandedRowKeys: expandedRowKeys, getRowChildren: getRowChildren, getRowKey: getRowKey, handleClick: handleClick, isHighLight: isHighLight, mergeConfig: mergeConfig, readonly: readonly, rowClassName: rowClassName, rowHighlightReadonly: !!(rowHighlightConfig === null || rowHighlightConfig === void 0 ? void 0 : rowHighlightConfig.readonly), rows: buildRowSpan(tableData, mergeConfig), selectedAllPeople: selectedAllPeople, selectedPeople: selectedPeople, spacing: spacing, tableKey: tableKey, textCenter: textCenter, thBody: thBody, thBodyComponent: thBodyComponent, toggleRowExpanded: toggleRowExpanded }))))))) : (React.createElement("div", { className: 'overflow-hidden rounded-lg' },
|
|
108
138
|
React.createElement(PHXEmptySearch, null)))),
|
|
109
|
-
tableData.length > 0 && pagination && (pagination === null || pagination === void 0 ? void 0 : pagination.enable) && (React.createElement(Pagination, { pagination: pagination, currentPage: currentPage, setCurrentPage: setCurrentPage, offset: offset, setOffset: setOffset, tableKey: tableKey, configUrlApply:
|
|
139
|
+
tableData.length > 0 && pagination && (pagination === null || pagination === void 0 ? void 0 : pagination.enable) && (React.createElement(Pagination, { pagination: pagination, currentPage: currentPage, setCurrentPage: setCurrentPage, offset: offset, setOffset: setOffset, tableKey: tableKey, configUrlApply: configUrlApply })))) : (React.createElement("div", { className: 'overflow-hidden rounded-lg border' },
|
|
110
140
|
React.createElement(PHXEmptyRecord, null))))),
|
|
111
141
|
selectedAllPeople && selectedAllPeople.enable && (React.createElement(SelectedAction, { selectedBtn: selectedAllPeople.selectedAction.actions, selectedPeople: selectedPeople, slectedTitle: selectedAllPeople.selectedAction.label, toggleAll: toggleAll }))));
|
|
112
142
|
}
|