@marvalt/digivalt-core 0.1.7 → 0.2.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/CHANGELOG.md +25 -0
- package/README.md +47 -4
- package/bin/init.cjs +406 -25
- package/dist/config.cjs +520 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.ts +307 -0
- package/dist/config.esm.js +502 -0
- package/dist/config.esm.js.map +1 -0
- package/dist/generators.cjs +2481 -0
- package/dist/generators.cjs.map +1 -0
- package/dist/generators.d.ts +19 -0
- package/dist/generators.esm.js +2475 -0
- package/dist/generators.esm.js.map +1 -0
- package/dist/index.cjs +18 -7955
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -1196
- package/dist/index.esm.js +13 -7929
- package/dist/index.esm.js.map +1 -1
- package/dist/runtime/env.d.ts +4 -0
- package/dist/runtime/lazy.d.ts +1 -0
- package/dist/services/cf-wp-webhook.d.ts +2 -0
- package/dist/services/gravityForms.d.ts +3 -0
- package/dist/services/mautic.d.ts +5 -1
- package/dist/services/suitecrm.d.ts +2 -0
- package/dist/services.cjs +1339 -0
- package/dist/services.cjs.map +1 -0
- package/dist/services.d.ts +432 -0
- package/dist/services.esm.js +1322 -0
- package/dist/services.esm.js.map +1 -0
- package/dist/static/index.d.ts +4 -0
- package/dist/static.cjs +997 -0
- package/dist/static.cjs.map +1 -0
- package/dist/static.d.ts +410 -0
- package/dist/static.esm.js +962 -0
- package/dist/static.esm.js.map +1 -0
- package/dist/types.cjs +3 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.ts +134 -0
- package/dist/types.esm.js +2 -0
- package/dist/types.esm.js.map +1 -0
- package/package.json +30 -2
- package/template/DIGIVALT_SETUP.md +73 -0
- package/template/scripts/deploy-secrets.js +55 -23
- package/template/scripts/generate.ts +3 -17
|
@@ -0,0 +1,962 @@
|
|
|
1
|
+
import 'clsx';
|
|
2
|
+
import 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Decodes HTML entities in a string
|
|
6
|
+
* Handles both named entities (&, ") and numeric entities (', ’)
|
|
7
|
+
* @param text - The text string with HTML entities
|
|
8
|
+
* @returns Decoded text string
|
|
9
|
+
*/
|
|
10
|
+
function decodeHtmlEntities(text) {
|
|
11
|
+
if (!text)
|
|
12
|
+
return '';
|
|
13
|
+
// Use browser's built-in decoder if available (most efficient)
|
|
14
|
+
if (typeof document !== 'undefined') {
|
|
15
|
+
const textarea = document.createElement('textarea');
|
|
16
|
+
textarea.innerHTML = text;
|
|
17
|
+
return textarea.value;
|
|
18
|
+
}
|
|
19
|
+
// Fallback for server-side or when document is not available
|
|
20
|
+
// Decode common named entities
|
|
21
|
+
const namedEntities = {
|
|
22
|
+
'&': '&',
|
|
23
|
+
'<': '<',
|
|
24
|
+
'>': '>',
|
|
25
|
+
'"': '"',
|
|
26
|
+
''': "'",
|
|
27
|
+
' ': ' ',
|
|
28
|
+
'©': '©',
|
|
29
|
+
'®': '®',
|
|
30
|
+
'™': '™',
|
|
31
|
+
'…': '…',
|
|
32
|
+
'—': '—',
|
|
33
|
+
'–': '–',
|
|
34
|
+
'‘': '\u2018', // Left single quotation mark
|
|
35
|
+
'’': '\u2019', // Right single quotation mark
|
|
36
|
+
'“': '\u201C', // Left double quotation mark
|
|
37
|
+
'”': '\u201D', // Right double quotation mark
|
|
38
|
+
};
|
|
39
|
+
let decoded = text;
|
|
40
|
+
// Decode numeric entities (', ’, etc.)
|
|
41
|
+
decoded = decoded.replace(/&#(\d+);/g, (match, dec) => {
|
|
42
|
+
return String.fromCharCode(parseInt(dec, 10));
|
|
43
|
+
});
|
|
44
|
+
// Decode hex entities (', etc.)
|
|
45
|
+
decoded = decoded.replace(/&#x([0-9a-fA-F]+);/g, (match, hex) => {
|
|
46
|
+
return String.fromCharCode(parseInt(hex, 16));
|
|
47
|
+
});
|
|
48
|
+
// Decode named entities
|
|
49
|
+
Object.entries(namedEntities).forEach(([entity, char]) => {
|
|
50
|
+
decoded = decoded.replace(new RegExp(entity, 'g'), char);
|
|
51
|
+
});
|
|
52
|
+
return decoded;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Replaces common WordPress HTML entities so they display as expected (e.g. en dash as hyphen, &/& as &).
|
|
56
|
+
* Use on block innerHTML or other WP-rendered HTML before passing to dangerouslySetInnerHTML.
|
|
57
|
+
*/
|
|
58
|
+
function normalizeWordPressHtmlEntities(html) {
|
|
59
|
+
if (!html)
|
|
60
|
+
return '';
|
|
61
|
+
return decodeHtmlEntities(html.replace(/–/g, '-'));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// @ts-nocheck
|
|
65
|
+
/**
|
|
66
|
+
* Cloudflare Images URL helpers
|
|
67
|
+
*
|
|
68
|
+
* Many endpoints (e.g., cloudflare_image_standardized) return the base URL
|
|
69
|
+
* without a variant/transform segment. Append a variant at render-time to
|
|
70
|
+
* control size and improve LCP/SEO.
|
|
71
|
+
*/
|
|
72
|
+
const isCloudflareImageUrl = (url) => {
|
|
73
|
+
if (!url)
|
|
74
|
+
return false;
|
|
75
|
+
try {
|
|
76
|
+
const u = new URL(url);
|
|
77
|
+
return u.hostname.toLowerCase().includes('imagedelivery.net');
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Append Cloudflare Images variant to the base URL if not already present.
|
|
85
|
+
* Example output: https://imagedelivery.net/<account>/<id>/w=1024,h=600
|
|
86
|
+
*/
|
|
87
|
+
const getCloudflareVariantUrl = (url, options) => {
|
|
88
|
+
if (!isCloudflareImageUrl(url))
|
|
89
|
+
return url;
|
|
90
|
+
// If a transform already exists, return as-is
|
|
91
|
+
if (/\/w=\d+/.test(url) || /\/(public|thumbnail|banner|avatar)/.test(url)) {
|
|
92
|
+
return url;
|
|
93
|
+
}
|
|
94
|
+
const { width, height } = options;
|
|
95
|
+
const hasTrailingSlash = url.endsWith('/');
|
|
96
|
+
const base = hasTrailingSlash ? url.slice(0, -1) : url;
|
|
97
|
+
const variant = `w=${Math.max(1, Math.floor(width))}` + (height ? `,h=${Math.max(1, Math.floor(height))}` : '');
|
|
98
|
+
return `${base}/${variant}`;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
// @ts-nocheck
|
|
102
|
+
// Minimal browser-safe static data loader to avoid importing Node-only code in the runtime bundle.
|
|
103
|
+
/** Recursively normalize WordPress HTML entities (e.g. – → "-") in block innerHTML. */
|
|
104
|
+
function normalizeBlocksHtml(blocks) {
|
|
105
|
+
if (!blocks)
|
|
106
|
+
return;
|
|
107
|
+
for (const block of blocks) {
|
|
108
|
+
if (block.innerHTML && typeof block.innerHTML === 'string') {
|
|
109
|
+
block.innerHTML = normalizeWordPressHtmlEntities(block.innerHTML);
|
|
110
|
+
}
|
|
111
|
+
if (block.innerBlocks?.length)
|
|
112
|
+
normalizeBlocksHtml(block.innerBlocks);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/** Recursively decode HTML entities in all string values of an event_meta-like object (mutate in place). */
|
|
116
|
+
function normalizeEventMetaStrings(meta) {
|
|
117
|
+
for (const key of Object.keys(meta)) {
|
|
118
|
+
const v = meta[key];
|
|
119
|
+
if (typeof v === 'string') {
|
|
120
|
+
meta[key] = decodeHtmlEntities(v);
|
|
121
|
+
}
|
|
122
|
+
else if (Array.isArray(v)) {
|
|
123
|
+
for (let i = 0; i < v.length; i++) {
|
|
124
|
+
const el = v[i];
|
|
125
|
+
if (typeof el === 'string') {
|
|
126
|
+
v[i] = decodeHtmlEntities(el);
|
|
127
|
+
}
|
|
128
|
+
else if (el && typeof el === 'object' && !Array.isArray(el)) {
|
|
129
|
+
normalizeEventMetaStrings(el);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/** Normalize title.rendered, excerpt.rendered, content.rendered, content_cloudflare on a WP-like item (mutate in place). */
|
|
136
|
+
function normalizeRenderedStrings(item) {
|
|
137
|
+
if (!item || typeof item !== 'object')
|
|
138
|
+
return;
|
|
139
|
+
if (typeof item.title?.rendered === 'string') {
|
|
140
|
+
item.title.rendered = normalizeWordPressHtmlEntities(item.title.rendered);
|
|
141
|
+
}
|
|
142
|
+
if (typeof item.excerpt?.rendered === 'string') {
|
|
143
|
+
item.excerpt.rendered = normalizeWordPressHtmlEntities(item.excerpt.rendered);
|
|
144
|
+
}
|
|
145
|
+
if (typeof item.content?.rendered === 'string') {
|
|
146
|
+
item.content.rendered = normalizeWordPressHtmlEntities(item.content.rendered);
|
|
147
|
+
}
|
|
148
|
+
if (typeof item.content_cloudflare === 'string') {
|
|
149
|
+
item.content_cloudflare = normalizeWordPressHtmlEntities(item.content_cloudflare);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Mask email for privacy: first char of local + ***@****** + last char of domain name + TLD.
|
|
154
|
+
* Example: name@example.com.au → n***@******e.com.au
|
|
155
|
+
*/
|
|
156
|
+
function maskEmail(email) {
|
|
157
|
+
const s = typeof email === 'string' ? email.trim() : '';
|
|
158
|
+
if (!s || !s.includes('@'))
|
|
159
|
+
return '***@***.***';
|
|
160
|
+
const parts = s.split('@', 2);
|
|
161
|
+
const local = parts[0];
|
|
162
|
+
const domain = parts[1];
|
|
163
|
+
if (!local || !domain)
|
|
164
|
+
return '***@***.***';
|
|
165
|
+
const localFirst = local.slice(0, 1);
|
|
166
|
+
const domainBits = domain.split('.');
|
|
167
|
+
if (domainBits.length < 2)
|
|
168
|
+
return localFirst + '***@******.' + domain;
|
|
169
|
+
const domainName = domainBits.shift() ?? '';
|
|
170
|
+
const tld = domainBits.join('.');
|
|
171
|
+
const domainLast = domainName.slice(-1);
|
|
172
|
+
return localFirst + '***@******' + domainLast + '.' + tld;
|
|
173
|
+
}
|
|
174
|
+
/** Replace raw members_email with masked value on each member in member arrays. */
|
|
175
|
+
function maskMemberEmailsInStaticData(data) {
|
|
176
|
+
if (!data)
|
|
177
|
+
return;
|
|
178
|
+
const memberKeys = ['chapter_member', 'members', 'member'];
|
|
179
|
+
const dataRecord = data;
|
|
180
|
+
for (const key of memberKeys) {
|
|
181
|
+
const arr = dataRecord[key];
|
|
182
|
+
if (!Array.isArray(arr))
|
|
183
|
+
continue;
|
|
184
|
+
for (const item of arr) {
|
|
185
|
+
if (item && typeof item === 'object') {
|
|
186
|
+
const obj = item;
|
|
187
|
+
if (obj.member_meta && typeof obj.member_meta === 'object') {
|
|
188
|
+
const meta = obj.member_meta;
|
|
189
|
+
if (meta.members_email != null)
|
|
190
|
+
meta.members_email = maskEmail(meta.members_email);
|
|
191
|
+
}
|
|
192
|
+
if (obj.public_profile && typeof obj.public_profile === 'object') {
|
|
193
|
+
const profile = obj.public_profile;
|
|
194
|
+
if (profile.members_email != null)
|
|
195
|
+
profile.members_email = maskEmail(profile.members_email);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/** Walk static data and normalize block HTML and .rendered/content fields so entities like – display correctly. */
|
|
202
|
+
function normalizeWordPressHtmlInStaticData(data) {
|
|
203
|
+
if (!data)
|
|
204
|
+
return;
|
|
205
|
+
if (data.pages) {
|
|
206
|
+
for (const page of data.pages) {
|
|
207
|
+
normalizeRenderedStrings(page);
|
|
208
|
+
if (page.blocks)
|
|
209
|
+
normalizeBlocksHtml(page.blocks);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (data.posts) {
|
|
213
|
+
for (const post of data.posts) {
|
|
214
|
+
normalizeRenderedStrings(post);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const cptKeys = ['eventbrite_event', 'member', 'testimonial', 'chapter_member', 'members'];
|
|
218
|
+
const dataRecord = data;
|
|
219
|
+
for (const key of cptKeys) {
|
|
220
|
+
const arr = dataRecord[key];
|
|
221
|
+
if (Array.isArray(arr)) {
|
|
222
|
+
for (const item of arr) {
|
|
223
|
+
normalizeRenderedStrings(item);
|
|
224
|
+
if (key === 'eventbrite_event' && item?.event_meta && typeof item.event_meta === 'object' && !Array.isArray(item.event_meta)) {
|
|
225
|
+
normalizeEventMetaStrings(item.event_meta);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (data.site_settings && typeof data.site_settings === 'object') {
|
|
231
|
+
const settings = data.site_settings;
|
|
232
|
+
if (typeof settings.name === 'string')
|
|
233
|
+
settings.name = normalizeWordPressHtmlEntities(settings.name);
|
|
234
|
+
if (typeof settings.description === 'string')
|
|
235
|
+
settings.description = normalizeWordPressHtmlEntities(settings.description);
|
|
236
|
+
}
|
|
237
|
+
if (data.header?.blocks)
|
|
238
|
+
normalizeBlocksHtml(data.header.blocks);
|
|
239
|
+
if (data.footer?.blocks)
|
|
240
|
+
normalizeBlocksHtml(data.footer.blocks);
|
|
241
|
+
}
|
|
242
|
+
let wpStaticCache = null;
|
|
243
|
+
const loadWordPressData = async (path = '/wordpress-data.json') => {
|
|
244
|
+
if (wpStaticCache)
|
|
245
|
+
return;
|
|
246
|
+
const res = await fetch(path);
|
|
247
|
+
if (!res.ok)
|
|
248
|
+
throw new Error(`Failed to load WordPress static data: ${res.status}`);
|
|
249
|
+
wpStaticCache = (await res.json());
|
|
250
|
+
normalizeWordPressHtmlInStaticData(wpStaticCache);
|
|
251
|
+
maskMemberEmailsInStaticData(wpStaticCache);
|
|
252
|
+
// Expose cache globally for theme loading (temporary workaround)
|
|
253
|
+
if (typeof window !== 'undefined') {
|
|
254
|
+
window.__wpStaticCache = wpStaticCache;
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Get WordPress static data (includes theme_styles)
|
|
259
|
+
*/
|
|
260
|
+
const getWordPressData = () => wpStaticCache;
|
|
261
|
+
const getWordPressPosts = () => wpStaticCache?.posts ?? [];
|
|
262
|
+
const getWordPressPages = () => wpStaticCache?.pages ?? [];
|
|
263
|
+
const getWordPressPageBySlug = (slug) => {
|
|
264
|
+
const pages = getWordPressPages();
|
|
265
|
+
return pages.find(page => page.slug === slug);
|
|
266
|
+
};
|
|
267
|
+
const getWordPressPageById = (id) => {
|
|
268
|
+
const pages = getWordPressPages();
|
|
269
|
+
return pages.find(page => page.id === id);
|
|
270
|
+
};
|
|
271
|
+
const getWordPressMedia = () => wpStaticCache?.media ?? [];
|
|
272
|
+
const getWordPressCategories = () => wpStaticCache?.categories ?? [];
|
|
273
|
+
const getWordPressTags = () => wpStaticCache?.tags ?? [];
|
|
274
|
+
const getWordPressMembers = () => wpStaticCache?.chapter_member ?? wpStaticCache?.members ?? wpStaticCache?.member ?? [];
|
|
275
|
+
const getWordPressEvents = () => wpStaticCache?.eventbrite_event ?? [];
|
|
276
|
+
const getWordPressTestimonials = () => wpStaticCache?.testimonial ?? [];
|
|
277
|
+
/** Returns a member by slug from the same list the grid uses. Call after loadWordPressData(). */
|
|
278
|
+
const getWordPressMemberBySlug = (slug) => getWordPressMembers().find((m) => m.slug === slug);
|
|
279
|
+
const getWordPressMemberRoles = () => wpStaticCache?.['member-role'] ?? wpStaticCache?.memberRoles ?? [];
|
|
280
|
+
const getSiteSettings = () => {
|
|
281
|
+
return wpStaticCache?.site_settings;
|
|
282
|
+
};
|
|
283
|
+
const getHeader = () => {
|
|
284
|
+
const data = getWordPressData();
|
|
285
|
+
return data?.header;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Get the first navigation block's menu ID from header blocks (for responsive header menu).
|
|
289
|
+
*/
|
|
290
|
+
function findFirstNavRef(blocks) {
|
|
291
|
+
for (const block of blocks || []) {
|
|
292
|
+
if (block?.blockName === 'core/navigation') {
|
|
293
|
+
const ref = block?.attrs?.['ref'] ?? block?.attrs?.['menuId'] ?? block?.attrs?.['menu'];
|
|
294
|
+
if (ref != null)
|
|
295
|
+
return parseInt(String(ref), 10);
|
|
296
|
+
}
|
|
297
|
+
const inner = block?.innerBlocks;
|
|
298
|
+
if (Array.isArray(inner)) {
|
|
299
|
+
const found = findFirstNavRef(inner);
|
|
300
|
+
if (found != null)
|
|
301
|
+
return found;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return undefined;
|
|
305
|
+
}
|
|
306
|
+
const getHeaderMenuId = () => {
|
|
307
|
+
const header = getHeader();
|
|
308
|
+
return header?.blocks ? findFirstNavRef(header.blocks) : undefined;
|
|
309
|
+
};
|
|
310
|
+
const getParsedHeader = () => {
|
|
311
|
+
const header = getHeader();
|
|
312
|
+
const hasHeader = !!(header?.blocks && header.blocks.length > 0);
|
|
313
|
+
return {
|
|
314
|
+
hasHeader,
|
|
315
|
+
menuId: hasHeader ? getHeaderMenuId() : undefined,
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
const getNavigationMenu = () => {
|
|
319
|
+
const data = getWordPressData();
|
|
320
|
+
return data?.navigation_menu;
|
|
321
|
+
};
|
|
322
|
+
/**
|
|
323
|
+
* Get a menu by ID from static data
|
|
324
|
+
* @param menuId Menu ID to retrieve
|
|
325
|
+
* @returns Menu data if found, undefined otherwise
|
|
326
|
+
*/
|
|
327
|
+
const getMenuById = (menuId) => {
|
|
328
|
+
const data = getWordPressData();
|
|
329
|
+
if (data?.menus) {
|
|
330
|
+
// JSON keys are strings, so convert menuId to string for lookup
|
|
331
|
+
const menuKey = String(menuId);
|
|
332
|
+
if (data.menus[menuKey]) {
|
|
333
|
+
return data.menus[menuKey];
|
|
334
|
+
}
|
|
335
|
+
// Also try numeric key in case it's stored as number
|
|
336
|
+
if (data.menus[menuId]) {
|
|
337
|
+
return data.menus[menuId];
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
// Fallback: check if it's the header menu
|
|
341
|
+
if (data?.navigation_menu && data.navigation_menu.id === menuId) {
|
|
342
|
+
return data.navigation_menu;
|
|
343
|
+
}
|
|
344
|
+
return undefined;
|
|
345
|
+
};
|
|
346
|
+
const getFooter = () => {
|
|
347
|
+
return wpStaticCache?.footer;
|
|
348
|
+
};
|
|
349
|
+
// Helper to get logo URL (prefers Cloudflare URL if available)
|
|
350
|
+
// Appends /w=80 to Cloudflare URLs for proper display
|
|
351
|
+
const getLogoUrl = () => {
|
|
352
|
+
const settings = getSiteSettings();
|
|
353
|
+
if (!settings?.logo)
|
|
354
|
+
return null;
|
|
355
|
+
// Prefer Cloudflare URL if available
|
|
356
|
+
const logoUrl = settings.logo.cloudflare_url || settings.logo.url;
|
|
357
|
+
if (!logoUrl)
|
|
358
|
+
return null;
|
|
359
|
+
return getCloudflareVariantUrl(logoUrl, { width: 80 }) || logoUrl;
|
|
360
|
+
};
|
|
361
|
+
// Helper to get site icon URL (prefers Cloudflare URL if available)
|
|
362
|
+
const getSiteIconUrl = () => {
|
|
363
|
+
const settings = getSiteSettings();
|
|
364
|
+
if (!settings?.site_icon)
|
|
365
|
+
return null;
|
|
366
|
+
return settings.site_icon.cloudflare_url || settings.site_icon.url || null;
|
|
367
|
+
};
|
|
368
|
+
// Helper to get site name
|
|
369
|
+
const getSiteName = () => {
|
|
370
|
+
const settings = getSiteSettings();
|
|
371
|
+
return settings?.site_name || 'DigiVAlt';
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
const isBrowserEnvironment = () => {
|
|
375
|
+
return typeof window !== 'undefined' && typeof document !== 'undefined';
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// @ts-nocheck
|
|
379
|
+
// Gravity Forms data store with proper environment handling
|
|
380
|
+
const transformForm = (formData) => {
|
|
381
|
+
// Transform fields to ensure proper structure
|
|
382
|
+
const transformedFields = (formData.fields || []).map((field) => ({
|
|
383
|
+
id: field.id.toString(), // Ensure ID is string
|
|
384
|
+
type: field.type,
|
|
385
|
+
label: field.label,
|
|
386
|
+
description: field.description,
|
|
387
|
+
isRequired: field.isRequired || false,
|
|
388
|
+
placeholder: field.placeholder,
|
|
389
|
+
defaultValue: field.defaultValue,
|
|
390
|
+
cssClass: field.cssClass,
|
|
391
|
+
inputs: field.inputs || null,
|
|
392
|
+
choices: field.choices || [],
|
|
393
|
+
validation: {
|
|
394
|
+
message: field.errorMessage,
|
|
395
|
+
pattern: field.inputMaskValue
|
|
396
|
+
}
|
|
397
|
+
}));
|
|
398
|
+
return {
|
|
399
|
+
id: formData.id.toString(), // Ensure ID is string
|
|
400
|
+
title: formData.title || formData.name || `Form ${formData.id}`,
|
|
401
|
+
description: formData.description,
|
|
402
|
+
fields: transformedFields,
|
|
403
|
+
button: {
|
|
404
|
+
text: formData.button?.text || 'Submit',
|
|
405
|
+
type: formData.button?.type || 'text',
|
|
406
|
+
imageUrl: formData.button?.imageUrl,
|
|
407
|
+
},
|
|
408
|
+
confirmation: {
|
|
409
|
+
type: formData.confirmation?.type || 'message',
|
|
410
|
+
message: formData.confirmation?.message,
|
|
411
|
+
url: formData.confirmation?.url,
|
|
412
|
+
pageId: formData.confirmation?.pageId,
|
|
413
|
+
queryString: formData.confirmation?.queryString,
|
|
414
|
+
isDefault: formData.confirmation?.isDefault,
|
|
415
|
+
},
|
|
416
|
+
settings: {
|
|
417
|
+
enableHoneypot: formData.enableHoneypot || false,
|
|
418
|
+
enableAnimation: formData.enableAnimation || false,
|
|
419
|
+
validationSummary: formData.validationSummary || false,
|
|
420
|
+
saveAndContinue: formData.save?.enabled || false,
|
|
421
|
+
limitEntries: {
|
|
422
|
+
enabled: formData.limitEntries || false,
|
|
423
|
+
limit: formData.limitEntriesCount,
|
|
424
|
+
message: formData.limitEntriesMessage
|
|
425
|
+
},
|
|
426
|
+
scheduleForm: {
|
|
427
|
+
enabled: formData.scheduleForm || false,
|
|
428
|
+
start: formData.scheduleStart,
|
|
429
|
+
end: formData.scheduleEnd,
|
|
430
|
+
message: formData.scheduleMessage
|
|
431
|
+
},
|
|
432
|
+
},
|
|
433
|
+
isActive: formData.isActive === true || formData.is_active === "1" || formData.is_active === true,
|
|
434
|
+
isPublished: formData.isPublished === true || formData.is_trash === "0" || formData.is_trash === false || formData.is_active === "1" || formData.is_active === true,
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
// Default fallback data
|
|
438
|
+
const defaultData = {
|
|
439
|
+
generated_at: new Date().toISOString(),
|
|
440
|
+
total_forms: 0,
|
|
441
|
+
forms: []
|
|
442
|
+
};
|
|
443
|
+
// Load static data from the generated JSON file
|
|
444
|
+
let gravityFormsData = defaultData;
|
|
445
|
+
// Function to load data dynamically
|
|
446
|
+
const loadGravityFormsData = async () => {
|
|
447
|
+
if (!isBrowserEnvironment()) {
|
|
448
|
+
return gravityFormsData;
|
|
449
|
+
}
|
|
450
|
+
try {
|
|
451
|
+
console.log('🔄 Loading Gravity Forms data from /gravity-forms-data.json...');
|
|
452
|
+
const response = await fetch('/gravity-forms-data.json');
|
|
453
|
+
if (response.ok) {
|
|
454
|
+
const jsonData = await response.json();
|
|
455
|
+
console.log('🔍 Gravity Forms Data Load Debug:', {
|
|
456
|
+
totalForms: jsonData.total_forms,
|
|
457
|
+
formsCount: jsonData.forms?.length || 0,
|
|
458
|
+
firstForm: jsonData.forms?.[0] ? {
|
|
459
|
+
id: jsonData.forms[0].id,
|
|
460
|
+
title: jsonData.forms[0].title,
|
|
461
|
+
is_active: jsonData.forms[0].is_active,
|
|
462
|
+
isActive: jsonData.forms[0].isActive,
|
|
463
|
+
isPublished: jsonData.forms[0].isPublished
|
|
464
|
+
} : null
|
|
465
|
+
});
|
|
466
|
+
// Transform the data to ensure it matches our interface
|
|
467
|
+
const transformedForms = jsonData.forms.map((form) => transformForm(form));
|
|
468
|
+
gravityFormsData = {
|
|
469
|
+
generated_at: jsonData.generated_at,
|
|
470
|
+
total_forms: jsonData.total_forms,
|
|
471
|
+
forms: transformedForms
|
|
472
|
+
};
|
|
473
|
+
console.log('🔍 Form Transformation Debug:', {
|
|
474
|
+
originalForms: jsonData.forms.map((f) => ({ id: f.id, title: f.title, is_active: f.is_active })),
|
|
475
|
+
transformedForms: transformedForms.map(f => ({ id: f.id, title: f.title, isActive: f.isActive, isPublished: f.isPublished }))
|
|
476
|
+
});
|
|
477
|
+
console.log('🔍 Transformed Forms Debug:', {
|
|
478
|
+
totalForms: gravityFormsData.total_forms,
|
|
479
|
+
formsCount: gravityFormsData.forms.length,
|
|
480
|
+
activeForms: gravityFormsData.forms.filter(f => f.isActive).length,
|
|
481
|
+
publishedForms: gravityFormsData.forms.filter(f => f.isPublished).length
|
|
482
|
+
});
|
|
483
|
+
return gravityFormsData;
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
console.error('❌ Failed to load gravityForms.json:', response.status, response.statusText);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
console.error('❌ Error loading gravityForms.json:', error);
|
|
491
|
+
}
|
|
492
|
+
return defaultData;
|
|
493
|
+
};
|
|
494
|
+
const getActiveForms = () => gravityFormsData.forms.filter(form => form.isActive);
|
|
495
|
+
const getPublishedForms$1 = () => gravityFormsData.forms.filter(form => form.isPublished);
|
|
496
|
+
const getFormById$1 = (id) => {
|
|
497
|
+
const idStr = String(id);
|
|
498
|
+
const idNum = typeof id === 'number' ? id : parseInt(idStr, 10);
|
|
499
|
+
return gravityFormsData.forms.find(form => String(form.id) === idStr || form.id === idNum);
|
|
500
|
+
};
|
|
501
|
+
const getFormByTitle = (title) => gravityFormsData.forms.find(form => form.title === title);
|
|
502
|
+
|
|
503
|
+
var generated_at = "2026-03-19T05:29:48.840Z";
|
|
504
|
+
var forms = [
|
|
505
|
+
{
|
|
506
|
+
id: 3,
|
|
507
|
+
name: "Eventbright Form",
|
|
508
|
+
alias: "eventbrigh",
|
|
509
|
+
description: null,
|
|
510
|
+
isPublished: true,
|
|
511
|
+
fields: [
|
|
512
|
+
{
|
|
513
|
+
id: 10,
|
|
514
|
+
label: "First Name",
|
|
515
|
+
showLabel: true,
|
|
516
|
+
alias: "first_name",
|
|
517
|
+
type: "text",
|
|
518
|
+
defaultValue: null,
|
|
519
|
+
isRequired: true,
|
|
520
|
+
validationMessage: null,
|
|
521
|
+
helpMessage: null,
|
|
522
|
+
order: 1,
|
|
523
|
+
properties: {
|
|
524
|
+
placeholder: null
|
|
525
|
+
},
|
|
526
|
+
validation: [
|
|
527
|
+
],
|
|
528
|
+
parent: null,
|
|
529
|
+
conditions: [
|
|
530
|
+
],
|
|
531
|
+
labelAttributes: null,
|
|
532
|
+
inputAttributes: null,
|
|
533
|
+
containerAttributes: null,
|
|
534
|
+
leadField: "firstname",
|
|
535
|
+
saveResult: true,
|
|
536
|
+
isAutoFill: true,
|
|
537
|
+
isReadOnly: false,
|
|
538
|
+
mappedObject: "contact",
|
|
539
|
+
mappedField: "firstname"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
id: 11,
|
|
543
|
+
label: "Last Name",
|
|
544
|
+
showLabel: true,
|
|
545
|
+
alias: "last_name",
|
|
546
|
+
type: "text",
|
|
547
|
+
defaultValue: null,
|
|
548
|
+
isRequired: true,
|
|
549
|
+
validationMessage: null,
|
|
550
|
+
helpMessage: null,
|
|
551
|
+
order: 2,
|
|
552
|
+
properties: {
|
|
553
|
+
placeholder: null
|
|
554
|
+
},
|
|
555
|
+
validation: [
|
|
556
|
+
],
|
|
557
|
+
parent: null,
|
|
558
|
+
conditions: [
|
|
559
|
+
],
|
|
560
|
+
labelAttributes: null,
|
|
561
|
+
inputAttributes: null,
|
|
562
|
+
containerAttributes: null,
|
|
563
|
+
leadField: "lastname",
|
|
564
|
+
saveResult: true,
|
|
565
|
+
isAutoFill: true,
|
|
566
|
+
isReadOnly: false,
|
|
567
|
+
mappedObject: "contact",
|
|
568
|
+
mappedField: "lastname"
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
id: 8,
|
|
572
|
+
label: "Email",
|
|
573
|
+
showLabel: true,
|
|
574
|
+
alias: "email",
|
|
575
|
+
type: "email",
|
|
576
|
+
defaultValue: null,
|
|
577
|
+
isRequired: true,
|
|
578
|
+
validationMessage: null,
|
|
579
|
+
helpMessage: null,
|
|
580
|
+
order: 3,
|
|
581
|
+
properties: {
|
|
582
|
+
placeholder: null
|
|
583
|
+
},
|
|
584
|
+
validation: [
|
|
585
|
+
],
|
|
586
|
+
parent: null,
|
|
587
|
+
conditions: [
|
|
588
|
+
],
|
|
589
|
+
labelAttributes: null,
|
|
590
|
+
inputAttributes: null,
|
|
591
|
+
containerAttributes: null,
|
|
592
|
+
leadField: "email",
|
|
593
|
+
saveResult: true,
|
|
594
|
+
isAutoFill: true,
|
|
595
|
+
isReadOnly: false,
|
|
596
|
+
mappedObject: "contact",
|
|
597
|
+
mappedField: "email"
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
id: 9,
|
|
601
|
+
label: "Submit",
|
|
602
|
+
showLabel: true,
|
|
603
|
+
alias: "submit",
|
|
604
|
+
type: "button",
|
|
605
|
+
defaultValue: null,
|
|
606
|
+
isRequired: false,
|
|
607
|
+
validationMessage: null,
|
|
608
|
+
helpMessage: null,
|
|
609
|
+
order: 4,
|
|
610
|
+
properties: [
|
|
611
|
+
],
|
|
612
|
+
validation: [
|
|
613
|
+
],
|
|
614
|
+
parent: null,
|
|
615
|
+
conditions: [
|
|
616
|
+
],
|
|
617
|
+
labelAttributes: null,
|
|
618
|
+
inputAttributes: "class=\"btn btn-ghost\"",
|
|
619
|
+
containerAttributes: null,
|
|
620
|
+
leadField: null,
|
|
621
|
+
saveResult: true,
|
|
622
|
+
isAutoFill: false,
|
|
623
|
+
isReadOnly: false,
|
|
624
|
+
mappedObject: null,
|
|
625
|
+
mappedField: null
|
|
626
|
+
}
|
|
627
|
+
],
|
|
628
|
+
actions: [
|
|
629
|
+
{
|
|
630
|
+
id: 1,
|
|
631
|
+
name: "Email",
|
|
632
|
+
description: null,
|
|
633
|
+
type: "lead.addutmtags",
|
|
634
|
+
order: 1,
|
|
635
|
+
properties: [
|
|
636
|
+
]
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
id: 2,
|
|
640
|
+
name: "THank You Notif 1",
|
|
641
|
+
description: null,
|
|
642
|
+
type: "email.send.user",
|
|
643
|
+
order: 2,
|
|
644
|
+
properties: {
|
|
645
|
+
useremail: {
|
|
646
|
+
email: "2"
|
|
647
|
+
},
|
|
648
|
+
user_id: [
|
|
649
|
+
1
|
|
650
|
+
]
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
id: 3,
|
|
655
|
+
name: "Registered +10 (HOT)",
|
|
656
|
+
description: null,
|
|
657
|
+
type: "lead.changetags",
|
|
658
|
+
order: 3,
|
|
659
|
+
properties: {
|
|
660
|
+
add_tags: [
|
|
661
|
+
"HOT"
|
|
662
|
+
],
|
|
663
|
+
remove_tags: [
|
|
664
|
+
]
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
],
|
|
668
|
+
postAction: "message",
|
|
669
|
+
postActionProperty: "Thanks for your submission. An email will be sent to you shortly.",
|
|
670
|
+
formType: "campaign"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
id: 2,
|
|
674
|
+
name: "second form",
|
|
675
|
+
alias: "second_for",
|
|
676
|
+
description: null,
|
|
677
|
+
isPublished: true,
|
|
678
|
+
fields: [
|
|
679
|
+
{
|
|
680
|
+
id: 4,
|
|
681
|
+
label: "Name",
|
|
682
|
+
showLabel: false,
|
|
683
|
+
alias: "f_name",
|
|
684
|
+
type: "text",
|
|
685
|
+
defaultValue: null,
|
|
686
|
+
isRequired: true,
|
|
687
|
+
validationMessage: "this field is required",
|
|
688
|
+
helpMessage: null,
|
|
689
|
+
order: 1,
|
|
690
|
+
properties: {
|
|
691
|
+
placeholder: "your first name"
|
|
692
|
+
},
|
|
693
|
+
validation: [
|
|
694
|
+
],
|
|
695
|
+
parent: null,
|
|
696
|
+
conditions: [
|
|
697
|
+
],
|
|
698
|
+
labelAttributes: null,
|
|
699
|
+
inputAttributes: null,
|
|
700
|
+
containerAttributes: null,
|
|
701
|
+
leadField: "firstname",
|
|
702
|
+
saveResult: true,
|
|
703
|
+
isAutoFill: false,
|
|
704
|
+
isReadOnly: false,
|
|
705
|
+
mappedObject: "contact",
|
|
706
|
+
mappedField: "firstname"
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
id: 5,
|
|
710
|
+
label: "Email",
|
|
711
|
+
showLabel: true,
|
|
712
|
+
alias: "email",
|
|
713
|
+
type: "email",
|
|
714
|
+
defaultValue: null,
|
|
715
|
+
isRequired: true,
|
|
716
|
+
validationMessage: "this is a required field",
|
|
717
|
+
helpMessage: null,
|
|
718
|
+
order: 2,
|
|
719
|
+
properties: {
|
|
720
|
+
placeholder: "email"
|
|
721
|
+
},
|
|
722
|
+
validation: [
|
|
723
|
+
],
|
|
724
|
+
parent: null,
|
|
725
|
+
conditions: [
|
|
726
|
+
],
|
|
727
|
+
labelAttributes: null,
|
|
728
|
+
inputAttributes: null,
|
|
729
|
+
containerAttributes: null,
|
|
730
|
+
leadField: "email",
|
|
731
|
+
saveResult: true,
|
|
732
|
+
isAutoFill: false,
|
|
733
|
+
isReadOnly: false,
|
|
734
|
+
mappedObject: "contact",
|
|
735
|
+
mappedField: "email"
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
id: 6,
|
|
739
|
+
label: "Message",
|
|
740
|
+
showLabel: false,
|
|
741
|
+
alias: "f_message",
|
|
742
|
+
type: "textarea",
|
|
743
|
+
defaultValue: null,
|
|
744
|
+
isRequired: true,
|
|
745
|
+
validationMessage: "we need your message",
|
|
746
|
+
helpMessage: null,
|
|
747
|
+
order: 3,
|
|
748
|
+
properties: [
|
|
749
|
+
],
|
|
750
|
+
validation: [
|
|
751
|
+
],
|
|
752
|
+
parent: null,
|
|
753
|
+
conditions: [
|
|
754
|
+
],
|
|
755
|
+
labelAttributes: null,
|
|
756
|
+
inputAttributes: null,
|
|
757
|
+
containerAttributes: null,
|
|
758
|
+
leadField: "companyaddress1",
|
|
759
|
+
saveResult: true,
|
|
760
|
+
isAutoFill: false,
|
|
761
|
+
isReadOnly: false,
|
|
762
|
+
mappedObject: "company",
|
|
763
|
+
mappedField: "companyaddress1"
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
id: 7,
|
|
767
|
+
label: "Submit",
|
|
768
|
+
showLabel: true,
|
|
769
|
+
alias: "submit",
|
|
770
|
+
type: "button",
|
|
771
|
+
defaultValue: null,
|
|
772
|
+
isRequired: false,
|
|
773
|
+
validationMessage: null,
|
|
774
|
+
helpMessage: null,
|
|
775
|
+
order: 4,
|
|
776
|
+
properties: [
|
|
777
|
+
],
|
|
778
|
+
validation: [
|
|
779
|
+
],
|
|
780
|
+
parent: null,
|
|
781
|
+
conditions: [
|
|
782
|
+
],
|
|
783
|
+
labelAttributes: null,
|
|
784
|
+
inputAttributes: "class=\"btn btn-ghost\"",
|
|
785
|
+
containerAttributes: null,
|
|
786
|
+
leadField: null,
|
|
787
|
+
saveResult: true,
|
|
788
|
+
isAutoFill: false,
|
|
789
|
+
isReadOnly: false,
|
|
790
|
+
mappedObject: null,
|
|
791
|
+
mappedField: null
|
|
792
|
+
}
|
|
793
|
+
],
|
|
794
|
+
actions: [
|
|
795
|
+
],
|
|
796
|
+
postAction: "message",
|
|
797
|
+
postActionProperty: "Great, you have made it!",
|
|
798
|
+
formType: "standalone"
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
id: 1,
|
|
802
|
+
name: "Simple form",
|
|
803
|
+
alias: "simple_for",
|
|
804
|
+
description: null,
|
|
805
|
+
isPublished: true,
|
|
806
|
+
fields: [
|
|
807
|
+
{
|
|
808
|
+
id: 1,
|
|
809
|
+
label: "Name",
|
|
810
|
+
showLabel: false,
|
|
811
|
+
alias: "f_name",
|
|
812
|
+
type: "text",
|
|
813
|
+
defaultValue: null,
|
|
814
|
+
isRequired: true,
|
|
815
|
+
validationMessage: "This field is required",
|
|
816
|
+
helpMessage: null,
|
|
817
|
+
order: 1,
|
|
818
|
+
properties: {
|
|
819
|
+
placeholder: "Your name"
|
|
820
|
+
},
|
|
821
|
+
validation: [
|
|
822
|
+
],
|
|
823
|
+
parent: null,
|
|
824
|
+
conditions: [
|
|
825
|
+
],
|
|
826
|
+
labelAttributes: null,
|
|
827
|
+
inputAttributes: null,
|
|
828
|
+
containerAttributes: null,
|
|
829
|
+
leadField: "firstname",
|
|
830
|
+
saveResult: true,
|
|
831
|
+
isAutoFill: false,
|
|
832
|
+
isReadOnly: false,
|
|
833
|
+
mappedObject: "contact",
|
|
834
|
+
mappedField: "firstname"
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
id: 2,
|
|
838
|
+
label: "EMail",
|
|
839
|
+
showLabel: false,
|
|
840
|
+
alias: "email",
|
|
841
|
+
type: "email",
|
|
842
|
+
defaultValue: null,
|
|
843
|
+
isRequired: true,
|
|
844
|
+
validationMessage: "This field is required",
|
|
845
|
+
helpMessage: null,
|
|
846
|
+
order: 2,
|
|
847
|
+
properties: {
|
|
848
|
+
placeholder: "Your email"
|
|
849
|
+
},
|
|
850
|
+
validation: [
|
|
851
|
+
],
|
|
852
|
+
parent: null,
|
|
853
|
+
conditions: [
|
|
854
|
+
],
|
|
855
|
+
labelAttributes: null,
|
|
856
|
+
inputAttributes: null,
|
|
857
|
+
containerAttributes: null,
|
|
858
|
+
leadField: "email",
|
|
859
|
+
saveResult: true,
|
|
860
|
+
isAutoFill: false,
|
|
861
|
+
isReadOnly: false,
|
|
862
|
+
mappedObject: "contact",
|
|
863
|
+
mappedField: "email"
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
id: 3,
|
|
867
|
+
label: "Submit",
|
|
868
|
+
showLabel: true,
|
|
869
|
+
alias: "submit",
|
|
870
|
+
type: "button",
|
|
871
|
+
defaultValue: null,
|
|
872
|
+
isRequired: false,
|
|
873
|
+
validationMessage: null,
|
|
874
|
+
helpMessage: null,
|
|
875
|
+
order: 3,
|
|
876
|
+
properties: [
|
|
877
|
+
],
|
|
878
|
+
validation: [
|
|
879
|
+
],
|
|
880
|
+
parent: null,
|
|
881
|
+
conditions: [
|
|
882
|
+
],
|
|
883
|
+
labelAttributes: null,
|
|
884
|
+
inputAttributes: "class=\"btn btn-ghost\"",
|
|
885
|
+
containerAttributes: null,
|
|
886
|
+
leadField: null,
|
|
887
|
+
saveResult: true,
|
|
888
|
+
isAutoFill: false,
|
|
889
|
+
isReadOnly: false,
|
|
890
|
+
mappedObject: null,
|
|
891
|
+
mappedField: null
|
|
892
|
+
}
|
|
893
|
+
],
|
|
894
|
+
actions: [
|
|
895
|
+
],
|
|
896
|
+
postAction: "redirect",
|
|
897
|
+
postActionProperty: "/mautic-test",
|
|
898
|
+
formType: "standalone"
|
|
899
|
+
}
|
|
900
|
+
];
|
|
901
|
+
var mauticFormsData = {
|
|
902
|
+
generated_at: generated_at,
|
|
903
|
+
forms: forms
|
|
904
|
+
};
|
|
905
|
+
|
|
906
|
+
// @ts-nocheck
|
|
907
|
+
// Import the generated Mautic forms data
|
|
908
|
+
// Create the data store
|
|
909
|
+
const mauticData = {
|
|
910
|
+
generated_at: mauticFormsData.generated_at,
|
|
911
|
+
forms: mauticFormsData.forms
|
|
912
|
+
};
|
|
913
|
+
// Helper functions
|
|
914
|
+
const getPublishedForms = () => mauticData.forms.filter(form => form.isPublished);
|
|
915
|
+
const getFormById = (id) => mauticData.forms.find(form => form.id === id);
|
|
916
|
+
const getFormByAlias = (alias) => mauticData.forms.find(form => form.alias === alias);
|
|
917
|
+
|
|
918
|
+
// @ts-nocheck
|
|
919
|
+
// Auto-generated WordPress static data - DO NOT EDIT MANUALLY
|
|
920
|
+
// Generated at: 2025-07-16T05:00:36.928Z
|
|
921
|
+
// Build ID: 1752642036928
|
|
922
|
+
const wordpressData = {
|
|
923
|
+
"generated_at": "2025-07-16T05:00:36.905Z",
|
|
924
|
+
"frontend_id": "react-wp-template",
|
|
925
|
+
"frontend_name": "React WordPress Template",
|
|
926
|
+
"config": {
|
|
927
|
+
"frontend_id": "react-wp-template",
|
|
928
|
+
"frontend_name": "React WordPress Template",
|
|
929
|
+
"post_types": {
|
|
930
|
+
"posts": {
|
|
931
|
+
"max_items": 50,
|
|
932
|
+
"include_embedded": true,
|
|
933
|
+
"orderby": "date",
|
|
934
|
+
"order": "desc"
|
|
935
|
+
},
|
|
936
|
+
"pages": {
|
|
937
|
+
"max_items": 20,
|
|
938
|
+
"include_embedded": true
|
|
939
|
+
},
|
|
940
|
+
"case_studies": {
|
|
941
|
+
"max_items": 20,
|
|
942
|
+
"include_embedded": true
|
|
943
|
+
},
|
|
944
|
+
"projects": {
|
|
945
|
+
"max_items": 20,
|
|
946
|
+
"include_embedded": true
|
|
947
|
+
},
|
|
948
|
+
"members": {
|
|
949
|
+
"max_items": 20,
|
|
950
|
+
"include_embedded": true
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
"posts": [],
|
|
955
|
+
"pages": [],
|
|
956
|
+
"case_studies": [],
|
|
957
|
+
"projects": [],
|
|
958
|
+
"members": []
|
|
959
|
+
};
|
|
960
|
+
|
|
961
|
+
export { getActiveForms, getFooter, getFormByAlias, getFormById$1 as getGravityFormById, getFormByTitle as getGravityFormByTitle, getHeader, getHeaderMenuId, getLogoUrl, getFormById as getMauticFormById, getMenuById, getNavigationMenu, getParsedHeader, getPublishedForms$1 as getPublishedGravityForms, getPublishedForms as getPublishedMauticForms, getSiteIconUrl, getSiteName, getSiteSettings, getWordPressCategories, getWordPressData, getWordPressEvents, getWordPressMedia, getWordPressMemberBySlug, getWordPressMemberRoles, getWordPressMembers, getWordPressPageById, getWordPressPageBySlug, getWordPressPages, getWordPressPosts, getWordPressTags, getWordPressTestimonials, gravityFormsData, loadGravityFormsData, loadWordPressData, mauticData, wordpressData };
|
|
962
|
+
//# sourceMappingURL=static.esm.js.map
|