@plasmicpkgs/plasmic-rich-components 1.0.169 → 1.0.171
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/.tsbuildinfo +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/plasmic-rich-components.esm.js +9 -8
- package/dist/plasmic-rich-components.esm.js.map +1 -1
- package/dist/rich-calendar/index.d.ts +1 -1
- package/package.json +18 -4
- package/skinny/common-8cca2977.esm.js +22 -0
- package/skinny/common-8cca2977.esm.js.map +1 -0
- package/skinny/common-e1d76791.cjs.js +30 -0
- package/skinny/common-e1d76791.cjs.js.map +1 -0
- package/skinny/common-prop-types-5f1fd4b0.cjs.js +139 -0
- package/skinny/common-prop-types-5f1fd4b0.cjs.js.map +1 -0
- package/skinny/common-prop-types-686c49fe.esm.js +133 -0
- package/skinny/common-prop-types-686c49fe.esm.js.map +1 -0
- package/skinny/common-prop-types.d.ts +12 -0
- package/skinny/common.d.ts +5 -0
- package/skinny/field-mappings.d.ts +100 -0
- package/skinny/field-react-utils-26fba31e.esm.js +142 -0
- package/skinny/field-react-utils-26fba31e.esm.js.map +1 -0
- package/skinny/field-react-utils-c717ec94.cjs.js +153 -0
- package/skinny/field-react-utils-c717ec94.cjs.js.map +1 -0
- package/skinny/field-react-utils.d.ts +34 -0
- package/skinny/formatting-327e0658.cjs.js +645 -0
- package/skinny/formatting-327e0658.cjs.js.map +1 -0
- package/skinny/formatting-aff39488.esm.js +633 -0
- package/skinny/formatting-aff39488.esm.js.map +1 -0
- package/skinny/formatting.d.ts +7 -0
- package/skinny/rich-calendar/RichCalendar.d.ts +31 -0
- package/skinny/rich-calendar/index.cjs.js +502 -0
- package/skinny/rich-calendar/index.cjs.js.map +1 -0
- package/skinny/rich-calendar/index.d.ts +15 -0
- package/skinny/rich-calendar/index.esm.js +489 -0
- package/skinny/rich-calendar/index.esm.js.map +1 -0
- package/skinny/rich-details/RichDetails.d.ts +12 -0
- package/skinny/rich-details/index.cjs.js +169 -0
- package/skinny/rich-details/index.cjs.js.map +1 -0
- package/skinny/rich-details/index.d.ts +3 -0
- package/skinny/rich-details/index.esm.js +162 -0
- package/skinny/rich-details/index.esm.js.map +1 -0
- package/skinny/rich-layout/RichLayout.d.ts +22 -0
- package/skinny/rich-layout/index.cjs.js +486 -0
- package/skinny/rich-layout/index.cjs.js.map +1 -0
- package/skinny/rich-layout/index.d.ts +5 -0
- package/skinny/rich-layout/index.esm.js +476 -0
- package/skinny/rich-layout/index.esm.js.map +1 -0
- package/skinny/rich-list/RichList.d.ts +59 -0
- package/skinny/rich-list/index.cjs.js +583 -0
- package/skinny/rich-list/index.cjs.js.map +1 -0
- package/skinny/rich-list/index.d.ts +5 -0
- package/skinny/rich-list/index.esm.js +571 -0
- package/skinny/rich-list/index.esm.js.map +1 -0
- package/skinny/rich-table/RichTable.d.ts +46 -0
- package/skinny/rich-table/index.cjs.js +598 -0
- package/skinny/rich-table/index.cjs.js.map +1 -0
- package/skinny/rich-table/index.d.ts +21 -0
- package/skinny/rich-table/index.esm.js +586 -0
- package/skinny/rich-table/index.esm.js.map +1 -0
- package/skinny/utils-65c486f0.cjs.js +139 -0
- package/skinny/utils-65c486f0.cjs.js.map +1 -0
- package/skinny/utils-c32bd7ed.esm.js +118 -0
- package/skinny/utils-c32bd7ed.esm.js.map +1 -0
- package/skinny/utils.d.ts +72 -0
- package/skinny/widgets.d.ts +2 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Dropdown } from 'antd';
|
|
2
|
+
import fastStringify from 'fast-stringify';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { e as ensure } from './utils-c32bd7ed.esm.js';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
function useSortedFilteredData(data, columns) {
|
|
26
|
+
const [search, setSearch] = useState("");
|
|
27
|
+
const [sortState, setSortState] = useState(void 0);
|
|
28
|
+
const finalData = React.useMemo(() => {
|
|
29
|
+
var _a;
|
|
30
|
+
const filtered = (_a = data == null ? void 0 : data.data) == null ? void 0 : _a.filter(
|
|
31
|
+
(row) => fastStringify(Object.values(row)).toLowerCase().includes(search.toLowerCase())
|
|
32
|
+
);
|
|
33
|
+
const sorted = (sortState == null ? void 0 : sortState.sorter.column) ? (
|
|
34
|
+
// We use .sort() rather than sortBy to use localeCompare
|
|
35
|
+
(() => {
|
|
36
|
+
var _a2;
|
|
37
|
+
const cconfig = columns.find(
|
|
38
|
+
(cc) => {
|
|
39
|
+
var _a3;
|
|
40
|
+
return cc.key === ((_a3 = sortState == null ? void 0 : sortState.sorter.column) == null ? void 0 : _a3.key);
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
const expr = (_a2 = cconfig.expr) != null ? _a2 : (x) => x;
|
|
44
|
+
return (filtered != null ? filtered : []).sort((aa, bb) => {
|
|
45
|
+
var _a3, _b;
|
|
46
|
+
const a = (_a3 = expr(aa, cconfig.fieldId ? aa == null ? void 0 : aa[cconfig.fieldId] : null)) != null ? _a3 : null, b = (_b = expr(bb, cconfig.fieldId ? bb == null ? void 0 : bb[cconfig.fieldId] : null)) != null ? _b : null;
|
|
47
|
+
return typeof a === "string" ? a.localeCompare(b != null ? b : "") : typeof b === "string" ? -b.localeCompare(a != null ? a : "") : a - b;
|
|
48
|
+
});
|
|
49
|
+
})()
|
|
50
|
+
) : filtered;
|
|
51
|
+
const reversed = (sortState == null ? void 0 : sortState.sorter.order) === "descend" ? sorted == null ? void 0 : sorted.reverse() : sorted;
|
|
52
|
+
return reversed;
|
|
53
|
+
}, [data, columns, sortState, search]);
|
|
54
|
+
return {
|
|
55
|
+
finalData,
|
|
56
|
+
search,
|
|
57
|
+
setSearch,
|
|
58
|
+
setSortState
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function tagDataArray(xs) {
|
|
62
|
+
return xs.map((x, i) => __spreadProps(__spreadValues({}, x), { __tag: i + 1 }));
|
|
63
|
+
}
|
|
64
|
+
function getTag(x) {
|
|
65
|
+
return x.__tag;
|
|
66
|
+
}
|
|
67
|
+
function deriveRowKey(_data, rowKey) {
|
|
68
|
+
if (rowKey) {
|
|
69
|
+
return rowKey;
|
|
70
|
+
}
|
|
71
|
+
return (x) => {
|
|
72
|
+
return ensure(getTag(x));
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function deriveKeyOfRow(row, rowKey) {
|
|
76
|
+
if (typeof rowKey === "function") {
|
|
77
|
+
return rowKey(row);
|
|
78
|
+
} else if (typeof rowKey === "string") {
|
|
79
|
+
return row[rowKey];
|
|
80
|
+
} else {
|
|
81
|
+
return void 0;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function renderActions(rowActions, row, data, rowKey) {
|
|
85
|
+
return rowActions.map((_action) => {
|
|
86
|
+
var _a;
|
|
87
|
+
if (_action.type === "item") {
|
|
88
|
+
return /* @__PURE__ */ React.createElement(
|
|
89
|
+
"a",
|
|
90
|
+
{
|
|
91
|
+
key: _action.label,
|
|
92
|
+
style: {
|
|
93
|
+
whiteSpace: "nowrap"
|
|
94
|
+
},
|
|
95
|
+
onClick: () => {
|
|
96
|
+
var _a2;
|
|
97
|
+
return (_a2 = _action.onClick) == null ? void 0 : _a2.call(
|
|
98
|
+
_action,
|
|
99
|
+
deriveKeyOfRow(row, deriveRowKey(data, rowKey)),
|
|
100
|
+
row
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
_action.label
|
|
105
|
+
);
|
|
106
|
+
} else {
|
|
107
|
+
return /* @__PURE__ */ React.createElement(
|
|
108
|
+
Dropdown,
|
|
109
|
+
{
|
|
110
|
+
key: _action.label,
|
|
111
|
+
menu: {
|
|
112
|
+
items: ((_a = _action.children) != null ? _a : []).map((child) => ({
|
|
113
|
+
key: child.label,
|
|
114
|
+
label: child.label,
|
|
115
|
+
onClick: () => {
|
|
116
|
+
var _a2;
|
|
117
|
+
return (_a2 = child.onClick) == null ? void 0 : _a2.call(
|
|
118
|
+
child,
|
|
119
|
+
deriveKeyOfRow(row, deriveRowKey(data, rowKey)),
|
|
120
|
+
row
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
}))
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
/* @__PURE__ */ React.createElement(
|
|
127
|
+
"a",
|
|
128
|
+
{
|
|
129
|
+
href: "javascript: void 0",
|
|
130
|
+
style: {
|
|
131
|
+
whiteSpace: "nowrap"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
_action.label
|
|
135
|
+
)
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export { deriveRowKey as a, deriveKeyOfRow as d, renderActions as r, tagDataArray as t, useSortedFilteredData as u };
|
|
142
|
+
//# sourceMappingURL=field-react-utils-26fba31e.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-react-utils-26fba31e.esm.js","sources":["../src/field-react-utils.tsx"],"sourcesContent":["import { NormalizedData, QueryResult } from \"@plasmicapp/data-sources\";\nimport { Dropdown } from \"antd\";\nimport type { GetRowKey, SorterResult } from \"antd/es/table/interface\";\nimport fastStringify from \"fast-stringify\";\nimport React, { Key, useState } from \"react\";\nimport { BaseColumnConfig } from \"./field-mappings\";\nimport { ensure } from \"./utils\";\n\nexport function useSortedFilteredData(\n data: NormalizedData | undefined,\n columns: BaseColumnConfig[]\n) {\n const [search, setSearch] = useState(\"\");\n const [sortState, setSortState] = useState<\n undefined | { sorter: SorterResult<Record<string, any>> }\n >(undefined);\n const finalData = React.useMemo(() => {\n const filtered = data?.data?.filter((row) =>\n fastStringify(Object.values(row))\n .toLowerCase()\n .includes(search.toLowerCase())\n );\n const sorted = sortState?.sorter.column\n ? // We use .sort() rather than sortBy to use localeCompare\n (() => {\n const cconfig = columns.find(\n (cc) => cc.key === sortState?.sorter.column?.key\n )!;\n const expr = cconfig.expr ?? ((x) => x);\n return (filtered ?? []).sort((aa, bb) => {\n const a =\n expr(aa, cconfig.fieldId ? aa?.[cconfig.fieldId] : null) ??\n null,\n b =\n expr(bb, cconfig.fieldId ? bb?.[cconfig.fieldId] : null) ??\n null;\n // Default nil to '' here because A < null < z which is weird.\n return typeof a === \"string\"\n ? a.localeCompare(b ?? \"\")\n : typeof b === \"string\"\n ? -b.localeCompare(a ?? \"\")\n : a - b;\n });\n })()\n : filtered;\n const reversed =\n sortState?.sorter.order === \"descend\" ? sorted?.reverse() : sorted;\n return reversed;\n }, [data, columns, sortState, search]);\n\n return {\n finalData,\n search,\n setSearch,\n setSortState,\n };\n}\n\ninterface RowActionItem {\n type: \"item\";\n label: string;\n onClick: (rowKey: string, row: any) => void;\n}\n\ninterface RowActionMenu {\n type: \"menu\";\n label: string;\n children?: RowActionItem[];\n}\n\nexport type RowAction = RowActionItem | RowActionMenu;\n\nexport function tagDataArray(xs: object[]) {\n return xs.map((x: object, i) => ({ ...x, __tag: i + 1 }));\n}\n\nexport function getTag(x: unknown) {\n return (x as any).__tag;\n}\n\n/**\n * Don't want to simply return undefined, we prefer always having *some* row key so that users can always (say) click on things without needing to explicitly set a row key.\n */\nexport function deriveRowKey(\n _data: QueryResult | undefined,\n rowKey: string | GetRowKey<Record<any, any>> | undefined\n) {\n if (rowKey) {\n return rowKey;\n }\n // Use the index by default.\n return (x: unknown) => {\n return ensure(getTag(x));\n };\n}\n\nexport function deriveKeyOfRow(\n row: any,\n rowKey: string | GetRowKey<any> | undefined\n) {\n if (typeof rowKey === \"function\") {\n return rowKey(row);\n } else if (typeof rowKey === \"string\") {\n return row[rowKey];\n } else {\n return undefined;\n }\n}\n\nexport function renderActions(\n rowActions: RowAction[],\n row: any,\n data: NormalizedData | undefined,\n rowKey: string | ((record: any, index?: number) => Key) | undefined\n) {\n return rowActions.map((_action) => {\n if (_action.type === \"item\") {\n return (\n <a\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n _action.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, rowKey)),\n row\n )\n }\n >\n {_action.label}\n </a>\n );\n } else {\n return (\n <Dropdown\n key={_action.label}\n menu={{\n items: (_action.children ?? []).map((child) => ({\n key: child.label,\n label: child.label,\n onClick: () =>\n child.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, rowKey)),\n row\n ),\n })),\n }}\n >\n <a\n href={\"javascript: void 0\"}\n style={{\n whiteSpace: \"nowrap\",\n }}\n >\n {_action.label}\n </a>\n </Dropdown>\n );\n }\n });\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var antd = require('antd');
|
|
4
|
+
var fastStringify = require('fast-stringify');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var utils = require('./utils-65c486f0.cjs.js');
|
|
7
|
+
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var fastStringify__default = /*#__PURE__*/_interopDefault(fastStringify);
|
|
11
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
12
|
+
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __defProps = Object.defineProperties;
|
|
15
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
16
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
17
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
18
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
19
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
20
|
+
var __spreadValues = (a, b) => {
|
|
21
|
+
for (var prop in b || (b = {}))
|
|
22
|
+
if (__hasOwnProp.call(b, prop))
|
|
23
|
+
__defNormalProp(a, prop, b[prop]);
|
|
24
|
+
if (__getOwnPropSymbols)
|
|
25
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
26
|
+
if (__propIsEnum.call(b, prop))
|
|
27
|
+
__defNormalProp(a, prop, b[prop]);
|
|
28
|
+
}
|
|
29
|
+
return a;
|
|
30
|
+
};
|
|
31
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
32
|
+
function useSortedFilteredData(data, columns) {
|
|
33
|
+
const [search, setSearch] = React.useState("");
|
|
34
|
+
const [sortState, setSortState] = React.useState(void 0);
|
|
35
|
+
const finalData = React__default.default.useMemo(() => {
|
|
36
|
+
var _a;
|
|
37
|
+
const filtered = (_a = data == null ? void 0 : data.data) == null ? void 0 : _a.filter(
|
|
38
|
+
(row) => fastStringify__default.default(Object.values(row)).toLowerCase().includes(search.toLowerCase())
|
|
39
|
+
);
|
|
40
|
+
const sorted = (sortState == null ? void 0 : sortState.sorter.column) ? (
|
|
41
|
+
// We use .sort() rather than sortBy to use localeCompare
|
|
42
|
+
(() => {
|
|
43
|
+
var _a2;
|
|
44
|
+
const cconfig = columns.find(
|
|
45
|
+
(cc) => {
|
|
46
|
+
var _a3;
|
|
47
|
+
return cc.key === ((_a3 = sortState == null ? void 0 : sortState.sorter.column) == null ? void 0 : _a3.key);
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
const expr = (_a2 = cconfig.expr) != null ? _a2 : (x) => x;
|
|
51
|
+
return (filtered != null ? filtered : []).sort((aa, bb) => {
|
|
52
|
+
var _a3, _b;
|
|
53
|
+
const a = (_a3 = expr(aa, cconfig.fieldId ? aa == null ? void 0 : aa[cconfig.fieldId] : null)) != null ? _a3 : null, b = (_b = expr(bb, cconfig.fieldId ? bb == null ? void 0 : bb[cconfig.fieldId] : null)) != null ? _b : null;
|
|
54
|
+
return typeof a === "string" ? a.localeCompare(b != null ? b : "") : typeof b === "string" ? -b.localeCompare(a != null ? a : "") : a - b;
|
|
55
|
+
});
|
|
56
|
+
})()
|
|
57
|
+
) : filtered;
|
|
58
|
+
const reversed = (sortState == null ? void 0 : sortState.sorter.order) === "descend" ? sorted == null ? void 0 : sorted.reverse() : sorted;
|
|
59
|
+
return reversed;
|
|
60
|
+
}, [data, columns, sortState, search]);
|
|
61
|
+
return {
|
|
62
|
+
finalData,
|
|
63
|
+
search,
|
|
64
|
+
setSearch,
|
|
65
|
+
setSortState
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function tagDataArray(xs) {
|
|
69
|
+
return xs.map((x, i) => __spreadProps(__spreadValues({}, x), { __tag: i + 1 }));
|
|
70
|
+
}
|
|
71
|
+
function getTag(x) {
|
|
72
|
+
return x.__tag;
|
|
73
|
+
}
|
|
74
|
+
function deriveRowKey(_data, rowKey) {
|
|
75
|
+
if (rowKey) {
|
|
76
|
+
return rowKey;
|
|
77
|
+
}
|
|
78
|
+
return (x) => {
|
|
79
|
+
return utils.ensure(getTag(x));
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function deriveKeyOfRow(row, rowKey) {
|
|
83
|
+
if (typeof rowKey === "function") {
|
|
84
|
+
return rowKey(row);
|
|
85
|
+
} else if (typeof rowKey === "string") {
|
|
86
|
+
return row[rowKey];
|
|
87
|
+
} else {
|
|
88
|
+
return void 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function renderActions(rowActions, row, data, rowKey) {
|
|
92
|
+
return rowActions.map((_action) => {
|
|
93
|
+
var _a;
|
|
94
|
+
if (_action.type === "item") {
|
|
95
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
96
|
+
"a",
|
|
97
|
+
{
|
|
98
|
+
key: _action.label,
|
|
99
|
+
style: {
|
|
100
|
+
whiteSpace: "nowrap"
|
|
101
|
+
},
|
|
102
|
+
onClick: () => {
|
|
103
|
+
var _a2;
|
|
104
|
+
return (_a2 = _action.onClick) == null ? void 0 : _a2.call(
|
|
105
|
+
_action,
|
|
106
|
+
deriveKeyOfRow(row, deriveRowKey(data, rowKey)),
|
|
107
|
+
row
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
_action.label
|
|
112
|
+
);
|
|
113
|
+
} else {
|
|
114
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
115
|
+
antd.Dropdown,
|
|
116
|
+
{
|
|
117
|
+
key: _action.label,
|
|
118
|
+
menu: {
|
|
119
|
+
items: ((_a = _action.children) != null ? _a : []).map((child) => ({
|
|
120
|
+
key: child.label,
|
|
121
|
+
label: child.label,
|
|
122
|
+
onClick: () => {
|
|
123
|
+
var _a2;
|
|
124
|
+
return (_a2 = child.onClick) == null ? void 0 : _a2.call(
|
|
125
|
+
child,
|
|
126
|
+
deriveKeyOfRow(row, deriveRowKey(data, rowKey)),
|
|
127
|
+
row
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
}))
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
/* @__PURE__ */ React__default.default.createElement(
|
|
134
|
+
"a",
|
|
135
|
+
{
|
|
136
|
+
href: "javascript: void 0",
|
|
137
|
+
style: {
|
|
138
|
+
whiteSpace: "nowrap"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
_action.label
|
|
142
|
+
)
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
exports.deriveKeyOfRow = deriveKeyOfRow;
|
|
149
|
+
exports.deriveRowKey = deriveRowKey;
|
|
150
|
+
exports.renderActions = renderActions;
|
|
151
|
+
exports.tagDataArray = tagDataArray;
|
|
152
|
+
exports.useSortedFilteredData = useSortedFilteredData;
|
|
153
|
+
//# sourceMappingURL=field-react-utils-c717ec94.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-react-utils-c717ec94.cjs.js","sources":["../src/field-react-utils.tsx"],"sourcesContent":["import { NormalizedData, QueryResult } from \"@plasmicapp/data-sources\";\nimport { Dropdown } from \"antd\";\nimport type { GetRowKey, SorterResult } from \"antd/es/table/interface\";\nimport fastStringify from \"fast-stringify\";\nimport React, { Key, useState } from \"react\";\nimport { BaseColumnConfig } from \"./field-mappings\";\nimport { ensure } from \"./utils\";\n\nexport function useSortedFilteredData(\n data: NormalizedData | undefined,\n columns: BaseColumnConfig[]\n) {\n const [search, setSearch] = useState(\"\");\n const [sortState, setSortState] = useState<\n undefined | { sorter: SorterResult<Record<string, any>> }\n >(undefined);\n const finalData = React.useMemo(() => {\n const filtered = data?.data?.filter((row) =>\n fastStringify(Object.values(row))\n .toLowerCase()\n .includes(search.toLowerCase())\n );\n const sorted = sortState?.sorter.column\n ? // We use .sort() rather than sortBy to use localeCompare\n (() => {\n const cconfig = columns.find(\n (cc) => cc.key === sortState?.sorter.column?.key\n )!;\n const expr = cconfig.expr ?? ((x) => x);\n return (filtered ?? []).sort((aa, bb) => {\n const a =\n expr(aa, cconfig.fieldId ? aa?.[cconfig.fieldId] : null) ??\n null,\n b =\n expr(bb, cconfig.fieldId ? bb?.[cconfig.fieldId] : null) ??\n null;\n // Default nil to '' here because A < null < z which is weird.\n return typeof a === \"string\"\n ? a.localeCompare(b ?? \"\")\n : typeof b === \"string\"\n ? -b.localeCompare(a ?? \"\")\n : a - b;\n });\n })()\n : filtered;\n const reversed =\n sortState?.sorter.order === \"descend\" ? sorted?.reverse() : sorted;\n return reversed;\n }, [data, columns, sortState, search]);\n\n return {\n finalData,\n search,\n setSearch,\n setSortState,\n };\n}\n\ninterface RowActionItem {\n type: \"item\";\n label: string;\n onClick: (rowKey: string, row: any) => void;\n}\n\ninterface RowActionMenu {\n type: \"menu\";\n label: string;\n children?: RowActionItem[];\n}\n\nexport type RowAction = RowActionItem | RowActionMenu;\n\nexport function tagDataArray(xs: object[]) {\n return xs.map((x: object, i) => ({ ...x, __tag: i + 1 }));\n}\n\nexport function getTag(x: unknown) {\n return (x as any).__tag;\n}\n\n/**\n * Don't want to simply return undefined, we prefer always having *some* row key so that users can always (say) click on things without needing to explicitly set a row key.\n */\nexport function deriveRowKey(\n _data: QueryResult | undefined,\n rowKey: string | GetRowKey<Record<any, any>> | undefined\n) {\n if (rowKey) {\n return rowKey;\n }\n // Use the index by default.\n return (x: unknown) => {\n return ensure(getTag(x));\n };\n}\n\nexport function deriveKeyOfRow(\n row: any,\n rowKey: string | GetRowKey<any> | undefined\n) {\n if (typeof rowKey === \"function\") {\n return rowKey(row);\n } else if (typeof rowKey === \"string\") {\n return row[rowKey];\n } else {\n return undefined;\n }\n}\n\nexport function renderActions(\n rowActions: RowAction[],\n row: any,\n data: NormalizedData | undefined,\n rowKey: string | ((record: any, index?: number) => Key) | undefined\n) {\n return rowActions.map((_action) => {\n if (_action.type === \"item\") {\n return (\n <a\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n _action.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, rowKey)),\n row\n )\n }\n >\n {_action.label}\n </a>\n );\n } else {\n return (\n <Dropdown\n key={_action.label}\n menu={{\n items: (_action.children ?? []).map((child) => ({\n key: child.label,\n label: child.label,\n onClick: () =>\n child.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, rowKey)),\n row\n ),\n })),\n }}\n >\n <a\n href={\"javascript: void 0\"}\n style={{\n whiteSpace: \"nowrap\",\n }}\n >\n {_action.label}\n </a>\n </Dropdown>\n );\n }\n });\n}\n"],"names":["useState","React","fastStringify","_a","ensure","Dropdown"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NormalizedData, QueryResult } from "@plasmicapp/data-sources";
|
|
2
|
+
import type { GetRowKey, SorterResult } from "antd/es/table/interface";
|
|
3
|
+
import React, { Key } from "react";
|
|
4
|
+
import { BaseColumnConfig } from "./field-mappings";
|
|
5
|
+
export declare function useSortedFilteredData(data: NormalizedData | undefined, columns: BaseColumnConfig[]): {
|
|
6
|
+
finalData: Record<string, unknown>[] | undefined;
|
|
7
|
+
search: string;
|
|
8
|
+
setSearch: React.Dispatch<React.SetStateAction<string>>;
|
|
9
|
+
setSortState: React.Dispatch<React.SetStateAction<{
|
|
10
|
+
sorter: SorterResult<Record<string, any>>;
|
|
11
|
+
} | undefined>>;
|
|
12
|
+
};
|
|
13
|
+
interface RowActionItem {
|
|
14
|
+
type: "item";
|
|
15
|
+
label: string;
|
|
16
|
+
onClick: (rowKey: string, row: any) => void;
|
|
17
|
+
}
|
|
18
|
+
interface RowActionMenu {
|
|
19
|
+
type: "menu";
|
|
20
|
+
label: string;
|
|
21
|
+
children?: RowActionItem[];
|
|
22
|
+
}
|
|
23
|
+
export type RowAction = RowActionItem | RowActionMenu;
|
|
24
|
+
export declare function tagDataArray(xs: object[]): {
|
|
25
|
+
__tag: number;
|
|
26
|
+
}[];
|
|
27
|
+
export declare function getTag(x: unknown): any;
|
|
28
|
+
/**
|
|
29
|
+
* Don't want to simply return undefined, we prefer always having *some* row key so that users can always (say) click on things without needing to explicitly set a row key.
|
|
30
|
+
*/
|
|
31
|
+
export declare function deriveRowKey(_data: QueryResult | undefined, rowKey: string | GetRowKey<Record<any, any>> | undefined): string | GetRowKey<Record<any, any>> | ((x: unknown) => any);
|
|
32
|
+
export declare function deriveKeyOfRow(row: any, rowKey: string | GetRowKey<any> | undefined): any;
|
|
33
|
+
export declare function renderActions(rowActions: RowAction[], row: any, data: NormalizedData | undefined, rowKey: string | ((record: any, index?: number) => Key) | undefined): React.JSX.Element[];
|
|
34
|
+
export {};
|