@plasmicpkgs/plasmic-strapi 0.1.169 → 0.1.170
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.ts +34 -17
- package/dist/{index.mjs → index.esm.js} +198 -52
- package/dist/index.esm.js.map +7 -0
- package/dist/index.js +195 -62
- package/dist/index.js.map +7 -0
- package/package.json +16 -10
- package/dist/index.d.mts +0 -46
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
|
+
import { ComponentMeta } from '@plasmicapp/host';
|
|
2
|
+
import { CustomFunctionMeta } from '@plasmicapp/host/registerFunction';
|
|
3
|
+
import { GlobalContextMeta } from '@plasmicapp/host';
|
|
4
|
+
import { default as React_2 } from 'react';
|
|
5
|
+
import { ReactNode } from 'react';
|
|
1
6
|
import registerComponent from '@plasmicapp/host/registerComponent';
|
|
2
7
|
import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
|
|
3
|
-
import { ComponentMeta, GlobalContextMeta } from '@plasmicapp/host';
|
|
4
|
-
import React, { ReactNode } from 'react';
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
export declare function queryStrapi(host: string, token: string | undefined, collection: string | undefined, filterField?: string, filterValue?: string, filterParameter?: string): Promise<any>;
|
|
10
|
+
|
|
11
|
+
export declare const queryStrapiMeta: CustomFunctionMeta<typeof queryStrapi>;
|
|
12
|
+
|
|
13
|
+
export declare function registerAll(loader?: {
|
|
14
|
+
registerComponent: typeof registerComponent;
|
|
15
|
+
registerGlobalContext: typeof registerGlobalContext;
|
|
16
|
+
}): void;
|
|
17
|
+
|
|
18
|
+
export declare function registerAllCustomFunctions(loader?: {
|
|
19
|
+
registerFunction: any;
|
|
20
|
+
}): void;
|
|
21
|
+
|
|
22
|
+
export declare function StrapiCollection({ name, filterParameter, filterValue, filterField, limit, children, className, noLayout, noAutoRepeat, setControlContextData, }: StrapiCollectionProps): React_2.JSX.Element;
|
|
23
|
+
|
|
24
|
+
export declare const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps>;
|
|
25
|
+
|
|
26
|
+
declare interface StrapiCollectionProps {
|
|
7
27
|
name?: string;
|
|
8
28
|
children?: ReactNode;
|
|
9
29
|
className?: string;
|
|
@@ -17,17 +37,21 @@ interface StrapiCollectionProps {
|
|
|
17
37
|
strapiFields: string[];
|
|
18
38
|
}) => void;
|
|
19
39
|
}
|
|
20
|
-
declare const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps>;
|
|
21
|
-
declare function StrapiCollection({ name, filterParameter, filterValue, filterField, limit, children, className, noLayout, noAutoRepeat, setControlContextData, }: StrapiCollectionProps): React.JSX.Element;
|
|
22
40
|
|
|
23
|
-
interface StrapiCredentials {
|
|
41
|
+
declare interface StrapiCredentials {
|
|
24
42
|
host?: string;
|
|
25
43
|
token?: string;
|
|
26
44
|
}
|
|
27
|
-
declare const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentials>;
|
|
28
|
-
declare function StrapiCredentialsProvider({ host, token, children, }: React.PropsWithChildren<StrapiCredentials>): React.JSX.Element;
|
|
29
45
|
|
|
30
|
-
|
|
46
|
+
export declare function StrapiCredentialsProvider({ host, token, children, }: React_2.PropsWithChildren<StrapiCredentials>): React_2.JSX.Element;
|
|
47
|
+
|
|
48
|
+
export declare const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentials>;
|
|
49
|
+
|
|
50
|
+
export declare function StrapiField({ className, path, setControlContextData, }: StrapiFieldProps): React_2.JSX.Element;
|
|
51
|
+
|
|
52
|
+
export declare const strapiFieldMeta: ComponentMeta<StrapiFieldProps>;
|
|
53
|
+
|
|
54
|
+
declare interface StrapiFieldProps {
|
|
31
55
|
className?: string;
|
|
32
56
|
path?: string;
|
|
33
57
|
setControlContextData?: (data: {
|
|
@@ -35,12 +59,5 @@ interface StrapiFieldProps {
|
|
|
35
59
|
isImage: boolean;
|
|
36
60
|
}) => void;
|
|
37
61
|
}
|
|
38
|
-
declare const strapiFieldMeta: ComponentMeta<StrapiFieldProps>;
|
|
39
|
-
declare function StrapiField({ className, path, setControlContextData, }: StrapiFieldProps): React.JSX.Element;
|
|
40
|
-
|
|
41
|
-
declare function registerAll(loader?: {
|
|
42
|
-
registerComponent: typeof registerComponent;
|
|
43
|
-
registerGlobalContext: typeof registerGlobalContext;
|
|
44
|
-
}): void;
|
|
45
62
|
|
|
46
|
-
export {
|
|
63
|
+
export { }
|
|
@@ -1,3 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
var __objRest = (source, exclude) => {
|
|
22
|
+
var target = {};
|
|
23
|
+
for (var prop in source)
|
|
24
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
if (source != null && __getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
var __async = (__this, __arguments, generator) => {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
var fulfilled = (value) => {
|
|
36
|
+
try {
|
|
37
|
+
step(generator.next(value));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
reject(e);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var rejected = (value) => {
|
|
43
|
+
try {
|
|
44
|
+
step(generator.throw(value));
|
|
45
|
+
} catch (e) {
|
|
46
|
+
reject(e);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
50
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
1
54
|
// src/index.tsx
|
|
2
55
|
import registerComponent from "@plasmicapp/host/registerComponent";
|
|
3
56
|
import registerGlobalContext from "@plasmicapp/host/registerGlobalContext";
|
|
@@ -6,12 +59,13 @@ import registerGlobalContext from "@plasmicapp/host/registerGlobalContext";
|
|
|
6
59
|
import { DataProvider, repeatedElement } from "@plasmicapp/host";
|
|
7
60
|
import { usePlasmicQueryData } from "@plasmicapp/query";
|
|
8
61
|
import { pascalCase } from "change-case";
|
|
9
|
-
import
|
|
10
|
-
import * as qs from "qs";
|
|
62
|
+
import get2 from "dlv";
|
|
11
63
|
import React2 from "react";
|
|
12
64
|
|
|
13
|
-
// src/
|
|
14
|
-
import
|
|
65
|
+
// src/custom-functions.tsx
|
|
66
|
+
import registerFunction from "@plasmicapp/host/registerFunction";
|
|
67
|
+
import get from "dlv";
|
|
68
|
+
import qs from "qs";
|
|
15
69
|
|
|
16
70
|
// src/utils.ts
|
|
17
71
|
var modulePath = "@plasmicpkgs/plasmic-strapi";
|
|
@@ -65,11 +119,123 @@ var getAttributes = (item) => {
|
|
|
65
119
|
if (item.attributes) {
|
|
66
120
|
return item.attributes;
|
|
67
121
|
}
|
|
68
|
-
const { documentId: _documentId, locale: _locale,
|
|
122
|
+
const _a = item, { documentId: _documentId, locale: _locale } = _a, rest = __objRest(_a, ["documentId", "locale"]);
|
|
69
123
|
return rest;
|
|
70
124
|
};
|
|
125
|
+
function filterFields(collectionData) {
|
|
126
|
+
return collectionData.flatMap((item) => {
|
|
127
|
+
const attributes = getAttributes(item);
|
|
128
|
+
const displayableFields = Object.keys(attributes).filter((field) => {
|
|
129
|
+
var _a;
|
|
130
|
+
const value = attributes[field];
|
|
131
|
+
const maybeMime = (_a = getAttributes(value == null ? void 0 : value.data)) == null ? void 0 : _a.mime;
|
|
132
|
+
return typeof value !== "object" || typeof maybeMime === "string" && maybeMime.startsWith("image");
|
|
133
|
+
});
|
|
134
|
+
return displayableFields;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// src/custom-functions.tsx
|
|
139
|
+
var queryStrapiMeta = {
|
|
140
|
+
name: "queryStrapi",
|
|
141
|
+
displayName: "Query Strapi",
|
|
142
|
+
description: "Query a Strapi collection",
|
|
143
|
+
importPath: modulePath,
|
|
144
|
+
params: [
|
|
145
|
+
{
|
|
146
|
+
name: "strapiHost",
|
|
147
|
+
type: "string",
|
|
148
|
+
description: "The Strapi host URL (e.g., https://example.com)"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "strapiToken",
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "The Strapi API token (optional, for authenticated requests)"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "collection",
|
|
157
|
+
type: "string",
|
|
158
|
+
description: "The name of the Strapi collection to query"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "filterField",
|
|
162
|
+
type: "choice",
|
|
163
|
+
options: (_, ctx) => {
|
|
164
|
+
return ctx == null ? void 0 : ctx.strapiFields;
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: "filterValue",
|
|
169
|
+
type: "string",
|
|
170
|
+
description: "The value to filter by (optional, if you want to filter results)"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: "filterParameter",
|
|
174
|
+
type: "choice",
|
|
175
|
+
description: "The parameter for filtering (e.g., 'eq', 'contains', etc.) (optional)",
|
|
176
|
+
options: () => {
|
|
177
|
+
return queryParameters.map((item) => ({
|
|
178
|
+
label: item == null ? void 0 : item.label,
|
|
179
|
+
value: item == null ? void 0 : item.value
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
fnContext: (host, token, collection) => {
|
|
185
|
+
return {
|
|
186
|
+
dataKey: JSON.stringify({ host, token, collection }),
|
|
187
|
+
fetcher: () => __async(void 0, null, function* () {
|
|
188
|
+
if (!host) {
|
|
189
|
+
return {};
|
|
190
|
+
}
|
|
191
|
+
const data = yield queryStrapi(host, token, collection);
|
|
192
|
+
if (!get(data.data, ["data"])) {
|
|
193
|
+
return { strapiFields: [] };
|
|
194
|
+
}
|
|
195
|
+
const collectionData = get(data.data, ["data"]);
|
|
196
|
+
const filteredFields = filterFields(collectionData);
|
|
197
|
+
return { strapiFields: uniq(filteredFields != null ? filteredFields : []) };
|
|
198
|
+
})
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
function queryStrapi(host, token, collection, filterField, filterValue, filterParameter) {
|
|
203
|
+
return __async(this, null, function* () {
|
|
204
|
+
if (!host) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
collection = collection != null ? collection : "";
|
|
208
|
+
const query = host.trim() + "/api/" + collection.trim();
|
|
209
|
+
const requestInit = { method: "GET" };
|
|
210
|
+
if (token) {
|
|
211
|
+
requestInit.headers = { Authorization: "Bearer " + token };
|
|
212
|
+
}
|
|
213
|
+
const queryParams = qs.stringify(__spreadProps(__spreadValues({}, filterField && filterParameter && filterValue ? {
|
|
214
|
+
filters: {
|
|
215
|
+
[filterField]: {
|
|
216
|
+
[filterParameter]: filterValue
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
} : {}), {
|
|
220
|
+
populate: "*"
|
|
221
|
+
}));
|
|
222
|
+
const resp = yield fetch(`${query}?${queryParams}`, requestInit);
|
|
223
|
+
return resp.json();
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
function registerAllCustomFunctions(loader) {
|
|
227
|
+
function _registerFunction(fn, meta) {
|
|
228
|
+
if (loader) {
|
|
229
|
+
loader.registerFunction(fn, meta);
|
|
230
|
+
} else {
|
|
231
|
+
registerFunction(fn, meta);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
_registerFunction(queryStrapi, queryStrapiMeta);
|
|
235
|
+
}
|
|
71
236
|
|
|
72
237
|
// src/StrapiCredentialsProvider.tsx
|
|
238
|
+
import React, { useContext } from "react";
|
|
73
239
|
var StrapiCredentialsContext = React.createContext(void 0);
|
|
74
240
|
function useStrapiCredentials() {
|
|
75
241
|
const creds = useContext(StrapiCredentialsContext);
|
|
@@ -150,34 +316,34 @@ var strapiCollectionMeta = {
|
|
|
150
316
|
type: "choice",
|
|
151
317
|
displayName: "Filter field",
|
|
152
318
|
description: "Field (from Collection) to filter by",
|
|
153
|
-
options: (
|
|
319
|
+
options: (_, ctx) => {
|
|
154
320
|
var _a;
|
|
155
321
|
return (_a = ctx == null ? void 0 : ctx.strapiFields) != null ? _a : [];
|
|
156
322
|
},
|
|
157
|
-
hidden: (props
|
|
323
|
+
hidden: (props) => !props.name
|
|
158
324
|
},
|
|
159
325
|
filterParameter: {
|
|
160
326
|
type: "choice",
|
|
161
327
|
displayName: "Filter Parameter",
|
|
162
328
|
description: "Field Parameter filter by",
|
|
163
|
-
options: (
|
|
329
|
+
options: () => {
|
|
164
330
|
return queryParameters.map((item) => ({
|
|
165
331
|
label: item == null ? void 0 : item.label,
|
|
166
332
|
value: item == null ? void 0 : item.value
|
|
167
333
|
}));
|
|
168
334
|
},
|
|
169
|
-
hidden: (props
|
|
335
|
+
hidden: (props) => !props.filterField
|
|
170
336
|
},
|
|
171
337
|
filterValue: {
|
|
172
338
|
type: "string",
|
|
173
339
|
displayName: "Filter value",
|
|
174
340
|
description: "Value to filter by, should be of filter field type",
|
|
175
|
-
hidden: (props
|
|
341
|
+
hidden: (props) => !props.filterParameter
|
|
176
342
|
},
|
|
177
343
|
limit: {
|
|
178
344
|
type: "number",
|
|
179
345
|
displayName: "Limit",
|
|
180
|
-
description: "Maximum
|
|
346
|
+
description: "Maximum number of collections to fetch (0 for unlimited)."
|
|
181
347
|
},
|
|
182
348
|
noLayout: {
|
|
183
349
|
type: "boolean",
|
|
@@ -205,58 +371,34 @@ function StrapiCollection({
|
|
|
205
371
|
noAutoRepeat,
|
|
206
372
|
setControlContextData
|
|
207
373
|
}) {
|
|
208
|
-
const
|
|
209
|
-
if (!
|
|
374
|
+
const { host, token } = useStrapiCredentials();
|
|
375
|
+
if (!host) {
|
|
210
376
|
return /* @__PURE__ */ React2.createElement("div", null, "Please specify a host.");
|
|
211
377
|
}
|
|
212
|
-
const query = creds.host + "/api/" + name;
|
|
213
378
|
const cacheKey = JSON.stringify({
|
|
214
|
-
|
|
379
|
+
host,
|
|
380
|
+
token,
|
|
215
381
|
name,
|
|
216
382
|
filterField,
|
|
217
383
|
filterValue,
|
|
218
384
|
filterParameter
|
|
219
385
|
});
|
|
220
|
-
const data = usePlasmicQueryData(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
requestInit.headers = { Authorization: "Bearer " + creds.token };
|
|
227
|
-
}
|
|
228
|
-
const queryParams = qs.stringify({
|
|
229
|
-
...filterField && filterParameter && filterValue ? {
|
|
230
|
-
filters: {
|
|
231
|
-
[filterField]: {
|
|
232
|
-
[filterParameter]: filterValue
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
} : {},
|
|
236
|
-
populate: "*"
|
|
237
|
-
});
|
|
238
|
-
const resp = await fetch(`${query}?${queryParams}`, requestInit);
|
|
239
|
-
return resp.json();
|
|
240
|
-
});
|
|
386
|
+
const data = usePlasmicQueryData(
|
|
387
|
+
cacheKey,
|
|
388
|
+
() => __async(this, null, function* () {
|
|
389
|
+
return queryStrapi(host, token, name, filterField, filterValue, filterParameter);
|
|
390
|
+
})
|
|
391
|
+
);
|
|
241
392
|
if (!(data == null ? void 0 : data.data)) {
|
|
242
393
|
return /* @__PURE__ */ React2.createElement("div", null, "Please configure the Strapi provider with a valid host and token.");
|
|
243
394
|
}
|
|
244
|
-
if (!
|
|
395
|
+
if (!get2(data.data, ["data"])) {
|
|
245
396
|
return /* @__PURE__ */ React2.createElement("div", null, "Please specify a valid collection.");
|
|
246
397
|
}
|
|
247
|
-
const collectionData =
|
|
248
|
-
const
|
|
249
|
-
const attributes = getAttributes(item);
|
|
250
|
-
const displayableFields = Object.keys(attributes).filter((field) => {
|
|
251
|
-
var _a;
|
|
252
|
-
const value = attributes[field];
|
|
253
|
-
const maybeMime = (_a = getAttributes(value == null ? void 0 : value.data)) == null ? void 0 : _a.mime;
|
|
254
|
-
return typeof value !== "object" || typeof maybeMime === "string" && maybeMime.startsWith("image");
|
|
255
|
-
});
|
|
256
|
-
return displayableFields;
|
|
257
|
-
});
|
|
398
|
+
const collectionData = get2(data.data, ["data"]);
|
|
399
|
+
const filteredFields = filterFields(collectionData);
|
|
258
400
|
setControlContextData == null ? void 0 : setControlContextData({
|
|
259
|
-
strapiFields: uniq(
|
|
401
|
+
strapiFields: uniq(filteredFields != null ? filteredFields : [])
|
|
260
402
|
});
|
|
261
403
|
if (filterParameter && !filterValue && !filterField) {
|
|
262
404
|
return /* @__PURE__ */ React2.createElement("div", null, "Please specify a Filter Field and a Filter Value");
|
|
@@ -298,7 +440,7 @@ function StrapiCollection({
|
|
|
298
440
|
|
|
299
441
|
// src/StrapiField.tsx
|
|
300
442
|
import { useSelector } from "@plasmicapp/host";
|
|
301
|
-
import
|
|
443
|
+
import get3 from "dlv";
|
|
302
444
|
import React3 from "react";
|
|
303
445
|
var strapiFieldMeta = {
|
|
304
446
|
name: "StrapiField",
|
|
@@ -308,7 +450,7 @@ var strapiFieldMeta = {
|
|
|
308
450
|
props: {
|
|
309
451
|
path: {
|
|
310
452
|
type: "choice",
|
|
311
|
-
options: (
|
|
453
|
+
options: (_, ctx) => {
|
|
312
454
|
var _a;
|
|
313
455
|
return (_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [];
|
|
314
456
|
},
|
|
@@ -341,7 +483,7 @@ function StrapiField({
|
|
|
341
483
|
if (!path) {
|
|
342
484
|
return /* @__PURE__ */ React3.createElement("div", null, "StrapiField must specify a field name.");
|
|
343
485
|
}
|
|
344
|
-
const data =
|
|
486
|
+
const data = get3(attributes, [path]);
|
|
345
487
|
const maybeMime = (_a = getAttributes(data == null ? void 0 : data.data)) == null ? void 0 : _a.mime;
|
|
346
488
|
setControlContextData == null ? void 0 : setControlContextData({
|
|
347
489
|
fields: displayableFields,
|
|
@@ -396,8 +538,12 @@ export {
|
|
|
396
538
|
StrapiCollection,
|
|
397
539
|
StrapiCredentialsProvider,
|
|
398
540
|
StrapiField,
|
|
541
|
+
queryStrapi,
|
|
542
|
+
queryStrapiMeta,
|
|
399
543
|
registerAll,
|
|
544
|
+
registerAllCustomFunctions,
|
|
400
545
|
strapiCollectionMeta,
|
|
401
546
|
strapiCredentialsProviderMeta,
|
|
402
547
|
strapiFieldMeta
|
|
403
548
|
};
|
|
549
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.tsx", "../src/StrapiCollection.tsx", "../src/custom-functions.tsx", "../src/utils.ts", "../src/StrapiCredentialsProvider.tsx", "../src/StrapiField.tsx"],
|
|
4
|
+
"sourcesContent": ["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport { StrapiCollection, strapiCollectionMeta } from \"./StrapiCollection\";\nimport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n} from \"./StrapiCredentialsProvider\";\nimport { StrapiField, strapiFieldMeta } from \"./StrapiField\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta\n );\n }\n\n _registerComponent(StrapiCollection, strapiCollectionMeta);\n _registerComponent(StrapiField, strapiFieldMeta);\n}\n\nexport * from \"./custom-functions\";\nexport { StrapiCollection, strapiCollectionMeta } from \"./StrapiCollection\";\nexport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n} from \"./StrapiCredentialsProvider\";\nexport { StrapiField, strapiFieldMeta } from \"./StrapiField\";\n", "import { ComponentMeta, DataProvider, repeatedElement } from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode } from \"react\";\nimport { queryStrapi } from \"./custom-functions\";\nimport { useStrapiCredentials } from \"./StrapiCredentialsProvider\";\nimport { filterFields, modulePath, queryParameters, uniq } from \"./utils\";\n\nconst makeDataProviderName = (collection: string) =>\n `currentStrapi${pascalCase(collection)}Item`;\n\ninterface StrapiCollectionProps {\n name?: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n filterField?: string;\n filterValue?: string;\n limit?: number;\n filterParameter?: string;\n setControlContextData?: (data: { strapiFields: string[] }) => void;\n}\n\nexport const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps> = {\n name: \"StrapiCollection\",\n displayName: \"Strapi Collection\",\n importName: \"StrapiCollection\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Strapi data of a given collection, and repeats `children` slot content for each row fetched. [See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: {\n type: \"component\",\n name: \"StrapiField\",\n },\n },\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n description: \"Name of the collection to be fetched.\",\n defaultValueHint: \"restaurants\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (_, ctx) => ctx?.strapiFields ?? [],\n hidden: (props) => !props.name,\n },\n filterParameter: {\n type: \"choice\",\n displayName: \"Filter Parameter\",\n description: \"Field Parameter filter by\",\n options: () => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n hidden: (props) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n hidden: (props) => !props.filterParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum number of collections to fetch (0 for unlimited).\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Strapi Collection will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every category.\",\n defaultValue: false,\n },\n },\n};\n\nexport function StrapiCollection({\n name,\n filterParameter,\n filterValue,\n filterField,\n limit,\n children,\n className,\n noLayout,\n noAutoRepeat,\n setControlContextData,\n}: StrapiCollectionProps) {\n const { host, token } = useStrapiCredentials();\n\n if (!host) {\n return <div>Please specify a host.</div>;\n }\n\n const cacheKey = JSON.stringify({\n host,\n token,\n name,\n filterField,\n filterValue,\n filterParameter,\n });\n\n const data = usePlasmicQueryData<any[] | null>(cacheKey, async () =>\n queryStrapi(host, token, name, filterField, filterValue, filterParameter)\n );\n\n if (!data?.data) {\n return (\n <div>\n Please configure the Strapi provider with a valid host and token.\n </div>\n );\n }\n\n if (!get(data.data, [\"data\"])) {\n return <div>Please specify a valid collection.</div>;\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filteredFields = filterFields(collectionData);\n\n setControlContextData?.({\n strapiFields: uniq(filteredFields ?? []),\n });\n if (filterParameter && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Parameter and a Filter Field</div>;\n }\n if (!filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Parameter and a Filter Value</div>;\n }\n\n if (filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n if (!filterParameter && filterValue && filterField) {\n return <div>Please specify a Filter Parameter</div>;\n }\n if (filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const collection =\n limit! > 0 ? collectionData.slice(0, limit) : collectionData;\n\n if (collection.length === 0) {\n return <div>No collection found </div>;\n }\n\n const repElements = noAutoRepeat\n ? children\n : collection.map((item, index) => (\n <DataProvider\n key={item.documentId ?? item.id}\n name={\"strapiItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(name!)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n\n return (\n <DataProvider name=\"strapiItems\" data={collection}>\n {noLayout ? (\n <> {repElements} </>\n ) : (\n <div className={className}> {repElements} </div>\n )}\n </DataProvider>\n );\n}\n", "import registerFunction, {\n CustomFunctionMeta,\n} from \"@plasmicapp/host/registerFunction\";\nimport get from \"dlv\";\nimport qs from \"qs\";\nimport { filterFields, modulePath, queryParameters, uniq } from \"./utils\";\n\nexport const queryStrapiMeta: CustomFunctionMeta<typeof queryStrapi> = {\n name: \"queryStrapi\",\n displayName: \"Query Strapi\",\n description: \"Query a Strapi collection\",\n importPath: modulePath,\n params: [\n {\n name: \"strapiHost\",\n type: \"string\",\n description: \"The Strapi host URL (e.g., https://example.com)\",\n },\n {\n name: \"strapiToken\",\n type: \"string\",\n description:\n \"The Strapi API token (optional, for authenticated requests)\",\n },\n {\n name: \"collection\",\n type: \"string\",\n description: \"The name of the Strapi collection to query\",\n },\n {\n name: \"filterField\",\n type: \"choice\",\n options: (_, ctx) => {\n return ctx?.strapiFields;\n },\n },\n {\n name: \"filterValue\",\n type: \"string\",\n description:\n \"The value to filter by (optional, if you want to filter results)\",\n },\n {\n name: \"filterParameter\",\n type: \"choice\",\n description:\n \"The parameter for filtering (e.g., 'eq', 'contains', etc.) (optional)\",\n options: () => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n },\n ],\n fnContext: (host, token, collection) => {\n return {\n dataKey: JSON.stringify({ host, token, collection }),\n fetcher: async () => {\n if (!host) {\n return {};\n }\n const data = await queryStrapi(host, token, collection);\n if (!get(data.data, [\"data\"])) {\n return { strapiFields: [] };\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filteredFields = filterFields(collectionData);\n return { strapiFields: uniq(filteredFields ?? []) };\n },\n };\n },\n};\n\nexport async function queryStrapi(\n host: string,\n token: string | undefined,\n collection: string | undefined,\n filterField?: string,\n filterValue?: string,\n filterParameter?: string\n) {\n if (!host) {\n return null;\n }\n\n collection = collection ?? \"\";\n\n const query = host.trim() + \"/api/\" + collection.trim();\n\n const requestInit: any = { method: \"GET\" };\n if (token) {\n requestInit.headers = { Authorization: \"Bearer \" + token };\n }\n\n const queryParams = qs.stringify({\n ...(filterField && filterParameter && filterValue\n ? {\n filters: {\n [filterField]: {\n [filterParameter]: filterValue,\n },\n },\n }\n : {}),\n populate: \"*\",\n });\n\n const resp = await fetch(`${query}?${queryParams}`, requestInit);\n return resp.json();\n}\n\nexport function registerAllCustomFunctions(loader?: { registerFunction: any }) {\n function _registerFunction<T extends (...args: any[]) => any>(\n fn: T,\n meta: CustomFunctionMeta<T>\n ) {\n if (loader) {\n loader.registerFunction(fn, meta);\n } else {\n registerFunction(fn, meta);\n }\n }\n\n _registerFunction(queryStrapi, queryStrapiMeta);\n}\n", "export const modulePath = \"@plasmicpkgs/plasmic-strapi\";\n\nexport const queryParameters = [\n {\n value: \"$eq\",\n label: \"Equal\",\n },\n {\n value: \"$ne\",\n label: \"Not equal\",\n },\n {\n value: \"$lt\",\n label: \"Less than\",\n },\n {\n value: \"$lte\",\n label: \"Less than or equal to\",\n },\n {\n value: \"$gt\",\n label: \"Greater than\",\n },\n {\n value: \"$gte\",\n label: \"Greater than or equal to\",\n },\n {\n value: \"$in\",\n label: \"Included in an array\",\n },\n {\n value: \"$notIn\",\n label: \"Not included in an array\",\n },\n {\n value: \"$contains\",\n label: \"Contains\",\n },\n {\n value: \"$notContains\",\n label: \"Does not contain\",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n\nexport const getAttributes = (item?: Record<string, any>) => {\n if (!item) {\n return undefined;\n }\n // Strapi v4\n if (item.attributes) {\n return item.attributes;\n }\n // Strapi v5\n const { documentId: _documentId, locale: _locale, ...rest } = item;\n return rest;\n};\n\nexport function filterFields(collectionData: any[]) {\n return collectionData.flatMap((item: any) => {\n const attributes = getAttributes(item);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = getAttributes(value?.data)?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n return displayableFields;\n });\n}\n", "import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport React, { useContext } from \"react\";\nimport { modulePath } from \"./utils\";\n\ninterface StrapiCredentials {\n host?: string;\n token?: string;\n}\n\nconst StrapiCredentialsContext = React.createContext<\n StrapiCredentials | undefined\n>(undefined);\n\nexport function useStrapiCredentials() {\n const creds = useContext(StrapiCredentialsContext);\n if (!creds) {\n throw new Error(\"Missing StrapiCredentials\");\n }\n\n return creds;\n}\n\nexport const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentials> =\n {\n name: \"StrapiCredentialsProvider\",\n displayName: \"Strapi Credentials Provider\",\n description: `[See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\n\nAPI token is needed only if data is not publicly readable.\n\nLearn how to [get your API token](https://docs.strapi.io/user-docs/latest/settings/managing-global-settings.html#managing-api-tokens).`,\n importName: \"StrapiCredentialsProvider\",\n importPath: modulePath,\n props: {\n host: {\n type: \"string\",\n displayName: \"Host\",\n defaultValueHint: \"https://strapi-app.plasmic.app\",\n defaultValue: \"https://strapi-app.plasmic.app\",\n description: \"Server where you application is hosted.\",\n },\n token: {\n type: \"string\",\n displayName: \"API Token\",\n description:\n \"API Token (generated in http://yourhost/admin/settings/api-tokens) (or leave blank for unauthenticated usage).\",\n },\n },\n };\n\nexport function StrapiCredentialsProvider({\n host,\n token,\n children,\n}: React.PropsWithChildren<StrapiCredentials>) {\n host = host?.replace(/\\/+$/, \"\");\n return (\n <StrapiCredentialsContext.Provider value={{ host, token }}>\n {children}\n </StrapiCredentialsContext.Provider>\n );\n}\n", "import { ComponentMeta, useSelector } from \"@plasmicapp/host\";\nimport get from \"dlv\";\nimport React from \"react\";\nimport { useStrapiCredentials } from \"./StrapiCredentialsProvider\";\nimport { getAttributes, modulePath } from \"./utils\";\n\ninterface StrapiFieldProps {\n className?: string;\n path?: string;\n setControlContextData?: (data: {\n fields: string[];\n isImage: boolean;\n }) => void;\n}\n\nexport const strapiFieldMeta: ComponentMeta<StrapiFieldProps> = {\n name: \"StrapiField\",\n displayName: \"Strapi Field\",\n importName: \"StrapiField\",\n importPath: modulePath,\n props: {\n path: {\n type: \"choice\",\n options: (_, ctx) => {\n return ctx?.fields ?? [];\n },\n displayName: \"Field\",\n description: \"Field name\",\n },\n },\n};\n\nexport function StrapiField({\n className,\n path,\n setControlContextData,\n}: StrapiFieldProps) {\n const item = useSelector(\"strapiItem\");\n if (!item) {\n return <div>StrapiField must be used within a StrapiCollection</div>;\n }\n\n // Getting only fields that aren't objects\n const attributes = getAttributes(item);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = getAttributes(value?.data)?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: false,\n });\n\n if (!path) {\n return <div>StrapiField must specify a field name.</div>;\n }\n\n const data = get(attributes, [path]);\n const maybeMime = getAttributes(data?.data)?.mime;\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"),\n });\n\n if (!data) {\n return <div>Please specify a valid field name.</div>;\n } else if (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\")) {\n const creds = useStrapiCredentials();\n const attrs = getAttributes(data.data);\n const img_url = attrs.url.startsWith(\"http\")\n ? attrs.url\n : creds.host + attrs.url;\n const img_width = attrs.width;\n const img_height = attrs.height;\n return (\n <img\n className={className}\n src={img_url}\n width={300}\n height={(300 * img_height) / img_width}\n />\n );\n } else {\n return <div className={className}>{data}</div>;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["get", "React", "React", "get", "get", "React", "React", "_a", "maybeMime", "get"]
|
|
7
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";
|
|
2
3
|
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defProps = Object.defineProperties;
|
|
4
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
8
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
10
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
11
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
13
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
14
|
+
var __spreadValues = (a, b) => {
|
|
15
|
+
for (var prop in b || (b = {}))
|
|
16
|
+
if (__hasOwnProp.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
if (__getOwnPropSymbols)
|
|
19
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
20
|
+
if (__propIsEnum.call(b, prop))
|
|
21
|
+
__defNormalProp(a, prop, b[prop]);
|
|
22
|
+
}
|
|
23
|
+
return a;
|
|
24
|
+
};
|
|
25
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
26
|
+
var __objRest = (source, exclude) => {
|
|
27
|
+
var target = {};
|
|
28
|
+
for (var prop in source)
|
|
29
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
30
|
+
target[prop] = source[prop];
|
|
31
|
+
if (source != null && __getOwnPropSymbols)
|
|
32
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
33
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
34
|
+
target[prop] = source[prop];
|
|
35
|
+
}
|
|
36
|
+
return target;
|
|
37
|
+
};
|
|
8
38
|
var __export = (target, all) => {
|
|
9
39
|
for (var name in all)
|
|
10
40
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -26,6 +56,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
56
|
mod
|
|
27
57
|
));
|
|
28
58
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
59
|
+
var __async = (__this, __arguments, generator) => {
|
|
60
|
+
return new Promise((resolve, reject) => {
|
|
61
|
+
var fulfilled = (value) => {
|
|
62
|
+
try {
|
|
63
|
+
step(generator.next(value));
|
|
64
|
+
} catch (e) {
|
|
65
|
+
reject(e);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var rejected = (value) => {
|
|
69
|
+
try {
|
|
70
|
+
step(generator.throw(value));
|
|
71
|
+
} catch (e) {
|
|
72
|
+
reject(e);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
76
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
77
|
+
});
|
|
78
|
+
};
|
|
29
79
|
|
|
30
80
|
// src/index.tsx
|
|
31
81
|
var src_exports = {};
|
|
@@ -33,7 +83,10 @@ __export(src_exports, {
|
|
|
33
83
|
StrapiCollection: () => StrapiCollection,
|
|
34
84
|
StrapiCredentialsProvider: () => StrapiCredentialsProvider,
|
|
35
85
|
StrapiField: () => StrapiField,
|
|
86
|
+
queryStrapi: () => queryStrapi,
|
|
87
|
+
queryStrapiMeta: () => queryStrapiMeta,
|
|
36
88
|
registerAll: () => registerAll,
|
|
89
|
+
registerAllCustomFunctions: () => registerAllCustomFunctions,
|
|
37
90
|
strapiCollectionMeta: () => strapiCollectionMeta,
|
|
38
91
|
strapiCredentialsProviderMeta: () => strapiCredentialsProviderMeta,
|
|
39
92
|
strapiFieldMeta: () => strapiFieldMeta
|
|
@@ -46,12 +99,13 @@ var import_registerGlobalContext = __toESM(require("@plasmicapp/host/registerGlo
|
|
|
46
99
|
var import_host = require("@plasmicapp/host");
|
|
47
100
|
var import_query = require("@plasmicapp/query");
|
|
48
101
|
var import_change_case = require("change-case");
|
|
49
|
-
var
|
|
50
|
-
var qs = __toESM(require("qs"));
|
|
102
|
+
var import_dlv2 = __toESM(require("dlv"));
|
|
51
103
|
var import_react2 = __toESM(require("react"));
|
|
52
104
|
|
|
53
|
-
// src/
|
|
54
|
-
var
|
|
105
|
+
// src/custom-functions.tsx
|
|
106
|
+
var import_registerFunction = __toESM(require("@plasmicapp/host/registerFunction"));
|
|
107
|
+
var import_dlv = __toESM(require("dlv"));
|
|
108
|
+
var import_qs = __toESM(require("qs"));
|
|
55
109
|
|
|
56
110
|
// src/utils.ts
|
|
57
111
|
var modulePath = "@plasmicpkgs/plasmic-strapi";
|
|
@@ -105,11 +159,123 @@ var getAttributes = (item) => {
|
|
|
105
159
|
if (item.attributes) {
|
|
106
160
|
return item.attributes;
|
|
107
161
|
}
|
|
108
|
-
const { documentId: _documentId, locale: _locale,
|
|
162
|
+
const _a = item, { documentId: _documentId, locale: _locale } = _a, rest = __objRest(_a, ["documentId", "locale"]);
|
|
109
163
|
return rest;
|
|
110
164
|
};
|
|
165
|
+
function filterFields(collectionData) {
|
|
166
|
+
return collectionData.flatMap((item) => {
|
|
167
|
+
const attributes = getAttributes(item);
|
|
168
|
+
const displayableFields = Object.keys(attributes).filter((field) => {
|
|
169
|
+
var _a;
|
|
170
|
+
const value = attributes[field];
|
|
171
|
+
const maybeMime = (_a = getAttributes(value == null ? void 0 : value.data)) == null ? void 0 : _a.mime;
|
|
172
|
+
return typeof value !== "object" || typeof maybeMime === "string" && maybeMime.startsWith("image");
|
|
173
|
+
});
|
|
174
|
+
return displayableFields;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// src/custom-functions.tsx
|
|
179
|
+
var queryStrapiMeta = {
|
|
180
|
+
name: "queryStrapi",
|
|
181
|
+
displayName: "Query Strapi",
|
|
182
|
+
description: "Query a Strapi collection",
|
|
183
|
+
importPath: modulePath,
|
|
184
|
+
params: [
|
|
185
|
+
{
|
|
186
|
+
name: "strapiHost",
|
|
187
|
+
type: "string",
|
|
188
|
+
description: "The Strapi host URL (e.g., https://example.com)"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "strapiToken",
|
|
192
|
+
type: "string",
|
|
193
|
+
description: "The Strapi API token (optional, for authenticated requests)"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: "collection",
|
|
197
|
+
type: "string",
|
|
198
|
+
description: "The name of the Strapi collection to query"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: "filterField",
|
|
202
|
+
type: "choice",
|
|
203
|
+
options: (_, ctx) => {
|
|
204
|
+
return ctx == null ? void 0 : ctx.strapiFields;
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: "filterValue",
|
|
209
|
+
type: "string",
|
|
210
|
+
description: "The value to filter by (optional, if you want to filter results)"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "filterParameter",
|
|
214
|
+
type: "choice",
|
|
215
|
+
description: "The parameter for filtering (e.g., 'eq', 'contains', etc.) (optional)",
|
|
216
|
+
options: () => {
|
|
217
|
+
return queryParameters.map((item) => ({
|
|
218
|
+
label: item == null ? void 0 : item.label,
|
|
219
|
+
value: item == null ? void 0 : item.value
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
],
|
|
224
|
+
fnContext: (host, token, collection) => {
|
|
225
|
+
return {
|
|
226
|
+
dataKey: JSON.stringify({ host, token, collection }),
|
|
227
|
+
fetcher: () => __async(void 0, null, function* () {
|
|
228
|
+
if (!host) {
|
|
229
|
+
return {};
|
|
230
|
+
}
|
|
231
|
+
const data = yield queryStrapi(host, token, collection);
|
|
232
|
+
if (!(0, import_dlv.default)(data.data, ["data"])) {
|
|
233
|
+
return { strapiFields: [] };
|
|
234
|
+
}
|
|
235
|
+
const collectionData = (0, import_dlv.default)(data.data, ["data"]);
|
|
236
|
+
const filteredFields = filterFields(collectionData);
|
|
237
|
+
return { strapiFields: uniq(filteredFields != null ? filteredFields : []) };
|
|
238
|
+
})
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
function queryStrapi(host, token, collection, filterField, filterValue, filterParameter) {
|
|
243
|
+
return __async(this, null, function* () {
|
|
244
|
+
if (!host) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
collection = collection != null ? collection : "";
|
|
248
|
+
const query = host.trim() + "/api/" + collection.trim();
|
|
249
|
+
const requestInit = { method: "GET" };
|
|
250
|
+
if (token) {
|
|
251
|
+
requestInit.headers = { Authorization: "Bearer " + token };
|
|
252
|
+
}
|
|
253
|
+
const queryParams = import_qs.default.stringify(__spreadProps(__spreadValues({}, filterField && filterParameter && filterValue ? {
|
|
254
|
+
filters: {
|
|
255
|
+
[filterField]: {
|
|
256
|
+
[filterParameter]: filterValue
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
} : {}), {
|
|
260
|
+
populate: "*"
|
|
261
|
+
}));
|
|
262
|
+
const resp = yield fetch(`${query}?${queryParams}`, requestInit);
|
|
263
|
+
return resp.json();
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
function registerAllCustomFunctions(loader) {
|
|
267
|
+
function _registerFunction(fn, meta) {
|
|
268
|
+
if (loader) {
|
|
269
|
+
loader.registerFunction(fn, meta);
|
|
270
|
+
} else {
|
|
271
|
+
(0, import_registerFunction.default)(fn, meta);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
_registerFunction(queryStrapi, queryStrapiMeta);
|
|
275
|
+
}
|
|
111
276
|
|
|
112
277
|
// src/StrapiCredentialsProvider.tsx
|
|
278
|
+
var import_react = __toESM(require("react"));
|
|
113
279
|
var StrapiCredentialsContext = import_react.default.createContext(void 0);
|
|
114
280
|
function useStrapiCredentials() {
|
|
115
281
|
const creds = (0, import_react.useContext)(StrapiCredentialsContext);
|
|
@@ -190,34 +356,34 @@ var strapiCollectionMeta = {
|
|
|
190
356
|
type: "choice",
|
|
191
357
|
displayName: "Filter field",
|
|
192
358
|
description: "Field (from Collection) to filter by",
|
|
193
|
-
options: (
|
|
359
|
+
options: (_, ctx) => {
|
|
194
360
|
var _a;
|
|
195
361
|
return (_a = ctx == null ? void 0 : ctx.strapiFields) != null ? _a : [];
|
|
196
362
|
},
|
|
197
|
-
hidden: (props
|
|
363
|
+
hidden: (props) => !props.name
|
|
198
364
|
},
|
|
199
365
|
filterParameter: {
|
|
200
366
|
type: "choice",
|
|
201
367
|
displayName: "Filter Parameter",
|
|
202
368
|
description: "Field Parameter filter by",
|
|
203
|
-
options: (
|
|
369
|
+
options: () => {
|
|
204
370
|
return queryParameters.map((item) => ({
|
|
205
371
|
label: item == null ? void 0 : item.label,
|
|
206
372
|
value: item == null ? void 0 : item.value
|
|
207
373
|
}));
|
|
208
374
|
},
|
|
209
|
-
hidden: (props
|
|
375
|
+
hidden: (props) => !props.filterField
|
|
210
376
|
},
|
|
211
377
|
filterValue: {
|
|
212
378
|
type: "string",
|
|
213
379
|
displayName: "Filter value",
|
|
214
380
|
description: "Value to filter by, should be of filter field type",
|
|
215
|
-
hidden: (props
|
|
381
|
+
hidden: (props) => !props.filterParameter
|
|
216
382
|
},
|
|
217
383
|
limit: {
|
|
218
384
|
type: "number",
|
|
219
385
|
displayName: "Limit",
|
|
220
|
-
description: "Maximum
|
|
386
|
+
description: "Maximum number of collections to fetch (0 for unlimited)."
|
|
221
387
|
},
|
|
222
388
|
noLayout: {
|
|
223
389
|
type: "boolean",
|
|
@@ -245,58 +411,34 @@ function StrapiCollection({
|
|
|
245
411
|
noAutoRepeat,
|
|
246
412
|
setControlContextData
|
|
247
413
|
}) {
|
|
248
|
-
const
|
|
249
|
-
if (!
|
|
414
|
+
const { host, token } = useStrapiCredentials();
|
|
415
|
+
if (!host) {
|
|
250
416
|
return /* @__PURE__ */ import_react2.default.createElement("div", null, "Please specify a host.");
|
|
251
417
|
}
|
|
252
|
-
const query = creds.host + "/api/" + name;
|
|
253
418
|
const cacheKey = JSON.stringify({
|
|
254
|
-
|
|
419
|
+
host,
|
|
420
|
+
token,
|
|
255
421
|
name,
|
|
256
422
|
filterField,
|
|
257
423
|
filterValue,
|
|
258
424
|
filterParameter
|
|
259
425
|
});
|
|
260
|
-
const data = (0, import_query.usePlasmicQueryData)(
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
requestInit.headers = { Authorization: "Bearer " + creds.token };
|
|
267
|
-
}
|
|
268
|
-
const queryParams = qs.stringify({
|
|
269
|
-
...filterField && filterParameter && filterValue ? {
|
|
270
|
-
filters: {
|
|
271
|
-
[filterField]: {
|
|
272
|
-
[filterParameter]: filterValue
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
} : {},
|
|
276
|
-
populate: "*"
|
|
277
|
-
});
|
|
278
|
-
const resp = await fetch(`${query}?${queryParams}`, requestInit);
|
|
279
|
-
return resp.json();
|
|
280
|
-
});
|
|
426
|
+
const data = (0, import_query.usePlasmicQueryData)(
|
|
427
|
+
cacheKey,
|
|
428
|
+
() => __async(this, null, function* () {
|
|
429
|
+
return queryStrapi(host, token, name, filterField, filterValue, filterParameter);
|
|
430
|
+
})
|
|
431
|
+
);
|
|
281
432
|
if (!(data == null ? void 0 : data.data)) {
|
|
282
433
|
return /* @__PURE__ */ import_react2.default.createElement("div", null, "Please configure the Strapi provider with a valid host and token.");
|
|
283
434
|
}
|
|
284
|
-
if (!(0,
|
|
435
|
+
if (!(0, import_dlv2.default)(data.data, ["data"])) {
|
|
285
436
|
return /* @__PURE__ */ import_react2.default.createElement("div", null, "Please specify a valid collection.");
|
|
286
437
|
}
|
|
287
|
-
const collectionData = (0,
|
|
288
|
-
const
|
|
289
|
-
const attributes = getAttributes(item);
|
|
290
|
-
const displayableFields = Object.keys(attributes).filter((field) => {
|
|
291
|
-
var _a;
|
|
292
|
-
const value = attributes[field];
|
|
293
|
-
const maybeMime = (_a = getAttributes(value == null ? void 0 : value.data)) == null ? void 0 : _a.mime;
|
|
294
|
-
return typeof value !== "object" || typeof maybeMime === "string" && maybeMime.startsWith("image");
|
|
295
|
-
});
|
|
296
|
-
return displayableFields;
|
|
297
|
-
});
|
|
438
|
+
const collectionData = (0, import_dlv2.default)(data.data, ["data"]);
|
|
439
|
+
const filteredFields = filterFields(collectionData);
|
|
298
440
|
setControlContextData == null ? void 0 : setControlContextData({
|
|
299
|
-
strapiFields: uniq(
|
|
441
|
+
strapiFields: uniq(filteredFields != null ? filteredFields : [])
|
|
300
442
|
});
|
|
301
443
|
if (filterParameter && !filterValue && !filterField) {
|
|
302
444
|
return /* @__PURE__ */ import_react2.default.createElement("div", null, "Please specify a Filter Field and a Filter Value");
|
|
@@ -338,7 +480,7 @@ function StrapiCollection({
|
|
|
338
480
|
|
|
339
481
|
// src/StrapiField.tsx
|
|
340
482
|
var import_host2 = require("@plasmicapp/host");
|
|
341
|
-
var
|
|
483
|
+
var import_dlv3 = __toESM(require("dlv"));
|
|
342
484
|
var import_react3 = __toESM(require("react"));
|
|
343
485
|
var strapiFieldMeta = {
|
|
344
486
|
name: "StrapiField",
|
|
@@ -348,7 +490,7 @@ var strapiFieldMeta = {
|
|
|
348
490
|
props: {
|
|
349
491
|
path: {
|
|
350
492
|
type: "choice",
|
|
351
|
-
options: (
|
|
493
|
+
options: (_, ctx) => {
|
|
352
494
|
var _a;
|
|
353
495
|
return (_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [];
|
|
354
496
|
},
|
|
@@ -381,7 +523,7 @@ function StrapiField({
|
|
|
381
523
|
if (!path) {
|
|
382
524
|
return /* @__PURE__ */ import_react3.default.createElement("div", null, "StrapiField must specify a field name.");
|
|
383
525
|
}
|
|
384
|
-
const data = (0,
|
|
526
|
+
const data = (0, import_dlv3.default)(attributes, [path]);
|
|
385
527
|
const maybeMime = (_a = getAttributes(data == null ? void 0 : data.data)) == null ? void 0 : _a.mime;
|
|
386
528
|
setControlContextData == null ? void 0 : setControlContextData({
|
|
387
529
|
fields: displayableFields,
|
|
@@ -432,13 +574,4 @@ function registerAll(loader) {
|
|
|
432
574
|
_registerComponent(StrapiCollection, strapiCollectionMeta);
|
|
433
575
|
_registerComponent(StrapiField, strapiFieldMeta);
|
|
434
576
|
}
|
|
435
|
-
|
|
436
|
-
0 && (module.exports = {
|
|
437
|
-
StrapiCollection,
|
|
438
|
-
StrapiCredentialsProvider,
|
|
439
|
-
StrapiField,
|
|
440
|
-
registerAll,
|
|
441
|
-
strapiCollectionMeta,
|
|
442
|
-
strapiCredentialsProviderMeta,
|
|
443
|
-
strapiFieldMeta
|
|
444
|
-
});
|
|
577
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.tsx", "../src/StrapiCollection.tsx", "../src/custom-functions.tsx", "../src/utils.ts", "../src/StrapiCredentialsProvider.tsx", "../src/StrapiField.tsx"],
|
|
4
|
+
"sourcesContent": ["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport { StrapiCollection, strapiCollectionMeta } from \"./StrapiCollection\";\nimport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n} from \"./StrapiCredentialsProvider\";\nimport { StrapiField, strapiFieldMeta } from \"./StrapiField\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta\n );\n }\n\n _registerComponent(StrapiCollection, strapiCollectionMeta);\n _registerComponent(StrapiField, strapiFieldMeta);\n}\n\nexport * from \"./custom-functions\";\nexport { StrapiCollection, strapiCollectionMeta } from \"./StrapiCollection\";\nexport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n} from \"./StrapiCredentialsProvider\";\nexport { StrapiField, strapiFieldMeta } from \"./StrapiField\";\n", "import { ComponentMeta, DataProvider, repeatedElement } from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode } from \"react\";\nimport { queryStrapi } from \"./custom-functions\";\nimport { useStrapiCredentials } from \"./StrapiCredentialsProvider\";\nimport { filterFields, modulePath, queryParameters, uniq } from \"./utils\";\n\nconst makeDataProviderName = (collection: string) =>\n `currentStrapi${pascalCase(collection)}Item`;\n\ninterface StrapiCollectionProps {\n name?: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n filterField?: string;\n filterValue?: string;\n limit?: number;\n filterParameter?: string;\n setControlContextData?: (data: { strapiFields: string[] }) => void;\n}\n\nexport const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps> = {\n name: \"StrapiCollection\",\n displayName: \"Strapi Collection\",\n importName: \"StrapiCollection\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Strapi data of a given collection, and repeats `children` slot content for each row fetched. [See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: {\n type: \"component\",\n name: \"StrapiField\",\n },\n },\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n description: \"Name of the collection to be fetched.\",\n defaultValueHint: \"restaurants\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (_, ctx) => ctx?.strapiFields ?? [],\n hidden: (props) => !props.name,\n },\n filterParameter: {\n type: \"choice\",\n displayName: \"Filter Parameter\",\n description: \"Field Parameter filter by\",\n options: () => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n hidden: (props) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n hidden: (props) => !props.filterParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum number of collections to fetch (0 for unlimited).\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Strapi Collection will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every category.\",\n defaultValue: false,\n },\n },\n};\n\nexport function StrapiCollection({\n name,\n filterParameter,\n filterValue,\n filterField,\n limit,\n children,\n className,\n noLayout,\n noAutoRepeat,\n setControlContextData,\n}: StrapiCollectionProps) {\n const { host, token } = useStrapiCredentials();\n\n if (!host) {\n return <div>Please specify a host.</div>;\n }\n\n const cacheKey = JSON.stringify({\n host,\n token,\n name,\n filterField,\n filterValue,\n filterParameter,\n });\n\n const data = usePlasmicQueryData<any[] | null>(cacheKey, async () =>\n queryStrapi(host, token, name, filterField, filterValue, filterParameter)\n );\n\n if (!data?.data) {\n return (\n <div>\n Please configure the Strapi provider with a valid host and token.\n </div>\n );\n }\n\n if (!get(data.data, [\"data\"])) {\n return <div>Please specify a valid collection.</div>;\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filteredFields = filterFields(collectionData);\n\n setControlContextData?.({\n strapiFields: uniq(filteredFields ?? []),\n });\n if (filterParameter && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Parameter and a Filter Field</div>;\n }\n if (!filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Parameter and a Filter Value</div>;\n }\n\n if (filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n if (!filterParameter && filterValue && filterField) {\n return <div>Please specify a Filter Parameter</div>;\n }\n if (filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const collection =\n limit! > 0 ? collectionData.slice(0, limit) : collectionData;\n\n if (collection.length === 0) {\n return <div>No collection found </div>;\n }\n\n const repElements = noAutoRepeat\n ? children\n : collection.map((item, index) => (\n <DataProvider\n key={item.documentId ?? item.id}\n name={\"strapiItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(name!)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n\n return (\n <DataProvider name=\"strapiItems\" data={collection}>\n {noLayout ? (\n <> {repElements} </>\n ) : (\n <div className={className}> {repElements} </div>\n )}\n </DataProvider>\n );\n}\n", "import registerFunction, {\n CustomFunctionMeta,\n} from \"@plasmicapp/host/registerFunction\";\nimport get from \"dlv\";\nimport qs from \"qs\";\nimport { filterFields, modulePath, queryParameters, uniq } from \"./utils\";\n\nexport const queryStrapiMeta: CustomFunctionMeta<typeof queryStrapi> = {\n name: \"queryStrapi\",\n displayName: \"Query Strapi\",\n description: \"Query a Strapi collection\",\n importPath: modulePath,\n params: [\n {\n name: \"strapiHost\",\n type: \"string\",\n description: \"The Strapi host URL (e.g., https://example.com)\",\n },\n {\n name: \"strapiToken\",\n type: \"string\",\n description:\n \"The Strapi API token (optional, for authenticated requests)\",\n },\n {\n name: \"collection\",\n type: \"string\",\n description: \"The name of the Strapi collection to query\",\n },\n {\n name: \"filterField\",\n type: \"choice\",\n options: (_, ctx) => {\n return ctx?.strapiFields;\n },\n },\n {\n name: \"filterValue\",\n type: \"string\",\n description:\n \"The value to filter by (optional, if you want to filter results)\",\n },\n {\n name: \"filterParameter\",\n type: \"choice\",\n description:\n \"The parameter for filtering (e.g., 'eq', 'contains', etc.) (optional)\",\n options: () => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n },\n ],\n fnContext: (host, token, collection) => {\n return {\n dataKey: JSON.stringify({ host, token, collection }),\n fetcher: async () => {\n if (!host) {\n return {};\n }\n const data = await queryStrapi(host, token, collection);\n if (!get(data.data, [\"data\"])) {\n return { strapiFields: [] };\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filteredFields = filterFields(collectionData);\n return { strapiFields: uniq(filteredFields ?? []) };\n },\n };\n },\n};\n\nexport async function queryStrapi(\n host: string,\n token: string | undefined,\n collection: string | undefined,\n filterField?: string,\n filterValue?: string,\n filterParameter?: string\n) {\n if (!host) {\n return null;\n }\n\n collection = collection ?? \"\";\n\n const query = host.trim() + \"/api/\" + collection.trim();\n\n const requestInit: any = { method: \"GET\" };\n if (token) {\n requestInit.headers = { Authorization: \"Bearer \" + token };\n }\n\n const queryParams = qs.stringify({\n ...(filterField && filterParameter && filterValue\n ? {\n filters: {\n [filterField]: {\n [filterParameter]: filterValue,\n },\n },\n }\n : {}),\n populate: \"*\",\n });\n\n const resp = await fetch(`${query}?${queryParams}`, requestInit);\n return resp.json();\n}\n\nexport function registerAllCustomFunctions(loader?: { registerFunction: any }) {\n function _registerFunction<T extends (...args: any[]) => any>(\n fn: T,\n meta: CustomFunctionMeta<T>\n ) {\n if (loader) {\n loader.registerFunction(fn, meta);\n } else {\n registerFunction(fn, meta);\n }\n }\n\n _registerFunction(queryStrapi, queryStrapiMeta);\n}\n", "export const modulePath = \"@plasmicpkgs/plasmic-strapi\";\n\nexport const queryParameters = [\n {\n value: \"$eq\",\n label: \"Equal\",\n },\n {\n value: \"$ne\",\n label: \"Not equal\",\n },\n {\n value: \"$lt\",\n label: \"Less than\",\n },\n {\n value: \"$lte\",\n label: \"Less than or equal to\",\n },\n {\n value: \"$gt\",\n label: \"Greater than\",\n },\n {\n value: \"$gte\",\n label: \"Greater than or equal to\",\n },\n {\n value: \"$in\",\n label: \"Included in an array\",\n },\n {\n value: \"$notIn\",\n label: \"Not included in an array\",\n },\n {\n value: \"$contains\",\n label: \"Contains\",\n },\n {\n value: \"$notContains\",\n label: \"Does not contain\",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n\nexport const getAttributes = (item?: Record<string, any>) => {\n if (!item) {\n return undefined;\n }\n // Strapi v4\n if (item.attributes) {\n return item.attributes;\n }\n // Strapi v5\n const { documentId: _documentId, locale: _locale, ...rest } = item;\n return rest;\n};\n\nexport function filterFields(collectionData: any[]) {\n return collectionData.flatMap((item: any) => {\n const attributes = getAttributes(item);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = getAttributes(value?.data)?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n return displayableFields;\n });\n}\n", "import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport React, { useContext } from \"react\";\nimport { modulePath } from \"./utils\";\n\ninterface StrapiCredentials {\n host?: string;\n token?: string;\n}\n\nconst StrapiCredentialsContext = React.createContext<\n StrapiCredentials | undefined\n>(undefined);\n\nexport function useStrapiCredentials() {\n const creds = useContext(StrapiCredentialsContext);\n if (!creds) {\n throw new Error(\"Missing StrapiCredentials\");\n }\n\n return creds;\n}\n\nexport const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentials> =\n {\n name: \"StrapiCredentialsProvider\",\n displayName: \"Strapi Credentials Provider\",\n description: `[See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\n\nAPI token is needed only if data is not publicly readable.\n\nLearn how to [get your API token](https://docs.strapi.io/user-docs/latest/settings/managing-global-settings.html#managing-api-tokens).`,\n importName: \"StrapiCredentialsProvider\",\n importPath: modulePath,\n props: {\n host: {\n type: \"string\",\n displayName: \"Host\",\n defaultValueHint: \"https://strapi-app.plasmic.app\",\n defaultValue: \"https://strapi-app.plasmic.app\",\n description: \"Server where you application is hosted.\",\n },\n token: {\n type: \"string\",\n displayName: \"API Token\",\n description:\n \"API Token (generated in http://yourhost/admin/settings/api-tokens) (or leave blank for unauthenticated usage).\",\n },\n },\n };\n\nexport function StrapiCredentialsProvider({\n host,\n token,\n children,\n}: React.PropsWithChildren<StrapiCredentials>) {\n host = host?.replace(/\\/+$/, \"\");\n return (\n <StrapiCredentialsContext.Provider value={{ host, token }}>\n {children}\n </StrapiCredentialsContext.Provider>\n );\n}\n", "import { ComponentMeta, useSelector } from \"@plasmicapp/host\";\nimport get from \"dlv\";\nimport React from \"react\";\nimport { useStrapiCredentials } from \"./StrapiCredentialsProvider\";\nimport { getAttributes, modulePath } from \"./utils\";\n\ninterface StrapiFieldProps {\n className?: string;\n path?: string;\n setControlContextData?: (data: {\n fields: string[];\n isImage: boolean;\n }) => void;\n}\n\nexport const strapiFieldMeta: ComponentMeta<StrapiFieldProps> = {\n name: \"StrapiField\",\n displayName: \"Strapi Field\",\n importName: \"StrapiField\",\n importPath: modulePath,\n props: {\n path: {\n type: \"choice\",\n options: (_, ctx) => {\n return ctx?.fields ?? [];\n },\n displayName: \"Field\",\n description: \"Field name\",\n },\n },\n};\n\nexport function StrapiField({\n className,\n path,\n setControlContextData,\n}: StrapiFieldProps) {\n const item = useSelector(\"strapiItem\");\n if (!item) {\n return <div>StrapiField must be used within a StrapiCollection</div>;\n }\n\n // Getting only fields that aren't objects\n const attributes = getAttributes(item);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = getAttributes(value?.data)?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: false,\n });\n\n if (!path) {\n return <div>StrapiField must specify a field name.</div>;\n }\n\n const data = get(attributes, [path]);\n const maybeMime = getAttributes(data?.data)?.mime;\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"),\n });\n\n if (!data) {\n return <div>Please specify a valid field name.</div>;\n } else if (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\")) {\n const creds = useStrapiCredentials();\n const attrs = getAttributes(data.data);\n const img_url = attrs.url.startsWith(\"http\")\n ? attrs.url\n : creds.host + attrs.url;\n const img_width = attrs.width;\n const img_height = attrs.height;\n return (\n <img\n className={className}\n src={img_url}\n width={300}\n height={(300 * img_height) / img_width}\n />\n );\n } else {\n return <div className={className}>{data}</div>;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_dlv", "import_react", "get", "qs", "registerFunction", "React", "React", "get", "import_host", "import_dlv", "import_react", "React", "_a", "maybeMime", "get", "registerComponent", "registerGlobalContext"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/plasmic-strapi",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.170",
|
|
4
4
|
"description": "Plasmic Strapi components.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"
|
|
7
|
-
"module": "dist/index.
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"module": "./dist/index.esm.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.esm.js",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
8
15
|
"publishConfig": {
|
|
9
16
|
"access": "public"
|
|
10
17
|
},
|
|
@@ -12,7 +19,9 @@
|
|
|
12
19
|
"dist"
|
|
13
20
|
],
|
|
14
21
|
"scripts": {
|
|
15
|
-
"build": "
|
|
22
|
+
"build": "yarn build:types && yarn build:index",
|
|
23
|
+
"build:types": "yarn tsc",
|
|
24
|
+
"build:index": "node ../../build.mjs ./src/index.tsx --use-client",
|
|
16
25
|
"test": "TEST_CWD=`pwd` yarn --cwd=../.. test --passWithNoTests",
|
|
17
26
|
"prepublishOnly": "npm run build",
|
|
18
27
|
"size": "size-limit",
|
|
@@ -27,7 +36,7 @@
|
|
|
27
36
|
"limit": "10 KB"
|
|
28
37
|
},
|
|
29
38
|
{
|
|
30
|
-
"path": "dist/index.
|
|
39
|
+
"path": "dist/index.esm.js",
|
|
31
40
|
"limit": "10 KB"
|
|
32
41
|
}
|
|
33
42
|
],
|
|
@@ -45,13 +54,10 @@
|
|
|
45
54
|
"@types/qs": "^6.9.7",
|
|
46
55
|
"@types/react": "^18.0.27",
|
|
47
56
|
"@types/react-dom": "^18.0.10",
|
|
48
|
-
"husky": "^7.0.4",
|
|
49
57
|
"react": "^18.2.0",
|
|
50
58
|
"react-dom": "^18.2.0",
|
|
51
59
|
"size-limit": "^7.0.8",
|
|
52
|
-
"tslib": "^2.3.1",
|
|
53
|
-
"tsup": "^7.2.0",
|
|
54
60
|
"typescript": "^5.2.2"
|
|
55
61
|
},
|
|
56
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "337d10f8345a4823692cfb12d3f1df8958e1091c"
|
|
57
63
|
}
|
package/dist/index.d.mts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import registerComponent from '@plasmicapp/host/registerComponent';
|
|
2
|
-
import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
|
|
3
|
-
import { ComponentMeta, GlobalContextMeta } from '@plasmicapp/host';
|
|
4
|
-
import React, { ReactNode } from 'react';
|
|
5
|
-
|
|
6
|
-
interface StrapiCollectionProps {
|
|
7
|
-
name?: string;
|
|
8
|
-
children?: ReactNode;
|
|
9
|
-
className?: string;
|
|
10
|
-
noLayout?: boolean;
|
|
11
|
-
noAutoRepeat?: boolean;
|
|
12
|
-
filterField?: string;
|
|
13
|
-
filterValue?: string;
|
|
14
|
-
limit?: number;
|
|
15
|
-
filterParameter?: string;
|
|
16
|
-
setControlContextData?: (data: {
|
|
17
|
-
strapiFields: string[];
|
|
18
|
-
}) => void;
|
|
19
|
-
}
|
|
20
|
-
declare const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps>;
|
|
21
|
-
declare function StrapiCollection({ name, filterParameter, filterValue, filterField, limit, children, className, noLayout, noAutoRepeat, setControlContextData, }: StrapiCollectionProps): React.JSX.Element;
|
|
22
|
-
|
|
23
|
-
interface StrapiCredentials {
|
|
24
|
-
host?: string;
|
|
25
|
-
token?: string;
|
|
26
|
-
}
|
|
27
|
-
declare const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentials>;
|
|
28
|
-
declare function StrapiCredentialsProvider({ host, token, children, }: React.PropsWithChildren<StrapiCredentials>): React.JSX.Element;
|
|
29
|
-
|
|
30
|
-
interface StrapiFieldProps {
|
|
31
|
-
className?: string;
|
|
32
|
-
path?: string;
|
|
33
|
-
setControlContextData?: (data: {
|
|
34
|
-
fields: string[];
|
|
35
|
-
isImage: boolean;
|
|
36
|
-
}) => void;
|
|
37
|
-
}
|
|
38
|
-
declare const strapiFieldMeta: ComponentMeta<StrapiFieldProps>;
|
|
39
|
-
declare function StrapiField({ className, path, setControlContextData, }: StrapiFieldProps): React.JSX.Element;
|
|
40
|
-
|
|
41
|
-
declare function registerAll(loader?: {
|
|
42
|
-
registerComponent: typeof registerComponent;
|
|
43
|
-
registerGlobalContext: typeof registerGlobalContext;
|
|
44
|
-
}): void;
|
|
45
|
-
|
|
46
|
-
export { StrapiCollection, StrapiCredentialsProvider, StrapiField, registerAll, strapiCollectionMeta, strapiCredentialsProviderMeta, strapiFieldMeta };
|