@payloadcms/ui 3.30.0 → 3.31.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/elements/ColumnSelector/index.js +1 -1
  2. package/dist/elements/ColumnSelector/index.js.map +1 -1
  3. package/dist/elements/ColumnSelector/index.scss +2 -3
  4. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  5. package/dist/elements/DeleteDocument/index.js +1 -2
  6. package/dist/elements/DeleteDocument/index.js.map +1 -1
  7. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  8. package/dist/elements/DeleteMany/index.js +1 -1
  9. package/dist/elements/DeleteMany/index.js.map +1 -1
  10. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  13. package/dist/elements/DocumentDrawer/types.d.ts +4 -0
  14. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  16. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/EditMany/DrawerContent.js +1 -2
  18. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  19. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +8 -0
  20. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +1 -0
  21. package/dist/elements/ListControls/ActiveQueryPreset/index.js +154 -0
  22. package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +1 -0
  23. package/dist/elements/ListControls/ActiveQueryPreset/index.scss +21 -0
  24. package/dist/elements/ListControls/index.d.ts +1 -24
  25. package/dist/elements/ListControls/index.d.ts.map +1 -1
  26. package/dist/elements/ListControls/index.js +115 -86
  27. package/dist/elements/ListControls/index.js.map +1 -1
  28. package/dist/elements/ListControls/index.scss +5 -9
  29. package/dist/elements/ListControls/types.d.ts +28 -0
  30. package/dist/elements/ListControls/types.d.ts.map +1 -0
  31. package/dist/elements/ListControls/types.js.map +1 -0
  32. package/dist/elements/ListControls/useQueryPresets.d.ts +17 -0
  33. package/dist/elements/ListControls/useQueryPresets.d.ts.map +1 -0
  34. package/dist/elements/ListControls/useQueryPresets.js +260 -0
  35. package/dist/elements/ListControls/useQueryPresets.js.map +1 -0
  36. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  37. package/dist/elements/ListDrawer/DrawerContent.js +4 -2
  38. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  39. package/dist/elements/ListDrawer/types.d.ts +3 -2
  40. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  41. package/dist/elements/ListDrawer/types.js.map +1 -1
  42. package/dist/elements/Pill/index.d.ts +1 -1
  43. package/dist/elements/Pill/index.d.ts.map +1 -1
  44. package/dist/elements/Pill/index.js +2 -0
  45. package/dist/elements/Pill/index.js.map +1 -1
  46. package/dist/elements/Pill/index.scss +29 -6
  47. package/dist/elements/Popup/PopupButtonList/index.d.ts +2 -1
  48. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  49. package/dist/elements/Popup/PopupButtonList/index.js +2 -0
  50. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  51. package/dist/elements/Popup/PopupDivider/index.d.ts +4 -0
  52. package/dist/elements/Popup/PopupDivider/index.d.ts.map +1 -0
  53. package/dist/elements/Popup/PopupDivider/index.js +10 -0
  54. package/dist/elements/Popup/PopupDivider/index.js.map +1 -0
  55. package/dist/elements/Popup/PopupDivider/index.scss +10 -0
  56. package/dist/elements/Popup/PopupGroupLabel/index.d.ts +6 -0
  57. package/dist/elements/Popup/PopupGroupLabel/index.d.ts.map +1 -0
  58. package/dist/elements/Popup/PopupGroupLabel/index.js +13 -0
  59. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -0
  60. package/dist/elements/Popup/PopupGroupLabel/index.scss +8 -0
  61. package/dist/elements/Popup/index.d.ts.map +1 -1
  62. package/dist/elements/Popup/index.js +2 -2
  63. package/dist/elements/Popup/index.js.map +1 -1
  64. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +4 -0
  65. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +1 -0
  66. package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -0
  67. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -0
  68. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +5 -0
  69. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -0
  70. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +25 -0
  71. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -0
  72. package/dist/elements/QueryPresets/cells/ColumnsCell/index.scss +9 -0
  73. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +4 -0
  74. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +1 -0
  75. package/dist/elements/QueryPresets/cells/WhereCell/index.js +29 -0
  76. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -0
  77. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +4 -0
  78. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -0
  79. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +65 -0
  80. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -0
  81. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +17 -0
  82. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +4 -0
  83. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -0
  84. package/dist/elements/QueryPresets/fields/WhereField/index.js +121 -0
  85. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -0
  86. package/dist/elements/QueryPresets/fields/WhereField/index.scss +23 -0
  87. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  88. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  89. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  90. package/dist/elements/RelationshipTable/index.js +3 -4
  91. package/dist/elements/RelationshipTable/index.js.map +1 -1
  92. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  93. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  94. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  95. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  96. package/dist/elements/WhereBuilder/index.js +18 -15
  97. package/dist/elements/WhereBuilder/index.js.map +1 -1
  98. package/dist/exports/client/index.d.ts +7 -2
  99. package/dist/exports/client/index.d.ts.map +1 -1
  100. package/dist/exports/client/index.js +23 -23
  101. package/dist/exports/client/index.js.map +4 -4
  102. package/dist/exports/shared/index.d.ts +8 -3
  103. package/dist/exports/shared/index.d.ts.map +1 -1
  104. package/dist/exports/shared/index.js +2 -2
  105. package/dist/exports/shared/index.js.map +4 -4
  106. package/dist/icons/Chevron/index.d.ts +1 -0
  107. package/dist/icons/Chevron/index.d.ts.map +1 -1
  108. package/dist/icons/Chevron/index.js +2 -0
  109. package/dist/icons/Chevron/index.js.map +1 -1
  110. package/dist/icons/Dots/index.d.ts +2 -0
  111. package/dist/icons/Dots/index.d.ts.map +1 -1
  112. package/dist/icons/Dots/index.js +5 -2
  113. package/dist/icons/Dots/index.js.map +1 -1
  114. package/dist/icons/Dots/index.scss +14 -0
  115. package/dist/icons/People/index.d.ts +6 -0
  116. package/dist/icons/People/index.d.ts.map +1 -0
  117. package/dist/icons/People/index.js +18 -0
  118. package/dist/icons/People/index.js.map +1 -0
  119. package/dist/icons/People/index.scss +11 -0
  120. package/dist/providers/DocumentInfo/types.d.ts +1 -0
  121. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  122. package/dist/providers/DocumentInfo/types.js.map +1 -1
  123. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  124. package/dist/providers/EntityVisibility/index.js.map +1 -1
  125. package/dist/providers/ListQuery/context.d.ts +2 -0
  126. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  127. package/dist/providers/ListQuery/context.js +2 -0
  128. package/dist/providers/ListQuery/context.js.map +1 -1
  129. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  130. package/dist/providers/ListQuery/index.js +29 -13
  131. package/dist/providers/ListQuery/index.js.map +1 -1
  132. package/dist/providers/ListQuery/types.d.ts +6 -3
  133. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  134. package/dist/providers/ListQuery/types.js.map +1 -1
  135. package/dist/providers/Preferences/index.d.ts.map +1 -1
  136. package/dist/providers/Preferences/index.js.map +1 -1
  137. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  138. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  139. package/dist/providers/ServerFunctions/index.js.map +1 -1
  140. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  141. package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
  142. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
  143. package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
  144. package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
  145. package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
  146. package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
  147. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  148. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  149. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
  150. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  151. package/dist/providers/TableColumns/context.d.ts.map +1 -0
  152. package/dist/providers/TableColumns/context.js.map +1 -0
  153. package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
  154. package/dist/providers/TableColumns/filterFields.js.map +1 -0
  155. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
  156. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
  157. package/dist/providers/TableColumns/index.d.ts.map +1 -0
  158. package/dist/{elements → providers}/TableColumns/index.js +4 -2
  159. package/dist/providers/TableColumns/index.js.map +1 -0
  160. package/dist/{elements → providers}/TableColumns/types.d.ts +1 -1
  161. package/dist/providers/TableColumns/types.d.ts.map +1 -0
  162. package/dist/providers/TableColumns/types.js +2 -0
  163. package/dist/providers/TableColumns/types.js.map +1 -0
  164. package/dist/styles.css +1 -1
  165. package/dist/utilities/renderTable.js +4 -4
  166. package/dist/utilities/renderTable.js.map +1 -1
  167. package/dist/utilities/upsertPreferences.d.ts +7 -2
  168. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  169. package/dist/utilities/upsertPreferences.js +11 -5
  170. package/dist/utilities/upsertPreferences.js.map +1 -1
  171. package/dist/views/Edit/index.d.ts.map +1 -1
  172. package/dist/views/Edit/index.js +2 -1
  173. package/dist/views/Edit/index.js.map +1 -1
  174. package/dist/views/List/index.d.ts.map +1 -1
  175. package/dist/views/List/index.js +7 -1
  176. package/dist/views/List/index.js.map +1 -1
  177. package/package.json +4 -4
  178. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  179. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
  180. package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
  181. package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
  182. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  183. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  184. package/dist/elements/TableColumns/context.d.ts.map +0 -1
  185. package/dist/elements/TableColumns/context.js.map +0 -1
  186. package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
  187. package/dist/elements/TableColumns/filterFields.js.map +0 -1
  188. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
  189. package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
  190. package/dist/elements/TableColumns/index.d.ts.map +0 -1
  191. package/dist/elements/TableColumns/index.js.map +0 -1
  192. package/dist/elements/TableColumns/types.d.ts.map +0 -1
  193. package/dist/elements/TableColumns/types.js.map +0 -1
  194. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
  195. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
  196. package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
  197. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
  198. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
  199. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
  200. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
  201. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
  202. package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
  203. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
  204. package/dist/utilities/mergeListSearchAndWhere.js +0 -47
  205. package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
  206. /package/dist/elements/{TableColumns → ListControls}/types.js +0 -0
  207. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  208. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
  209. /package/dist/{elements → providers}/TableColumns/context.d.ts +0 -0
  210. /package/dist/{elements → providers}/TableColumns/context.js +0 -0
  211. /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
  212. /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
  213. /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
  214. /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
  215. /package/dist/{elements → providers}/TableColumns/index.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQueryPresets.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/useQueryPresets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AAKzF,OAAO,KAAyC,MAAM,OAAO,CAAA;AAiB7D,eAAO,MAAM,eAAe,8DAIzB;IACD,YAAY,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,sBAAsB,EAAE,6BAA6B,CAAA;CACtD,KAAG;IACF,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oBAAoB,EAAE,MAAM,IAAI,CAAA;IAChC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,oBAAoB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CA+RjC,CAAA"}
