@plasmicpkgs/plasmic-rich-components 1.0.103 → 1.0.105
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 +112 -45
- package/dist/index.js.map +1 -1
- package/dist/plasmic-rich-components.esm.js +112 -45
- package/dist/plasmic-rich-components.esm.js.map +1 -1
- package/dist/utils.d.ts +22 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var registerComponent = require('@plasmicapp/host/registerComponent');
|
|
4
4
|
require('@plasmicapp/host/registerGlobalContext');
|
|
5
|
-
require('lodash/get');
|
|
6
5
|
var React = require('react');
|
|
7
|
-
var dataSources = require('@plasmicapp/data-sources');
|
|
8
6
|
var antd = require('antd');
|
|
7
|
+
require('lodash/get');
|
|
8
|
+
var dataSources = require('@plasmicapp/data-sources');
|
|
9
9
|
var tinycolor = require('@ctrl/tinycolor');
|
|
10
10
|
var icons = require('@ant-design/icons');
|
|
11
11
|
var proComponents = require('@ant-design/pro-components');
|
|
@@ -63,6 +63,36 @@ const mkShortId = () => `${Math.random()}`;
|
|
|
63
63
|
function withoutFalsey(xs) {
|
|
64
64
|
return xs.filter((x) => !!x);
|
|
65
65
|
}
|
|
66
|
+
class ErrorBoundary extends React__default.default.Component {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(...arguments);
|
|
69
|
+
this.state = { hasError: false, errorInfo: "" };
|
|
70
|
+
}
|
|
71
|
+
static getDerivedStateFromError(error) {
|
|
72
|
+
return { hasError: true, errorInfo: error.message };
|
|
73
|
+
}
|
|
74
|
+
componentDidCatch(error, errorInfo) {
|
|
75
|
+
console.log(error, errorInfo);
|
|
76
|
+
}
|
|
77
|
+
componentDidUpdate(prevProps, prevState) {
|
|
78
|
+
if (prevProps.canvasEnvId !== this.props.canvasEnvId && prevState.hasError) {
|
|
79
|
+
this.setState({ hasError: false });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
render() {
|
|
83
|
+
if (this.state.hasError) {
|
|
84
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
85
|
+
antd.Result,
|
|
86
|
+
{
|
|
87
|
+
status: "error",
|
|
88
|
+
title: "Something went wrong.",
|
|
89
|
+
extra: this.state.errorInfo
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
return this.props.children;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
66
96
|
|
|
67
97
|
var __defProp$9 = Object.defineProperty;
|
|
68
98
|
var __defProps$7 = Object.defineProperties;
|
|
@@ -1459,9 +1489,10 @@ function RichTable(props) {
|
|
|
1459
1489
|
if (!isClient) {
|
|
1460
1490
|
return null;
|
|
1461
1491
|
}
|
|
1462
|
-
return /* @__PURE__ */ React__default.default.createElement("div", { className: `${className} ${scopeClassName != null ? scopeClassName : ""}` }, /* @__PURE__ */ React__default.default.createElement(
|
|
1492
|
+
return /* @__PURE__ */ React__default.default.createElement("div", { className: `${className} ${scopeClassName != null ? scopeClassName : ""}` }, /* @__PURE__ */ React__default.default.createElement(ErrorBoundary, { canvasEnvId: props["data-plasmic-canvas-envs"] }, /* @__PURE__ */ React__default.default.createElement(
|
|
1463
1493
|
proComponents.ProTable,
|
|
1464
1494
|
__spreadProps$2(__spreadValues$3({
|
|
1495
|
+
ErrorBoundary: false,
|
|
1465
1496
|
rowClassName: props.onRowClick || props.canSelectRows === "click" ? "plasmic-table-row-clickable" : void 0,
|
|
1466
1497
|
actionRef,
|
|
1467
1498
|
columns: columnDefinitions,
|
|
@@ -1518,7 +1549,7 @@ function RichTable(props) {
|
|
|
1518
1549
|
!hideExports && /* @__PURE__ */ React__default.default.createElement(ExportMenu, { data })
|
|
1519
1550
|
].filter((x) => !!x)
|
|
1520
1551
|
})
|
|
1521
|
-
), /* @__PURE__ */ React__default.default.createElement(
|
|
1552
|
+
)), /* @__PURE__ */ React__default.default.createElement(
|
|
1522
1553
|
"style",
|
|
1523
1554
|
{
|
|
1524
1555
|
dangerouslySetInnerHTML: {
|
|
@@ -2093,6 +2124,10 @@ const listCss = `
|
|
|
2093
2124
|
padding-right: 8px;
|
|
2094
2125
|
}
|
|
2095
2126
|
|
|
2127
|
+
.ant-list .plasmic-list-item {
|
|
2128
|
+
align-items: stretch;
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2096
2131
|
.plasmic-list-item--clickable:hover {
|
|
2097
2132
|
background-color: #8881;
|
|
2098
2133
|
}
|
|
@@ -2142,7 +2177,7 @@ function RichList(props) {
|
|
|
2142
2177
|
pageSize = 10,
|
|
2143
2178
|
hideSearch,
|
|
2144
2179
|
rowKey,
|
|
2145
|
-
pagination,
|
|
2180
|
+
pagination = true,
|
|
2146
2181
|
onRowClick
|
|
2147
2182
|
} = _a; __objRest(_a, [
|
|
2148
2183
|
"data",
|
|
@@ -2252,7 +2287,7 @@ function RichList(props) {
|
|
|
2252
2287
|
var _a3;
|
|
2253
2288
|
return (_a3 = linkWrapper == null ? void 0 : linkWrapper(x)) != null ? _a3 : x;
|
|
2254
2289
|
}
|
|
2255
|
-
return type === "grid" ? /* @__PURE__ */ React__default.default.createElement(antd.List.Item,
|
|
2290
|
+
return type === "grid" ? /* @__PURE__ */ React__default.default.createElement(antd.List.Item, { className: "plasmic-list-item" }, maybeLink(
|
|
2256
2291
|
/* @__PURE__ */ React__default.default.createElement(
|
|
2257
2292
|
antd.Card,
|
|
2258
2293
|
{
|
|
@@ -2270,6 +2305,7 @@ function RichList(props) {
|
|
|
2270
2305
|
{
|
|
2271
2306
|
actions,
|
|
2272
2307
|
className: classNames__default.default({
|
|
2308
|
+
"plasmic-list-item": true,
|
|
2273
2309
|
"plasmic-list-item--clickable": hasLink
|
|
2274
2310
|
})
|
|
2275
2311
|
},
|
|
@@ -2363,7 +2399,7 @@ function useRoleDefinitions(data, props) {
|
|
|
2363
2399
|
const schema = data == null ? void 0 : data.schema;
|
|
2364
2400
|
const schemaMap = new Map((_a = data == null ? void 0 : data.schema) == null ? void 0 : _a.fields.map((f) => [f.id, f]));
|
|
2365
2401
|
if (!data || !schema) {
|
|
2366
|
-
return { normalized: [],
|
|
2402
|
+
return { normalized: [], finalRoles: {} };
|
|
2367
2403
|
}
|
|
2368
2404
|
function tagFieldConfigs(role) {
|
|
2369
2405
|
var _a2;
|
|
@@ -2377,27 +2413,33 @@ function useRoleDefinitions(data, props) {
|
|
|
2377
2413
|
return [];
|
|
2378
2414
|
}
|
|
2379
2415
|
}
|
|
2380
|
-
const
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2416
|
+
const specifiedFieldsPartial = [
|
|
2417
|
+
...tagFieldConfigs("image"),
|
|
2418
|
+
...tagFieldConfigs("content"),
|
|
2419
|
+
...tagFieldConfigs("title"),
|
|
2420
|
+
...tagFieldConfigs("beforeTitle"),
|
|
2421
|
+
...tagFieldConfigs("afterTitle"),
|
|
2422
|
+
...tagFieldConfigs("subtitle")
|
|
2423
|
+
];
|
|
2424
|
+
function doDeriveFieldConfigs(mode) {
|
|
2425
|
+
return dataSources.deriveFieldConfigs(
|
|
2426
|
+
mode === "defaults" ? [] : specifiedFieldsPartial,
|
|
2427
|
+
schema,
|
|
2428
|
+
(field) => __spreadValues$1(__spreadValues$1({}, defaultColumnConfig()), field && {
|
|
2429
|
+
key: field.id,
|
|
2430
|
+
fieldId: field.id,
|
|
2431
|
+
title: field.label || field.id,
|
|
2432
|
+
// undefined means not yet determined in this routine, not 'unset'
|
|
2433
|
+
role: void 0,
|
|
2434
|
+
expr: (currentItem) => currentItem[field.id]
|
|
2435
|
+
})
|
|
2436
|
+
);
|
|
2437
|
+
}
|
|
2438
|
+
const {
|
|
2439
|
+
mergedFields: defaultMergedFields,
|
|
2440
|
+
minimalFullLengthFields: defaultMinimalFullLengthFields
|
|
2441
|
+
} = doDeriveFieldConfigs("defaults");
|
|
2442
|
+
if (data.data.length > 0 && !defaultMergedFields.some((field) => field.role === "image")) {
|
|
2401
2443
|
const sampleRows = Array.from(
|
|
2402
2444
|
new Set(
|
|
2403
2445
|
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(
|
|
@@ -2405,7 +2447,7 @@ function useRoleDefinitions(data, props) {
|
|
|
2405
2447
|
)
|
|
2406
2448
|
)
|
|
2407
2449
|
).map((i) => data.data[i]);
|
|
2408
|
-
const imageFieldCandidates =
|
|
2450
|
+
const imageFieldCandidates = defaultMergedFields.filter(
|
|
2409
2451
|
(field) => !field.role && sampleRows.filter(
|
|
2410
2452
|
(row) => field.fieldId && isLikeImage(row[field.fieldId])
|
|
2411
2453
|
).length >= sampleRows.length / 2
|
|
@@ -2429,8 +2471,8 @@ function useRoleDefinitions(data, props) {
|
|
|
2429
2471
|
imageField.role = "image";
|
|
2430
2472
|
}
|
|
2431
2473
|
}
|
|
2432
|
-
if (!
|
|
2433
|
-
const titleField =
|
|
2474
|
+
if (!defaultMergedFields.some((field) => field.role === "title")) {
|
|
2475
|
+
const titleField = defaultMergedFields.find(
|
|
2434
2476
|
(field) => {
|
|
2435
2477
|
var _a2;
|
|
2436
2478
|
return !field.role && ((_a2 = field.fieldId) == null ? void 0 : _a2.toLowerCase().match(/^(title|name|first[ _-]?name|full[ _-]?name)$/));
|
|
@@ -2440,8 +2482,8 @@ function useRoleDefinitions(data, props) {
|
|
|
2440
2482
|
titleField.role = "title";
|
|
2441
2483
|
}
|
|
2442
2484
|
}
|
|
2443
|
-
if (!
|
|
2444
|
-
const contentField =
|
|
2485
|
+
if (!defaultMergedFields.some((field) => field.role === "content")) {
|
|
2486
|
+
const contentField = defaultMergedFields.find(
|
|
2445
2487
|
(field) => {
|
|
2446
2488
|
var _a2;
|
|
2447
2489
|
return !field.role && field.fieldId && ((_a2 = schemaMap.get(field.fieldId)) == null ? void 0 : _a2.type) === "string";
|
|
@@ -2451,19 +2493,49 @@ function useRoleDefinitions(data, props) {
|
|
|
2451
2493
|
contentField.role = "content";
|
|
2452
2494
|
}
|
|
2453
2495
|
}
|
|
2454
|
-
const
|
|
2496
|
+
const fieldIdToDefaultRole = new Map(
|
|
2497
|
+
defaultMergedFields.map((f) => [f.fieldId, f.role])
|
|
2498
|
+
);
|
|
2499
|
+
for (const f of defaultMinimalFullLengthFields) {
|
|
2500
|
+
f.role = fieldIdToDefaultRole.get(f.fieldId);
|
|
2501
|
+
}
|
|
2502
|
+
const { mergedFields, minimalFullLengthFields } = doDeriveFieldConfigs("existing");
|
|
2503
|
+
const minimalFullLengthFieldsWithDefaults = [
|
|
2504
|
+
...minimalFullLengthFields.filter((f) => f.role && f.role !== "unset"),
|
|
2505
|
+
...defaultMinimalFullLengthFields.filter(
|
|
2506
|
+
(f) => f.role && f.role !== "unset" && !props[f.role]
|
|
2507
|
+
)
|
|
2508
|
+
];
|
|
2509
|
+
const mergedFieldsWithDefaults = [
|
|
2510
|
+
...mergedFields.filter((f) => f.role && f.role !== "unset"),
|
|
2511
|
+
...defaultMergedFields.filter(
|
|
2512
|
+
(f) => f.role && f.role !== "unset" && !props[f.role]
|
|
2513
|
+
)
|
|
2514
|
+
];
|
|
2515
|
+
console.log("!!derived", {
|
|
2516
|
+
minimalFullLengthFieldsWithDefaults,
|
|
2517
|
+
minimalFullLengthFields,
|
|
2518
|
+
defaultMinimalFullLengthFields,
|
|
2519
|
+
mergedFieldsWithDefaults,
|
|
2520
|
+
mergedFields,
|
|
2521
|
+
defaultMergedFields,
|
|
2522
|
+
props
|
|
2523
|
+
});
|
|
2524
|
+
const roleConfigs = ensure(
|
|
2525
|
+
groupBy__default.default(mergedFieldsWithDefaults, (f) => f.role)
|
|
2526
|
+
);
|
|
2455
2527
|
const finalRoles = {};
|
|
2456
2528
|
for (const role of roles) {
|
|
2457
2529
|
if (role !== "unset") {
|
|
2458
2530
|
finalRoles[role] = (_d = maybe(props[role], ensureArray)) != null ? _d : roleConfigs[role];
|
|
2459
2531
|
}
|
|
2460
2532
|
}
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
}
|
|
2465
|
-
|
|
2466
|
-
return { normalized,
|
|
2533
|
+
setControlContextData == null ? void 0 : setControlContextData(__spreadProps(__spreadValues$1({}, data), {
|
|
2534
|
+
mergedFields: mergedFieldsWithDefaults,
|
|
2535
|
+
minimalFullLengthFields: minimalFullLengthFieldsWithDefaults
|
|
2536
|
+
}));
|
|
2537
|
+
const normalized = mergedFieldsWithDefaults;
|
|
2538
|
+
return { normalized, finalRoles };
|
|
2467
2539
|
}, [fields, data, setControlContextData, rowActions]);
|
|
2468
2540
|
}
|
|
2469
2541
|
|
|
@@ -2529,11 +2601,6 @@ const richListMeta = {
|
|
|
2529
2601
|
padding: "16px",
|
|
2530
2602
|
maxHeight: "100%"
|
|
2531
2603
|
},
|
|
2532
|
-
templates: {
|
|
2533
|
-
grid: {
|
|
2534
|
-
props: {}
|
|
2535
|
-
}
|
|
2536
|
-
},
|
|
2537
2604
|
props: __spreadValues({
|
|
2538
2605
|
data: dataProp(),
|
|
2539
2606
|
type: {
|