@nixxie-cms/core 1.0.0 → 1.0.2

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.
Files changed (187) hide show
  1. package/README.md +2 -2
  2. package/admin-ui/components/dist/nixxie-cms-core-admin-ui-components.cjs.js +4 -4
  3. package/admin-ui/components/dist/nixxie-cms-core-admin-ui-components.esm.js +4 -4
  4. package/admin-ui/context/dist/nixxie-cms-core-admin-ui-context.cjs.js +2 -2
  5. package/admin-ui/context/dist/nixxie-cms-core-admin-ui-context.esm.js +2 -2
  6. package/context/dist/nixxie-cms-core-context.cjs.js +2 -2
  7. package/context/dist/nixxie-cms-core-context.esm.js +2 -2
  8. package/dist/{CreateItemDialog-33335548.esm.js → CreateItemDialog-7008b050.esm.js} +1 -1
  9. package/dist/{CreateItemDialog-56cf59b7.cjs.js → CreateItemDialog-a0cab315.cjs.js} +1 -1
  10. package/dist/{PageContainer-7db73317.esm.js → PageContainer-5ae731cc.esm.js} +25 -18
  11. package/dist/{PageContainer-27c27f10.cjs.js → PageContainer-abd7159f.cjs.js} +25 -18
  12. package/dist/{admin-meta-graphql-6f7f5331.esm.js → admin-meta-graphql-0e6e606e.esm.js} +1 -1
  13. package/dist/{admin-meta-graphql-c8f926e9.cjs.js → admin-meta-graphql-306c224a.cjs.js} +1 -1
  14. package/dist/{context-3132c3ed.esm.js → context-af9957ed.esm.js} +2 -2
  15. package/dist/{context-e7a45152.cjs.js → context-b5204629.cjs.js} +2 -2
  16. package/dist/declarations/src/admin-ui/components/Navigation.d.ts.map +1 -1
  17. package/dist/declarations/src/admin-ui/components/PageContainer.d.ts.map +1 -1
  18. package/dist/declarations/src/helpers.d.ts.map +1 -1
  19. package/dist/declarations/src/index.d.ts +1 -0
  20. package/dist/declarations/src/index.d.ts.map +1 -1
  21. package/dist/declarations/src/internal-unstable/admin-ui/id-field-view.d.ts.map +1 -0
  22. package/dist/declarations/src/internal-unstable/admin-ui/pages/App/index.d.ts.map +1 -0
  23. package/dist/declarations/src/internal-unstable/admin-ui/pages/CreateItemPage/index.d.ts.map +1 -0
  24. package/dist/declarations/src/internal-unstable/admin-ui/pages/HomePage/index.d.ts.map +1 -0
  25. package/dist/declarations/src/internal-unstable/admin-ui/pages/ItemPage/index.d.ts.map +1 -0
  26. package/dist/declarations/src/internal-unstable/admin-ui/pages/ListPage/index.d.ts.map +1 -0
  27. package/dist/declarations/src/internal-unstable/admin-ui/pages/NoAccessPage/index.d.ts.map +1 -0
  28. package/dist/declarations/src/internal-unstable/artifacts.d.ts.map +1 -0
  29. package/dist/declarations/src/lib/core/initialise-lists.d.ts +1 -1
  30. package/dist/declarations/src/schema.d.ts.map +1 -1
  31. package/dist/declarations/src/types/config/index.d.ts +60 -1
  32. package/dist/declarations/src/types/config/index.d.ts.map +1 -1
  33. package/dist/declarations/src/types/config/lists.d.ts +4 -4
  34. package/dist/declarations/src/types/context.d.ts +150 -0
  35. package/dist/declarations/src/types/context.d.ts.map +1 -1
  36. package/dist/declarations/src/types/next-fields.d.ts +1 -1
  37. package/dist/{express-e9ed9a7d.cjs.js → express-455ae20c.cjs.js} +1 -1
  38. package/dist/{express-6743b918.esm.js → express-7559ca2d.esm.js} +1 -1
  39. package/dist/{index-ac01583b.cjs.js → index-89635494.cjs.js} +4 -4
  40. package/dist/{index-24b78415.esm.js → index-baa799e0.esm.js} +4 -4
  41. package/dist/nixxie-cms-core.cjs.js +104 -77
  42. package/dist/nixxie-cms-core.esm.js +104 -77
  43. package/dist/{non-null-graphql-5315718c.esm.js → non-null-graphql-a84ed64d.esm.js} +1 -1
  44. package/dist/{non-null-graphql-17b83ddc.cjs.js → non-null-graphql-add6bb3d.cjs.js} +1 -1
  45. package/dist/{resolve-hooks-66fe8a8e.cjs.js → resolve-hooks-165a9ce2.cjs.js} +1 -1
  46. package/dist/{resolve-hooks-17aafd37.esm.js → resolve-hooks-6813a045.esm.js} +2 -2
  47. package/dist/{system-dfec2f0a.esm.js → system-03e49e4f.esm.js} +8 -4
  48. package/dist/{system-48c5f6df.cjs.js → system-a321642d.cjs.js} +8 -4
  49. package/dist/{useFilter-0b5a1ee6.esm.js → useFilter-9b6db1f9.esm.js} +1 -1
  50. package/dist/{useFilter-1a4e6900.cjs.js → useFilter-acc9d413.cjs.js} +1 -1
  51. package/fields/dist/nixxie-cms-core-fields.cjs.js +16 -16
  52. package/fields/dist/nixxie-cms-core-fields.esm.js +17 -17
  53. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.cjs.js +3 -3
  54. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.esm.js +3 -3
  55. package/fields/types/bytes/views/dist/nixxie-cms-core-fields-types-bytes-views.cjs.js +1 -1
  56. package/fields/types/bytes/views/dist/nixxie-cms-core-fields-types-bytes-views.esm.js +1 -1
  57. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.cjs.js +3 -3
  58. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.esm.js +3 -3
  59. package/fields/types/relationship/views/dist/nixxie-cms-core-fields-types-relationship-views.cjs.js +4 -4
  60. package/fields/types/relationship/views/dist/nixxie-cms-core-fields-types-relationship-views.esm.js +4 -4
  61. package/fields/types/select/views/dist/nixxie-cms-core-fields-types-select-views.cjs.js +1 -1
  62. package/fields/types/select/views/dist/nixxie-cms-core-fields-types-select-views.esm.js +1 -1
  63. package/fields/types/text/views/dist/nixxie-cms-core-fields-types-text-views.cjs.js +1 -1
  64. package/fields/types/text/views/dist/nixxie-cms-core-fields-types-text-views.esm.js +1 -1
  65. package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.cjs.d.ts +2 -0
  66. package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.cjs.js +244 -0
  67. package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.esm.js +235 -0
  68. package/internal-unstable/admin-ui/id-field-view/package.json +4 -0
  69. package/internal-unstable/admin-ui/next-config/package.json +4 -0
  70. package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.cjs.d.ts +2 -0
  71. package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.cjs.js +59 -0
  72. package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.esm.js +55 -0
  73. package/internal-unstable/admin-ui/pages/App/package.json +4 -0
  74. package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.cjs.d.ts +2 -0
  75. package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.cjs.js +116 -0
  76. package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.esm.js +112 -0
  77. package/internal-unstable/admin-ui/pages/CreateItemPage/package.json +4 -0
  78. package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.cjs.d.ts +2 -0
  79. package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.cjs.js +336 -0
  80. package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.esm.js +332 -0
  81. package/internal-unstable/admin-ui/pages/HomePage/package.json +4 -0
  82. package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.cjs.d.ts +2 -0
  83. package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.cjs.js +463 -0
  84. package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.esm.js +455 -0
  85. package/internal-unstable/admin-ui/pages/ItemPage/package.json +4 -0
  86. package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.cjs.d.ts +2 -0
  87. package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.cjs.js +1195 -0
  88. package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.esm.js +1187 -0
  89. package/internal-unstable/admin-ui/pages/ListPage/package.json +4 -0
  90. package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.cjs.d.ts +2 -0
  91. package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.cjs.js +40 -0
  92. package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.esm.js +35 -0
  93. package/internal-unstable/admin-ui/pages/NoAccessPage/package.json +4 -0
  94. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.d.ts +2 -0
  95. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.js +51 -0
  96. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.esm.js +38 -0
  97. package/internal-unstable/artifacts/package.json +4 -0
  98. package/package.json +44 -44
  99. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.cjs.js +44 -15
  100. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +44 -15
  101. package/scripts/dist/nixxie-cms-core-scripts.cjs.js +3 -3
  102. package/scripts/dist/nixxie-cms-core-scripts.esm.js +3 -3
  103. package/src/admin-ui/admin-meta-graphql.ts +168 -168
  104. package/src/admin-ui/components/CommandPalette.tsx +433 -431
  105. package/src/admin-ui/components/Navigation.tsx +389 -385
  106. package/src/admin-ui/components/PageContainer.tsx +311 -310
  107. package/src/admin-ui/components/WelcomeDialog.tsx +1 -1
  108. package/src/admin-ui/context.tsx +338 -338
  109. package/src/admin-ui/templates/app.ts +60 -60
  110. package/src/admin-ui/templates/create-item.ts +5 -5
  111. package/src/admin-ui/templates/home.ts +2 -2
  112. package/src/admin-ui/templates/item.tsx +5 -5
  113. package/src/admin-ui/templates/list.tsx +5 -5
  114. package/src/admin-ui/templates/next-config.ts +29 -0
  115. package/src/admin-ui/templates/no-access.ts +7 -7
  116. package/src/fields/types/bigInt/index.ts +181 -181
  117. package/src/fields/types/bytes/index.ts +275 -275
  118. package/src/fields/types/calendarDay/index.ts +194 -194
  119. package/src/fields/types/checkbox/index.ts +76 -76
  120. package/src/fields/types/decimal/index.ts +182 -182
  121. package/src/fields/types/file/index.ts +168 -168
  122. package/src/fields/types/float/index.ts +133 -133
  123. package/src/fields/types/image/index.ts +244 -244
  124. package/src/fields/types/integer/index.ts +156 -156
  125. package/src/fields/types/json/index.ts +77 -77
  126. package/src/fields/types/multiselect/index.ts +212 -212
  127. package/src/fields/types/password/index.ts +241 -241
  128. package/src/fields/types/relationship/index.ts +381 -381
  129. package/src/fields/types/relationship/views/RelationshipTable.tsx +190 -190
  130. package/src/fields/types/select/index.ts +226 -226
  131. package/src/fields/types/text/index.ts +207 -207
  132. package/src/fields/types/timestamp/index.ts +116 -116
  133. package/src/fields/types/virtual/index.ts +108 -108
  134. package/src/helpers.ts +342 -316
  135. package/src/index.ts +4 -0
  136. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/id-field-view.tsx +167 -167
  137. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/App/index.tsx +22 -22
  138. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/CreateItemPage/index.tsx +71 -71
  139. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/HomePage/index.tsx +333 -333
  140. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/common.tsx +358 -358
  141. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/index.tsx +483 -483
  142. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/FilterAdd.tsx +221 -221
  143. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/PaginationControls.tsx +170 -170
  144. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/Tag.tsx +72 -72
  145. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/index.tsx +1006 -1006
  146. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/NoAccessPage/index.tsx +24 -24
  147. package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/artifacts.ts +5 -5
  148. package/src/lib/context/createContext.ts +165 -161
  149. package/src/lib/core/initialise-lists.ts +1097 -1097
  150. package/src/lib/id-field.ts +214 -214
  151. package/src/lib/telemetry.ts +342 -342
  152. package/src/schema.ts +237 -233
  153. package/src/scripts/telemetry.ts +1 -1
  154. package/src/types/config/index.ts +400 -333
  155. package/src/types/config/lists.ts +4 -4
  156. package/src/types/context.ts +700 -530
  157. package/src/types/next-fields.ts +499 -499
  158. package/src/types/telemetry.ts +51 -51
  159. package/tests/telemetry.test.ts +361 -361
  160. package/CHANGELOG.md +0 -3158
  161. package/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view/package.json +0 -4
  162. package/___internal-do-not-use-will-break-in-patch/admin-ui/next-config/package.json +0 -4
  163. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App/package.json +0 -4
  164. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage/package.json +0 -4
  165. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage/package.json +0 -4
  166. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage/package.json +0 -4
  167. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage/package.json +0 -4
  168. package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage/package.json +0 -4
  169. package/___internal-do-not-use-will-break-in-patch/artifacts/package.json +0 -4
  170. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view.d.ts.map +0 -1
  171. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App/index.d.ts.map +0 -1
  172. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage/index.d.ts.map +0 -1
  173. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage/index.d.ts.map +0 -1
  174. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage/index.d.ts.map +0 -1
  175. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage/index.d.ts.map +0 -1
  176. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage/index.d.ts.map +0 -1
  177. package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/artifacts.d.ts.map +0 -1
  178. /package/dist/{common-1a350e11.cjs.js → common-5933f758.cjs.js} +0 -0
  179. /package/dist/{common-29fc82e6.esm.js → common-ea5c441a.esm.js} +0 -0
  180. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/id-field-view.d.ts +0 -0
  181. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/App/index.d.ts +0 -0
  182. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/CreateItemPage/index.d.ts +0 -0
  183. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/HomePage/index.d.ts +0 -0
  184. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/index.d.ts +0 -0
  185. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/index.d.ts +0 -0
  186. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/NoAccessPage/index.d.ts +0 -0
  187. /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/artifacts.d.ts +0 -0
