@nestledjs/data-browser 0.1.9 → 0.1.11

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.
@@ -1,3 +1,4 @@
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
1
2
  import { useQuery } from "@apollo/client/react";
2
3
  import { DataTable, ErrorBoundary } from "@nestledjs/shared-components";
3
4
  import { getPluralName } from "@nestledjs/helpers";
@@ -11,16 +12,9 @@ import { RelationFilterField } from "../components/filters/RelationFilterField.j
11
12
  import { useAdminList } from "../hooks/useAdminList.js";
12
13
  import { getAdminDocuments } from "../utils/graphql-utils.js";
13
14
  import { useAdminDataContext } from "../context/AdminDataContext.js";
14
- var _jsxFileName = "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx";
15
- function AdminDataListPage({
16
- modelName: propModelName
17
- } = {}) {
15
+ function AdminDataListPage({ modelName: propModelName } = {}) {
18
16
  const params = useParams();
19
- const {
20
- sdk,
21
- databaseModels,
22
- basePath = "/admin/data"
23
- } = useAdminDataContext();
17
+ const { sdk, databaseModels, basePath = "/admin/data" } = useAdminDataContext();
24
18
  const getEnumValues = useCallback((enumType) => {
25
19
  try {
26
20
  const enumObject = sdk[enumType];
@@ -38,10 +32,7 @@ function AdminDataListPage({
38
32
  return null;
39
33
  }
40
34
  }, [sdk]);
41
- const {
42
- state,
43
- dispatch
44
- } = useAdminList();
35
+ const { state, dispatch } = useAdminList();
45
36
  const {
46
37
  search,
47
38
  debouncedSearch,
@@ -55,43 +46,43 @@ function AdminDataListPage({
55
46
  showFilters,
56
47
  showSearchFieldSelector
57
48
  } = state;
58
- useCallback((skip2) => dispatch({
59
- type: "SET_SKIP",
60
- payload: skip2
61
- }), [dispatch]);
62
- const setFilters = useCallback((filters2) => dispatch({
63
- type: "SET_FILTERS",
64
- payload: filters2
65
- }), [dispatch]);
66
- const setShowFilters = useCallback((show) => {
67
- if (show !== showFilters) dispatch({
68
- type: "TOGGLE_FILTERS"
69
- });
70
- }, [showFilters, dispatch]);
71
- const setVisibleColumns = useCallback((columns) => dispatch({
72
- type: "SET_VISIBLE_COLUMNS",
73
- payload: columns
74
- }), [dispatch]);
75
- const setShowColumnSelector = useCallback((show) => {
76
- if (show !== showColumnSelector) dispatch({
77
- type: "TOGGLE_COLUMN_SELECTOR"
78
- });
79
- }, [showColumnSelector, dispatch]);
80
- const setSearchFields = useCallback((fields) => dispatch({
81
- type: "SET_SEARCH_FIELDS",
82
- payload: fields
83
- }), [dispatch]);
84
- const setShowSearchFieldSelector = useCallback((show) => {
85
- if (show !== showSearchFieldSelector) dispatch({
86
- type: "TOGGLE_SEARCH_FIELD_SELECTOR"
87
- });
88
- }, [showSearchFieldSelector, dispatch]);
49
+ useCallback(
50
+ (skip2) => dispatch({ type: "SET_SKIP", payload: skip2 }),
51
+ [dispatch]
52
+ );
53
+ const setFilters = useCallback(
54
+ (filters2) => dispatch({ type: "SET_FILTERS", payload: filters2 }),
55
+ [dispatch]
56
+ );
57
+ const setShowFilters = useCallback(
58
+ (show) => {
59
+ if (show !== showFilters) dispatch({ type: "TOGGLE_FILTERS" });
60
+ },
61
+ [showFilters, dispatch]
62
+ );
63
+ const setVisibleColumns = useCallback(
64
+ (columns) => dispatch({ type: "SET_VISIBLE_COLUMNS", payload: columns }),
65
+ [dispatch]
66
+ );
67
+ const setShowColumnSelector = useCallback(
68
+ (show) => {
69
+ if (show !== showColumnSelector) dispatch({ type: "TOGGLE_COLUMN_SELECTOR" });
70
+ },
71
+ [showColumnSelector, dispatch]
72
+ );
73
+ const setSearchFields = useCallback(
74
+ (fields) => dispatch({ type: "SET_SEARCH_FIELDS", payload: fields }),
75
+ [dispatch]
76
+ );
77
+ const setShowSearchFieldSelector = useCallback(
78
+ (show) => {
79
+ if (show !== showSearchFieldSelector) dispatch({ type: "TOGGLE_SEARCH_FIELD_SELECTOR" });
80
+ },
81
+ [showSearchFieldSelector, dispatch]
82
+ );
89
83
  useEffect(() => {
90
84
  const timer = setTimeout(() => {
91
- dispatch({
92
- type: "SET_DEBOUNCED_SEARCH",
93
- payload: state.search
94
- });
85
+ dispatch({ type: "SET_DEBOUNCED_SEARCH", payload: state.search });
95
86
  }, 500);
96
87
  return () => clearTimeout(timer);
97
88
  }, [state.search]);
@@ -107,18 +98,17 @@ function AdminDataListPage({
107
98
  });
108
99
  }, [propModelName, pluralParam, databaseModels]);
109
100
  const documents = useMemo(() => {
110
- if (!model) return {
111
- query: void 0,
112
- listQuery: void 0,
113
- update: void 0,
114
- delete: void 0,
115
- create: void 0
116
- };
101
+ if (!model)
102
+ return {
103
+ query: void 0,
104
+ listQuery: void 0,
105
+ update: void 0,
106
+ delete: void 0,
107
+ create: void 0
108
+ };
117
109
  return getAdminDocuments(sdk, model);
118
110
  }, [sdk, model]);
119
- const {
120
- listQuery: query
121
- } = documents;
111
+ const { listQuery: query } = documents;
122
112
  const dataPath = useMemo(() => {
123
113
  return (model == null ? void 0 : model.pluralModelPropertyName) || pluralParam.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
124
114
  }, [model, pluralParam]);
@@ -162,60 +152,54 @@ function AdminDataListPage({
162
152
  setVisibleColumns(filteredCols);
163
153
  const storedSort = AdminLocalStorage.getSortPreference(model.name);
164
154
  const sortFieldValid = storedSort && (storedSort.orderBy === "id" || fieldNames.includes(storedSort.orderBy));
165
- const nextSort = sortFieldValid ? storedSort : {
166
- orderBy: "id",
167
- orderDirection: "desc"
168
- };
169
- dispatch({
170
- type: "SET_SORT",
171
- payload: nextSort
172
- });
155
+ const nextSort = sortFieldValid ? storedSort : { orderBy: "id", orderDirection: "desc" };
156
+ dispatch({ type: "SET_SORT", payload: nextSort });
173
157
  const storedSearch = AdminLocalStorage.getSearchFields(model.name);
174
158
  const defaults = getDefaultSearchFields(searchableFieldNames);
175
159
  const filteredSearch = (storedSearch || defaults).filter((f) => searchableFieldNames.includes(f));
176
160
  setSearchFields(filteredSearch);
177
- dispatch({
178
- type: "SET_SEARCH",
179
- payload: ""
180
- });
181
- dispatch({
182
- type: "SET_DEBOUNCED_SEARCH",
183
- payload: ""
184
- });
185
- dispatch({
186
- type: "RESET_FILTERS"
187
- });
188
- dispatch({
189
- type: "RESET_PAGINATION"
190
- });
161
+ dispatch({ type: "SET_SEARCH", payload: "" });
162
+ dispatch({ type: "SET_DEBOUNCED_SEARCH", payload: "" });
163
+ dispatch({ type: "RESET_FILTERS" });
164
+ dispatch({ type: "RESET_PAGINATION" });
191
165
  }, [model == null ? void 0 : model.name, fieldNames, searchableFieldNames, getDefaultSearchFields, setVisibleColumns, setSearchFields, dispatch]);
192
- const setSortSafely = useCallback((newSort) => {
193
- const resolvedSort = typeof newSort === "function" ? newSort(sort) : newSort;
194
- if (resolvedSort.orderBy !== sort.orderBy || resolvedSort.orderDirection !== sort.orderDirection) {
195
- dispatch({
196
- type: "SET_SORT",
197
- payload: resolvedSort
198
- });
199
- if (model) {
200
- AdminLocalStorage.setSortPreference(model.name, resolvedSort);
166
+ const setSortSafely = useCallback(
167
+ (newSort) => {
168
+ const resolvedSort = typeof newSort === "function" ? newSort(sort) : newSort;
169
+ if (resolvedSort.orderBy !== sort.orderBy || resolvedSort.orderDirection !== sort.orderDirection) {
170
+ dispatch({ type: "SET_SORT", payload: resolvedSort });
171
+ if (model) {
172
+ AdminLocalStorage.setSortPreference(model.name, resolvedSort);
173
+ }
201
174
  }
202
- }
203
- }, [sort.orderBy, sort.orderDirection, model, dispatch]);
204
- const handleClickOutside = useCallback((event) => {
205
- const target = event.target;
206
- if (showColumnSelector) {
207
- const columnSelector2 = document.querySelector('[data-dropdown="column-selector"]');
208
- if (columnSelector2 && !columnSelector2.contains(target)) {
209
- setShowColumnSelector(false);
175
+ },
176
+ [sort.orderBy, sort.orderDirection, model, dispatch]
177
+ );
178
+ const handleClickOutside = useCallback(
179
+ (event) => {
180
+ const target = event.target;
181
+ if (showColumnSelector) {
182
+ const columnSelector2 = document.querySelector('[data-dropdown="column-selector"]');
183
+ if (columnSelector2 && !columnSelector2.contains(target)) {
184
+ setShowColumnSelector(false);
185
+ }
210
186
  }
211
- }
212
- if (showSearchFieldSelector) {
213
- const searchFieldSelector2 = document.querySelector('[data-dropdown="search-field-selector"]');
214
- if (searchFieldSelector2 && !searchFieldSelector2.contains(target)) {
215
- setShowSearchFieldSelector(false);
187
+ if (showSearchFieldSelector) {
188
+ const searchFieldSelector2 = document.querySelector(
189
+ '[data-dropdown="search-field-selector"]'
190
+ );
191
+ if (searchFieldSelector2 && !searchFieldSelector2.contains(target)) {
192
+ setShowSearchFieldSelector(false);
193
+ }
216
194
  }
217
- }
218
- }, [showColumnSelector, showSearchFieldSelector, setShowColumnSelector, setShowSearchFieldSelector]);
195
+ },
196
+ [
197
+ showColumnSelector,
198
+ showSearchFieldSelector,
199
+ setShowColumnSelector,
200
+ setShowSearchFieldSelector
201
+ ]
202
+ );
219
203
  useEffect(() => {
220
204
  if (showColumnSelector || showSearchFieldSelector) {
221
205
  document.addEventListener("mousedown", handleClickOutside);
@@ -233,13 +217,7 @@ function AdminDataListPage({
233
217
  filters: Object.keys(filters).length > 0 ? filters : void 0
234
218
  }
235
219
  };
236
- const {
237
- data,
238
- loading,
239
- error,
240
- networkStatus,
241
- refetch
242
- } = useQuery(query ?? sdk.__AdminUsersDocument, {
220
+ const { data, loading, error, networkStatus, refetch } = useQuery(query ?? sdk.__AdminUsersDocument, {
243
221
  variables,
244
222
  skip: !model || !query,
245
223
  errorPolicy: "all",
@@ -252,11 +230,7 @@ function AdminDataListPage({
252
230
  // 30 second timeout
253
231
  }
254
232
  });
255
- const {
256
- validatedItems,
257
- validatedPagination,
258
- dataError
259
- } = useMemo(() => {
233
+ const { validatedItems, validatedPagination, dataError } = useMemo(() => {
260
234
  var _a, _b;
261
235
  if (error) {
262
236
  console.warn("[AdminList] GraphQL error:", error.message);
@@ -325,479 +299,1042 @@ function AdminDataListPage({
325
299
  const items = validatedItems;
326
300
  const pagination = validatedPagination;
327
301
  if (!model) {
328
- return /* @__PURE__ */ React.createElement("div", { className: "min-h-screen bg-gray-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8", __self: this, __source: {
329
- fileName: _jsxFileName,
330
- lineNumber: 409,
331
- columnNumber: 7
332
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-md", __self: this, __source: {
333
- fileName: _jsxFileName,
334
- lineNumber: 410,
335
- columnNumber: 9
336
- } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
337
- fileName: _jsxFileName,
338
- lineNumber: 411,
339
- columnNumber: 11
340
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
341
- fileName: _jsxFileName,
302
+ return /* @__PURE__ */ jsxDEV("div", { className: "min-h-screen bg-gray-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxDEV("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-md", children: /* @__PURE__ */ jsxDEV("div", { className: "bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10", children: /* @__PURE__ */ jsxDEV("div", { className: "text-center", children: [
303
+ /* @__PURE__ */ jsxDEV(
304
+ "svg",
305
+ {
306
+ className: "mx-auto h-12 w-12 text-red-400",
307
+ fill: "none",
308
+ stroke: "currentColor",
309
+ viewBox: "0 0 24 24",
310
+ children: /* @__PURE__ */ jsxDEV(
311
+ "path",
312
+ {
313
+ strokeLinecap: "round",
314
+ strokeLinejoin: "round",
315
+ strokeWidth: 2,
316
+ d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
317
+ },
318
+ void 0,
319
+ false,
320
+ {
321
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
322
+ lineNumber: 419,
323
+ columnNumber: 17
324
+ },
325
+ this
326
+ )
327
+ },
328
+ void 0,
329
+ false,
330
+ {
331
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
332
+ lineNumber: 413,
333
+ columnNumber: 15
334
+ },
335
+ this
336
+ ),
337
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900", children: "Invalid Data Type" }, void 0, false, {
338
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
339
+ lineNumber: 426,
340
+ columnNumber: 15
341
+ }, this),
342
+ /* @__PURE__ */ jsxDEV("p", { className: "mt-2 text-sm text-gray-600", children: [
343
+ 'The data type "',
344
+ pluralParam,
345
+ '" is not recognized.'
346
+ ] }, void 0, true, {
347
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
348
+ lineNumber: 427,
349
+ columnNumber: 15
350
+ }, this),
351
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6", children: /* @__PURE__ */ jsxDEV(
352
+ Link,
353
+ {
354
+ to: basePath,
355
+ className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web",
356
+ children: "Return to Data Browser"
357
+ },
358
+ void 0,
359
+ false,
360
+ {
361
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
362
+ lineNumber: 431,
363
+ columnNumber: 17
364
+ },
365
+ this
366
+ ) }, void 0, false, {
367
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
368
+ lineNumber: 430,
369
+ columnNumber: 15
370
+ }, this)
371
+ ] }, void 0, true, {
372
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
342
373
  lineNumber: 412,
343
374
  columnNumber: 13
344
- } }, /* @__PURE__ */ React.createElement("svg", { className: "mx-auto h-12 w-12 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", __self: this, __source: {
345
- fileName: _jsxFileName,
346
- lineNumber: 413,
347
- columnNumber: 15
348
- } }, /* @__PURE__ */ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z", __self: this, __source: {
349
- fileName: _jsxFileName,
350
- lineNumber: 419,
351
- columnNumber: 17
352
- } })), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900", __self: this, __source: {
353
- fileName: _jsxFileName,
354
- lineNumber: 426,
355
- columnNumber: 15
356
- } }, "Invalid Data Type"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600", __self: this, __source: {
357
- fileName: _jsxFileName,
358
- lineNumber: 427,
359
- columnNumber: 15
360
- } }, 'The data type "', pluralParam, '" is not recognized.'), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
361
- fileName: _jsxFileName,
362
- lineNumber: 430,
363
- columnNumber: 15
364
- } }, /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
365
- fileName: _jsxFileName,
366
- lineNumber: 431,
367
- columnNumber: 17
368
- } }, "Return to Data Browser"))))));
375
+ }, this) }, void 0, false, {
376
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
377
+ lineNumber: 411,
378
+ columnNumber: 11
379
+ }, this) }, void 0, false, {
380
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
381
+ lineNumber: 410,
382
+ columnNumber: 9
383
+ }, this) }, void 0, false, {
384
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
385
+ lineNumber: 409,
386
+ columnNumber: 7
387
+ }, this);
369
388
  }