@@ -0,0 +1,260 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useModal } from '@faceless-ui/modal';
3
+ import { getTranslation } from '@payloadcms/translations';
4
+ import { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
5
+ import React, { Fragment, useCallback, useMemo } from 'react';
6
+ import { toast } from 'sonner';
7
+ import { useConfig } from '../../providers/Config/index.js';
8
+ import { useListQuery } from '../../providers/ListQuery/context.js';
9
+ import { useTranslation } from '../../providers/Translation/index.js';
10
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
11
+ import { useDocumentDrawer } from '../DocumentDrawer/index.js';
12
+ import { useListDrawer } from '../ListDrawer/index.js';
13
+ import { PopupList } from '../Popup/index.js';
14
+ import { PopupListGroupLabel } from '../Popup/PopupGroupLabel/index.js';
15
+ import { Translation } from '../Translation/index.js';
16
+ const confirmDeletePresetModalSlug = 'confirm-delete-preset';
17
+ const queryPresetsSlug = 'payload-query-presets';
18
+ export const useQueryPresets = ({
19
+ activePreset,
20
+ collectionSlug,
21
+ queryPresetPermissions
22
+ }) => {
23
+ const {
24
+ modified,
25
+ query,
26
+ refineListData,
27
+ setModified: setQueryModified
28
+ } = useListQuery();
29
+ const {
30
+ i18n,
31
+ t
32
+ } = useTranslation();
33
+ const {
34
+ openModal
35
+ } = useModal();
36
+ const {
37
+ config: {
38
+ routes: {
39
+ api: apiRoute
40
+ }
41
+ },
42
+ getEntityConfig
43
+ } = useConfig();
44
+ const presetConfig = getEntityConfig({
45
+ collectionSlug: queryPresetsSlug
46
+ });
47
+ const [PresetDocumentDrawer,, {
48
+ openDrawer: openDocumentDrawer
49
+ }] = useDocumentDrawer({
50
+ id: activePreset?.id,
51
+ collectionSlug: queryPresetsSlug
52
+ });
53
+ const [CreateNewPresetDrawer,, {
54
+ closeDrawer: closeCreateNewDrawer,
55
+ openDrawer: openCreateNewDrawer
56
+ }] = useDocumentDrawer({
57
+ collectionSlug: queryPresetsSlug
58
+ });
59
+ const [ListDrawer,, {
60
+ closeDrawer: closeListDrawer,
61
+ openDrawer: openListDrawer
62
+ }] = useListDrawer({
63
+ collectionSlugs: [queryPresetsSlug]
64
+ });
65
+ const handlePresetChange = useCallback(async preset => {
66
+ await refineListData({
67
+ columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,
68
+ preset: preset.id,
69
+ where: preset.where
70
+ }, false);
71
+ }, [refineListData]);
72
+ const resetQueryPreset = useCallback(async () => {
73
+ await refineListData({
74
+ columns: undefined,
75
+ preset: undefined,
76
+ where: undefined
77
+ }, false);
78
+ }, [refineListData]);
79
+ const handleDeletePreset = useCallback(async () => {
80
+ try {
81
+ await fetch(`${apiRoute}/${queryPresetsSlug}/${activePreset.id}`, {
82
+ method: 'DELETE'
83
+ }).then(async res => {
84
+ try {
85
+ const json = await res.json();
86
+ if (res.status < 400) {
87
+ toast.success(t('general:titleDeleted', {
88
+ label: getTranslation(presetConfig?.labels?.singular, i18n),
89
+ title: activePreset.title
90
+ }));
91
+ await resetQueryPreset();
92
+ } else {
93
+ if (json.errors) {
94
+ json.errors.forEach(error => toast.error(error.message));
95
+ } else {
96
+ toast.error(t('error:deletingTitle', {
97
+ title: activePreset.title
98
+ }));
99
+ }
100
+ }
101
+ } catch (_err) {
102
+ toast.error(t('error:deletingTitle', {
103
+ title: activePreset.title
104
+ }));
105
+ }
106
+ });
107
+ } catch (_err) {
108
+ toast.error(t('error:deletingTitle', {
109
+ title: activePreset.title
110
+ }));
111
+ }
112
+ }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset]);
113
+ const saveCurrentChanges = useCallback(async () => {
114
+ try {
115
+ await fetch(`${apiRoute}/payload-query-presets/${activePreset.id}`, {
116
+ body: JSON.stringify({
117
+ columns: transformColumnsToPreferences(query.columns),
118
+ where: query.where
119
+ }),
120
+ credentials: 'include',
121
+ headers: {
122
+ 'Content-Type': 'application/json'
123
+ },
124
+ method: 'PATCH'
125
+ }).then(async res => {
126
+ try {
127
+ const json = await res.json();
128
+ if (res.status < 400) {
129
+ toast.success(t('general:updatedLabelSuccessfully', {
130
+ label: getTranslation(presetConfig?.labels?.singular, i18n)
131
+ }));
132
+ setQueryModified(false);
133
+ } else {
134
+ if (json.errors) {
135
+ json.errors.forEach(error => toast.error(error.message));
136
+ } else {
137
+ toast.error(t('error:unknown'));
138
+ }
139
+ }
140
+ } catch (_err) {
141
+ toast.error(t('error:unknown'));
142
+ }
143
+ });
144
+ } catch (_err) {
145
+ toast.error(t('error:unknown'));
146
+ }
147
+ }, [apiRoute, activePreset?.id, query.columns, query.where, t, presetConfig?.labels?.singular, i18n, setQueryModified]);
148
+ // Memoize so that components aren't re-rendered on query and column changes
149
+ const queryPresetMenuItems = useMemo(() => {
150
+ const menuItems = [/*#__PURE__*/_jsx(PopupListGroupLabel, {
151
+ label: getTranslation(presetConfig?.labels?.plural, i18n)
152
+ }, "preset-group-label")];
153
+ if (activePreset && modified) {
154
+ menuItems.push(/*#__PURE__*/_jsx(PopupList.Button, {
155
+ onClick: async () => {
156
+ await refineListData({
157
+ columns: transformColumnsToSearchParams(activePreset.columns),
158
+ where: activePreset.where
159
+ }, false);
160
+ },
161
+ children: t('general:reset')
162
+ }));
163
+ if (queryPresetPermissions.update) {
164
+ menuItems.push(/*#__PURE__*/_jsx(PopupList.Button, {
165
+ onClick: async () => {
166
+ await saveCurrentChanges();
167
+ },
168
+ children: activePreset.isShared ? t('general:updateForEveryone') : t('general:save')
169
+ }));
170
+ }
171
+ }
172
+ menuItems.push(/*#__PURE__*/_jsx(PopupList.Button, {
173
+ onClick: () => {
174
+ openCreateNewDrawer();
175
+ },
176
+ children: t('general:createNew')
177
+ }));
178
+ if (activePreset && queryPresetPermissions?.delete) {
179
+ menuItems.push(/*#__PURE__*/_jsxs(Fragment, {
180
+ children: [/*#__PURE__*/_jsx(PopupList.Button, {
181
+ onClick: () => openModal(confirmDeletePresetModalSlug),
182
+ children: t('general:delete')
183
+ }), /*#__PURE__*/_jsx(PopupList.Button, {
184
+ onClick: () => {
185
+ openDocumentDrawer();
186
+ },
187
+ children: t('general:edit')
188
+ })]
189
+ }));
190
+ }
191
+ return menuItems;
192
+ }, [activePreset, queryPresetPermissions?.delete, queryPresetPermissions?.update, openCreateNewDrawer, openDocumentDrawer, openModal, saveCurrentChanges, t, refineListData, modified, presetConfig?.labels?.plural, i18n]);
193
+ return {
194
+ CreateNewPresetDrawer: /*#__PURE__*/_jsx(CreateNewPresetDrawer, {
195
+ initialData: {
196
+ columns: transformColumnsToPreferences(query.columns),
197
+ relatedCollection: collectionSlug,
198
+ where: query.where
199
+ },
200
+ onSave: async ({
201
+ doc
202
+ }) => {
203
+ closeCreateNewDrawer();
204
+ await handlePresetChange(doc);
205
+ },
206
+ redirectAfterCreate: false
207
+ }),
208
+ DeletePresetModal: /*#__PURE__*/_jsx(ConfirmationModal, {
209
+ body: /*#__PURE__*/_jsx(Translation, {
210
+ elements: {
211
+ '1': ({
212
+ children
213
+ }) => /*#__PURE__*/_jsx("strong", {
214
+ children: children
215
+ })
216
+ },
217
+ i18nKey: "general:aboutToDelete",
218
+ t: t,
219
+ variables: {
220
+ label: presetConfig?.labels?.singular,
221
+ title: activePreset?.title
222
+ }
223
+ }),
224
+ confirmingLabel: t('general:deleting'),
225
+ heading: t('general:confirmDeletion'),
226
+ modalSlug: confirmDeletePresetModalSlug,
227
+ onConfirm: handleDeletePreset
228
+ }),
229
+ EditPresetDrawer: /*#__PURE__*/_jsx(PresetDocumentDrawer, {
230
+ onDelete: () => {
231
+ // setSelectedPreset(undefined)
232
+ },
233
+ onDuplicate: async ({
234
+ doc
235
+ }) => {
236
+ await handlePresetChange(doc);
237
+ },
238
+ onSave: async ({
239
+ doc
240
+ }) => {
241
+ await handlePresetChange(doc);
242
+ }
243
+ }),
244
+ hasModifiedPreset: modified,
245
+ openPresetListDrawer: openListDrawer,
246
+ PresetListDrawer: /*#__PURE__*/_jsx(ListDrawer, {
247
+ allowCreate: false,
248
+ disableQueryPresets: true,
249
+ onSelect: async ({
250
+ doc
251
+ }) => {
252
+ closeListDrawer();
253
+ await handlePresetChange(doc);
254
+ }
255
+ }),
256
+ queryPresetMenuItems,
257
+ resetPreset: resetQueryPreset
258
+ };
259
+ };
260
+ //# sourceMappingURL=useQueryPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQueryPresets.js","names":["useModal","getTranslation","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","PopupList","PopupListGroupLabel","Translation","confirmDeletePresetModalSlug","queryPresetsSlug","useQueryPresets","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","handlePresetChange","preset","columns","undefined","where","resetQueryPreset","handleDeletePreset","fetch","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","queryPresetMenuItems","menuItems","_jsx","plural","push","Button","onClick","update","isShared","delete","_jsxs","initialData","relatedCollection","onSave","doc","redirectAfterCreate","DeletePresetModal","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","EditPresetDrawer","onDelete","onDuplicate","hasModifiedPreset","openPresetListDrawer","PresetListDrawer","allowCreate","disableQueryPresets","onSelect","resetPreset"],"sources":["../../../src/elements/ListControls/useQueryPresets.tsx"],"sourcesContent":["import type { CollectionSlug, QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { useListDrawer } from '../ListDrawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { PopupListGroupLabel } from '../Popup/PopupGroupLabel/index.js'\nimport { Translation } from '../Translation/index.js'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nexport const useQueryPresets = ({\n activePreset,\n collectionSlug,\n queryPresetPermissions,\n}: {\n activePreset: QueryPreset\n collectionSlug: CollectionSlug\n queryPresetPermissions: SanitizedCollectionPermission\n}): {\n CreateNewPresetDrawer: React.ReactNode\n DeletePresetModal: React.ReactNode\n EditPresetDrawer: React.ReactNode\n hasModifiedPreset: boolean\n openPresetListDrawer: () => void\n PresetListDrawer: React.ReactNode\n queryPresetMenuItems: React.ReactNode[]\n resetPreset: () => Promise<void>\n} => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: undefined,\n preset: undefined,\n where: undefined,\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/${queryPresetsSlug}/${activePreset.id}`, {\n method: 'DELETE',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/payload-query-presets/${activePreset.id}`, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n // Memoize so that components aren't re-rendered on query and column changes\n const queryPresetMenuItems = useMemo(() => {\n const menuItems: React.ReactNode[] = [\n <PopupListGroupLabel\n key=\"preset-group-label\"\n label={getTranslation(presetConfig?.labels?.plural, i18n)}\n />,\n ]\n\n if (activePreset && modified) {\n menuItems.push(\n <PopupList.Button\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n where: activePreset.where,\n },\n false,\n )\n }}\n >\n {t('general:reset')}\n </PopupList.Button>,\n )\n\n if (queryPresetPermissions.update) {\n menuItems.push(\n <PopupList.Button\n onClick={async () => {\n await saveCurrentChanges()\n }}\n >\n {activePreset.isShared ? t('general:updateForEveryone') : t('general:save')}\n </PopupList.Button>,\n )\n }\n }\n\n menuItems.push(\n <PopupList.Button\n onClick={() => {\n openCreateNewDrawer()\n }}\n >\n {t('general:createNew')}\n </PopupList.Button>,\n )\n\n if (activePreset && queryPresetPermissions?.delete) {\n menuItems.push(\n <Fragment>\n <PopupList.Button onClick={() => openModal(confirmDeletePresetModalSlug)}>\n {t('general:delete')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openDocumentDrawer()\n }}\n >\n {t('general:edit')}\n </PopupList.Button>\n </Fragment>,\n )\n }\n\n return menuItems\n }, [\n activePreset,\n queryPresetPermissions?.delete,\n queryPresetPermissions?.update,\n openCreateNewDrawer,\n openDocumentDrawer,\n openModal,\n saveCurrentChanges,\n t,\n refineListData,\n modified,\n presetConfig?.labels?.plural,\n i18n,\n ])\n\n return {\n CreateNewPresetDrawer: (\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\n />\n ),\n DeletePresetModal: (\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n ),\n EditPresetDrawer: (\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n ),\n hasModifiedPreset: modified,\n openPresetListDrawer: openListDrawer,\n PresetListDrawer: (\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n ),\n queryPresetMenuItems,\n resetPreset: resetQueryPreset,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAWjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmKvD,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAUjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsKvD,CAAA"}
@@ -2,17 +2,18 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
+ import { hoistQueryParamsToAnd } from 'payload/shared';
5
6
  import React, { useCallback, useEffect, useState } from 'react';