@@ -0,0 +1,463 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var router = require('next/router');
6
+ var react = require('react');
7
+ var button = require('@keystar/ui/button');
8
+ var dialog = require('@keystar/ui/dialog');
9
+ var icon = require('@keystar/ui/icon');
10
+ var fileWarningIcon = require('@keystar/ui/icon/icons/fileWarningIcon');
11
+ var layout = require('@keystar/ui/layout');
12
+ var progress = require('@keystar/ui/progress');
13
+ var slots = require('@keystar/ui/slots');
14
+ var toast = require('@keystar/ui/toast');
15
+ var typography = require('@keystar/ui/typography');
16
+ var client = require('@apollo/client');
17
+ var react$1 = require('@apollo/client/react');
18
+ var pick = require('../../../../../dist/pick-5fe45878.cjs.js');
19
+ var Errors = require('../../../../../dist/Errors-575adfa3.cjs.js');
20
+ var GraphQLErrorNotice = require('../../../../../dist/GraphQLErrorNotice-cd74180d.cjs.js');
21
+ var PageContainer = require('../../../../../dist/PageContainer-abd7159f.cjs.js');
22
+ var adminUi_context_dist_nixxieCmsCoreAdminUiContext = require('../../../../../dist/context-b5204629.cjs.js');
23
+ var Fields = require('../../../../../dist/Fields-e2c28056.cjs.js');
24
+ var filters = require('../../../../../dist/filters-b3e5eb50.cjs.js');
25
+ var utils = require('../../../../../dist/utils-230cddb1.cjs.js');
26
+ var common = require('../../../../../dist/common-5933f758.cjs.js');
27
+ var jsxRuntime = require('react/jsx-runtime');
28
+ require('@keystar/ui/style');
29
+ require('@babel/runtime/helpers/defineProperty');
30
+ require('@keystar/ui/icon/icons/alertTriangleIcon');
31
+ require('@keystar/ui/notice');
32
+ require('next/head');
33
+ require('next/link');
34
+ require('apollo-upload-client/UploadHttpLink.mjs');
35
+ require('@keystar/ui/core');
36
+ require('@nixxie-cms/core/admin-ui/router');
37
+ require('@keystar/ui/icon/icons/chevronLeftIcon');
38
+ require('@keystar/ui/icon/icons/chevronRightIcon');
39
+ require('@keystar/ui/icon/icons/undo2Icon');
40
+ require('@keystar/ui/picker');
41
+ require('@keystar/ui/tag');
42
+ require('@keystar/ui/tooltip');
43
+ require('../../../../../dist/admin-meta-graphql-306c224a.cjs.js');
44
+ require('@react-aria/utils');
45
+ require('@keystar/ui/icon/icons/textCursorInputIcon');
46
+ require('@keystar/ui/utils');
47
+ require('fast-deep-equal');
48
+ require('graphql');
49
+ require('@keystar/ui/action-group');
50
+ require('@keystar/ui/breadcrumbs');
51
+ require('@keystar/ui/icon/all');
52
+ require('../../../../../dist/actionData-7858738d.cjs.js');
53
+
54
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
55
+
56
+ var router__default = /*#__PURE__*/_interopDefault(router);
57
+
58
+ function useEventCallback(callback) {
59
+ const callbackRef = react.useRef(callback);
60
+ const cb = react.useCallback((...args) => {
61
+ return callbackRef.current(...args);
62
+ }, []);
63
+ react.useEffect(() => {
64
+ callbackRef.current = callback;
65
+ });
66
+ return cb;
67
+ }
68
+ function DeleteButton({
69
+ list,
70
+ itemId,
71
+ itemLabel
72
+ }) {
73
+ const [errorDialogValue, setErrorDialogValue] = react.useState(null);
74
+ const router$1 = router.useRouter();
75
+ const [deleteItem] = react$1.useMutation(client.gql`mutation ($id: ID!) {
76
+ ${list.graphql.names.deleteMutationName}(where: { id: $id }) {
77
+ id
78
+ }
79
+ }`, {
80
+ variables: {
81
+ id: itemId
82
+ }
83
+ });
84
+ return /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
85
+ children: [/*#__PURE__*/jsxRuntime.jsxs(dialog.DialogTrigger, {
86
+ children: [/*#__PURE__*/jsxRuntime.jsx(button.Button, {
87
+ tone: "critical",
88
+ children: "Delete"
89
+ }), /*#__PURE__*/jsxRuntime.jsx(dialog.AlertDialog, {
90
+ tone: "critical",
91
+ title: "Delete item",
92
+ cancelLabel: "Cancel",
93
+ primaryActionLabel: "Yes, delete",
94
+ onPrimaryAction: async () => {
95
+ try {
96
+ await deleteItem();
97
+ } catch (err) {
98
+ toast.toastQueue.critical('Unable to delete item', {
99
+ actionLabel: 'Details',
100
+ onAction: () => setErrorDialogValue(err),
101
+ shouldCloseOnAction: true
102
+ });
103
+ return;
104
+ }
105
+ toast.toastQueue.neutral(`${list.singular} deleted.`, {
106
+ timeout: 5000
107
+ });
108
+ router$1.push(list.isSingleton ? '/' : `/${list.path}`);
109
+ },
110
+ children: /*#__PURE__*/jsxRuntime.jsxs(typography.Text, {
111
+ children: ["Are you sure you want to delete ", /*#__PURE__*/jsxRuntime.jsx("strong", {
112
+ style: {
113
+ fontWeight: 600
114
+ },
115
+ children: itemLabel
116
+ }), "? This action cannot be undone."]
117
+ })
118
+ })]
119
+ }), /*#__PURE__*/jsxRuntime.jsx(dialog.DialogContainer, {
120
+ onDismiss: () => setErrorDialogValue(null),
121
+ isDismissable: true,
122
+ children: errorDialogValue && /*#__PURE__*/jsxRuntime.jsx(Errors.ErrorDetailsDialog, {
123
+ title: "Unable to delete item",
124
+ error: errorDialogValue
125
+ })
126
+ })]
127
+ });
128
+ }
129
+ function ItemNotFound(props) {
130
+ return /*#__PURE__*/jsxRuntime.jsxs(layout.VStack, {
131
+ alignItems: "center",
132
+ backgroundColor: "surface",
133
+ borderRadius: "medium",
134
+ gap: "large",
135
+ justifyContent: "center",
136
+ minHeight: "scale.3000",
137
+ padding: "xlarge",
138
+ children: [/*#__PURE__*/jsxRuntime.jsx(icon.Icon, {
139
+ src: fileWarningIcon.fileWarningIcon,
140
+ color: "neutralEmphasis",
141
+ size: "large"
142
+ }), /*#__PURE__*/jsxRuntime.jsx(typography.Heading, {
143
+ align: "center",
144
+ children: "Not found"
145
+ }), /*#__PURE__*/jsxRuntime.jsx(slots.SlotProvider, {
146
+ slots: {
147
+ text: {
148
+ align: 'center',
149
+ maxWidth: 'scale.5000'
150
+ }
151
+ },
152
+ children: props.children
153
+ })]
154
+ });
155
+ }
156
+ function ResetButton(props) {
157
+ return /*#__PURE__*/jsxRuntime.jsxs(dialog.DialogTrigger, {
158
+ children: [/*#__PURE__*/jsxRuntime.jsx(button.Button, {
159
+ tone: "accent",
160
+ isDisabled: !props.hasChanges,
161
+ children: "Reset"
162
+ }), /*#__PURE__*/jsxRuntime.jsx(dialog.AlertDialog, {
163
+ title: "Reset changes",
164
+ cancelLabel: "Cancel",
165
+ primaryActionLabel: "Yes, reset",
166
+ autoFocusButton: "primary",
167
+ onPrimaryAction: props.onReset,
168
+ children: "Are you sure? Any unsaved changes will be lost and cannot be recovered."
169
+ })]
170
+ });
171
+ }
172
+ function ItemForm({
173
+ listKey,
174
+ initialValue,
175
+ value,
176
+ onChange,
177
+ itemLabel,
178
+ onSaveSuccess,
179
+ fieldModes,
180
+ fieldPositions,
181
+ isRequireds
182
+ }) {
183
+ const list = adminUi_context_dist_nixxieCmsCoreAdminUiContext.useList(listKey);
184
+ const itemId = initialValue.id;
185
+ const [updateError, setUpdateError] = react.useState(null);
186
+ const [update, {
187
+ loading,
188
+ error
189
+ }] = react$1.useMutation(client.gql`mutation ($id: ID!, $data: ${list.graphql.names.updateInputName}!) {
190
+ item: ${list.graphql.names.updateMutationName}(where: { id: $id }, data: $data) {
191
+ id
192
+ }
193
+ }`, {
194
+ errorPolicy: 'all'
195
+ });
196
+ function resetValueState() {
197
+ onChange(initialValue);
198
+ }
199
+ const invalidFields = utils.useInvalidFields(list.fields, value, isRequireds);
200
+ const [forceValidation, setForceValidation] = react.useState(false);
201
+ const onSave = useEventCallback(async e => {
202
+ if (e.target !== e.currentTarget) return;
203
+ e.preventDefault();
204
+ const newForceValidation = invalidFields.size !== 0;
205
+ setForceValidation(newForceValidation);
206
+ if (newForceValidation) return;
207
+ const {
208
+ error: _error
209
+ } = await update({
210
+ variables: {
211
+ id: itemId,
212
+ data: utils.serializeValueToOperationItem('update', list.fields, value, initialValue)
213
+ }
214
+ });
215
+ const error = client.CombinedGraphQLErrors.is(_error) ? _error.errors.find(x => {
216
+ var _x$path;
217
+ return x.path === undefined || ((_x$path = x.path) === null || _x$path === void 0 ? void 0 : _x$path.length) === 1;
218
+ }) : _error;
219
+ if (error) {
220
+ toast.toastQueue.critical('Unable to save item', {
221
+ actionLabel: 'Details',
222
+ onAction: () => setUpdateError(new Error(error.message)),
223
+ shouldCloseOnAction: true
224
+ });
225
+ return;
226
+ }
227
+ toast.toastQueue.positive(`Saved changes to ${list.singular.toLocaleLowerCase()}.`, {
228
+ timeout: 5000
229
+ });
230
+ onSaveSuccess();
231
+ });
232
+ const hasChangedFields = utils.useHasChanges('update', list.fields, value, initialValue);
233
+ return /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
234
+ children: [/*#__PURE__*/jsxRuntime.jsxs("form", {
235
+ onSubmit: onSave,
236
+ style: {
237
+ display: 'contents'
238
+ },
239
+ children: [/*#__PURE__*/jsxRuntime.jsx("button", {
240
+ type: "submit",
241
+ style: {
242
+ display: 'none'
243
+ }
244
+ }), /*#__PURE__*/jsxRuntime.jsxs(layout.VStack, {
245
+ gap: "large",
246
+ gridArea: "main",
247
+ marginTop: "xlarge",
248
+ minWidth: 0,
249
+ children: [/*#__PURE__*/jsxRuntime.jsx(GraphQLErrorNotice.GraphQLErrorNotice, {
250
+ errors: client.CombinedGraphQLErrors.is(error) ? error.errors.filter(x => {
251
+ var _x$path2;
252
+ return x.path === undefined || ((_x$path2 = x.path) === null || _x$path2 === void 0 ? void 0 : _x$path2.length) === 1;
253
+ }) : [error]
254
+ }), /*#__PURE__*/jsxRuntime.jsx(Fields.Fields, {
255
+ view: "itemView",
256
+ position: "form",
257
+ fields: list.fields,
258
+ groups: list.groups,
259
+ forceValidation: forceValidation,
260
+ invalidFields: invalidFields,
261
+ fieldModes: fieldModes,
262
+ fieldPositions: fieldPositions,
263
+ onChange: onChange,
264
+ value: value,
265
+ isRequireds: isRequireds
266
+ })]
267
+ }), /*#__PURE__*/jsxRuntime.jsx(common.StickySidebar, {
268
+ children: /*#__PURE__*/jsxRuntime.jsx(Fields.Fields, {
269
+ view: "itemView",
270
+ position: "sidebar",
271
+ fields: list.fields,
272
+ groups: list.groups,
273
+ forceValidation: forceValidation,
274
+ invalidFields: invalidFields,
275
+ onChange: onChange,
276
+ value: value,
277
+ fieldModes: fieldModes,
278
+ fieldPositions: fieldPositions,
279
+ isRequireds: isRequireds
280
+ })
281
+ }), /*#__PURE__*/jsxRuntime.jsxs(common.BaseToolbar, {
282
+ children: [/*#__PURE__*/jsxRuntime.jsx(button.Button, {
283
+ isDisabled: !hasChangedFields,
284
+ isPending: loading,
285
+ prominence: "high",
286
+ type: "submit",
287
+ children: "Save"
288
+ }), /*#__PURE__*/jsxRuntime.jsx(ResetButton, {
289
+ hasChanges: hasChangedFields,
290
+ onReset: resetValueState
291
+ }), /*#__PURE__*/jsxRuntime.jsx(layout.Box, {
292
+ flex: true
293
+ }), !list.hideDelete ? /*#__PURE__*/jsxRuntime.jsx(DeleteButton, {
294
+ list: list,
295
+ itemId: itemId,
296
+ itemLabel: itemLabel
297
+ }) : null]
298
+ })]
299
+ }), /*#__PURE__*/jsxRuntime.jsx(dialog.DialogContainer, {
300
+ onDismiss: () => setUpdateError(null),
301
+ isDismissable: true,
302
+ children: updateError && /*#__PURE__*/jsxRuntime.jsx(Errors.ErrorDetailsDialog, {
303
+ title: "Unable to save item",
304
+ error: updateError
305
+ })
306
+ })]
307
+ });
308
+ }
309
+ const getItemPage = props => () => /*#__PURE__*/jsxRuntime.jsx(ItemPage, {
310
+ ...props
311
+ });
312
+ function ItemPage({
313
+ listKey
314
+ }) {
315
+ var _item$list$labelField, _data$nixxie3, _data$nixxie4;
316
+ const list = adminUi_context_dist_nixxieCmsCoreAdminUiContext.useList(listKey);
317
+ const id_ = router.useRouter().query.id;
318
+ const [itemId] = Array.isArray(id_) ? id_ : [id_];
319
+ const {
320
+ data,
321
+ error,
322
+ loading,
323
+ refetch
324
+ } = adminUi_context_dist_nixxieCmsCoreAdminUiContext.useListItem(listKey, itemId !== null && itemId !== void 0 ? itemId : null);
325
+ const item = data === null || data === void 0 ? void 0 : data.item;
326
+ const itemLabel_ = (_item$list$labelField = item === null || item === void 0 ? void 0 : item[list.labelField]) !== null && _item$list$labelField !== void 0 ? _item$list$labelField : item === null || item === void 0 ? void 0 : item.id;
327
+ const itemLabel = typeof itemLabel_ === 'string' ? itemLabel_ : itemId !== null && itemId !== void 0 ? itemId : '';
328
+ const pageLoading = loading || itemId === undefined;
329
+ const pageLabel = itemLabel || itemId;
330
+ const pageTitle = list.isSingleton || typeof pageLabel !== 'string' ? list.label : pageLabel;
331
+ const initialValue = react.useMemo(() => {
332
+ if (!item) return null;
333
+ return utils.deserializeItemToValue(list.fields, item);
334
+ }, [list.fields, data === null || data === void 0 ? void 0 : data.item]);
335
+ const [value, setValue] = react.useState(null);
336
+ react.useEffect(() => {
337
+ setValue(initialValue);
338
+ }, [initialValue]);
339
+ const {
340
+ actionModes,
341
+ fieldModes,
342
+ fieldPositions,
343
+ isRequireds
344
+ } = react.useMemo(() => {
345
+ const actionModes = {};
346
+ for (const action of list.actions) {
347
+ actionModes[action.key] = action.itemView.actionMode;
348
+ }
349
+ const fieldModes = {};
350
+ const fieldPositions = {};
351
+ const isRequireds = {};
352
+ for (const [fieldKey, field] of Object.entries(list.fields)) {
353
+ fieldModes[fieldKey] = field.itemView.fieldMode;
354
+ fieldPositions[fieldKey] = field.itemView.fieldPosition;
355
+ isRequireds[fieldKey] = field.itemView.isRequired;
356
+ }
357
+ for (const field of (_data$nixxie$adminMet = data === null || data === void 0 || (_data$nixxie = data.nixxie) === null || _data$nixxie === void 0 || (_data$nixxie = _data$nixxie.adminMeta) === null || _data$nixxie === void 0 || (_data$nixxie = _data$nixxie.list) === null || _data$nixxie === void 0 ? void 0 : _data$nixxie.fields) !== null && _data$nixxie$adminMet !== void 0 ? _data$nixxie$adminMet : []) {
358
+ var _data$nixxie$adminMet, _data$nixxie;
359
+ if (!(field !== null && field !== void 0 && field.itemView) || !field.key || !field.itemView.fieldMode || !field.itemView.fieldPosition || field.itemView.isRequired == null) continue;
360
+ fieldModes[field.key] = field.itemView.fieldMode;
361
+ fieldPositions[field.key] = field.itemView.fieldPosition;
362
+ isRequireds[field.key] = field.itemView.isRequired;
363
+ }
364
+ for (const action of (_data$nixxie$adminMet2 = data === null || data === void 0 || (_data$nixxie2 = data.nixxie) === null || _data$nixxie2 === void 0 || (_data$nixxie2 = _data$nixxie2.adminMeta) === null || _data$nixxie2 === void 0 || (_data$nixxie2 = _data$nixxie2.list) === null || _data$nixxie2 === void 0 ? void 0 : _data$nixxie2.actions) !== null && _data$nixxie$adminMet2 !== void 0 ? _data$nixxie$adminMet2 : []) {
365
+ var _data$nixxie$adminMet2, _data$nixxie2, _action$itemView;
366
+ if (!(action !== null && action !== void 0 && (_action$itemView = action.itemView) !== null && _action$itemView !== void 0 && _action$itemView.actionMode) || !action.key) continue;
367
+ actionModes[action.key] = action.itemView.actionMode;
368
+ }
369
+ return {
370
+ actionModes,
371
+ fieldModes,
372
+ fieldPositions,
373
+ isRequireds
374
+ };
375
+ }, [data === null || data === void 0 || (_data$nixxie3 = data.nixxie) === null || _data$nixxie3 === void 0 || (_data$nixxie3 = _data$nixxie3.adminMeta) === null || _data$nixxie3 === void 0 || (_data$nixxie3 = _data$nixxie3.list) === null || _data$nixxie3 === void 0 ? void 0 : _data$nixxie3.actions, data === null || data === void 0 || (_data$nixxie4 = data.nixxie) === null || _data$nixxie4 === void 0 || (_data$nixxie4 = _data$nixxie4.adminMeta) === null || _data$nixxie4 === void 0 || (_data$nixxie4 = _data$nixxie4.list) === null || _data$nixxie4 === void 0 ? void 0 : _data$nixxie4.fields, list.actions, list.fields]);
376
+ const actionsInContext = react.useMemo(() => {
377
+ if (!value) return [];
378
+ return list.actions.map(action => {
379
+ const fieldKeys = filters.getConditionalFilterFieldKeys(actionModes[action.key]);
380
+ const fields = pick.pick(list.fields, fieldKeys);
381
+ const serializedValue = filters.serializeItemForConditionalFilters(fields, value);
382
+ return {
383
+ ...action,
384
+ itemView: {
385
+ ...action.itemView,
386
+ actionMode: filters.resolveActionMode(actionModes[action.key], serializedValue)
387
+ }
388
+ };
389
+ }).filter(action => filters.isActionAvailable(action, action.itemView));
390
+ }, [actionModes, list.actions, list.fields, value]);
391
+ function onAction(action, resultId) {
392
+ const {
393
+ navigation
394
+ } = action.itemView;
395
+ if (navigation === 'follow' && resultId === itemId || navigation === 'refetch') {
396
+ refetch();
397
+ } else if (navigation === 'follow' && resultId) {
398
+ router__default["default"].push(`/${list.path}/${resultId}`);
399
+ } else {
400
+ router__default["default"].push(list.isSingleton ? '/' : `/${list.path}`);
401
+ }
402
+ }
403
+ return /*#__PURE__*/jsxRuntime.jsx(PageContainer.PageContainer, {
404
+ title: pageTitle,
405
+ header: /*#__PURE__*/jsxRuntime.jsx(common.ItemPageHeader, {
406
+ list: list,
407
+ actions: actionsInContext,
408
+ label: typeof pageLabel !== 'string' ? 'Loading...' : pageLabel,
409
+ title: pageTitle,
410
+ item: item !== null && item !== void 0 ? item : null,
411
+ value: value !== null && value !== void 0 ? value : initialValue,
412
+ initialValue: initialValue,
413
+ onAction: onAction
414
+ }),
415
+ children: pageLoading ? /*#__PURE__*/jsxRuntime.jsx(layout.VStack, {
416
+ height: "100%",
417
+ alignItems: "center",
418
+ justifyContent: "center",
419
+ children: /*#__PURE__*/jsxRuntime.jsx(progress.ProgressCircle, {
420
+ "aria-label": "loading item data",
421
+ size: "large",
422
+ isIndeterminate: true
423
+ })
424
+ }) : /*#__PURE__*/jsxRuntime.jsxs(common.ColumnLayout, {
425
+ children: [/*#__PURE__*/jsxRuntime.jsxs(layout.Box, {
426
+ marginY: "xlarge",
427
+ children: [/*#__PURE__*/jsxRuntime.jsx(GraphQLErrorNotice.GraphQLErrorNotice, {
428
+ errors: [error]
429
+ }), item == null && (list.isSingleton ? itemId === '1' ? /*#__PURE__*/jsxRuntime.jsxs(ItemNotFound, {
430
+ children: [/*#__PURE__*/jsxRuntime.jsxs(typography.Text, {
431
+ children: ["\u201C", list.label, "\u201D doesn\u2019t exist, or you don\u2019t have access to it."]
432
+ }), !list.hideCreate && /*#__PURE__*/jsxRuntime.jsx(pick.CreateButtonLink, {
433
+ list: list
434
+ })]
435
+ }) : /*#__PURE__*/jsxRuntime.jsx(ItemNotFound, {
436
+ children: /*#__PURE__*/jsxRuntime.jsxs(typography.Text, {
437
+ children: ["An item with ID ", /*#__PURE__*/jsxRuntime.jsxs("strong", {
438
+ children: ["\u201C", itemId, "\u201D"]
439
+ }), " does not exist."]
440
+ })
441
+ }) : /*#__PURE__*/jsxRuntime.jsx(ItemNotFound, {
442
+ children: /*#__PURE__*/jsxRuntime.jsxs(typography.Text, {
443
+ children: ["The item with ID ", /*#__PURE__*/jsxRuntime.jsxs("strong", {
444
+ children: ["\u201C", itemId, "\u201D"]
445
+ }), " doesn\u2019t exist, or you don\u2019t have access to it."]
446
+ })
447
+ }))]
448
+ }), initialValue && value && /*#__PURE__*/jsxRuntime.jsx(ItemForm, {
449
+ fieldModes: fieldModes,
450
+ fieldPositions: fieldPositions,
451
+ isRequireds: isRequireds,
452
+ listKey: listKey,
453
+ itemLabel: itemLabel,
454
+ initialValue: initialValue,
455
+ value: value,
456
+ onChange: setValue,
457
+ onSaveSuccess: refetch
458
+ })]
459
+ })
460
+ });
461
+ }
462
+
463
+ exports.getItemPage = getItemPage;