370
389
  if (!query) {
371
- return /* @__PURE__ */ React.createElement("div", { className: "min-h-screen bg-gray-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8", __self: this, __source: {
372
- fileName: _jsxFileName,
373
- lineNumber: 447,
374
- columnNumber: 7
375
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-md", __self: this, __source: {
376
- fileName: _jsxFileName,
377
- lineNumber: 448,
378
- columnNumber: 9
379
- } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
380
- fileName: _jsxFileName,
381
- lineNumber: 449,
382
- columnNumber: 11
383
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
384
- fileName: _jsxFileName,
390
+ return /* @__PURE__ */ jsxDEV("div", { className: "min-h-screen bg-gray-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxDEV("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-md", children: /* @__PURE__ */ jsxDEV("div", { className: "bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10", children: /* @__PURE__ */ jsxDEV("div", { className: "text-center", children: [
391
+ /* @__PURE__ */ jsxDEV(
392
+ "svg",
393
+ {
394
+ className: "mx-auto h-12 w-12 text-yellow-400",
395
+ fill: "none",
396
+ stroke: "currentColor",
397
+ viewBox: "0 0 24 24",
398
+ children: /* @__PURE__ */ jsxDEV(
399
+ "path",
400
+ {
401
+ strokeLinecap: "round",
402
+ strokeLinejoin: "round",
403
+ strokeWidth: 2,
404
+ d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.728-.833-2.498 0L5.316 15c-.77.833.192 2.5 1.732 2.5z"
405
+ },
406
+ void 0,
407
+ false,
408
+ {
409
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
410
+ lineNumber: 457,
411
+ columnNumber: 17
412
+ },
413
+ this
414
+ )
415
+ },
416
+ void 0,
417
+ false,
418
+ {
419
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
420
+ lineNumber: 451,
421
+ columnNumber: 15
422
+ },
423
+ this
424
+ ),
425
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900", children: "GraphQL Schema Not Available" }, void 0, false, {
426
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
427
+ lineNumber: 464,
428
+ columnNumber: 15
429
+ }, this),
430
+ /* @__PURE__ */ jsxDEV("p", { className: "mt-2 text-sm text-gray-600", children: [
431
+ 'No GraphQL query found for "',
432
+ model.name,
433
+ '". The admin schema may need to be regenerated.'
434
+ ] }, void 0, true, {
435
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
436
+ lineNumber: 467,
437
+ columnNumber: 15
438
+ }, this),
439
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6 space-y-3", children: [
440
+ /* @__PURE__ */ jsxDEV(
441
+ "button",
442
+ {
443
+ onClick: () => window.location.reload(),
444
+ className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web",
445
+ children: "Reload Page"
446
+ },
447
+ void 0,
448
+ false,
449
+ {
450
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
451
+ lineNumber: 472,
452
+ columnNumber: 17
453
+ },
454
+ this
455
+ ),
456
+ /* @__PURE__ */ jsxDEV(
457
+ Link,
458
+ {
459
+ to: basePath,
460
+ className: "w-full flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web",
461
+ children: "Return to Data Browser"
462
+ },
463
+ void 0,
464
+ false,
465
+ {
466
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
467
+ lineNumber: 478,
468
+ columnNumber: 17
469
+ },
470
+ this
471
+ )
472
+ ] }, void 0, true, {
473
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
474
+ lineNumber: 471,
475
+ columnNumber: 15
476
+ }, this)
477
+ ] }, void 0, true, {
478
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
385
479
  lineNumber: 450,
386
480
  columnNumber: 13
387
- } }, /* @__PURE__ */ React.createElement("svg", { className: "mx-auto h-12 w-12 text-yellow-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", __self: this, __source: {
388
- fileName: _jsxFileName,
389
- lineNumber: 451,
390
- columnNumber: 15
391
- } }, /* @__PURE__ */ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.728-.833-2.498 0L5.316 15c-.77.833.192 2.5 1.732 2.5z", __self: this, __source: {
392
- fileName: _jsxFileName,
393
- lineNumber: 457,
394
- columnNumber: 17
395
- } })), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900", __self: this, __source: {
396
- fileName: _jsxFileName,
397
- lineNumber: 464,
398
- columnNumber: 15
399
- } }, "GraphQL Schema Not Available"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600", __self: this, __source: {
400
- fileName: _jsxFileName,
401
- lineNumber: 467,
402
- columnNumber: 15
403
- } }, 'No GraphQL query found for "', model.name, '". The admin schema may need to be regenerated.'), /* @__PURE__ */ React.createElement("div", { className: "mt-6 space-y-3", __self: this, __source: {
404
- fileName: _jsxFileName,
405
- lineNumber: 471,
406
- columnNumber: 15
407
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => window.location.reload(), className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
408
- fileName: _jsxFileName,
409
- lineNumber: 472,
410
- columnNumber: 17
411
- } }, "Reload Page"), /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "w-full flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
412
- fileName: _jsxFileName,
413
- lineNumber: 478,
414
- columnNumber: 17
415
- } }, "Return to Data Browser"))))));
481
+ }, this) }, void 0, false, {
482
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
483
+ lineNumber: 449,
484
+ columnNumber: 11
485
+ }, this) }, void 0, false, {
486
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
487
+ lineNumber: 448,
488
+ columnNumber: 9
489
+ }, this) }, void 0, false, {
490
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
491
+ lineNumber: 447,
492
+ columnNumber: 7
493
+ }, this);
416
494
  }
