@uniformdev/mesh-sdk-react 19.117.0 → 19.117.1-alpha.1
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/index.d.mts +95 -50
- package/dist/index.d.ts +95 -50
- package/dist/index.esm.js +455 -297
- package/dist/index.js +496 -338
- package/dist/index.mjs +455 -297
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -36,11 +36,13 @@ __export(src_exports, {
|
|
|
36
36
|
AddListButton: () => import_design_system41.AddListButton,
|
|
37
37
|
Button: () => import_design_system41.Button,
|
|
38
38
|
Callout: () => import_design_system41.Callout,
|
|
39
|
+
ControlledObjectSearchProvider: () => ControlledObjectSearchProvider,
|
|
39
40
|
ControlledValuePlugin: () => ControlledValuePlugin,
|
|
40
41
|
DISCONNECT_VARIABLE_COMMAND: () => DISCONNECT_VARIABLE_COMMAND,
|
|
41
42
|
DamSelectedItem: () => DamSelectedItem,
|
|
42
43
|
DataRefreshButton: () => DataRefreshButton,
|
|
43
44
|
DataResourceDynamicInputProvider: () => DataResourceDynamicInputProvider,
|
|
45
|
+
DataResourceInputContext: () => DataResourceInputContext,
|
|
44
46
|
DataResourceVariablesList: () => DataResourceVariablesList,
|
|
45
47
|
DataResourceVariablesListExplicit: () => DataResourceVariablesListExplicit,
|
|
46
48
|
DataSourceEditor: () => DataSourceEditor,
|
|
@@ -68,6 +70,7 @@ __export(src_exports, {
|
|
|
68
70
|
MeshApp: () => MeshApp,
|
|
69
71
|
OPEN_INSERT_VARIABLE_COMMAND: () => OPEN_INSERT_VARIABLE_COMMAND,
|
|
70
72
|
ObjectSearchContainer: () => ObjectSearchContainer,
|
|
73
|
+
ObjectSearchContext: () => ObjectSearchContext,
|
|
71
74
|
ObjectSearchFilter: () => ObjectSearchFilter,
|
|
72
75
|
ObjectSearchFilterContainer: () => ObjectSearchFilterContainer2,
|
|
73
76
|
ObjectSearchListItem: () => ObjectSearchListItem,
|
|
@@ -125,6 +128,7 @@ __export(src_exports, {
|
|
|
125
128
|
VariablesPlugin: () => VariablesPlugin,
|
|
126
129
|
VariablesProvider: () => VariablesProvider,
|
|
127
130
|
badgeIcon: () => badgeIcon,
|
|
131
|
+
bindQuery: () => bindQuery,
|
|
128
132
|
convertConnectedDataToVariable: () => convertConnectedDataToVariable,
|
|
129
133
|
createLocationValidator: () => createLocationValidator,
|
|
130
134
|
damSelectItemImage: () => damSelectItemImage,
|
|
@@ -196,6 +200,7 @@ __export(src_exports, {
|
|
|
196
200
|
urlEncodeRequestUrl: () => urlEncodeRequestUrl,
|
|
197
201
|
useConnectedDataAsVariables: () => useConnectedDataAsVariables,
|
|
198
202
|
useContentDataResourceLocaleInfo: () => useContentDataResourceLocaleInfo,
|
|
203
|
+
useDataResourceDynamicInputs: () => useDataResourceDynamicInputs,
|
|
199
204
|
useDynamicInputsAsVariables: () => useDynamicInputsAsVariables,
|
|
200
205
|
useMeshLocation: () => useMeshLocation,
|
|
201
206
|
useObjectSearchContext: () => useObjectSearchContext,
|
|
@@ -2855,6 +2860,9 @@ function DefaultDamItemRenderer({ item }) {
|
|
|
2855
2860
|
] }) : null;
|
|
2856
2861
|
}
|
|
2857
2862
|
|
|
2863
|
+
// src/components/DataResourceDynamicInputProvider.tsx
|
|
2864
|
+
var import_react58 = require("react");
|
|
2865
|
+
|
|
2858
2866
|
// src/hooks/useConnectedDataAsVariables.tsx
|
|
2859
2867
|
var import_react26 = require("react");
|
|
2860
2868
|
function useConnectedDataAsVariables(connectedData) {
|
|
@@ -5447,6 +5455,10 @@ function VariablesList() {
|
|
|
5447
5455
|
|
|
5448
5456
|
// src/components/DataResourceDynamicInputProvider.tsx
|
|
5449
5457
|
var import_jsx_runtime45 = require("@emotion/react/jsx-runtime");
|
|
5458
|
+
var DataResourceInputContext = (0, import_react58.createContext)(void 0);
|
|
5459
|
+
var useDataResourceDynamicInputs = () => {
|
|
5460
|
+
return (0, import_react58.useContext)(DataResourceInputContext);
|
|
5461
|
+
};
|
|
5450
5462
|
function DataResourceDynamicInputProvider(props) {
|
|
5451
5463
|
const { children, dynamicInputs } = props;
|
|
5452
5464
|
if (dynamicInputs) {
|
|
@@ -5465,7 +5477,7 @@ function DataResourceDynamicInputProviderRenderer({
|
|
|
5465
5477
|
dynamicInputs
|
|
5466
5478
|
}) {
|
|
5467
5479
|
const variables = useDynamicInputsAsVariables(dynamicInputs);
|
|
5468
|
-
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VariablesProvider, { value: variables, readOnly: true, children });
|
|
5480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DataResourceInputContext.Provider, { value: dynamicInputs, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VariablesProvider, { value: variables, readOnly: true, children }) });
|
|
5469
5481
|
}
|
|
5470
5482
|
|
|
5471
5483
|
// src/components/DataResourceVariablesList.tsx
|
|
@@ -5542,9 +5554,9 @@ function TextVariableRenderer({ definition, value, setValue }) {
|
|
|
5542
5554
|
}
|
|
5543
5555
|
|
|
5544
5556
|
// src/components/Request/RequestBody.tsx
|
|
5545
|
-
var
|
|
5557
|
+
var import_react60 = require("@emotion/react");
|
|
5546
5558
|
var import_design_system27 = require("@uniformdev/design-system");
|
|
5547
|
-
var
|
|
5559
|
+
var import_react61 = require("react");
|
|
5548
5560
|
|
|
5549
5561
|
// src/components/Request/RequestProvider.tsx
|
|
5550
5562
|
var React11 = __toESM(require("react"));
|
|
@@ -5628,11 +5640,11 @@ function useRequest() {
|
|
|
5628
5640
|
}
|
|
5629
5641
|
|
|
5630
5642
|
// src/components/Request/styles/Request.styles.ts
|
|
5631
|
-
var
|
|
5632
|
-
var innerContentStyles =
|
|
5643
|
+
var import_react59 = require("@emotion/react");
|
|
5644
|
+
var innerContentStyles = import_react59.css`
|
|
5633
5645
|
background: var(--white);
|
|
5634
5646
|
`;
|
|
5635
|
-
var requestTypeContainer = (bgColor) =>
|
|
5647
|
+
var requestTypeContainer = (bgColor) => import_react59.css`
|
|
5636
5648
|
align-items: start;
|
|
5637
5649
|
background: ${bgColor};
|
|
5638
5650
|
display: grid;
|
|
@@ -5670,11 +5682,11 @@ var LANGUAGE_TO_CONTENT_TYPE = {
|
|
|
5670
5682
|
};
|
|
5671
5683
|
function RequestBody() {
|
|
5672
5684
|
const { request, dispatch } = useRequest();
|
|
5673
|
-
const [language, setLanguage] = (0,
|
|
5685
|
+
const [language, setLanguage] = (0, import_react61.useState)("json");
|
|
5674
5686
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
5675
5687
|
"div",
|
|
5676
5688
|
{
|
|
5677
|
-
css:
|
|
5689
|
+
css: import_react60.css`
|
|
5678
5690
|
background: var(--white);
|
|
5679
5691
|
`,
|
|
5680
5692
|
children: [
|
|
@@ -5682,7 +5694,7 @@ function RequestBody() {
|
|
|
5682
5694
|
RequestTypeContainer,
|
|
5683
5695
|
{
|
|
5684
5696
|
bgColor: "var(--gray-100)",
|
|
5685
|
-
css:
|
|
5697
|
+
css: import_react60.css`
|
|
5686
5698
|
padding: var(--spacing-sm) var(--spacing-base);
|
|
5687
5699
|
`,
|
|
5688
5700
|
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
@@ -5953,8 +5965,8 @@ function RequestParameters({
|
|
|
5953
5965
|
}
|
|
5954
5966
|
|
|
5955
5967
|
// src/components/Request/RequestUrl.tsx
|
|
5956
|
-
var
|
|
5957
|
-
var
|
|
5968
|
+
var import_react62 = require("@emotion/react");
|
|
5969
|
+
var import_react63 = require("react");
|
|
5958
5970
|
|
|
5959
5971
|
// src/components/Request/urlEncodeRequestParameter.ts
|
|
5960
5972
|
function urlEncodeRequestUrl(url, varValues) {
|
|
@@ -5980,7 +5992,7 @@ function RequestUrl() {
|
|
|
5980
5992
|
var _a, _b;
|
|
5981
5993
|
const { variables } = useVariables();
|
|
5982
5994
|
const { request } = useRequest();
|
|
5983
|
-
const mergedParameters = (0,
|
|
5995
|
+
const mergedParameters = (0, import_react63.useMemo)(() => {
|
|
5984
5996
|
var _a2;
|
|
5985
5997
|
if (!((_a2 = request.baseRequest) == null ? void 0 : _a2.parameters)) {
|
|
5986
5998
|
return request.parameters;
|
|
@@ -5990,7 +6002,7 @@ function RequestUrl() {
|
|
|
5990
6002
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
5991
6003
|
"small",
|
|
5992
6004
|
{
|
|
5993
|
-
css:
|
|
6005
|
+
css: import_react62.css`
|
|
5994
6006
|
display: inline-block;
|
|
5995
6007
|
margin-bottom: var(--spacing-xs);
|
|
5996
6008
|
word-break: break-word;
|
|
@@ -6228,12 +6240,12 @@ var import_design_system31 = require("@uniformdev/design-system");
|
|
|
6228
6240
|
|
|
6229
6241
|
// src/hooks/useInitializeUniformMeshSdk.ts
|
|
6230
6242
|
var import_mesh_sdk = require("@uniformdev/mesh-sdk");
|
|
6231
|
-
var
|
|
6243
|
+
var import_react64 = require("react");
|
|
6232
6244
|
var useInitializeUniformMeshSdk = ({ autoResizingDisabled } = {}) => {
|
|
6233
|
-
const [error, setError] = (0,
|
|
6234
|
-
const [sdk, setSdk] = (0,
|
|
6235
|
-
const initializationInProgress = (0,
|
|
6236
|
-
(0,
|
|
6245
|
+
const [error, setError] = (0, import_react64.useState)();
|
|
6246
|
+
const [sdk, setSdk] = (0, import_react64.useState)();
|
|
6247
|
+
const initializationInProgress = (0, import_react64.useRef)(false);
|
|
6248
|
+
(0, import_react64.useEffect)(
|
|
6237
6249
|
() => {
|
|
6238
6250
|
if (typeof window === "undefined" || sdk) {
|
|
6239
6251
|
return;
|
|
@@ -6291,7 +6303,7 @@ var MeshApp = ({
|
|
|
6291
6303
|
};
|
|
6292
6304
|
|
|
6293
6305
|
// src/components/ObjectSearch/DataRefreshButton.tsx
|
|
6294
|
-
var
|
|
6306
|
+
var import_react65 = require("@emotion/react");
|
|
6295
6307
|
var import_design_system32 = require("@uniformdev/design-system");
|
|
6296
6308
|
var import_jsx_runtime58 = require("@emotion/react/jsx-runtime");
|
|
6297
6309
|
var DataRefreshButton = ({
|
|
@@ -6304,7 +6316,7 @@ var DataRefreshButton = ({
|
|
|
6304
6316
|
!isLoading ? null : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
6305
6317
|
import_design_system32.LoadingIndicator,
|
|
6306
6318
|
{
|
|
6307
|
-
css:
|
|
6319
|
+
css: import_react65.css`
|
|
6308
6320
|
${isLoading ? "opacity: 0.2;" : void 0}
|
|
6309
6321
|
`
|
|
6310
6322
|
}
|
|
@@ -6314,15 +6326,16 @@ var DataRefreshButton = ({
|
|
|
6314
6326
|
};
|
|
6315
6327
|
|
|
6316
6328
|
// src/components/ObjectSearch/ObjectSearchContainer.tsx
|
|
6317
|
-
var
|
|
6329
|
+
var import_react71 = require("@emotion/react");
|
|
6318
6330
|
var import_canvas9 = require("@uniformdev/canvas");
|
|
6319
|
-
var
|
|
6331
|
+
var import_design_system38 = require("@uniformdev/design-system");
|
|
6332
|
+
var import_react72 = __toESM(require("react"));
|
|
6320
6333
|
|
|
6321
6334
|
// src/components/ObjectSearch/hooks/ObjectSearchContext.tsx
|
|
6322
6335
|
var import_canvas8 = require("@uniformdev/canvas");
|
|
6323
|
-
var
|
|
6336
|
+
var import_react66 = require("react");
|
|
6324
6337
|
var import_jsx_runtime59 = require("@emotion/react/jsx-runtime");
|
|
6325
|
-
var ObjectSearchContext = (0,
|
|
6338
|
+
var ObjectSearchContext = (0, import_react66.createContext)({
|
|
6326
6339
|
onSetQuery: () => {
|
|
6327
6340
|
},
|
|
6328
6341
|
onSelectItem: () => {
|
|
@@ -6330,8 +6343,6 @@ var ObjectSearchContext = (0, import_react65.createContext)({
|
|
|
6330
6343
|
query: {},
|
|
6331
6344
|
boundQuery: {},
|
|
6332
6345
|
list: {},
|
|
6333
|
-
onSetList: () => {
|
|
6334
|
-
},
|
|
6335
6346
|
selectedListItems: [],
|
|
6336
6347
|
onRemoveAllSelectedItems: () => {
|
|
6337
6348
|
},
|
|
@@ -6343,16 +6354,16 @@ var ObjectSearchProvider = ({
|
|
|
6343
6354
|
children,
|
|
6344
6355
|
defaultQuery
|
|
6345
6356
|
}) => {
|
|
6346
|
-
const [query, setQuery] = (0,
|
|
6357
|
+
const [query, setQuery] = (0, import_react66.useState)({
|
|
6347
6358
|
contentType: "",
|
|
6348
6359
|
keyword: "",
|
|
6349
6360
|
...defaultQuery
|
|
6350
6361
|
});
|
|
6351
6362
|
const { flatVariables } = useVariables(true);
|
|
6352
|
-
const querySearchDeferred = (0,
|
|
6353
|
-
const [selectedItems, setSelectedItems] = (0,
|
|
6354
|
-
const [list, setList] = (0,
|
|
6355
|
-
const onSetQuery = (0,
|
|
6363
|
+
const querySearchDeferred = (0, import_react66.useDeferredValue)(query);
|
|
6364
|
+
const [selectedItems, setSelectedItems] = (0, import_react66.useState)(currentlySelectedItems != null ? currentlySelectedItems : []);
|
|
6365
|
+
const [list, setList] = (0, import_react66.useState)({});
|
|
6366
|
+
const onSetQuery = (0, import_react66.useCallback)(
|
|
6356
6367
|
(value2) => {
|
|
6357
6368
|
if (Array.isArray(value2.contentType) && value2.contentType.length > 0) {
|
|
6358
6369
|
return setQuery({
|
|
@@ -6364,7 +6375,7 @@ var ObjectSearchProvider = ({
|
|
|
6364
6375
|
},
|
|
6365
6376
|
[setQuery]
|
|
6366
6377
|
);
|
|
6367
|
-
const onSelectItem = (0,
|
|
6378
|
+
const onSelectItem = (0, import_react66.useCallback)(
|
|
6368
6379
|
(selectedResult) => {
|
|
6369
6380
|
if (Array.isArray(selectedResult)) {
|
|
6370
6381
|
setSelectedItems(selectedResult);
|
|
@@ -6378,17 +6389,17 @@ var ObjectSearchProvider = ({
|
|
|
6378
6389
|
},
|
|
6379
6390
|
[setSelectedItems, selectedItems]
|
|
6380
6391
|
);
|
|
6381
|
-
const onRemoveAllSelectedItems = (0,
|
|
6392
|
+
const onRemoveAllSelectedItems = (0, import_react66.useCallback)(() => {
|
|
6382
6393
|
setSelectedItems([]);
|
|
6383
6394
|
}, [setSelectedItems]);
|
|
6384
|
-
const onSetList = (0,
|
|
6395
|
+
const onSetList = (0, import_react66.useCallback)(
|
|
6385
6396
|
(value2) => {
|
|
6386
6397
|
setList(value2);
|
|
6387
6398
|
},
|
|
6388
6399
|
[setList]
|
|
6389
6400
|
);
|
|
6390
|
-
const boundQuery = (0,
|
|
6391
|
-
const value = (0,
|
|
6401
|
+
const boundQuery = (0, import_react66.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
|
|
6402
|
+
const value = (0, import_react66.useMemo)(
|
|
6392
6403
|
() => ({
|
|
6393
6404
|
boundQuery,
|
|
6394
6405
|
onSetQuery,
|
|
@@ -6415,7 +6426,7 @@ var ObjectSearchProvider = ({
|
|
|
6415
6426
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ObjectSearchContext.Provider, { value, children });
|
|
6416
6427
|
};
|
|
6417
6428
|
function useObjectSearchContext() {
|
|
6418
|
-
return (0,
|
|
6429
|
+
return (0, import_react66.useContext)(ObjectSearchContext);
|
|
6419
6430
|
}
|
|
6420
6431
|
function bindQuery(query, inputs) {
|
|
6421
6432
|
const { result, errors } = (0, import_canvas8.bindVariablesToObject)({
|
|
@@ -6433,9 +6444,9 @@ function bindQuery(query, inputs) {
|
|
|
6433
6444
|
var import_design_system34 = require("@uniformdev/design-system");
|
|
6434
6445
|
|
|
6435
6446
|
// src/components/ObjectSearch/styles/ObjectSearchListItem.styles.ts
|
|
6436
|
-
var
|
|
6447
|
+
var import_react67 = require("@emotion/react");
|
|
6437
6448
|
var import_design_system33 = require("@uniformdev/design-system");
|
|
6438
|
-
var ObjectListItemContainer =
|
|
6449
|
+
var ObjectListItemContainer = import_react67.css`
|
|
6439
6450
|
align-items: center;
|
|
6440
6451
|
border: 1px solid var(--gray-300);
|
|
6441
6452
|
border-radius: var(--rounded-base);
|
|
@@ -6444,11 +6455,11 @@ var ObjectListItemContainer = import_react66.css`
|
|
|
6444
6455
|
grid-template-columns: 1fr auto;
|
|
6445
6456
|
padding: var(--spacing-sm);
|
|
6446
6457
|
`;
|
|
6447
|
-
var ObjectListItemContainerDisabled =
|
|
6458
|
+
var ObjectListItemContainerDisabled = import_react67.css`
|
|
6448
6459
|
opacity: var(--opacity-50);
|
|
6449
6460
|
pointer-events: none;
|
|
6450
6461
|
`;
|
|
6451
|
-
var ObjectListItemLoading =
|
|
6462
|
+
var ObjectListItemLoading = import_react67.css`
|
|
6452
6463
|
animation: ${import_design_system33.skeletonLoading} 1s linear infinite alternate;
|
|
6453
6464
|
border-color: transparent;
|
|
6454
6465
|
min-height: 42px;
|
|
@@ -6472,36 +6483,36 @@ var ObjectListItemLoading = import_react66.css`
|
|
|
6472
6483
|
width: 1rem;
|
|
6473
6484
|
}
|
|
6474
6485
|
`;
|
|
6475
|
-
var ObjectListItemHeadingGroup =
|
|
6486
|
+
var ObjectListItemHeadingGroup = import_react67.css`
|
|
6476
6487
|
align-items: center;
|
|
6477
6488
|
display: grid;
|
|
6478
6489
|
`;
|
|
6479
|
-
var ObjectListItemThumbnail =
|
|
6490
|
+
var ObjectListItemThumbnail = import_react67.css`
|
|
6480
6491
|
width: 30px;
|
|
6481
6492
|
object-fit: contain;
|
|
6482
6493
|
`;
|
|
6483
|
-
var ObjectListItemTitle =
|
|
6494
|
+
var ObjectListItemTitle = import_react67.css`
|
|
6484
6495
|
color: var(--typography-base);
|
|
6485
6496
|
display: block;
|
|
6486
6497
|
font-size: var(--fs-sm);
|
|
6487
6498
|
`;
|
|
6488
|
-
var ObjectListItemSubtitle =
|
|
6499
|
+
var ObjectListItemSubtitle = import_react67.css`
|
|
6489
6500
|
color: var(--gray-500);
|
|
6490
6501
|
display: block;
|
|
6491
6502
|
font-size: var(--fs-xs);
|
|
6492
6503
|
line-height: 1;
|
|
6493
6504
|
`;
|
|
6494
|
-
var ObjectListItemInfoContainer =
|
|
6505
|
+
var ObjectListItemInfoContainer = import_react67.css`
|
|
6495
6506
|
align-items: center;
|
|
6496
6507
|
display: flex;
|
|
6497
6508
|
gap: var(--spacing-sm);
|
|
6498
6509
|
justify-content: center;
|
|
6499
6510
|
`;
|
|
6500
|
-
var ObjectListItemControlledContent =
|
|
6511
|
+
var ObjectListItemControlledContent = import_react67.css`
|
|
6501
6512
|
display: flex;
|
|
6502
6513
|
gap: var(--spacing-sm);
|
|
6503
6514
|
`;
|
|
6504
|
-
var ObjectListItemUnControlledContent =
|
|
6515
|
+
var ObjectListItemUnControlledContent = import_react67.css`
|
|
6505
6516
|
margin-top: var(--spacing-sm);
|
|
6506
6517
|
grid-column: 1 / -1;
|
|
6507
6518
|
`;
|
|
@@ -6569,202 +6580,19 @@ var ObjectSearchListItemLoadingSkeleton = () => {
|
|
|
6569
6580
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { role: "presentation", css: [ObjectListItemContainer, ObjectListItemLoading] });
|
|
6570
6581
|
};
|
|
6571
6582
|
|
|
6572
|
-
// src/components/ObjectSearch/
|
|
6573
|
-
var
|
|
6574
|
-
var
|
|
6575
|
-
label,
|
|
6576
|
-
enableDynamicInputToResultId,
|
|
6577
|
-
searchFilters,
|
|
6578
|
-
resultList,
|
|
6579
|
-
children
|
|
6580
|
-
}) => {
|
|
6581
|
-
var _a, _b;
|
|
6582
|
-
const { onSelectItem, selectedListItems, list } = useObjectSearchContext();
|
|
6583
|
-
const { flatVariables } = useVariables(true);
|
|
6584
|
-
const inputValue = (_b = (_a = selectedListItems == null ? void 0 : selectedListItems[0]) == null ? void 0 : _a.id) != null ? _b : "";
|
|
6585
|
-
const listItems = resultList != null ? resultList : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
6586
|
-
import_design_system35.ScrollableList,
|
|
6587
|
-
{
|
|
6588
|
-
role: "list",
|
|
6589
|
-
css: import_react67.css`
|
|
6590
|
-
> div {
|
|
6591
|
-
transition: max-height var(--duration-slow) var(--timing-ease-out);
|
|
6592
|
-
max-height: ${selectedListItems.length === 0 ? "50vh" : "184px"};
|
|
6593
|
-
}
|
|
6594
|
-
`,
|
|
6595
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DefaultResultList, {})
|
|
6596
|
-
}
|
|
6597
|
-
);
|
|
6598
|
-
const body = /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_design_system35.VerticalRhythm, { children: [
|
|
6599
|
-
searchFilters,
|
|
6600
|
-
listItems
|
|
6601
|
-
] });
|
|
6602
|
-
const handleSelectedVariableChange = (selectedValue) => {
|
|
6603
|
-
var _a2;
|
|
6604
|
-
if (!selectedValue) {
|
|
6605
|
-
onSelectItem([]);
|
|
6606
|
-
return;
|
|
6607
|
-
}
|
|
6608
|
-
const { result, errors } = (0, import_canvas9.bindVariables)({
|
|
6609
|
-
value: selectedValue,
|
|
6610
|
-
variables: flatVariables,
|
|
6611
|
-
errorPrefix: "Dynamic input"
|
|
6612
|
-
});
|
|
6613
|
-
if (!result) {
|
|
6614
|
-
onSelectItem([]);
|
|
6615
|
-
return;
|
|
6616
|
-
}
|
|
6617
|
-
const item = (_a2 = list.items) == null ? void 0 : _a2.find((i) => i.id === result);
|
|
6618
|
-
onSelectItem([
|
|
6619
|
-
{
|
|
6620
|
-
title: selectedValue,
|
|
6621
|
-
contentType: (errors == null ? void 0 : errors.length) ? errors[0] instanceof Error ? errors[0].message : errors[0] : `Current dynamic value "${result}" is not an ID in the options`,
|
|
6622
|
-
// spread any matched list item, overriding the above default props
|
|
6623
|
-
...item,
|
|
6624
|
-
// we want to make sure the ID is our dynamic value
|
|
6625
|
-
id: selectedValue
|
|
6626
|
-
}
|
|
6627
|
-
]);
|
|
6628
|
-
};
|
|
6629
|
-
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.IconsProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_design_system35.VerticalRhythm, { children: [
|
|
6630
|
-
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.Container, { backgroundColor: "gray-50", padding: "var(--spacing-base)", border: true, children: label ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
6631
|
-
InputVariables,
|
|
6632
|
-
{
|
|
6633
|
-
label,
|
|
6634
|
-
value: inputValue,
|
|
6635
|
-
onChange: (value) => {
|
|
6636
|
-
if (value === inputValue) {
|
|
6637
|
-
return;
|
|
6638
|
-
}
|
|
6639
|
-
handleSelectedVariableChange(value);
|
|
6640
|
-
},
|
|
6641
|
-
inputWhenNoVariables: body,
|
|
6642
|
-
disableVariables: !enableDynamicInputToResultId
|
|
6643
|
-
}
|
|
6644
|
-
) : body }),
|
|
6645
|
-
children
|
|
6646
|
-
] }) });
|
|
6647
|
-
};
|
|
6648
|
-
var DefaultResultList = () => {
|
|
6649
|
-
var _a;
|
|
6650
|
-
const { list } = useObjectSearchContext();
|
|
6651
|
-
if (!list.items) {
|
|
6652
|
-
return Array.from(Array(5).keys()).map((i) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ObjectSearchListItemLoadingSkeleton, {}, i));
|
|
6653
|
-
}
|
|
6654
|
-
if (list.items.length === 0) {
|
|
6655
|
-
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.Callout, { type: "info", children: "No results were found" });
|
|
6656
|
-
}
|
|
6657
|
-
return (_a = list.items) == null ? void 0 : _a.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ObjectSearchListItem, { ...item }, item.id));
|
|
6658
|
-
};
|
|
6659
|
-
|
|
6660
|
-
// src/components/ObjectSearch/ObjectSearchFilter.tsx
|
|
6661
|
-
var import_design_system36 = require("@uniformdev/design-system");
|
|
6662
|
-
var import_react69 = require("react");
|
|
6663
|
-
|
|
6664
|
-
// src/components/ObjectSearch/styles/ObjectSearchFilterContainer.styles.ts
|
|
6665
|
-
var import_react68 = require("@emotion/react");
|
|
6666
|
-
var ObjectSearchFilterContainerLabel = import_react68.css`
|
|
6667
|
-
align-items: center;
|
|
6668
|
-
display: flex;
|
|
6669
|
-
font-size: var(--fs-sm);
|
|
6670
|
-
font-weight: var(--fw-bold);
|
|
6671
|
-
line-height: 1rem;
|
|
6672
|
-
margin-bottom: var(--spacing-sm);
|
|
6673
|
-
`;
|
|
6674
|
-
var ObjectSearchFilterContainer = import_react68.css`
|
|
6675
|
-
display: grid;
|
|
6676
|
-
gap: var(--spacing-base);
|
|
6677
|
-
`;
|
|
6678
|
-
var ObjectSearchFilterGrid = (gridColumns) => import_react68.css`
|
|
6679
|
-
display: grid;
|
|
6680
|
-
grid-template-columns: ${gridColumns};
|
|
6681
|
-
gap: var(--spacing-base);
|
|
6682
|
-
`;
|
|
6683
|
-
|
|
6684
|
-
// src/components/ObjectSearch/ObjectSearchFilter.tsx
|
|
6685
|
-
var import_jsx_runtime62 = require("@emotion/react/jsx-runtime");
|
|
6686
|
-
var ObjectSearchFilter = ({
|
|
6687
|
-
requireContentType,
|
|
6688
|
-
typeSelectorAllTypesOptionText = "All content types",
|
|
6689
|
-
searchInputName = "searchText",
|
|
6690
|
-
searchInputPlaceholderText = "Enter keyword to narrow your results",
|
|
6691
|
-
selectLabel = "Content Type Select",
|
|
6692
|
-
selectOptions
|
|
6693
|
-
}) => {
|
|
6694
|
-
var _a, _b;
|
|
6695
|
-
const { query, onSetQuery } = useObjectSearchContext();
|
|
6696
|
-
const [searchState, setSearchState] = (0, import_react69.useState)({
|
|
6697
|
-
contentType: (_a = query.contentType) != null ? _a : "",
|
|
6698
|
-
keyword: (_b = query.keyword) != null ? _b : ""
|
|
6699
|
-
});
|
|
6700
|
-
const handleFilterChange = (value) => {
|
|
6701
|
-
setSearchState((prev) => {
|
|
6702
|
-
return { ...prev, ...value };
|
|
6703
|
-
});
|
|
6704
|
-
onSetQuery({ ...query, ...value });
|
|
6705
|
-
};
|
|
6706
|
-
const memoizedSelectOptions = (0, import_react69.useMemo)(() => {
|
|
6707
|
-
if (!requireContentType && !(selectOptions == null ? void 0 : selectOptions.length)) {
|
|
6708
|
-
return [];
|
|
6709
|
-
}
|
|
6710
|
-
return [
|
|
6711
|
-
...!requireContentType ? [{ value: "any", label: typeSelectorAllTypesOptionText }] : [],
|
|
6712
|
-
...selectOptions != null ? selectOptions : []
|
|
6713
|
-
];
|
|
6714
|
-
}, [requireContentType, typeSelectorAllTypesOptionText, selectOptions]);
|
|
6715
|
-
const shouldRenderSelect = memoizedSelectOptions.length > 0;
|
|
6716
|
-
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
6717
|
-
"fieldset",
|
|
6718
|
-
{
|
|
6719
|
-
css: [
|
|
6720
|
-
ObjectSearchFilterContainer,
|
|
6721
|
-
ObjectSearchFilterGrid(shouldRenderSelect ? "1fr 2fr" : "1fr")
|
|
6722
|
-
],
|
|
6723
|
-
children: [
|
|
6724
|
-
memoizedSelectOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
6725
|
-
import_design_system36.InputSelect,
|
|
6726
|
-
{
|
|
6727
|
-
label: selectLabel,
|
|
6728
|
-
showLabel: false,
|
|
6729
|
-
onChange: (e) => handleFilterChange({ contentType: e.target.value }),
|
|
6730
|
-
options: memoizedSelectOptions,
|
|
6731
|
-
value: query.contentType
|
|
6732
|
-
}
|
|
6733
|
-
) : null,
|
|
6734
|
-
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
6735
|
-
import_design_system36.DebouncedInputKeywordSearch,
|
|
6736
|
-
{
|
|
6737
|
-
inputFieldName: searchInputName,
|
|
6738
|
-
placeholder: searchInputPlaceholderText,
|
|
6739
|
-
onSearchTextChanged: (keyword) => handleFilterChange({ keyword }),
|
|
6740
|
-
disabledFieldSubmission: true,
|
|
6741
|
-
defaultValue: searchState.keyword,
|
|
6742
|
-
delay: 300
|
|
6743
|
-
}
|
|
6744
|
-
)
|
|
6745
|
-
]
|
|
6746
|
-
}
|
|
6747
|
-
);
|
|
6748
|
-
};
|
|
6749
|
-
|
|
6750
|
-
// src/components/ObjectSearch/ObjectSearchFilterContainer.tsx
|
|
6751
|
-
var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
|
|
6752
|
-
var ObjectSearchFilterContainer2 = ({ label, children }) => {
|
|
6753
|
-
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { children: [
|
|
6754
|
-
label ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { css: ObjectSearchFilterContainerLabel, children: label }) : null,
|
|
6755
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { css: ObjectSearchFilterContainer, children })
|
|
6756
|
-
] });
|
|
6757
|
-
};
|
|
6583
|
+
// src/components/ObjectSearch/ObjectSearchResultList.tsx
|
|
6584
|
+
var import_design_system37 = require("@uniformdev/design-system");
|
|
6585
|
+
var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
|
|
6758
6586
|
|
|
6759
6587
|
// src/components/ObjectSearch/ObjectSearchResultItem.tsx
|
|
6760
|
-
var
|
|
6588
|
+
var import_design_system36 = require("@uniformdev/design-system");
|
|
6761
6589
|
var import_timeago3 = require("timeago.js");
|
|
6762
6590
|
|
|
6763
6591
|
// src/components/ObjectSearch/styles/ObjectSearchResultItemButton.styles.ts
|
|
6764
|
-
var
|
|
6765
|
-
var
|
|
6766
|
-
var ButtonStyles =
|
|
6767
|
-
${
|
|
6592
|
+
var import_react68 = require("@emotion/react");
|
|
6593
|
+
var import_design_system35 = require("@uniformdev/design-system");
|
|
6594
|
+
var ButtonStyles = import_react68.css`
|
|
6595
|
+
${import_design_system35.button}
|
|
6768
6596
|
background: transparent;
|
|
6769
6597
|
border: 1px solid var(--typography-base);
|
|
6770
6598
|
color: var(--typography-base);
|
|
@@ -6790,20 +6618,20 @@ var ButtonStyles = import_react70.css`
|
|
|
6790
6618
|
text-decoration: none;
|
|
6791
6619
|
}
|
|
6792
6620
|
`;
|
|
6793
|
-
var ButtonIcon =
|
|
6621
|
+
var ButtonIcon = import_react68.css`
|
|
6794
6622
|
width: 1rem;
|
|
6795
6623
|
height: 1rem;
|
|
6796
6624
|
`;
|
|
6797
6625
|
|
|
6798
6626
|
// src/components/ObjectSearch/ObjectSearchResultItemButton.tsx
|
|
6799
|
-
var
|
|
6627
|
+
var import_jsx_runtime61 = require("@emotion/react/jsx-runtime");
|
|
6800
6628
|
var ObjectSearchResultItemButton = ({
|
|
6801
6629
|
text,
|
|
6802
6630
|
icon,
|
|
6803
6631
|
...props
|
|
6804
6632
|
}) => {
|
|
6805
|
-
return /* @__PURE__ */ (0,
|
|
6806
|
-
!icon ? null : /* @__PURE__ */ (0,
|
|
6633
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("button", { type: "button", css: ButtonStyles, ...props, children: [
|
|
6634
|
+
!icon ? null : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Image, { src: icon, css: ButtonIcon }),
|
|
6807
6635
|
text
|
|
6808
6636
|
] });
|
|
6809
6637
|
};
|
|
@@ -6812,15 +6640,15 @@ var LinkButton = ({
|
|
|
6812
6640
|
icon,
|
|
6813
6641
|
...props
|
|
6814
6642
|
}) => {
|
|
6815
|
-
return /* @__PURE__ */ (0,
|
|
6816
|
-
!icon ? null : /* @__PURE__ */ (0,
|
|
6643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("a", { ...props, css: ButtonStyles, target: "_blank", rel: "noopener noreferrer", children: [
|
|
6644
|
+
!icon ? null : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Image, { src: icon, css: ButtonIcon }),
|
|
6817
6645
|
text
|
|
6818
6646
|
] });
|
|
6819
6647
|
};
|
|
6820
6648
|
|
|
6821
6649
|
// src/components/ObjectSearch/styles/ObjectSearchResultItem.styles.ts
|
|
6822
|
-
var
|
|
6823
|
-
var ObjectSearchResultItemContainer =
|
|
6650
|
+
var import_react69 = require("@emotion/react");
|
|
6651
|
+
var ObjectSearchResultItemContainer = import_react69.css`
|
|
6824
6652
|
align-items: center;
|
|
6825
6653
|
border: 1px solid var(--gray-300);
|
|
6826
6654
|
border-radius: var(--rounded-base);
|
|
@@ -6836,7 +6664,7 @@ var ObjectSearchResultItemContainer = import_react71.css`
|
|
|
6836
6664
|
}
|
|
6837
6665
|
}
|
|
6838
6666
|
`;
|
|
6839
|
-
var ObjectSearchDragHandle =
|
|
6667
|
+
var ObjectSearchDragHandle = import_react69.css`
|
|
6840
6668
|
border-left: 2px dotted var(--gray-300);
|
|
6841
6669
|
border-right: 2px dotted var(--gray-300);
|
|
6842
6670
|
position: absolute;
|
|
@@ -6845,41 +6673,41 @@ var ObjectSearchDragHandle = import_react71.css`
|
|
|
6845
6673
|
transition: opacity var(--duration-fast) var(--timing-ease-out);
|
|
6846
6674
|
opacity: 0;
|
|
6847
6675
|
`;
|
|
6848
|
-
var ObjectSearchResultItemSubtitle =
|
|
6676
|
+
var ObjectSearchResultItemSubtitle = import_react69.css`
|
|
6849
6677
|
color: var(--gray-500);
|
|
6850
6678
|
display: block;
|
|
6851
6679
|
font-size: var(--fs-xs);
|
|
6852
6680
|
line-height: 1;
|
|
6853
6681
|
`;
|
|
6854
|
-
var ObjectSearchResultItemTitle =
|
|
6682
|
+
var ObjectSearchResultItemTitle = import_react69.css`
|
|
6855
6683
|
align-items: center;
|
|
6856
6684
|
color: var(--typography-base);
|
|
6857
6685
|
display: flex;
|
|
6858
6686
|
gap: var(--spacing-xs);
|
|
6859
6687
|
`;
|
|
6860
|
-
var ObjectSearchResultItemTimeStamp =
|
|
6688
|
+
var ObjectSearchResultItemTimeStamp = import_react69.css`
|
|
6861
6689
|
color: var(--gray-500);
|
|
6862
6690
|
font-size: var(--fs-xs);
|
|
6863
6691
|
`;
|
|
6864
|
-
var ObjectSearchAuthorStateGroup =
|
|
6692
|
+
var ObjectSearchAuthorStateGroup = import_react69.css`
|
|
6865
6693
|
align-items: center;
|
|
6866
6694
|
display: flex;
|
|
6867
6695
|
gap: var(--spacing-sm);
|
|
6868
6696
|
`;
|
|
6869
|
-
var ObjectSearchUpdateGroup =
|
|
6697
|
+
var ObjectSearchUpdateGroup = import_react69.css`
|
|
6870
6698
|
display: grid;
|
|
6871
6699
|
`;
|
|
6872
|
-
var ObjectSearchContentContainer =
|
|
6700
|
+
var ObjectSearchContentContainer = import_react69.css`
|
|
6873
6701
|
display: flex;
|
|
6874
6702
|
gap: var(--spacing-base);
|
|
6875
6703
|
`;
|
|
6876
|
-
var ObjectSearchImage =
|
|
6704
|
+
var ObjectSearchImage = import_react69.css`
|
|
6877
6705
|
width: 56px;
|
|
6878
6706
|
object-fit: contain;
|
|
6879
6707
|
`;
|
|
6880
6708
|
|
|
6881
6709
|
// src/components/ObjectSearch/ObjectSearchResultItem.tsx
|
|
6882
|
-
var
|
|
6710
|
+
var import_jsx_runtime62 = require("@emotion/react/jsx-runtime");
|
|
6883
6711
|
var ObjectSearchResultItem = ({
|
|
6884
6712
|
id,
|
|
6885
6713
|
title,
|
|
@@ -6903,77 +6731,73 @@ var ObjectSearchResultItem = ({
|
|
|
6903
6731
|
onSelectItem({ id, title: id });
|
|
6904
6732
|
onRemove == null ? void 0 : onRemove();
|
|
6905
6733
|
};
|
|
6906
|
-
return /* @__PURE__ */ (0,
|
|
6907
|
-
disableDnD ? null : /* @__PURE__ */ (0,
|
|
6908
|
-
/* @__PURE__ */ (0,
|
|
6909
|
-
!imageUrl ? null : /* @__PURE__ */ (0,
|
|
6910
|
-
/* @__PURE__ */ (0,
|
|
6911
|
-
/* @__PURE__ */ (0,
|
|
6912
|
-
/* @__PURE__ */ (0,
|
|
6734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchResultItemContainer, "data-testid": "search-result-item", children: [
|
|
6735
|
+
disableDnD ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { role: "presentation", className: "drag-handle", css: ObjectSearchDragHandle }),
|
|
6736
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchContentContainer, children: [
|
|
6737
|
+
!imageUrl ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("img", { src: imageUrl, alt: `Thumbnail for ${title}`, css: ObjectSearchImage }),
|
|
6738
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { children: [
|
|
6739
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { css: ObjectSearchResultItemSubtitle, "data-testid": "sub-title", children: formatedContentType }),
|
|
6740
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { role: "heading", css: ObjectSearchResultItemTitle, "data-testid": "title", children: [
|
|
6913
6741
|
title != null ? title : name,
|
|
6914
|
-
!popoverData ? null : /* @__PURE__ */ (0,
|
|
6742
|
+
!popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
|
|
6915
6743
|
] }),
|
|
6916
|
-
!createdAt && !publishStatus ? null : /* @__PURE__ */ (0,
|
|
6917
|
-
!(publishStatus == null ? void 0 : publishStatus.text) ? null : /* @__PURE__ */ (0,
|
|
6918
|
-
!createdAt && !publishedAt ? null : /* @__PURE__ */ (0,
|
|
6919
|
-
!createdAt ? null : /* @__PURE__ */ (0,
|
|
6920
|
-
/* @__PURE__ */ (0,
|
|
6744
|
+
!createdAt && !publishStatus ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
|
|
6745
|
+
!(publishStatus == null ? void 0 : publishStatus.text) ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Badge, { ...publishStatus, size: "sm", uppercaseText: true }),
|
|
6746
|
+
!createdAt && !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchUpdateGroup, children: [
|
|
6747
|
+
!createdAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
|
|
6748
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("strong", { children: "Last updated: " }),
|
|
6921
6749
|
(0, import_timeago3.format)(createdAt)
|
|
6922
6750
|
] }),
|
|
6923
|
-
!publishedAt ? null : /* @__PURE__ */ (0,
|
|
6924
|
-
/* @__PURE__ */ (0,
|
|
6751
|
+
!publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
|
|
6752
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("strong", { children: "Last published: " }),
|
|
6925
6753
|
(0, import_timeago3.format)(publishedAt)
|
|
6926
6754
|
] })
|
|
6927
6755
|
] })
|
|
6928
6756
|
] }),
|
|
6929
|
-
/* @__PURE__ */ (0,
|
|
6757
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { children })
|
|
6930
6758
|
] })
|
|
6931
6759
|
] }) }),
|
|
6932
|
-
!editLink && hideRemoveButton ? null : /* @__PURE__ */ (0,
|
|
6933
|
-
!editLink ? null : /* @__PURE__ */ (0,
|
|
6934
|
-
hideRemoveButton ? null : /* @__PURE__ */ (0,
|
|
6760
|
+
!editLink && hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
|
|
6761
|
+
!editLink ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LinkButton, { text: "Edit", href: editLink, icon: editLinkIcon }),
|
|
6762
|
+
hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Button, { buttonType: "ghostDestructive", onClick: onRemoveItem, children: "Remove" })
|
|
6935
6763
|
] })
|
|
6936
6764
|
] });
|
|
6937
6765
|
};
|
|
6938
6766
|
|
|
6939
|
-
// src/components/ObjectSearch/ObjectSearchResultList.tsx
|
|
6940
|
-
var import_design_system39 = require("@uniformdev/design-system");
|
|
6941
|
-
var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
|
|
6942
|
-
|
|
6943
6767
|
// src/components/ObjectSearch/styles/ObjectSearchResultList.styles.ts
|
|
6944
|
-
var
|
|
6945
|
-
var ObjectSearchResultListContainer =
|
|
6768
|
+
var import_react70 = require("@emotion/react");
|
|
6769
|
+
var ObjectSearchResultListContainer = import_react70.css`
|
|
6946
6770
|
align-items: center;
|
|
6947
6771
|
display: flex;
|
|
6948
6772
|
gap: var(--spacing-sm);
|
|
6949
6773
|
justify-content: space-between;
|
|
6950
6774
|
`;
|
|
6951
|
-
var ObjectSearchDragContainer =
|
|
6775
|
+
var ObjectSearchDragContainer = import_react70.css`
|
|
6952
6776
|
margin: 0 0 var(--spacing-sm);
|
|
6953
6777
|
`;
|
|
6954
|
-
var ObjectSearchContainerDragging =
|
|
6778
|
+
var ObjectSearchContainerDragging = import_react70.css`
|
|
6955
6779
|
box-shadow: var(--shadow-base);
|
|
6956
6780
|
opacity: var(--opacity-50);
|
|
6957
6781
|
`;
|
|
6958
|
-
var ObjectSearchResultListCounterContainer =
|
|
6782
|
+
var ObjectSearchResultListCounterContainer = import_react70.css`
|
|
6959
6783
|
align-items: center;
|
|
6960
6784
|
display: flex;
|
|
6961
6785
|
gap: var(--spacing-sm);
|
|
6962
6786
|
`;
|
|
6963
|
-
var ObjectSearchResultListTitle =
|
|
6787
|
+
var ObjectSearchResultListTitle = import_react70.css`
|
|
6964
6788
|
font-weight: var(--fw-bold);
|
|
6965
6789
|
line-height: 1;
|
|
6966
6790
|
`;
|
|
6967
6791
|
|
|
6968
6792
|
// src/components/ObjectSearch/ObjectSearchResultList.tsx
|
|
6969
|
-
var
|
|
6793
|
+
var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
|
|
6970
6794
|
function ObjectSearchResultList({
|
|
6971
6795
|
resultLabelText = "Selected",
|
|
6972
6796
|
removeButtonText = "Remove all",
|
|
6973
6797
|
onRemoveAllSelected,
|
|
6974
6798
|
hideRemoveButton = false,
|
|
6975
6799
|
additionalButtons,
|
|
6976
|
-
renderResultComponent = (value) => /* @__PURE__ */ (0,
|
|
6800
|
+
renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ObjectSearchResultItem, { ...value }),
|
|
6977
6801
|
multiSelectId,
|
|
6978
6802
|
disableDnD = false,
|
|
6979
6803
|
getContainerForDnDReparenting,
|
|
@@ -7000,7 +6824,7 @@ function ObjectSearchResultList({
|
|
|
7000
6824
|
...item,
|
|
7001
6825
|
disableDnD: selectedListItems.length === 1 || disableDnD
|
|
7002
6826
|
});
|
|
7003
|
-
return /* @__PURE__ */ (0,
|
|
6827
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7004
6828
|
"div",
|
|
7005
6829
|
{
|
|
7006
6830
|
css: [
|
|
@@ -7015,17 +6839,17 @@ function ObjectSearchResultList({
|
|
|
7015
6839
|
}
|
|
7016
6840
|
);
|
|
7017
6841
|
};
|
|
7018
|
-
return /* @__PURE__ */ (0,
|
|
7019
|
-
/* @__PURE__ */ (0,
|
|
7020
|
-
/* @__PURE__ */ (0,
|
|
7021
|
-
/* @__PURE__ */ (0,
|
|
6842
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
|
|
6843
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { role: "group", css: ObjectSearchResultListContainer, children: [
|
|
6844
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { role: "note", css: ObjectSearchResultListCounterContainer, children: [
|
|
6845
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { css: ObjectSearchResultListTitle, children: resultLabelText }),
|
|
7022
6846
|
" ",
|
|
7023
|
-
!selectedListItems.length ? null : /* @__PURE__ */ (0,
|
|
6847
|
+
!selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_design_system37.Counter, { count: selectedListItems.length })
|
|
7024
6848
|
] }),
|
|
7025
|
-
/* @__PURE__ */ (0,
|
|
6849
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { css: ObjectSearchResultListCounterContainer, children: [
|
|
7026
6850
|
additionalButtons,
|
|
7027
|
-
hideRemoveButton ? null : /* @__PURE__ */ (0,
|
|
7028
|
-
|
|
6851
|
+
hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
6852
|
+
import_design_system37.Button,
|
|
7029
6853
|
{
|
|
7030
6854
|
buttonType: "ghostDestructive",
|
|
7031
6855
|
size: "xs",
|
|
@@ -7036,15 +6860,15 @@ function ObjectSearchResultList({
|
|
|
7036
6860
|
)
|
|
7037
6861
|
] })
|
|
7038
6862
|
] }),
|
|
7039
|
-
!selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0,
|
|
6863
|
+
!selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7040
6864
|
import_react_beautiful_dnd4.Droppable,
|
|
7041
6865
|
{
|
|
7042
6866
|
droppableId: multiSelectId != null ? multiSelectId : "canvas-multi-select",
|
|
7043
6867
|
renderClone: getContainerForDnDReparenting ? getDraggableItem : void 0,
|
|
7044
6868
|
getContainerForClone: getContainerForDnDReparenting,
|
|
7045
|
-
children: (provided) => /* @__PURE__ */ (0,
|
|
6869
|
+
children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
|
|
7046
6870
|
selectedListItems.map((item, i) => {
|
|
7047
|
-
return /* @__PURE__ */ (0,
|
|
6871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7048
6872
|
import_react_beautiful_dnd4.Draggable,
|
|
7049
6873
|
{
|
|
7050
6874
|
draggableId: item.id,
|
|
@@ -7062,9 +6886,284 @@ function ObjectSearchResultList({
|
|
|
7062
6886
|
] });
|
|
7063
6887
|
}
|
|
7064
6888
|
|
|
6889
|
+
// src/components/ObjectSearch/ObjectSearchContainer.tsx
|
|
6890
|
+
var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
|
|
6891
|
+
var ObjectSearchContainer = ({
|
|
6892
|
+
label,
|
|
6893
|
+
enableDynamicInputToResultId,
|
|
6894
|
+
searchFilters,
|
|
6895
|
+
resultList,
|
|
6896
|
+
children = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchResultList, {})
|
|
6897
|
+
}) => {
|
|
6898
|
+
var _a, _b;
|
|
6899
|
+
const { onSelectItem, selectedListItems, list, dynamicEntryId, onSetQuery, query } = useObjectSearchContext();
|
|
6900
|
+
const { flatVariables } = useVariables(true);
|
|
6901
|
+
const inputValue = (_b = dynamicEntryId != null ? dynamicEntryId : (_a = selectedListItems[0]) == null ? void 0 : _a.id) != null ? _b : "";
|
|
6902
|
+
const isDynamicEntryIdAvailable = import_react72.default.useMemo(
|
|
6903
|
+
() => Boolean(inputValue && hasReferencedVariables(inputValue)),
|
|
6904
|
+
[inputValue]
|
|
6905
|
+
);
|
|
6906
|
+
const listItems = resultList != null ? resultList : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
6907
|
+
import_design_system38.ScrollableList,
|
|
6908
|
+
{
|
|
6909
|
+
role: "list",
|
|
6910
|
+
css: import_react71.css`
|
|
6911
|
+
> div {
|
|
6912
|
+
transition: max-height var(--duration-slow) var(--timing-ease-out);
|
|
6913
|
+
max-height: ${selectedListItems.length === 0 ? "50vh" : "184px"};
|
|
6914
|
+
}
|
|
6915
|
+
`,
|
|
6916
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(DefaultResultList, {})
|
|
6917
|
+
}
|
|
6918
|
+
);
|
|
6919
|
+
const handleSelectedVariableChange = (selectedValue) => {
|
|
6920
|
+
var _a2;
|
|
6921
|
+
if (!selectedValue) {
|
|
6922
|
+
onSelectItem([]);
|
|
6923
|
+
return;
|
|
6924
|
+
}
|
|
6925
|
+
const { result, errors } = (0, import_canvas9.bindVariables)({
|
|
6926
|
+
value: selectedValue,
|
|
6927
|
+
variables: flatVariables,
|
|
6928
|
+
errorPrefix: "Dynamic input"
|
|
6929
|
+
});
|
|
6930
|
+
if (!result) {
|
|
6931
|
+
onSelectItem([]);
|
|
6932
|
+
return;
|
|
6933
|
+
}
|
|
6934
|
+
const item = (_a2 = list.items) == null ? void 0 : _a2.find((i) => i.id === result);
|
|
6935
|
+
onSelectItem([
|
|
6936
|
+
{
|
|
6937
|
+
title: selectedValue,
|
|
6938
|
+
contentType: (errors == null ? void 0 : errors.length) ? errors[0] instanceof Error ? errors[0].message : errors[0] : `Current dynamic value "${result}" is not an ID in the options`,
|
|
6939
|
+
// spread any matched list item, overriding the above default props
|
|
6940
|
+
...item,
|
|
6941
|
+
// we want to make sure the ID is our dynamic value
|
|
6942
|
+
id: selectedValue
|
|
6943
|
+
}
|
|
6944
|
+
]);
|
|
6945
|
+
if (hasReferencedVariables(selectedValue)) {
|
|
6946
|
+
onSetQuery({ ...query, dynamicEntryId: selectedValue });
|
|
6947
|
+
}
|
|
6948
|
+
};
|
|
6949
|
+
const showSearchList = !label || !isDynamicEntryIdAvailable || !enableDynamicInputToResultId;
|
|
6950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.IconsProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_design_system38.VerticalRhythm, { children: [
|
|
6951
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.Container, { backgroundColor: "gray-50", padding: "var(--spacing-base)", border: true, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_design_system38.VerticalRhythm, { children: [
|
|
6952
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
6953
|
+
InputVariables,
|
|
6954
|
+
{
|
|
6955
|
+
id: "entryId",
|
|
6956
|
+
label,
|
|
6957
|
+
value: inputValue,
|
|
6958
|
+
onChange: (value) => {
|
|
6959
|
+
if (value === inputValue) {
|
|
6960
|
+
return;
|
|
6961
|
+
}
|
|
6962
|
+
handleSelectedVariableChange(value);
|
|
6963
|
+
},
|
|
6964
|
+
inputWhenNoVariables: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_jsx_runtime64.Fragment, { children: searchFilters }),
|
|
6965
|
+
disableVariables: !enableDynamicInputToResultId
|
|
6966
|
+
}
|
|
6967
|
+
) : searchFilters,
|
|
6968
|
+
showSearchList ? listItems : null
|
|
6969
|
+
] }) }),
|
|
6970
|
+
children
|
|
6971
|
+
] }) });
|
|
6972
|
+
};
|
|
6973
|
+
var DefaultResultList = () => {
|
|
6974
|
+
var _a, _b;
|
|
6975
|
+
const { list, isListLoading } = useObjectSearchContext();
|
|
6976
|
+
if (isListLoading || !list.items) {
|
|
6977
|
+
return Array.from(Array(5).keys()).map((i) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchListItemLoadingSkeleton, {}, i));
|
|
6978
|
+
}
|
|
6979
|
+
if (((_a = list.items) == null ? void 0 : _a.length) === 0) {
|
|
6980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.Callout, { type: "info", children: "No results were found" });
|
|
6981
|
+
}
|
|
6982
|
+
return (_b = list.items) == null ? void 0 : _b.map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchListItem, { ...item }, item.id));
|
|
6983
|
+
};
|
|
6984
|
+
|
|
6985
|
+
// src/components/ObjectSearch/ObjectSearchFilter.tsx
|
|
6986
|
+
var import_design_system39 = require("@uniformdev/design-system");
|
|
6987
|
+
var import_react75 = require("react");
|
|
6988
|
+
var import_react_use5 = require("react-use");
|
|
6989
|
+
|
|
6990
|
+
// src/utils/createLocationValidator.ts
|
|
6991
|
+
function createLocationValidator(setValue, validate) {
|
|
6992
|
+
return (dispatch) => setValue((previous) => {
|
|
6993
|
+
const { newValue, options } = dispatch(previous);
|
|
6994
|
+
return { newValue, options: validate(newValue, options) };
|
|
6995
|
+
});
|
|
6996
|
+
}
|
|
6997
|
+
|
|
6998
|
+
// src/utils/useContentDataResourceLocaleInfo.ts
|
|
6999
|
+
var import_canvas10 = require("@uniformdev/canvas");
|
|
7000
|
+
var import_react73 = require("react");
|
|
7001
|
+
function useContentDataResourceLocaleInfo({
|
|
7002
|
+
locale,
|
|
7003
|
+
setLocale,
|
|
7004
|
+
dynamicInputs
|
|
7005
|
+
}) {
|
|
7006
|
+
var _a;
|
|
7007
|
+
const setLocaleRef = (0, import_react73.useRef)(setLocale);
|
|
7008
|
+
setLocaleRef.current = setLocale;
|
|
7009
|
+
const { flatVariables } = useVariables();
|
|
7010
|
+
const effectiveLocale = locale != null ? locale : dynamicInputs[import_canvas10.LOCALE_DYNAMIC_INPUT_NAME] ? (0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME) : "";
|
|
7011
|
+
const boundLocale = (_a = (0, import_canvas10.bindVariables)({ variables: flatVariables, value: effectiveLocale }).result) != null ? _a : effectiveLocale;
|
|
7012
|
+
(0, import_react73.useEffect)(() => {
|
|
7013
|
+
if (locale === void 0 && effectiveLocale && setLocaleRef.current) {
|
|
7014
|
+
setLocaleRef.current((0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME));
|
|
7015
|
+
}
|
|
7016
|
+
}, [locale, effectiveLocale]);
|
|
7017
|
+
return { effectiveLocale, boundLocale: boundLocale ? boundLocale : void 0 };
|
|
7018
|
+
}
|
|
7019
|
+
|
|
7020
|
+
// src/components/ObjectSearch/styles/ObjectSearchFilterContainer.styles.ts
|
|
7021
|
+
var import_react74 = require("@emotion/react");
|
|
7022
|
+
var ObjectSearchFilterContainerLabel = import_react74.css`
|
|
7023
|
+
align-items: center;
|
|
7024
|
+
display: flex;
|
|
7025
|
+
font-size: var(--fs-sm);
|
|
7026
|
+
font-weight: var(--fw-bold);
|
|
7027
|
+
line-height: 1rem;
|
|
7028
|
+
margin-bottom: var(--spacing-sm);
|
|
7029
|
+
`;
|
|
7030
|
+
var ObjectSearchFilterContainer = import_react74.css`
|
|
7031
|
+
display: grid;
|
|
7032
|
+
gap: var(--spacing-base);
|
|
7033
|
+
`;
|
|
7034
|
+
var ObjectSearchFilterGrid = (gridColumns) => import_react74.css`
|
|
7035
|
+
display: grid;
|
|
7036
|
+
grid-template-columns: ${gridColumns};
|
|
7037
|
+
gap: var(--spacing-base);
|
|
7038
|
+
`;
|
|
7039
|
+
|
|
7040
|
+
// src/components/ObjectSearch/ObjectSearchFilter.tsx
|
|
7041
|
+
var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
|
|
7042
|
+
var ObjectSearchFilter = ({
|
|
7043
|
+
requireContentType,
|
|
7044
|
+
typeSelectorAllTypesOptionText = "All content types",
|
|
7045
|
+
searchInputName = "searchText",
|
|
7046
|
+
searchInputPlaceholderText = "Enter keyword to narrow your results",
|
|
7047
|
+
selectLabel = "Content Type Select",
|
|
7048
|
+
localeFilterLabel = "Filter by locale",
|
|
7049
|
+
selectOptions
|
|
7050
|
+
}) => {
|
|
7051
|
+
var _a, _b, _c;
|
|
7052
|
+
const { query, onSetQuery, localeOptions, enableFilterByLocale } = useObjectSearchContext();
|
|
7053
|
+
const dynamicInputs = useDataResourceDynamicInputs();
|
|
7054
|
+
const { boundLocale = "", effectiveLocale } = useContentDataResourceLocaleInfo({
|
|
7055
|
+
locale: query.locale,
|
|
7056
|
+
dynamicInputs: dynamicInputs != null ? dynamicInputs : {},
|
|
7057
|
+
setLocale: (newLocale) => handleFilterChange({ locale: newLocale != null ? newLocale : "" })
|
|
7058
|
+
});
|
|
7059
|
+
const [searchState, setSearchState] = (0, import_react75.useState)({
|
|
7060
|
+
keyword: (_a = query.keyword) != null ? _a : "",
|
|
7061
|
+
contentType: (_b = query.contentType) != null ? _b : "",
|
|
7062
|
+
locale: (_c = query.locale) != null ? _c : ""
|
|
7063
|
+
});
|
|
7064
|
+
const handleFilterChange = (value) => {
|
|
7065
|
+
setSearchState((prev) => {
|
|
7066
|
+
return { ...prev, ...value };
|
|
7067
|
+
});
|
|
7068
|
+
};
|
|
7069
|
+
(0, import_react_use5.useDebounce)(
|
|
7070
|
+
() => {
|
|
7071
|
+
onSetQuery({ ...query, ...searchState });
|
|
7072
|
+
},
|
|
7073
|
+
500,
|
|
7074
|
+
[searchState]
|
|
7075
|
+
);
|
|
7076
|
+
const memoizedSelectOptions = (0, import_react75.useMemo)(() => {
|
|
7077
|
+
if (!requireContentType && !(selectOptions == null ? void 0 : selectOptions.length)) {
|
|
7078
|
+
return [];
|
|
7079
|
+
}
|
|
7080
|
+
return [
|
|
7081
|
+
...!requireContentType ? [{ value: "any", label: typeSelectorAllTypesOptionText }] : [],
|
|
7082
|
+
...selectOptions != null ? selectOptions : []
|
|
7083
|
+
];
|
|
7084
|
+
}, [requireContentType, typeSelectorAllTypesOptionText, selectOptions]);
|
|
7085
|
+
const shouldRenderSelect = memoizedSelectOptions.length > 0;
|
|
7086
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_design_system39.VerticalRhythm, { gap: "base", children: [
|
|
7087
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
7088
|
+
"fieldset",
|
|
7089
|
+
{
|
|
7090
|
+
css: [
|
|
7091
|
+
ObjectSearchFilterContainer,
|
|
7092
|
+
ObjectSearchFilterGrid(shouldRenderSelect ? "1fr 2fr" : "1fr")
|
|
7093
|
+
],
|
|
7094
|
+
children: [
|
|
7095
|
+
memoizedSelectOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7096
|
+
import_design_system39.InputSelect,
|
|
7097
|
+
{
|
|
7098
|
+
label: selectLabel,
|
|
7099
|
+
showLabel: false,
|
|
7100
|
+
onChange: (e) => handleFilterChange({ contentType: e.target.value }),
|
|
7101
|
+
options: memoizedSelectOptions,
|
|
7102
|
+
value: query.contentType,
|
|
7103
|
+
"data-testid": "select-entry"
|
|
7104
|
+
}
|
|
7105
|
+
) : null,
|
|
7106
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7107
|
+
import_design_system39.InputKeywordSearch,
|
|
7108
|
+
{
|
|
7109
|
+
inputFieldName: searchInputName,
|
|
7110
|
+
placeholder: searchInputPlaceholderText,
|
|
7111
|
+
onSearchTextChanged: (e) => handleFilterChange({ keyword: e }),
|
|
7112
|
+
disabledFieldSubmission: true,
|
|
7113
|
+
onClear: () => handleFilterChange({ keyword: "" }),
|
|
7114
|
+
value: searchState.keyword
|
|
7115
|
+
}
|
|
7116
|
+
),
|
|
7117
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7118
|
+
import_design_system39.DebouncedInputKeywordSearch,
|
|
7119
|
+
{
|
|
7120
|
+
inputFieldName: searchInputName,
|
|
7121
|
+
placeholder: searchInputPlaceholderText,
|
|
7122
|
+
onSearchTextChanged: (keyword) => handleFilterChange({ keyword }),
|
|
7123
|
+
disabledFieldSubmission: true,
|
|
7124
|
+
defaultValue: searchState.keyword,
|
|
7125
|
+
delay: 300
|
|
7126
|
+
}
|
|
7127
|
+
)
|
|
7128
|
+
]
|
|
7129
|
+
}
|
|
7130
|
+
),
|
|
7131
|
+
enableFilterByLocale && (localeOptions == null ? void 0 : localeOptions.length) && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7132
|
+
InputVariables,
|
|
7133
|
+
{
|
|
7134
|
+
label: localeFilterLabel,
|
|
7135
|
+
id: "locale",
|
|
7136
|
+
value: effectiveLocale,
|
|
7137
|
+
onChange: (newLocale) => handleFilterChange({ locale: newLocale != null ? newLocale : "" }),
|
|
7138
|
+
disableInlineMenu: true,
|
|
7139
|
+
inputWhenNoVariables: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7140
|
+
import_design_system39.InputSelect,
|
|
7141
|
+
{
|
|
7142
|
+
id: "locale",
|
|
7143
|
+
options: localeOptions,
|
|
7144
|
+
name: "locale",
|
|
7145
|
+
label: "",
|
|
7146
|
+
value: boundLocale,
|
|
7147
|
+
onChange: (e) => handleFilterChange({ locale: e.target.value })
|
|
7148
|
+
}
|
|
7149
|
+
)
|
|
7150
|
+
}
|
|
7151
|
+
)
|
|
7152
|
+
] });
|
|
7153
|
+
};
|
|
7154
|
+
|
|
7155
|
+
// src/components/ObjectSearch/ObjectSearchFilterContainer.tsx
|
|
7156
|
+
var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
|
|
7157
|
+
var ObjectSearchFilterContainer2 = ({ label, children }) => {
|
|
7158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { children: [
|
|
7159
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { css: ObjectSearchFilterContainerLabel, children: label }) : null,
|
|
7160
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { css: ObjectSearchFilterContainer, children })
|
|
7161
|
+
] });
|
|
7162
|
+
};
|
|
7163
|
+
|
|
7065
7164
|
// src/components/ObjectSearch/QueryFilter.tsx
|
|
7066
7165
|
var import_design_system40 = require("@uniformdev/design-system");
|
|
7067
|
-
var
|
|
7166
|
+
var import_react76 = require("react");
|
|
7068
7167
|
var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
|
|
7069
7168
|
var QueryFilter = ({
|
|
7070
7169
|
requireContentType,
|
|
@@ -7094,7 +7193,7 @@ var QueryFilter = ({
|
|
|
7094
7193
|
}) => {
|
|
7095
7194
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
7096
7195
|
const { query, onSetQuery } = useObjectSearchContext();
|
|
7097
|
-
const [queryState, setQueryState] = (0,
|
|
7196
|
+
const [queryState, setQueryState] = (0, import_react76.useState)({
|
|
7098
7197
|
contentType: (_a = query.contentType) != null ? _a : "",
|
|
7099
7198
|
keyword: (_b = query.keyword) != null ? _b : "",
|
|
7100
7199
|
count: (_c = query.count) != null ? _c : countValue,
|
|
@@ -7105,7 +7204,7 @@ var QueryFilter = ({
|
|
|
7105
7204
|
setQueryState((prev) => ({ ...prev, ...value }));
|
|
7106
7205
|
onSetQuery({ ...query, ...value });
|
|
7107
7206
|
};
|
|
7108
|
-
(0,
|
|
7207
|
+
(0, import_react76.useEffect)(() => {
|
|
7109
7208
|
onSetQuery(queryState);
|
|
7110
7209
|
}, []);
|
|
7111
7210
|
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("fieldset", { children: [
|
|
@@ -7230,9 +7329,93 @@ var QueryFilter = ({
|
|
|
7230
7329
|
] });
|
|
7231
7330
|
};
|
|
7232
7331
|
|
|
7233
|
-
// src/components/
|
|
7234
|
-
var
|
|
7332
|
+
// src/components/ObjectSearch/hooks/ControlledObjectSearchProvider.tsx
|
|
7333
|
+
var import_react77 = require("react");
|
|
7235
7334
|
var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
|
|
7335
|
+
var ControlledObjectSearchProvider = ({
|
|
7336
|
+
selectedItems,
|
|
7337
|
+
searchResultItems,
|
|
7338
|
+
selectedItemsLoading,
|
|
7339
|
+
searchResultListLoading,
|
|
7340
|
+
searchResultItemsLoading,
|
|
7341
|
+
onQueryChange,
|
|
7342
|
+
onSelectItemsChange,
|
|
7343
|
+
isMulti = false,
|
|
7344
|
+
children,
|
|
7345
|
+
query,
|
|
7346
|
+
enableFilterByLocale,
|
|
7347
|
+
localeOptions,
|
|
7348
|
+
dynamicEntryId
|
|
7349
|
+
}) => {
|
|
7350
|
+
const { flatVariables } = useVariables(true);
|
|
7351
|
+
const querySearchDeferred = (0, import_react77.useDeferredValue)(query);
|
|
7352
|
+
const onSetQuery = (0, import_react77.useCallback)(
|
|
7353
|
+
(value2) => {
|
|
7354
|
+
const newQuery = { ...query, ...value2 };
|
|
7355
|
+
onQueryChange(newQuery);
|
|
7356
|
+
},
|
|
7357
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7358
|
+
[onQueryChange]
|
|
7359
|
+
);
|
|
7360
|
+
const onSelectItem = (0, import_react77.useCallback)(
|
|
7361
|
+
(selectedResult) => {
|
|
7362
|
+
if (Array.isArray(selectedResult)) {
|
|
7363
|
+
onSelectItemsChange(selectedResult);
|
|
7364
|
+
} else {
|
|
7365
|
+
if (selectedItems == null ? void 0 : selectedItems.some((item) => item.id === selectedResult.id)) {
|
|
7366
|
+
onSelectItemsChange(selectedItems.filter((item) => item.id !== selectedResult.id));
|
|
7367
|
+
} else {
|
|
7368
|
+
onSelectItemsChange([...selectedItems != null ? selectedItems : [], selectedResult]);
|
|
7369
|
+
}
|
|
7370
|
+
}
|
|
7371
|
+
},
|
|
7372
|
+
[onSelectItemsChange, selectedItems]
|
|
7373
|
+
);
|
|
7374
|
+
const onRemoveAllSelectedItems = (0, import_react77.useCallback)(() => {
|
|
7375
|
+
onSelectItemsChange([]);
|
|
7376
|
+
}, [onSelectItemsChange]);
|
|
7377
|
+
const list = (0, import_react77.useMemo)(() => ({ items: searchResultItems }), [searchResultItems]);
|
|
7378
|
+
const boundQuery = (0, import_react77.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
|
|
7379
|
+
const value = (0, import_react77.useMemo)(
|
|
7380
|
+
() => ({
|
|
7381
|
+
boundQuery,
|
|
7382
|
+
onSetQuery,
|
|
7383
|
+
query: querySearchDeferred,
|
|
7384
|
+
onSelectItem,
|
|
7385
|
+
selectedListItems: selectedItems != null ? selectedItems : [],
|
|
7386
|
+
onRemoveAllSelectedItems,
|
|
7387
|
+
list,
|
|
7388
|
+
selectedItemsLoading,
|
|
7389
|
+
searchResultItemsLoading,
|
|
7390
|
+
searchResultListLoading,
|
|
7391
|
+
isMulti,
|
|
7392
|
+
localeOptions,
|
|
7393
|
+
enableFilterByLocale,
|
|
7394
|
+
dynamicEntryId
|
|
7395
|
+
}),
|
|
7396
|
+
[
|
|
7397
|
+
boundQuery,
|
|
7398
|
+
onSetQuery,
|
|
7399
|
+
querySearchDeferred,
|
|
7400
|
+
onSelectItem,
|
|
7401
|
+
selectedItems,
|
|
7402
|
+
selectedItemsLoading,
|
|
7403
|
+
searchResultItemsLoading,
|
|
7404
|
+
onRemoveAllSelectedItems,
|
|
7405
|
+
searchResultListLoading,
|
|
7406
|
+
list,
|
|
7407
|
+
isMulti,
|
|
7408
|
+
localeOptions,
|
|
7409
|
+
enableFilterByLocale,
|
|
7410
|
+
dynamicEntryId
|
|
7411
|
+
]
|
|
7412
|
+
);
|
|
7413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ObjectSearchContext.Provider, { value, children });
|
|
7414
|
+
};
|
|
7415
|
+
|
|
7416
|
+
// src/components/ParamTypeDynamicDataProvider.tsx
|
|
7417
|
+
var import_react78 = require("react");
|
|
7418
|
+
var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
|
|
7236
7419
|
function ParamTypeDynamicDataProvider(props) {
|
|
7237
7420
|
const { children } = props;
|
|
7238
7421
|
const {
|
|
@@ -7240,11 +7423,11 @@ function ParamTypeDynamicDataProvider(props) {
|
|
|
7240
7423
|
} = useMeshLocation("paramType");
|
|
7241
7424
|
const dynamicInputsAsVariables = useDynamicInputsAsVariables(dynamicInputs);
|
|
7242
7425
|
const connectedDataAsVariables = useConnectedDataAsVariables(connectedData);
|
|
7243
|
-
const variables = (0,
|
|
7426
|
+
const variables = (0, import_react78.useMemo)(
|
|
7244
7427
|
() => ({ ...connectedDataAsVariables, ...dynamicInputsAsVariables }),
|
|
7245
7428
|
[dynamicInputsAsVariables, connectedDataAsVariables]
|
|
7246
7429
|
);
|
|
7247
|
-
return /* @__PURE__ */ (0,
|
|
7430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(VariablesProvider, { value: variables, onChange: () => {
|
|
7248
7431
|
}, editVariableComponent: JsonMeshVariableEditor, children });
|
|
7249
7432
|
}
|
|
7250
7433
|
var JsonMeshVariableEditor = ({
|
|
@@ -7253,9 +7436,9 @@ var JsonMeshVariableEditor = ({
|
|
|
7253
7436
|
variable,
|
|
7254
7437
|
context
|
|
7255
7438
|
}) => {
|
|
7256
|
-
const sillyRef = (0,
|
|
7439
|
+
const sillyRef = (0, import_react78.useRef)(false);
|
|
7257
7440
|
const { editConnectedData } = useMeshLocation("paramType");
|
|
7258
|
-
(0,
|
|
7441
|
+
(0, import_react78.useEffect)(() => {
|
|
7259
7442
|
if (sillyRef.current) {
|
|
7260
7443
|
return;
|
|
7261
7444
|
}
|
|
@@ -7283,36 +7466,6 @@ var JsonMeshVariableEditor = ({
|
|
|
7283
7466
|
return null;
|
|
7284
7467
|
};
|
|
7285
7468
|
|
|
7286
|
-
// src/utils/createLocationValidator.ts
|
|
7287
|
-
function createLocationValidator(setValue, validate) {
|
|
7288
|
-
return (dispatch) => setValue((previous) => {
|
|
7289
|
-
const { newValue, options } = dispatch(previous);
|
|
7290
|
-
return { newValue, options: validate(newValue, options) };
|
|
7291
|
-
});
|
|
7292
|
-
}
|
|
7293
|
-
|
|
7294
|
-
// src/utils/useContentDataResourceLocaleInfo.ts
|
|
7295
|
-
var import_canvas10 = require("@uniformdev/canvas");
|
|
7296
|
-
var import_react75 = require("react");
|
|
7297
|
-
function useContentDataResourceLocaleInfo({
|
|
7298
|
-
locale,
|
|
7299
|
-
setLocale,
|
|
7300
|
-
dynamicInputs
|
|
7301
|
-
}) {
|
|
7302
|
-
var _a;
|
|
7303
|
-
const setLocaleRef = (0, import_react75.useRef)(setLocale);
|
|
7304
|
-
setLocaleRef.current = setLocale;
|
|
7305
|
-
const { flatVariables } = useVariables();
|
|
7306
|
-
const effectiveLocale = locale != null ? locale : dynamicInputs[import_canvas10.LOCALE_DYNAMIC_INPUT_NAME] ? (0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME) : "";
|
|
7307
|
-
const boundLocale = (_a = (0, import_canvas10.bindVariables)({ variables: flatVariables, value: effectiveLocale }).result) != null ? _a : effectiveLocale;
|
|
7308
|
-
(0, import_react75.useEffect)(() => {
|
|
7309
|
-
if (locale === void 0 && effectiveLocale && setLocaleRef.current) {
|
|
7310
|
-
setLocaleRef.current((0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME));
|
|
7311
|
-
}
|
|
7312
|
-
}, [locale, effectiveLocale]);
|
|
7313
|
-
return { effectiveLocale, boundLocale: boundLocale ? boundLocale : void 0 };
|
|
7314
|
-
}
|
|
7315
|
-
|
|
7316
7469
|
// src/index.ts
|
|
7317
7470
|
var import_design_system41 = require("@uniformdev/design-system");
|
|
7318
7471
|
__reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
|
|
@@ -7323,11 +7476,13 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
|
|
|
7323
7476
|
AddListButton,
|
|
7324
7477
|
Button,
|
|
7325
7478
|
Callout,
|
|
7479
|
+
ControlledObjectSearchProvider,
|
|
7326
7480
|
ControlledValuePlugin,
|
|
7327
7481
|
DISCONNECT_VARIABLE_COMMAND,
|
|
7328
7482
|
DamSelectedItem,
|
|
7329
7483
|
DataRefreshButton,
|
|
7330
7484
|
DataResourceDynamicInputProvider,
|
|
7485
|
+
DataResourceInputContext,
|
|
7331
7486
|
DataResourceVariablesList,
|
|
7332
7487
|
DataResourceVariablesListExplicit,
|
|
7333
7488
|
DataSourceEditor,
|
|
@@ -7355,6 +7510,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
|
|
|
7355
7510
|
MeshApp,
|
|
7356
7511
|
OPEN_INSERT_VARIABLE_COMMAND,
|
|
7357
7512
|
ObjectSearchContainer,
|
|
7513
|
+
ObjectSearchContext,
|
|
7358
7514
|
ObjectSearchFilter,
|
|
7359
7515
|
ObjectSearchFilterContainer,
|
|
7360
7516
|
ObjectSearchListItem,
|
|
@@ -7412,6 +7568,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
|
|
|
7412
7568
|
VariablesPlugin,
|
|
7413
7569
|
VariablesProvider,
|
|
7414
7570
|
badgeIcon,
|
|
7571
|
+
bindQuery,
|
|
7415
7572
|
convertConnectedDataToVariable,
|
|
7416
7573
|
createLocationValidator,
|
|
7417
7574
|
damSelectItemImage,
|
|
@@ -7483,6 +7640,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
|
|
|
7483
7640
|
urlEncodeRequestUrl,
|
|
7484
7641
|
useConnectedDataAsVariables,
|
|
7485
7642
|
useContentDataResourceLocaleInfo,
|
|
7643
|
+
useDataResourceDynamicInputs,
|
|
7486
7644
|
useDynamicInputsAsVariables,
|
|
7487
7645
|
useMeshLocation,
|
|
7488
7646
|
useObjectSearchContext,
|