6
7
  import { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js';
7
8
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
8
9
  import { useConfig } from '../../providers/Config/index.js';
9
10
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
10
- import { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js';
11
11
  import { ListDrawerContextProvider } from '../ListDrawer/Provider.js';
12
12
  import { LoadingOverlay } from '../Loading/index.js';
13
13
  export const ListDrawerContent = ({
14
14
  allowCreate = true,
15
15
  collectionSlugs,
16
+ disableQueryPresets,
16
17
  drawerSlug,
17
18
  enableRowSelections,
18
19
  filterOptions,
@@ -91,6 +92,7 @@ export const ListDrawerContent = ({
91
92
  collectionSlug: slug_0,
92
93
  disableBulkDelete: true,
93
94
  disableBulkEdit: true,
95
+ disableQueryPresets,
94
96
  drawerSlug,
95
97
  enableRowSelections,
96
98
  overrideEntityVisibility,
@@ -106,7 +108,7 @@ export const ListDrawerContent = ({
106
108
  closeModal(drawerSlug);
107
109
  }
108
110
  }
109
- }, [serverFunction, closeModal, allowCreate, drawerSlug, isOpen, enableRowSelections, filterOptions, overrideEntityVisibility]);
111
+ }, [serverFunction, closeModal, allowCreate, drawerSlug, isOpen, enableRowSelections, filterOptions, overrideEntityVisibility, disableQueryPresets]);
110
112
  useEffect(() => {
111
113
  if (!ListView) {
112
114
  void renderList(selectedOption.value);
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","hoistQueryParamsToAnd","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((selectedCollectionFromProps: string) => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: selectedCollectionFromProps })?.labels,\n value: selectedCollectionFromProps,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(selectedCollectionFromProps)\n }, [selectedCollectionFromProps])\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n allowCreate,\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n allowCreate,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","hoistQueryParamsToAnd","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","disableQueryPresets","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hoistQueryParamsToAnd } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((selectedCollectionFromProps: string) => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: selectedCollectionFromProps })?.labels,\n value: selectedCollectionFromProps,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(selectedCollectionFromProps)\n }, [selectedCollectionFromProps])\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n allowCreate,\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n allowCreate,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n disableQueryPresets,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import type { ListDrawerContextProps } from './Provider.js';
5
5
  export type ListDrawerProps = {
6
6
  readonly allowCreate?: boolean;
7
7
  readonly collectionSlugs: SanitizedCollectionConfig['slug'][];
8
+ readonly disableQueryPresets?: boolean;
8
9
  readonly drawerSlug?: string;
9
10
  readonly enableRowSelections?: boolean;
10
11
  readonly filterOptions?: FilterOptionsResult;
@@ -24,8 +25,8 @@ export type UseListDrawer = (args: {
24
25
  selectedCollection?: SanitizedCollectionConfig['slug'];
25
26
  uploads?: boolean;
26
27
  }) => [
27
- React.FC<Pick<ListDrawerProps, 'allowCreate' | 'enableRowSelections' | 'onBulkSelect' | 'onSelect'>>,
28
- React.FC<Pick<ListTogglerProps, 'children' | 'className' | 'disabled' | 'onClick'>>,
28
+ React.FC<Omit<ListDrawerProps, 'collectionSlugs'>>,
29
+ React.FC<Omit<ListTogglerProps, 'drawerSlug'>>,
29
30
  {
30
31
  closeDrawer: () => void;
31
32
  collectionSlugs: SanitizedCollectionConfig['slug'][];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAC7E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC,GAAG,sBAAsB,CAAA;AAE1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,eAAe,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;IACrD,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACtD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,KAAK;IACJ,KAAK,CAAC,EAAE,CACN,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,qBAAqB,GAAG,cAAc,GAAG,UAAU,CAAC,CAC3F;IACD,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IACnF;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,eAAe,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;QACpD,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7F,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAC7E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC,GAAG,sBAAsB,CAAA;AAE1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,eAAe,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;IACrD,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACtD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,KAAK;IACJ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC9C;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,eAAe,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAA;QACpD,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7F,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListDrawer/types.ts"],"sourcesContent":["import type { FilterOptionsResult, SanitizedCollectionConfig } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { ListDrawerContextProps } from './Provider.js'\n\nexport type ListDrawerProps = {\n readonly allowCreate?: boolean\n readonly collectionSlugs: SanitizedCollectionConfig['slug'][]\n readonly drawerSlug?: string\n readonly enableRowSelections?: boolean\n readonly filterOptions?: FilterOptionsResult\n readonly overrideEntityVisibility?: boolean\n readonly selectedCollection?: string\n} & ListDrawerContextProps\n\nexport type ListTogglerProps = {\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n drawerSlug?: string\n} & HTMLAttributes<HTMLButtonElement>\n\nexport type UseListDrawer = (args: {\n collectionSlugs?: SanitizedCollectionConfig['slug'][]\n filterOptions?: FilterOptionsResult\n overrideEntityVisibility?: boolean\n selectedCollection?: SanitizedCollectionConfig['slug']\n uploads?: boolean // finds all collections with upload: true\n}) => [\n React.FC<\n Pick<ListDrawerProps, 'allowCreate' | 'enableRowSelections' | 'onBulkSelect' | 'onSelect'>\n >, // drawer\n React.FC<Pick<ListTogglerProps, 'children' | 'className' | 'disabled' | 'onClick'>>, // toggler\n {\n closeDrawer: () => void\n collectionSlugs: SanitizedCollectionConfig['slug'][]\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n setCollectionSlugs: React.Dispatch<React.SetStateAction<SanitizedCollectionConfig['slug'][]>>\n toggleDrawer: () => void\n },\n]\n"],"mappings":"AAuBA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListDrawer/types.ts"],"sourcesContent":["import type { FilterOptionsResult, SanitizedCollectionConfig } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { ListDrawerContextProps } from './Provider.js'\n\nexport type ListDrawerProps = {\n readonly allowCreate?: boolean\n readonly collectionSlugs: SanitizedCollectionConfig['slug'][]\n readonly disableQueryPresets?: boolean\n readonly drawerSlug?: string\n readonly enableRowSelections?: boolean\n readonly filterOptions?: FilterOptionsResult\n readonly overrideEntityVisibility?: boolean\n readonly selectedCollection?: string\n} & ListDrawerContextProps\n\nexport type ListTogglerProps = {\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n drawerSlug?: string\n} & HTMLAttributes<HTMLButtonElement>\n\nexport type UseListDrawer = (args: {\n collectionSlugs?: SanitizedCollectionConfig['slug'][]\n filterOptions?: FilterOptionsResult\n overrideEntityVisibility?: boolean\n selectedCollection?: SanitizedCollectionConfig['slug']\n uploads?: boolean // finds all collections with upload: true\n}) => [\n React.FC<Omit<ListDrawerProps, 'collectionSlugs'>>,\n React.FC<Omit<ListTogglerProps, 'drawerSlug'>>,\n {\n closeDrawer: () => void\n collectionSlugs: SanitizedCollectionConfig['slug'][]\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n setCollectionSlugs: React.Dispatch<React.SetStateAction<SanitizedCollectionConfig['slug'][]>>\n toggleDrawer: () => void\n },\n]\n"],"mappings":"AAwBA","ignoreList":[]}
@@ -15,7 +15,7 @@ export type PillProps = {
15
15
  icon?: React.ReactNode;
16
16
  id?: string;
17
17
  onClick?: () => void;
18
- pillStyle?: 'dark' | 'error' | 'light' | 'light-gray' | 'success' | 'warning' | 'white';
18
+ pillStyle?: 'always-white' | 'dark' | 'error' | 'light' | 'light-gray' | 'success' | 'warning' | 'white';
19
19
  rounded?: boolean;
20
20
  size?: 'medium' | 'small';
21
21
  to?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Pill/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;KACpC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IACvF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAGD,OAAO,cAAc,CAAA;AAwFrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAOpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Pill/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;KACpC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EACN,cAAc,GACd,MAAM,GACN,OAAO,GACP,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAGD,OAAO,cAAc,CAAA;AA2FrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAOpC,CAAA"}
@@ -69,6 +69,7 @@ const DraggablePill = props => {
69
69
  };
70
70
  const StaticPill = props => {
71
71
  const {
72
+ id,
72
73
  alignIcon = 'right',
73
74
  'aria-checked': ariaChecked,
74
75
  'aria-controls': ariaControls,
@@ -101,6 +102,7 @@ const StaticPill = props => {
101
102
  "aria-label": ariaLabel,
102
103
  className: classes,
103
104
  href: to || null,
105
+ id: id,
104
106
  onClick: onClick,
105
107
  type: Element === 'button' ? 'button' : undefined,
106
108
  children: [/*#__PURE__*/_jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Link","useDraggableSortable","baseClass","DraggablePill","props","$","id","className","t0","attributes","isDragging","listeners","setNodeRef","transform","t1","t2","filter","Boolean","t3","join","t4","_jsx","StaticPill","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","size","to","classes","Element","_jsxs","href","type","undefined","Pill"],"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType, HTMLAttributes } from 'react'\n\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { Link } from '../Link/index.js'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: {\n ref: React.RefCallback<HTMLElement>\n } & HTMLAttributes<HTMLElement>\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n pillStyle?: 'dark' | 'error' | 'light' | 'light-gray' | 'success' | 'warning' | 'white'\n rounded?: boolean\n size?: 'medium' | 'small'\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n size = 'medium',\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n `${baseClass}--size-${size}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) {\n Element = 'button'\n }\n if (to) {\n Element = Link\n }\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || null}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n <span className={`${baseClass}__label`}>{children}</span>\n {Boolean(icon) && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggablePill {...props} />\n }\n return <StaticPill {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Link","useDraggableSortable","baseClass","DraggablePill","props","$","id","className","t0","attributes","isDragging","listeners","setNodeRef","transform","t1","t2","filter","Boolean","t3","join","t4","_jsx","StaticPill","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","size","to","classes","Element","_jsxs","href","type","undefined","Pill"],"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType, HTMLAttributes } from 'react'\n\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { Link } from '../Link/index.js'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: {\n ref: React.RefCallback<HTMLElement>\n } & HTMLAttributes<HTMLElement>\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n pillStyle?:\n | 'always-white'\n | 'dark'\n | 'error'\n | 'light'\n | 'light-gray'\n | 'success'\n | 'warning'\n | 'white'\n rounded?: boolean\n size?: 'medium' | 'small'\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n id,\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n size = 'medium',\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n `${baseClass}--size-${size}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) {\n Element = 'button'\n }\n\n if (to) {\n Element = Link\n }\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || null}\n id={id}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n <span className={`${baseClass}__label`}>{children}</span>\n {Boolean(icon) && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggablePill {...props} />\n }\n return <StaticPill {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
@@ -73,22 +73,28 @@
73
73
  background: var(--theme-elevation-0);
74
74
 
75
75
  &.pill--has-action {
76
- &:hover {
76
+ &:hover,
77
+ &:active {
77
78
  background: var(--theme-elevation-100);
78
79
  }
80
+ }
81
+ }
79
82
 
83
+ &--style-always-white {
84
+ background: var(--theme-elevation-850);
85
+ color: var(--theme-elevation-0);
86
+
87
+ &.pill--has-action {
88
+ &:hover,
80
89
  &:active {
81
- background: var(--theme-elevation-100);
90
+ background: var(--theme-elevation-750);
82
91
  }
83
92
  }
84
93
  }
85
94
 
86
95
  &--style-light {
87
96
  &.pill--has-action {
88
- &:hover {
89
- background: var(--theme-elevation-100);
90
- }
91
-
97
+ &:hover,
92
98
  &:active {
93
99
  background: var(--theme-elevation-100);
94
100
  }
@@ -139,4 +145,21 @@
139
145
  line-height: 18px;
140
146
  }
141
147
  }
148
+
149
+ html[data-theme='light'] {
150
+ .pill {
151
+ &--style-always-white {
152
+ background: var(--theme-elevation-0);
153
+ color: var(--theme-elevation-800);
154
+ border: 1px solid var(--theme-elevation-100);
155
+
156
+ &.pill--has-action {
157
+ &:hover,
158
+ &:active {
159
+ background: var(--theme-elevation-100);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
142
165
  }
@@ -1,6 +1,8 @@
1
1
  import type { LinkProps } from 'next/link.js';
2
2
  import * as React from 'react';
3
3
  import './index.scss';
4
+ export { PopupListDivider as Divider } from '../PopupDivider/index.js';
5
+ export { PopupListGroupLabel as GroupLabel } from '../PopupGroupLabel/index.js';
4
6
  export declare const ButtonGroup: React.FC<{
5
7
  buttonSize?: 'default' | 'small';
6
8
  children: React.ReactNode;
@@ -17,5 +19,4 @@ type MenuButtonProps = {
17
19
  onClick?: (e?: React.MouseEvent) => void;
18
20
  };
19
21
  export declare const Button: React.FC<MenuButtonProps>;
20
- export {};
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACxC,CAUA,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuD5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE/E,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACxC,CAUA,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuD5C,CAAA"}
@@ -5,6 +5,8 @@ import * as React from 'react';
5
5
  import { Link } from '../../Link/index.js';
6
6
  import './index.scss';
7
7
  const baseClass = 'popup-button-list';
8
+ export { PopupListDivider as Divider } from '../PopupDivider/index.js';
9
+ export { PopupListGroupLabel as GroupLabel } from '../PopupGroupLabel/index.js';
8
10
  export const ButtonGroup = ({
9
11
  buttonSize = 'default',
10
12
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Link","baseClass","ButtonGroup","buttonSize","children","className","textAlign","classes","filter","Boolean","join","_jsx","Button","id","active","disabled","href","onClick","e","prefetch","type"],"sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkProps } from 'next/link.js'\n\nimport * as React from 'react'\n\nimport { Link } from '../../Link/index.js'\nimport './index.scss'\n\nconst baseClass = 'popup-button-list'\n\nexport const ButtonGroup: React.FC<{\n buttonSize?: 'default' | 'small'\n children: React.ReactNode\n className?: string\n textAlign?: 'center' | 'left' | 'right'\n}> = ({ buttonSize = 'default', children, className, textAlign = 'left' }) => {\n const classes = [\n baseClass,\n className,\n `${baseClass}__text-align--${textAlign}`,\n `${baseClass}__button-size--${buttonSize}`,\n ]\n .filter(Boolean)\n .join(' ')\n return <div className={classes}>{children}</div>\n}\n\ntype MenuButtonProps = {\n active?: boolean\n children: React.ReactNode\n className?: string\n disabled?: boolean\n href?: LinkProps['href']\n id?: string\n onClick?: (e?: React.MouseEvent) => void\n}\n\nexport const Button: React.FC<MenuButtonProps> = ({\n id,\n active,\n children,\n className,\n disabled,\n href,\n onClick,\n}) => {\n const classes = [`${baseClass}__button`, active && `${baseClass}__button--selected`, className]\n .filter(Boolean)\n .join(' ')\n\n if (!disabled) {\n if (href) {\n return (\n <Link\n className={classes}\n href={href}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n prefetch={false}\n >\n {children}\n </Link>\n )\n }\n\n if (onClick) {\n return (\n <button\n className={classes}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n type=\"button\"\n >\n {children}\n </button>\n )\n }\n }\n\n return (\n <div className={classes} id={id}>\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,YAAYA,KAAA,MAAW;AAEvB,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,UAAA,GAAa,SAAS;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,SAAA,GAAY;AAAM,CAAE;EACvE,MAAMC,OAAA,GAAU,CACdN,SAAA,EACAI,SAAA,EACA,GAAGJ,SAAA,iBAA0BK,SAAA,EAAW,EACxC,GAAGL,SAAA,kBAA2BE,UAAA,EAAY,CAC3C,CACEK,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACR,oBAAOC,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;cAAUH;;AACnC;AAYA,OAAO,MAAMQ,MAAA,GAAoCA,CAAC;EAChDC,EAAE;EACFC,MAAM;EACNV,QAAQ;EACRC,SAAS;EACTU,QAAQ;EACRC,IAAI;EACJC;AAAO,CACR;EACC,MAAMV,OAAA,GAAU,CAAC,GAAGN,SAAA,UAAmB,EAAEa,MAAA,IAAU,GAAGb,SAAA,oBAA6B,EAAEI,SAAA,CAAU,CAC5FG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAI,CAACK,QAAA,EAAU;IACb,IAAIC,IAAA,EAAM;MACR,oBACEL,IAAA,CAACX,IAAA;QACCK,SAAA,EAAWE,OAAA;QACXS,IAAA,EAAMA,IAAA;QACNH,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAC,QAAA,EAAU;kBAETf;;IAGP;IAEA,IAAIa,OAAA,EAAS;MACX,oBACEN,IAAA,CAAC;QACCN,SAAA,EAAWE,OAAA;QACXM,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAE,IAAA,EAAK;kBAEJhB;;IAGP;EACF;EAEA,oBACEO,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;IAASM,EAAA,EAAIA,EAAA;cAC1BT;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","Link","baseClass","PopupListDivider","Divider","PopupListGroupLabel","GroupLabel","ButtonGroup","buttonSize","children","className","textAlign","classes","filter","Boolean","join","_jsx","Button","id","active","disabled","href","onClick","e","prefetch","type"],"sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkProps } from 'next/link.js'\n\nimport * as React from 'react'\n\nimport { Link } from '../../Link/index.js'\nimport './index.scss'\n\nconst baseClass = 'popup-button-list'\n\nexport { PopupListDivider as Divider } from '../PopupDivider/index.js'\nexport { PopupListGroupLabel as GroupLabel } from '../PopupGroupLabel/index.js'\n\nexport const ButtonGroup: React.FC<{\n buttonSize?: 'default' | 'small'\n children: React.ReactNode\n className?: string\n textAlign?: 'center' | 'left' | 'right'\n}> = ({ buttonSize = 'default', children, className, textAlign = 'left' }) => {\n const classes = [\n baseClass,\n className,\n `${baseClass}__text-align--${textAlign}`,\n `${baseClass}__button-size--${buttonSize}`,\n ]\n .filter(Boolean)\n .join(' ')\n return <div className={classes}>{children}</div>\n}\n\ntype MenuButtonProps = {\n active?: boolean\n children: React.ReactNode\n className?: string\n disabled?: boolean\n href?: LinkProps['href']\n id?: string\n onClick?: (e?: React.MouseEvent) => void\n}\n\nexport const Button: React.FC<MenuButtonProps> = ({\n id,\n active,\n children,\n className,\n disabled,\n href,\n onClick,\n}) => {\n const classes = [`${baseClass}__button`, active && `${baseClass}__button--selected`, className]\n .filter(Boolean)\n .join(' ')\n\n if (!disabled) {\n if (href) {\n return (\n <Link\n className={classes}\n href={href}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n prefetch={false}\n >\n {children}\n </Link>\n )\n }\n\n if (onClick) {\n return (\n <button\n className={classes}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n type=\"button\"\n >\n {children}\n </button>\n )\n }\n }\n\n return (\n <div className={classes} id={id}>\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,YAAYA,KAAA,MAAW;AAEvB,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,SAASC,gBAAA,IAAoBC,OAAO,QAAQ;AAC5C,SAASC,mBAAA,IAAuBC,UAAU,QAAQ;AAElD,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,UAAA,GAAa,SAAS;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,SAAA,GAAY;AAAM,CAAE;EACvE,MAAMC,OAAA,GAAU,CACdV,SAAA,EACAQ,SAAA,EACA,GAAGR,SAAA,iBAA0BS,SAAA,EAAW,EACxC,GAAGT,SAAA,kBAA2BM,UAAA,EAAY,CAC3C,CACEK,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACR,oBAAOC,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;cAAUH;;AACnC;AAYA,OAAO,MAAMQ,MAAA,GAAoCA,CAAC;EAChDC,EAAE;EACFC,MAAM;EACNV,QAAQ;EACRC,SAAS;EACTU,QAAQ;EACRC,IAAI;EACJC;AAAO,CACR;EACC,MAAMV,OAAA,GAAU,CAAC,GAAGV,SAAA,UAAmB,EAAEiB,MAAA,IAAU,GAAGjB,SAAA,oBAA6B,EAAEQ,SAAA,CAAU,CAC5FG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAI,CAACK,QAAA,EAAU;IACb,IAAIC,IAAA,EAAM;MACR,oBACEL,IAAA,CAACf,IAAA;QACCS,SAAA,EAAWE,OAAA;QACXS,IAAA,EAAMA,IAAA;QACNH,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAC,QAAA,EAAU;kBAETf;;IAGP;IAEA,IAAIa,OAAA,EAAS;MACX,oBACEN,IAAA,CAAC;QACCN,SAAA,EAAWE,OAAA;QACXM,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAE,IAAA,EAAK;kBAEJhB;;IAGP;EACF;EAEA,oBACEO,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;IAASM,EAAA,EAAIA,EAAA;cAC1BT;;AAGP","ignoreList":[]}