417
495
  const createLink = `${basePath}/${kebabCase(model.name)}/create`;
418
- const columnSelector = /* @__PURE__ */ React.createElement("div", { className: "relative", "data-dropdown": "column-selector", __self: this, __source: {
419
- fileName: _jsxFileName,
496
+ const columnSelector = /* @__PURE__ */ jsxDEV("div", { className: "relative", "data-dropdown": "column-selector", children: [
497
+ /* @__PURE__ */ jsxDEV(
498
+ "button",
499
+ {
500
+ onClick: () => setShowColumnSelector(!showColumnSelector),
501
+ className: "inline-flex items-center px-3 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web",
502
+ children: [
503
+ "Columns",
504
+ /* @__PURE__ */ jsxDEV(
505
+ "svg",
506
+ {
507
+ className: "-mr-0.5 ml-2 h-4 w-4",
508
+ xmlns: "http://www.w3.org/2000/svg",
509
+ viewBox: "0 0 20 20",
510
+ fill: "currentColor",
511
+ children: /* @__PURE__ */ jsxDEV(
512
+ "path",
513
+ {
514
+ fillRule: "evenodd",
515
+ d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",
516
+ clipRule: "evenodd"
517
+ },
518
+ void 0,
519
+ false,
520
+ {
521
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
522
+ lineNumber: 509,
523
+ columnNumber: 11
524
+ },
525
+ this
526
+ )
527
+ },
528
+ void 0,
529
+ false,
530
+ {
531
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
532
+ lineNumber: 503,
533
+ columnNumber: 9
534
+ },
535
+ this
536
+ )
537
+ ]
538
+ },
539
+ void 0,
540
+ true,
541
+ {
542
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
543
+ lineNumber: 498,
544
+ columnNumber: 7
545
+ },
546
+ this
547
+ ),
548
+ showColumnSelector && /* @__PURE__ */ jsxDEV("div", { className: "absolute right-0 mt-2 w-80 bg-white rounded-md shadow-lg z-50 border border-gray-200", children: /* @__PURE__ */ jsxDEV("div", { className: "p-4", children: [
549
+ /* @__PURE__ */ jsxDEV("h3", { className: "text-sm font-medium text-gray-900 mb-3", children: "Visible Columns" }, void 0, false, {
550
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
551
+ lineNumber: 520,
552
+ columnNumber: 13
553
+ }, this),
554
+ /* @__PURE__ */ jsxDEV("div", { className: "space-y-2 max-h-64 overflow-y-auto", children: fieldNames.map((field) => /* @__PURE__ */ jsxDEV("label", { className: "flex items-start gap-2 cursor-pointer", children: [
555
+ /* @__PURE__ */ jsxDEV(
556
+ "input",
557
+ {
558
+ type: "checkbox",
559
+ checked: visibleColumns.includes(field),
560
+ onChange: (e) => {
561
+ const newColumns = e.target.checked ? [...visibleColumns, field] : visibleColumns.filter((col) => col !== field);
562
+ setVisibleColumns(newColumns);
563
+ AdminLocalStorage.setColumnVisibility(model.name, newColumns);
564
+ },
565
+ className: "h-4 w-4 mt-0.5 flex-shrink-0 text-green-web focus:ring-green-web border-gray-300 rounded"
566
+ },
567
+ void 0,
568
+ false,
569
+ {
570
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
571
+ lineNumber: 524,
572
+ columnNumber: 19
573
+ },
574
+ this
575
+ ),
576
+ /* @__PURE__ */ jsxDEV("span", { className: "text-sm text-gray-700 leading-5", children: formatFieldName(field) }, void 0, false, {
577
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
578
+ lineNumber: 536,
579
+ columnNumber: 19
580
+ }, this)
581
+ ] }, field, true, {
582
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
583
+ lineNumber: 523,
584
+ columnNumber: 17
585
+ }, this)) }, void 0, false, {
586
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
587
+ lineNumber: 521,
588
+ columnNumber: 13
589
+ }, this),
590
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-3 pt-3 border-t border-gray-200 flex justify-between", children: [
591
+ /* @__PURE__ */ jsxDEV(
592
+ "button",
593
+ {
594
+ onClick: () => {
595
+ setVisibleColumns(fieldNames);
596
+ AdminLocalStorage.setColumnVisibility(model.name, fieldNames);
597
+ },
598
+ className: "text-xs text-green-web hover:text-green-web-800",
599
+ children: "Select All"
600
+ },
601
+ void 0,
602
+ false,
603
+ {
604
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
605
+ lineNumber: 541,
606
+ columnNumber: 15
607
+ },
608
+ this
609
+ ),
610
+ /* @__PURE__ */ jsxDEV(
611
+ "button",
612
+ {
613
+ onClick: () => {
614
+ const defaults = fieldNames.slice(0, 8);
615
+ setVisibleColumns(defaults);
616
+ AdminLocalStorage.setColumnVisibility(model.name, defaults);
617
+ },
618
+ className: "text-xs text-gray-600 hover:text-gray-800",
619
+ children: "Reset to Defaults"
620
+ },
621
+ void 0,
622
+ false,
623
+ {
624
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
625
+ lineNumber: 550,
626
+ columnNumber: 15
627
+ },
628
+ this
629
+ )
630
+ ] }, void 0, true, {
631
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
632
+ lineNumber: 540,
633
+ columnNumber: 13
634
+ }, this)
635
+ ] }, void 0, true, {
636
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
637
+ lineNumber: 519,
638
+ columnNumber: 11
639
+ }, this) }, void 0, false, {
640
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
641
+ lineNumber: 518,
642
+ columnNumber: 9
643
+ }, this)
644
+ ] }, void 0, true, {
645
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
420
646
  lineNumber: 497,
421
647
  columnNumber: 5
422
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => setShowColumnSelector(!showColumnSelector), className: "inline-flex items-center px-3 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
423
- fileName: _jsxFileName,
424
- lineNumber: 498,
425
- columnNumber: 7
426
- } }, "Columns", /* @__PURE__ */ React.createElement("svg", { className: "-mr-0.5 ml-2 h-4 w-4", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", __self: this, __source: {
427
- fileName: _jsxFileName,
428
- lineNumber: 503,
429
- columnNumber: 9
430
- } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd", __self: this, __source: {
431
- fileName: _jsxFileName,
432
- lineNumber: 509,
433
- columnNumber: 11
434
- } }))), showColumnSelector && /* @__PURE__ */ React.createElement("div", { className: "absolute right-0 mt-2 w-80 bg-white rounded-md shadow-lg z-50 border border-gray-200", __self: this, __source: {
435
- fileName: _jsxFileName,
436
- lineNumber: 518,
437
- columnNumber: 9
438
- } }, /* @__PURE__ */ React.createElement("div", { className: "p-4", __self: this, __source: {
439
- fileName: _jsxFileName,
440
- lineNumber: 519,
441
- columnNumber: 11
442
- } }, /* @__PURE__ */ React.createElement("h3", { className: "text-sm font-medium text-gray-900 mb-3", __self: this, __source: {
443
- fileName: _jsxFileName,
444
- lineNumber: 520,
445
- columnNumber: 13
446
- } }, "Visible Columns"), /* @__PURE__ */ React.createElement("div", { className: "space-y-2 max-h-64 overflow-y-auto", __self: this, __source: {
447
- fileName: _jsxFileName,
448
- lineNumber: 521,
449
- columnNumber: 13
450
- } }, fieldNames.map((field) => /* @__PURE__ */ React.createElement("label", { key: field, className: "flex items-start gap-2 cursor-pointer", __self: this, __source: {
451
- fileName: _jsxFileName,
452
- lineNumber: 523,
453
- columnNumber: 17
454
- } }, /* @__PURE__ */ React.createElement("input", { type: "checkbox", checked: visibleColumns.includes(field), onChange: (e) => {
455
- const newColumns = e.target.checked ? [...visibleColumns, field] : visibleColumns.filter((col) => col !== field);
456
- setVisibleColumns(newColumns);
457
- AdminLocalStorage.setColumnVisibility(model.name, newColumns);
458
- }, className: "h-4 w-4 mt-0.5 flex-shrink-0 text-green-web focus:ring-green-web border-gray-300 rounded", __self: this, __source: {
459
- fileName: _jsxFileName,
460
- lineNumber: 524,
461
- columnNumber: 19
462
- } }), /* @__PURE__ */ React.createElement("span", { className: "text-sm text-gray-700 leading-5", __self: this, __source: {
463
- fileName: _jsxFileName,
464
- lineNumber: 536,
465
- columnNumber: 19
466
- } }, formatFieldName(field))))), /* @__PURE__ */ React.createElement("div", { className: "mt-3 pt-3 border-t border-gray-200 flex justify-between", __self: this, __source: {
467
- fileName: _jsxFileName,
468
- lineNumber: 540,
469
- columnNumber: 13
470
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => {
471
- setVisibleColumns(fieldNames);
472
- AdminLocalStorage.setColumnVisibility(model.name, fieldNames);
473
- }, className: "text-xs text-green-web hover:text-green-web-800", __self: this, __source: {
474
- fileName: _jsxFileName,
475
- lineNumber: 541,
476
- columnNumber: 15
477
- } }, "Select All"), /* @__PURE__ */ React.createElement("button", { onClick: () => {
478
- const defaults = fieldNames.slice(0, 8);
479
- setVisibleColumns(defaults);
480
- AdminLocalStorage.setColumnVisibility(model.name, defaults);
481
- }, className: "text-xs text-gray-600 hover:text-gray-800", __self: this, __source: {
482
- fileName: _jsxFileName,
483
- lineNumber: 550,
484
- columnNumber: 15
485
- } }, "Reset to Defaults")))));
486
- const searchFieldSelector = /* @__PURE__ */ React.createElement("div", { className: "relative", "data-dropdown": "search-field-selector", __self: this, __source: {
487
- fileName: _jsxFileName,
648
+ }, this);
649
+ const searchFieldSelector = /* @__PURE__ */ jsxDEV("div", { className: "relative", "data-dropdown": "search-field-selector", children: [
650
+ /* @__PURE__ */ jsxDEV(
651
+ "button",
652
+ {
653
+ onClick: () => setShowSearchFieldSelector(!showSearchFieldSelector),
654
+ className: "h-full px-3 border-l border-gray-300 text-gray-400 hover:text-gray-600 focus:outline-none focus:text-gray-600",
655
+ "aria-label": "Configure search fields",
656
+ children: /* @__PURE__ */ jsxDEV(
657
+ "svg",
658
+ {
659
+ className: "h-4 w-4",
660
+ xmlns: "http://www.w3.org/2000/svg",
661
+ viewBox: "0 0 20 20",
662
+ fill: "currentColor",
663
+ children: /* @__PURE__ */ jsxDEV(
664
+ "path",
665
+ {
666
+ fillRule: "evenodd",
667
+ d: "M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11.707 4.707a1 1 0 00-1.414-1.414L10 9.586 8.707 8.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
668
+ clipRule: "evenodd"
669
+ },
670
+ void 0,
671
+ false,
672
+ {
673
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
674
+ lineNumber: 581,
675
+ columnNumber: 11
676
+ },
677
+ this
678
+ )
679
+ },
680
+ void 0,
681
+ false,
682
+ {
683
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
684
+ lineNumber: 575,
685
+ columnNumber: 9
686
+ },
687
+ this
688
+ )
689
+ },
690
+ void 0,
691
+ false,
692
+ {
693
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
694
+ lineNumber: 570,
695
+ columnNumber: 7
696
+ },
697
+ this
698
+ ),
699
+ showSearchFieldSelector && /* @__PURE__ */ jsxDEV("div", { className: "absolute right-0 mt-2 w-72 bg-white rounded-md shadow-lg z-50 border border-gray-200", children: /* @__PURE__ */ jsxDEV("div", { className: "p-4", children: [
700
+ /* @__PURE__ */ jsxDEV("h3", { className: "text-sm font-medium text-gray-900 mb-3", children: "Search Fields" }, void 0, false, {
701
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
702
+ lineNumber: 592,
703
+ columnNumber: 13
704
+ }, this),
705
+ searchableFieldNames.length > 0 ? /* @__PURE__ */ jsxDEV(Fragment, { children: [
706
+ /* @__PURE__ */ jsxDEV("div", { className: "space-y-2 max-h-48 overflow-y-auto", children: searchableFieldNames.map((field) => /* @__PURE__ */ jsxDEV("label", { className: "flex items-start gap-2 cursor-pointer", children: [
707
+ /* @__PURE__ */ jsxDEV(
708
+ "input",
709
+ {
710
+ type: "checkbox",
711
+ checked: searchFields.includes(field),
712
+ onChange: (e) => {
713
+ const newFields = e.target.checked ? [...searchFields, field] : searchFields.filter((f) => f !== field);
714
+ setSearchFields(newFields);
715
+ AdminLocalStorage.setSearchFields(model.name, newFields);
716
+ },
717
+ className: "h-4 w-4 mt-0.5 flex-shrink-0 text-green-web focus:ring-green-web border-gray-300 rounded"
718
+ },
719
+ void 0,
720
+ false,
721
+ {
722
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
723
+ lineNumber: 598,
724
+ columnNumber: 23
725
+ },
726
+ this
727
+ ),
728
+ /* @__PURE__ */ jsxDEV("span", { className: "text-sm text-gray-700 leading-5", children: formatFieldName(field) }, void 0, false, {
729
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
730
+ lineNumber: 610,
731
+ columnNumber: 23
732
+ }, this)
733
+ ] }, field, true, {
734
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
735
+ lineNumber: 597,
736
+ columnNumber: 21
737
+ }, this)) }, void 0, false, {
738
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
739
+ lineNumber: 595,
740
+ columnNumber: 17
741
+ }, this),
742
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-3 pt-3 border-t border-gray-200 flex justify-between", children: [
743
+ /* @__PURE__ */ jsxDEV(
744
+ "button",
745
+ {
746
+ onClick: () => {
747
+ setSearchFields(searchableFieldNames);
748
+ AdminLocalStorage.setSearchFields(model.name, searchableFieldNames);
749
+ },
750
+ className: "text-xs text-green-web hover:text-green-web-800 mr-3",
751
+ children: "Select All"
752
+ },
753
+ void 0,
754
+ false,
755
+ {
756
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
757
+ lineNumber: 617,
758
+ columnNumber: 19
759
+ },
760
+ this
761
+ ),
762
+ /* @__PURE__ */ jsxDEV(
763
+ "button",
764
+ {
765
+ onClick: () => {
766
+ const defaults = getDefaultSearchFields(searchableFieldNames);
767
+ setSearchFields(defaults);
768
+ AdminLocalStorage.setSearchFields(model.name, defaults);
769
+ },
770
+ className: "text-xs text-gray-600 hover:text-gray-800",
771
+ children: "Reset to Defaults"
772
+ },
773
+ void 0,
774
+ false,
775
+ {
776
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
777
+ lineNumber: 626,
778
+ columnNumber: 19
779
+ },
780
+ this
781
+ )
782
+ ] }, void 0, true, {
783
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
784
+ lineNumber: 616,
785
+ columnNumber: 17
786
+ }, this)
787
+ ] }, void 0, true, {
788
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
789
+ lineNumber: 594,
790
+ columnNumber: 15
791
+ }, this) : /* @__PURE__ */ jsxDEV("div", { className: "text-sm text-gray-500", children: "No searchable text fields available" }, void 0, false, {
792
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
793
+ lineNumber: 639,
794
+ columnNumber: 15
795
+ }, this)
796
+ ] }, void 0, true, {
797
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
798
+ lineNumber: 591,
799
+ columnNumber: 11
800
+ }, this) }, void 0, false, {
801
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
802
+ lineNumber: 590,
803
+ columnNumber: 9
804
+ }, this)
805
+ ] }, void 0, true, {
806
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
488
807
  lineNumber: 569,
489
808
  columnNumber: 5
490
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => setShowSearchFieldSelector(!showSearchFieldSelector), className: "h-full px-3 border-l border-gray-300 text-gray-400 hover:text-gray-600 focus:outline-none focus:text-gray-600", "aria-label": "Configure search fields", __self: this, __source: {
491
- fileName: _jsxFileName,
492
- lineNumber: 570,
493
- columnNumber: 7
494
- } }, /* @__PURE__ */ React.createElement("svg", { className: "h-4 w-4", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", __self: this, __source: {
495
- fileName: _jsxFileName,
496
- lineNumber: 575,
497
- columnNumber: 9
498
- } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11.707 4.707a1 1 0 00-1.414-1.414L10 9.586 8.707 8.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", clipRule: "evenodd", __self: this, __source: {
499
- fileName: _jsxFileName,
500
- lineNumber: 581,
501
- columnNumber: 11
502
- } }))), showSearchFieldSelector && /* @__PURE__ */ React.createElement("div", { className: "absolute right-0 mt-2 w-72 bg-white rounded-md shadow-lg z-50 border border-gray-200", __self: this, __source: {
503
- fileName: _jsxFileName,
504
- lineNumber: 590,
505
- columnNumber: 9
506
- } }, /* @__PURE__ */ React.createElement("div", { className: "p-4", __self: this, __source: {
507
- fileName: _jsxFileName,
508
- lineNumber: 591,
509
- columnNumber: 11
510
- } }, /* @__PURE__ */ React.createElement("h3", { className: "text-sm font-medium text-gray-900 mb-3", __self: this, __source: {
511
- fileName: _jsxFileName,
512
- lineNumber: 592,
513
- columnNumber: 13
514
- } }, "Search Fields"), searchableFieldNames.length > 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "space-y-2 max-h-48 overflow-y-auto", __self: this, __source: {
515
- fileName: _jsxFileName,
516
- lineNumber: 595,
517
- columnNumber: 17
518
- } }, searchableFieldNames.map((field) => /* @__PURE__ */ React.createElement("label", { key: field, className: "flex items-start gap-2 cursor-pointer", __self: this, __source: {
519
- fileName: _jsxFileName,
520
- lineNumber: 597,
521
- columnNumber: 21
522
- } }, /* @__PURE__ */ React.createElement("input", { type: "checkbox", checked: searchFields.includes(field), onChange: (e) => {
523
- const newFields = e.target.checked ? [...searchFields, field] : searchFields.filter((f) => f !== field);
524
- setSearchFields(newFields);
525
- AdminLocalStorage.setSearchFields(model.name, newFields);
526
- }, className: "h-4 w-4 mt-0.5 flex-shrink-0 text-green-web focus:ring-green-web border-gray-300 rounded", __self: this, __source: {
527
- fileName: _jsxFileName,
528
- lineNumber: 598,
529
- columnNumber: 23
530
- } }), /* @__PURE__ */ React.createElement("span", { className: "text-sm text-gray-700 leading-5", __self: this, __source: {
531
- fileName: _jsxFileName,
532
- lineNumber: 610,
533
- columnNumber: 23
534
- } }, formatFieldName(field))))), /* @__PURE__ */ React.createElement("div", { className: "mt-3 pt-3 border-t border-gray-200 flex justify-between", __self: this, __source: {
535
- fileName: _jsxFileName,
536
- lineNumber: 616,
537
- columnNumber: 17
538
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => {
539
- setSearchFields(searchableFieldNames);
540
- AdminLocalStorage.setSearchFields(model.name, searchableFieldNames);
541
- }, className: "text-xs text-green-web hover:text-green-web-800 mr-3", __self: this, __source: {
542
- fileName: _jsxFileName,
543
- lineNumber: 617,
544
- columnNumber: 19
545
- } }, "Select All"), /* @__PURE__ */ React.createElement("button", { onClick: () => {
546
- const defaults = getDefaultSearchFields(searchableFieldNames);
547
- setSearchFields(defaults);
548
- AdminLocalStorage.setSearchFields(model.name, defaults);
549
- }, className: "text-xs text-gray-600 hover:text-gray-800", __self: this, __source: {
550
- fileName: _jsxFileName,
551
- lineNumber: 626,
552
- columnNumber: 19
553
- } }, "Reset to Defaults"))) : /* @__PURE__ */ React.createElement("div", { className: "text-sm text-gray-500", __self: this, __source: {
554
- fileName: _jsxFileName,
555
- lineNumber: 639,
556
- columnNumber: 15
557
- } }, "No searchable text fields available"))));
558
- const filterPanel = showFilters && /* @__PURE__ */ React.createElement("div", { className: "mb-4 bg-gray-50 border border-gray-200 rounded-lg p-4", __self: this, __source: {
559
- fileName: _jsxFileName,
560
- lineNumber: 649,
561
- columnNumber: 5
562
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between mb-3", __self: this, __source: {
563
- fileName: _jsxFileName,
564
- lineNumber: 650,
565
- columnNumber: 7
566
- } }, /* @__PURE__ */ React.createElement("h3", { className: "text-sm font-medium text-gray-900", __self: this, __source: {
567
- fileName: _jsxFileName,
568
- lineNumber: 651,
569
- columnNumber: 9
570
- } }, "Filters"), /* @__PURE__ */ React.createElement("div", { className: "flex items-center space-x-2", __self: this, __source: {
571
- fileName: _jsxFileName,
572
- lineNumber: 652,
573
- columnNumber: 9
574
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => {
575
- setFilters({});
576
- dispatch({
577
- type: "RESET_PAGINATION"
578
- });
579
- }, className: "text-xs text-gray-600 hover:text-gray-800", __self: this, __source: {
580
- fileName: _jsxFileName,
581
- lineNumber: 653,
582
- columnNumber: 11
583
- } }, "Clear All"), /* @__PURE__ */ React.createElement("button", { onClick: () => setShowFilters(false), className: "text-gray-400 hover:text-gray-600", __self: this, __source: {
584
- fileName: _jsxFileName,
585
- lineNumber: 662,
586
- columnNumber: 11
587
- } }, /* @__PURE__ */ React.createElement("svg", { className: "h-5 w-5", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", __self: this, __source: {
588
- fileName: _jsxFileName,
589
- lineNumber: 666,
590
- columnNumber: 13
591
- } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd", __self: this, __source: {
592
- fileName: _jsxFileName,
593
- lineNumber: 672,
594
- columnNumber: 15
595
- } }))))), /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", __self: this, __source: {
596
- fileName: _jsxFileName,
597
- lineNumber: 682,
598
- columnNumber: 7
599
- } }, filterableFieldNames.map((fieldName) => {
600
- const field = model.fields.find((f) => f.name === fieldName);
601
- if (!field) return null;
602
- const currentValue = filters[fieldName];
603
- const handleChange = (value) => {
604
- const newFilters = {
605
- ...filters
809
+ }, this);
810
+ const filterPanel = showFilters && /* @__PURE__ */ jsxDEV("div", { className: "mb-4 bg-gray-50 border border-gray-200 rounded-lg p-4", children: [
811
+ /* @__PURE__ */ jsxDEV("div", { className: "flex items-center justify-between mb-3", children: [
812
+ /* @__PURE__ */ jsxDEV("h3", { className: "text-sm font-medium text-gray-900", children: "Filters" }, void 0, false, {
813
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
814
+ lineNumber: 651,
815
+ columnNumber: 9
816
+ }, this),
817
+ /* @__PURE__ */ jsxDEV("div", { className: "flex items-center space-x-2", children: [
818
+ /* @__PURE__ */ jsxDEV(
819
+ "button",
820
+ {
821
+ onClick: () => {
822
+ setFilters({});
823
+ dispatch({ type: "RESET_PAGINATION" });
824
+ },
825
+ className: "text-xs text-gray-600 hover:text-gray-800",
826
+ children: "Clear All"
827
+ },
828
+ void 0,
829
+ false,
830
+ {
831
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
832
+ lineNumber: 653,
833
+ columnNumber: 11
834
+ },
835
+ this
836
+ ),
837
+ /* @__PURE__ */ jsxDEV(
838
+ "button",
839
+ {
840
+ onClick: () => setShowFilters(false),
841
+ className: "text-gray-400 hover:text-gray-600",
842
+ children: /* @__PURE__ */ jsxDEV(
843
+ "svg",
844
+ {
845
+ className: "h-5 w-5",
846
+ xmlns: "http://www.w3.org/2000/svg",
847
+ viewBox: "0 0 20 20",
848
+ fill: "currentColor",
849
+ children: /* @__PURE__ */ jsxDEV(
850
+ "path",
851
+ {
852
+ fillRule: "evenodd",
853
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
854
+ clipRule: "evenodd"
855
+ },
856
+ void 0,
857
+ false,
858
+ {
859
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
860
+ lineNumber: 672,
861
+ columnNumber: 15
862
+ },
863
+ this
864
+ )
865
+ },
866
+ void 0,
867
+ false,
868
+ {
869
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
870
+ lineNumber: 666,
871
+ columnNumber: 13
872
+ },
873
+ this
874
+ )
875
+ },
876
+ void 0,
877
+ false,
878
+ {
879
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
880
+ lineNumber: 662,
881
+ columnNumber: 11
882
+ },
883
+ this
884
+ )
885
+ ] }, void 0, true, {
886
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
887
+ lineNumber: 652,
888
+ columnNumber: 9
889
+ }, this)
890
+ ] }, void 0, true, {
891
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
892
+ lineNumber: 650,
893
+ columnNumber: 7
894
+ }, this),
895
+ /* @__PURE__ */ jsxDEV("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", children: filterableFieldNames.map((fieldName) => {
896
+ const field = model.fields.find((f) => f.name === fieldName);
897
+ if (!field) return null;
898
+ const currentValue = filters[fieldName];
899
+ const handleChange = (value) => {
900
+ const newFilters = { ...filters };
901
+ if (value === void 0 || value === null || value === "") {
902
+ delete newFilters[fieldName];
903
+ } else {
904
+ newFilters[fieldName] = value;
905
+ }
906
+ setFilters(newFilters);
907
+ dispatch({ type: "RESET_PAGINATION" });
606
908
  };
607
- if (value === void 0 || value === null || value === "") {
608
- delete newFilters[fieldName];
609
- } else {
610
- newFilters[fieldName] = value;
909
+ if (field.relationName && !field.isList) {
910
+ return /* @__PURE__ */ jsxDEV(
911
+ RelationFilterField,
912
+ {
913
+ fieldName,
914
+ relatedModelName: field.type,
915
+ currentValue,
916
+ onChange: handleChange
917
+ },
918
+ fieldName,
919
+ false,
920
+ {
921
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
922
+ lineNumber: 702,
923
+ columnNumber: 15
924
+ },
925
+ this
926
+ );
611
927
  }
612
- setFilters(newFilters);
613
- dispatch({
614
- type: "RESET_PAGINATION"
615
- });
616
- };
617
- if (field.relationName && !field.isList) {
618
- return /* @__PURE__ */ React.createElement(RelationFilterField, { key: fieldName, fieldName, relatedModelName: field.type, currentValue, onChange: handleChange, __self: this, __source: {
619
- fileName: _jsxFileName,
620
- lineNumber: 702,
621
- columnNumber: 15
622
- } });
623
- }
624
- if (field.type.toLowerCase() === "datetime" || field.type.toLowerCase() === "date") {
625
- return /* @__PURE__ */ React.createElement(DateRangeFilter, { key: fieldName, fieldName, currentValue, onChange: handleChange, __self: this, __source: {
626
- fileName: _jsxFileName,
627
- lineNumber: 715,
628
- columnNumber: 15
629
- } });
630
- }
631
- if (["int", "bigint", "float", "decimal"].includes(field.type.toLowerCase())) {
632
- return /* @__PURE__ */ React.createElement(NumberRangeFilter, { key: fieldName, fieldName, fieldType: field.type.toLowerCase(), currentValue, onChange: handleChange, __self: this, __source: {
633
- fileName: _jsxFileName,
634
- lineNumber: 727,
635
- columnNumber: 15
636
- } });
637
- }
638
- if (field.kind === "enum") {
639
- const enumValues = getEnumValues(field.type);
640
- if (enumValues) {
641
- return /* @__PURE__ */ React.createElement("div", { key: fieldName, className: "space-y-1", __self: this, __source: {
642
- fileName: _jsxFileName,
643
- lineNumber: 742,
644
- columnNumber: 17
645
- } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
646
- fileName: _jsxFileName,
647
- lineNumber: 743,
648
- columnNumber: 19
649
- } }, formatFieldName(fieldName)), /* @__PURE__ */ React.createElement("select", { value: typeof currentValue === "string" ? currentValue : "", onChange: (e) => handleChange(e.target.value || void 0), className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm", __self: this, __source: {
650
- fileName: _jsxFileName,
651
- lineNumber: 746,
652
- columnNumber: 19
653
- } }, /* @__PURE__ */ React.createElement("option", { value: "", __self: this, __source: {
654
- fileName: _jsxFileName,
655
- lineNumber: 751,
656
- columnNumber: 21
657
- } }, "All"), enumValues.map((val) => /* @__PURE__ */ React.createElement("option", { key: val, value: val, __self: this, __source: {
658
- fileName: _jsxFileName,
659
- lineNumber: 753,
660
- columnNumber: 23
661
- } }, val))));
928
+ if (field.type.toLowerCase() === "datetime" || field.type.toLowerCase() === "date") {
929
+ return /* @__PURE__ */ jsxDEV(
930
+ DateRangeFilter,
931
+ {
932
+ fieldName,
933
+ currentValue,
934
+ onChange: handleChange
935
+ },
936
+ fieldName,
937
+ false,
938
+ {
939
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
940
+ lineNumber: 715,
941
+ columnNumber: 15
942
+ },
943
+ this
944
+ );
662
945
  }
663
- }
664
- if (field.type.toLowerCase() === "boolean") {
665
- return /* @__PURE__ */ React.createElement("div", { key: fieldName, className: "space-y-1", __self: this, __source: {
666
- fileName: _jsxFileName,
667
- lineNumber: 766,
668
- columnNumber: 15
669
- } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
670
- fileName: _jsxFileName,
671
- lineNumber: 767,
672
- columnNumber: 17
673
- } }, formatFieldName(fieldName)), /* @__PURE__ */ React.createElement("select", { value: currentValue === void 0 || currentValue === null ? "" : currentValue.toString(), onChange: (e) => {
674
- const value = e.target.value;
675
- handleChange(value === "" ? void 0 : value === "true");
676
- }, className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm", __self: this, __source: {
677
- fileName: _jsxFileName,
678
- lineNumber: 770,
679
- columnNumber: 17
680
- } }, /* @__PURE__ */ React.createElement("option", { value: "", __self: this, __source: {
681
- fileName: _jsxFileName,
682
- lineNumber: 778,
683
- columnNumber: 19
684
- } }, "All"), /* @__PURE__ */ React.createElement("option", { value: "true", __self: this, __source: {
685
- fileName: _jsxFileName,
686
- lineNumber: 779,
687
- columnNumber: 19
688
- } }, "Yes"), /* @__PURE__ */ React.createElement("option", { value: "false", __self: this, __source: {
689
- fileName: _jsxFileName,
690
- lineNumber: 780,
691
- columnNumber: 19
692
- } }, "No")));
693
- }
694
- return /* @__PURE__ */ React.createElement("div", { key: fieldName, className: "space-y-1", __self: this, __source: {
695
- fileName: _jsxFileName,
696
- lineNumber: 788,
697
- columnNumber: 13
698
- } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
699
- fileName: _jsxFileName,
700
- lineNumber: 789,
701
- columnNumber: 15
702
- } }, formatFieldName(fieldName)), /* @__PURE__ */ React.createElement("input", { type: "text", value: typeof currentValue === "string" ? currentValue : "", onChange: (e) => handleChange(e.target.value || void 0), placeholder: `Filter by ${formatFieldName(fieldName).toLowerCase()}...`, className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm", __self: this, __source: {
703
- fileName: _jsxFileName,
704
- lineNumber: 792,
705
- columnNumber: 15
706
- } }));
707
- })));
708
- const searchFilter = /* @__PURE__ */ React.createElement("div", { className: "mb-4 flex items-center justify-between", __self: this, __source: {
709
- fileName: _jsxFileName,
946
+ if (["int", "bigint", "float", "decimal"].includes(field.type.toLowerCase())) {
947
+ return /* @__PURE__ */ jsxDEV(
948
+ NumberRangeFilter,
949
+ {
950
+ fieldName,
951
+ fieldType: field.type.toLowerCase(),
952
+ currentValue,
953
+ onChange: handleChange
954
+ },
955
+ fieldName,
956
+ false,
957
+ {
958
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
959
+ lineNumber: 727,
960
+ columnNumber: 15
961
+ },
962
+ this
963
+ );
964
+ }
965
+ if (field.kind === "enum") {
966
+ const enumValues = getEnumValues(field.type);
967
+ if (enumValues) {
968
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", children: [
969
+ /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: formatFieldName(fieldName) }, void 0, false, {
970
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
971
+ lineNumber: 743,
972
+ columnNumber: 19
973
+ }, this),
974
+ /* @__PURE__ */ jsxDEV(
975
+ "select",
976
+ {
977
+ value: typeof currentValue === "string" ? currentValue : "",
978
+ onChange: (e) => handleChange(e.target.value || void 0),
979
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm",
980
+ children: [
981
+ /* @__PURE__ */ jsxDEV("option", { value: "", children: "All" }, void 0, false, {
982
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
983
+ lineNumber: 751,
984
+ columnNumber: 21
985
+ }, this),
986
+ enumValues.map((val) => /* @__PURE__ */ jsxDEV("option", { value: val, children: val }, val, false, {
987
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
988
+ lineNumber: 753,
989
+ columnNumber: 23
990
+ }, this))
991
+ ]
992
+ },
993
+ void 0,
994
+ true,
995
+ {
996
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
997
+ lineNumber: 746,
998
+ columnNumber: 19
999
+ },
1000
+ this
1001
+ )
1002
+ ] }, fieldName, true, {
1003
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1004
+ lineNumber: 742,
1005
+ columnNumber: 17
1006
+ }, this);
1007
+ }
1008
+ }
1009
+ if (field.type.toLowerCase() === "boolean") {
1010
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", children: [
1011
+ /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: formatFieldName(fieldName) }, void 0, false, {
1012
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1013
+ lineNumber: 767,
1014
+ columnNumber: 17
1015
+ }, this),
1016
+ /* @__PURE__ */ jsxDEV(
1017
+ "select",
1018
+ {
1019
+ value: currentValue === void 0 || currentValue === null ? "" : currentValue.toString(),
1020
+ onChange: (e) => {
1021
+ const value = e.target.value;
1022
+ handleChange(value === "" ? void 0 : value === "true");
1023
+ },
1024
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm",
1025
+ children: [
1026
+ /* @__PURE__ */ jsxDEV("option", { value: "", children: "All" }, void 0, false, {
1027
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1028
+ lineNumber: 778,
1029
+ columnNumber: 19
1030
+ }, this),
1031
+ /* @__PURE__ */ jsxDEV("option", { value: "true", children: "Yes" }, void 0, false, {
1032
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1033
+ lineNumber: 779,
1034
+ columnNumber: 19
1035
+ }, this),
1036
+ /* @__PURE__ */ jsxDEV("option", { value: "false", children: "No" }, void 0, false, {
1037
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1038
+ lineNumber: 780,
1039
+ columnNumber: 19
1040
+ }, this)
1041
+ ]
1042
+ },
1043
+ void 0,
1044
+ true,
1045
+ {
1046
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1047
+ lineNumber: 770,
1048
+ columnNumber: 17
1049
+ },
1050
+ this
1051
+ )
1052
+ ] }, fieldName, true, {
1053
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1054
+ lineNumber: 766,
1055
+ columnNumber: 15
1056
+ }, this);
1057
+ }
1058
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", children: [
1059
+ /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: formatFieldName(fieldName) }, void 0, false, {
1060
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1061
+ lineNumber: 789,
1062
+ columnNumber: 15
1063
+ }, this),
1064
+ /* @__PURE__ */ jsxDEV(
1065
+ "input",
1066
+ {
1067
+ type: "text",
1068
+ value: typeof currentValue === "string" ? currentValue : "",
1069
+ onChange: (e) => handleChange(e.target.value || void 0),
1070
+ placeholder: `Filter by ${formatFieldName(fieldName).toLowerCase()}...`,
1071
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm"
1072
+ },
1073
+ void 0,
1074
+ false,
1075
+ {
1076
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1077
+ lineNumber: 792,
1078
+ columnNumber: 15
1079
+ },
1080
+ this
1081
+ )
1082
+ ] }, fieldName, true, {
1083
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1084
+ lineNumber: 788,
1085
+ columnNumber: 13
1086
+ }, this);
1087
+ }) }, void 0, false, {
1088
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1089
+ lineNumber: 682,
1090
+ columnNumber: 7
1091
+ }, this)
1092
+ ] }, void 0, true, {
1093
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1094
+ lineNumber: 649,
1095
+ columnNumber: 5
1096
+ }, this);
1097
+ const searchFilter = /* @__PURE__ */ jsxDEV("div", { className: "mb-4 flex items-center justify-between", children: [
1098
+ /* @__PURE__ */ jsxDEV("div", { className: "flex-1 max-w-lg", children: [
1099
+ /* @__PURE__ */ jsxDEV("label", { htmlFor: "search", className: "sr-only", children: "Search" }, void 0, false, {
1100
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1101
+ lineNumber: 809,
1102
+ columnNumber: 9
1103
+ }, this),
1104
+ /* @__PURE__ */ jsxDEV("div", { className: "relative", children: [
1105
+ /* @__PURE__ */ jsxDEV("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none", children: loading && search !== debouncedSearch ? /* @__PURE__ */ jsxDEV(
1106
+ "svg",
1107
+ {
1108
+ className: "animate-spin h-5 w-5 text-gray-400",
1109
+ xmlns: "http://www.w3.org/2000/svg",
1110
+ fill: "none",
1111
+ viewBox: "0 0 24 24",
1112
+ children: [
1113
+ /* @__PURE__ */ jsxDEV(
1114
+ "circle",
1115
+ {
1116
+ className: "opacity-25",
1117
+ cx: "12",
1118
+ cy: "12",
1119
+ r: "10",
1120
+ stroke: "currentColor",
1121
+ strokeWidth: "4"
1122
+ },
1123
+ void 0,
1124
+ false,
1125
+ {
1126
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1127
+ lineNumber: 821,
1128
+ columnNumber: 17
1129
+ },
1130
+ this
1131
+ ),
1132
+ /* @__PURE__ */ jsxDEV(
1133
+ "path",
1134
+ {
1135
+ className: "opacity-75",
1136
+ fill: "currentColor",
1137
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
1138
+ },
1139
+ void 0,
1140
+ false,
1141
+ {
1142
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1143
+ lineNumber: 829,
1144
+ columnNumber: 17
1145
+ },
1146
+ this
1147
+ )
1148
+ ]
1149
+ },
1150
+ void 0,
1151
+ true,
1152
+ {
1153
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1154
+ lineNumber: 815,
1155
+ columnNumber: 15
1156
+ },
1157
+ this
1158
+ ) : /* @__PURE__ */ jsxDEV(
1159
+ "svg",
1160
+ {
1161
+ className: "h-5 w-5 text-gray-400",
1162
+ xmlns: "http://www.w3.org/2000/svg",
1163
+ viewBox: "0 0 20 20",
1164
+ fill: "currentColor",
1165
+ "aria-hidden": "true",
1166
+ children: /* @__PURE__ */ jsxDEV(
1167
+ "path",
1168
+ {
1169
+ fillRule: "evenodd",
1170
+ d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
1171
+ clipRule: "evenodd"
1172
+ },
1173
+ void 0,
1174
+ false,
1175
+ {
1176
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1177
+ lineNumber: 843,
1178
+ columnNumber: 17
1179
+ },
1180
+ this
1181
+ )
1182
+ },
1183
+ void 0,
1184
+ false,
1185
+ {
1186
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1187
+ lineNumber: 836,
1188
+ columnNumber: 15
1189
+ },
1190
+ this
1191
+ ) }, void 0, false, {
1192
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1193
+ lineNumber: 813,
1194
+ columnNumber: 11
1195
+ }, this),
1196
+ /* @__PURE__ */ jsxDEV(
1197
+ "input",
1198
+ {
1199
+ id: "search",
1200
+ name: "search",
1201
+ className: "block w-full pl-10 pr-12 py-2 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-1 focus:ring-green-web focus:border-green-web sm:text-sm",
1202
+ placeholder: `Search ${searchFields.length > 0 ? searchFields.map((field) => field.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/^./, (str) => str.toUpperCase())).join(", ") : getPluralName(model.name).toLowerCase()}...`,
1203
+ type: "search",
1204
+ value: state.search || "",
1205
+ onChange: (e) => dispatch({ type: "SET_SEARCH", payload: e.target.value })
1206
+ },
1207
+ void 0,
1208
+ false,
1209
+ {
1210
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1211
+ lineNumber: 851,
1212
+ columnNumber: 11
1213
+ },
1214
+ this
1215
+ ),
1216
+ searchableFieldNames.length > 0 && /* @__PURE__ */ jsxDEV("div", { className: "absolute inset-y-0 right-0 flex items-center", children: searchFieldSelector }, void 0, false, {
1217
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1218
+ lineNumber: 861,
1219
+ columnNumber: 13
1220
+ }, this)
1221
+ ] }, void 0, true, {
1222
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1223
+ lineNumber: 812,
1224
+ columnNumber: 9
1225
+ }, this)
1226
+ ] }, void 0, true, {
1227
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1228
+ lineNumber: 808,
1229
+ columnNumber: 7
1230
+ }, this),
1231
+ /* @__PURE__ */ jsxDEV("div", { className: "ml-4 flex space-x-2", children: [
1232
+ /* @__PURE__ */ jsxDEV(
1233
+ "button",
1234
+ {
1235
+ onClick: () => setShowFilters(!showFilters),
1236
+ className: `inline-flex items-center px-3 py-2 border text-sm font-medium rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web ${showFilters || Object.keys(filters).length > 0 ? "border-green-web text-green-web bg-green-50 hover:bg-green-100" : "border-gray-300 text-gray-700 bg-white hover:bg-gray-50"}`,
1237
+ children: [
1238
+ /* @__PURE__ */ jsxDEV("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxDEV(
1239
+ "path",
1240
+ {
1241
+ strokeLinecap: "round",
1242
+ strokeLinejoin: "round",
1243
+ strokeWidth: 2,
1244
+ d: "M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"
1245
+ },
1246
+ void 0,
1247
+ false,
1248
+ {
1249
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1250
+ lineNumber: 877,
1251
+ columnNumber: 13
1252
+ },
1253
+ this
1254
+ ) }, void 0, false, {
1255
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1256
+ lineNumber: 876,
1257
+ columnNumber: 11
1258
+ }, this),
1259
+ "Filters",
1260
+ Object.keys(filters).length > 0 && /* @__PURE__ */ jsxDEV("span", { className: "ml-1 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-white bg-green-web rounded-full", children: Object.keys(filters).length }, void 0, false, {
1261
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1262
+ lineNumber: 886,
1263
+ columnNumber: 13
1264
+ }, this)
1265
+ ]
1266
+ },
1267
+ void 0,
1268
+ true,
1269
+ {
1270
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1271
+ lineNumber: 868,
1272
+ columnNumber: 9
1273
+ },
1274
+ this
1275
+ ),
1276
+ columnSelector,
1277
+ /* @__PURE__ */ jsxDEV(
1278
+ Link,
1279
+ {
1280
+ to: createLink,
1281
+ className: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-600",
1282
+ children: "Create New"
1283
+ },
1284
+ void 0,
1285
+ false,
1286
+ {
1287
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1288
+ lineNumber: 892,
1289
+ columnNumber: 9
1290
+ },
1291
+ this
1292
+ )
1293
+ ] }, void 0, true, {
1294
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1295
+ lineNumber: 867,
1296
+ columnNumber: 7
1297
+ }, this)
1298
+ ] }, void 0, true, {
1299
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
710
1300
  lineNumber: 807,
711
1301
  columnNumber: 5
712
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex-1 max-w-lg", __self: this, __source: {
713
- fileName: _jsxFileName,
714
- lineNumber: 808,
715
- columnNumber: 7
716
- } }, /* @__PURE__ */ React.createElement("label", { htmlFor: "search", className: "sr-only", __self: this, __source: {
717
- fileName: _jsxFileName,
718
- lineNumber: 809,
719
- columnNumber: 9
720
- } }, "Search"), /* @__PURE__ */ React.createElement("div", { className: "relative", __self: this, __source: {
721
- fileName: _jsxFileName,
722
- lineNumber: 812,
723
- columnNumber: 9
724
- } }, /* @__PURE__ */ React.createElement("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none", __self: this, __source: {
725
- fileName: _jsxFileName,
726
- lineNumber: 813,
727
- columnNumber: 11
728
- } }, loading && search !== debouncedSearch ? /* @__PURE__ */ React.createElement("svg", { className: "animate-spin h-5 w-5 text-gray-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", __self: this, __source: {
729
- fileName: _jsxFileName,
730
- lineNumber: 815,
731
- columnNumber: 15
732
- } }, /* @__PURE__ */ React.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4", __self: this, __source: {
733
- fileName: _jsxFileName,
734
- lineNumber: 821,
735
- columnNumber: 17
736
- } }), /* @__PURE__ */ React.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", __self: this, __source: {
737
- fileName: _jsxFileName,
738
- lineNumber: 829,
739
- columnNumber: 17
740
- } })) : /* @__PURE__ */ React.createElement("svg", { className: "h-5 w-5 text-gray-400", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", __self: this, __source: {
741
- fileName: _jsxFileName,
742
- lineNumber: 836,
743
- columnNumber: 15
744
- } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z", clipRule: "evenodd", __self: this, __source: {
745
- fileName: _jsxFileName,
746
- lineNumber: 843,
747
- columnNumber: 17
748
- } }))), /* @__PURE__ */ React.createElement("input", { id: "search", name: "search", className: "block w-full pl-10 pr-12 py-2 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-1 focus:ring-green-web focus:border-green-web sm:text-sm", placeholder: `Search ${searchFields.length > 0 ? searchFields.map((field) => field.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/^./, (str) => str.toUpperCase())).join(", ") : getPluralName(model.name).toLowerCase()}...`, type: "search", value: state.search || "", onChange: (e) => dispatch({
749
- type: "SET_SEARCH",
750
- payload: e.target.value
751
- }), __self: this, __source: {
752
- fileName: _jsxFileName,
753
- lineNumber: 851,
754
- columnNumber: 11
755
- } }), searchableFieldNames.length > 0 && /* @__PURE__ */ React.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center", __self: this, __source: {
756
- fileName: _jsxFileName,
757
- lineNumber: 861,
758
- columnNumber: 13
759
- } }, searchFieldSelector))), /* @__PURE__ */ React.createElement("div", { className: "ml-4 flex space-x-2", __self: this, __source: {
760
- fileName: _jsxFileName,
761
- lineNumber: 867,
762
- columnNumber: 7
763
- } }, /* @__PURE__ */ React.createElement("button", { onClick: () => setShowFilters(!showFilters), className: `inline-flex items-center px-3 py-2 border text-sm font-medium rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web ${showFilters || Object.keys(filters).length > 0 ? "border-green-web text-green-web bg-green-50 hover:bg-green-100" : "border-gray-300 text-gray-700 bg-white hover:bg-gray-50"}`, __self: this, __source: {
764
- fileName: _jsxFileName,
765
- lineNumber: 868,
766
- columnNumber: 9
767
- } }, /* @__PURE__ */ React.createElement("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", __self: this, __source: {
768
- fileName: _jsxFileName,
769
- lineNumber: 876,
770
- columnNumber: 11
771
- } }, /* @__PURE__ */ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z", __self: this, __source: {
772
- fileName: _jsxFileName,
773
- lineNumber: 877,
774
- columnNumber: 13
775
- } })), "Filters", Object.keys(filters).length > 0 && /* @__PURE__ */ React.createElement("span", { className: "ml-1 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-white bg-green-web rounded-full", __self: this, __source: {
776
- fileName: _jsxFileName,
777
- lineNumber: 886,
778
- columnNumber: 13
779
- } }, Object.keys(filters).length)), columnSelector, /* @__PURE__ */ React.createElement(Link, { to: createLink, className: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-600", __self: this, __source: {
780
- fileName: _jsxFileName,
781
- lineNumber: 892,
782
- columnNumber: 9
783
- } }, "Create New")));
784
- return /* @__PURE__ */ React.createElement(React.Fragment, null, filterPanel, searchFilter, /* @__PURE__ */ React.createElement(DataTable, { data: items, path: createLink.replace("/create", ""), fields: visibleColumns.length > 0 ? visibleColumns : fieldNames, pagination, setSkip: (skip2) => dispatch({
785
- type: "SET_SKIP",
786
- payload: skip2
787
- }), sort: state.sort, setSort: setSortSafely, __self: this, __source: {
788
- fileName: _jsxFileName,
789
- lineNumber: 906,
790
- columnNumber: 7
791
- } }));
1302
+ }, this);
1303
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: [
1304
+ filterPanel,
1305
+ searchFilter,
1306
+ /* @__PURE__ */ jsxDEV(
1307
+ DataTable,
1308
+ {
1309
+ data: items,
1310
+ path: createLink.replace("/create", ""),
1311
+ fields: visibleColumns.length > 0 ? visibleColumns : fieldNames,
1312
+ pagination,
1313
+ setSkip: (skip2) => dispatch({ type: "SET_SKIP", payload: skip2 }),
1314
+ sort: state.sort,
1315
+ setSort: setSortSafely
1316
+ },
1317
+ void 0,
1318
+ false,
1319
+ {
1320
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1321
+ lineNumber: 906,
1322
+ columnNumber: 7
1323
+ },
1324
+ this
1325
+ )
1326
+ ] }, void 0, true, {
1327
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
1328
+ lineNumber: 903,
1329
+ columnNumber: 5
1330
+ }, this);
792
1331
  }
793
- function AdminDataErrorBoundary({
794
- error
795
- }) {
796
- return /* @__PURE__ */ React.createElement(ErrorBoundary, { error, __self: this, __source: {
797
- fileName: _jsxFileName,
1332
+ function AdminDataErrorBoundary({ error }) {
1333
+ return /* @__PURE__ */ jsxDEV(ErrorBoundary, { error }, void 0, false, {
1334
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataListPage.tsx",
798
1335
  lineNumber: 920,
799
1336
  columnNumber: 10
800
- } });
1337
+ }, this);
801
1338
  }
802
1339
  export {
803
1340
  AdminDataErrorBoundary,