@payloadcms/plugin-import-export 4.0.0-internal.5b1e7cd → 4.0.0-internal.5e065b3

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 (194) hide show
  1. package/dist/components/CollectionField/index.d.ts +3 -2
  2. package/dist/components/CollectionField/index.d.ts.map +1 -1
  3. package/dist/components/CollectionField/index.js.map +1 -1
  4. package/dist/components/ExportListMenuItem/index.d.ts.map +1 -1
  5. package/dist/components/ExportListMenuItem/index.js +14 -12
  6. package/dist/components/ExportListMenuItem/index.js.map +1 -1
  7. package/dist/components/ExportPreview/index.css +52 -0
  8. package/dist/components/ExportPreview/index.d.ts +1 -1
  9. package/dist/components/ExportPreview/index.d.ts.map +1 -1
  10. package/dist/components/ExportPreview/index.js +12 -2
  11. package/dist/components/ExportPreview/index.js.map +1 -1
  12. package/dist/components/FieldsToExport/index.d.ts +3 -2
  13. package/dist/components/FieldsToExport/index.d.ts.map +1 -1
  14. package/dist/components/FieldsToExport/index.js +18 -15
  15. package/dist/components/FieldsToExport/index.js.map +1 -1
  16. package/dist/components/FieldsToExport/reduceFields.d.ts +6 -0
  17. package/dist/components/FieldsToExport/reduceFields.d.ts.map +1 -1
  18. package/dist/components/FieldsToExport/reduceFields.js +4 -0
  19. package/dist/components/FieldsToExport/reduceFields.js.map +1 -1
  20. package/dist/components/FormatField/index.d.ts +3 -2
  21. package/dist/components/FormatField/index.d.ts.map +1 -1
  22. package/dist/components/FormatField/index.js +6 -3
  23. package/dist/components/FormatField/index.js.map +1 -1
  24. package/dist/components/ImportListMenuItem/index.d.ts.map +1 -1
  25. package/dist/components/ImportListMenuItem/index.js +14 -12
  26. package/dist/components/ImportListMenuItem/index.js.map +1 -1
  27. package/dist/components/ImportPreview/index.css +45 -0
  28. package/dist/components/ImportPreview/index.d.ts +1 -1
  29. package/dist/components/ImportPreview/index.d.ts.map +1 -1
  30. package/dist/components/ImportPreview/index.js +44 -11
  31. package/dist/components/ImportPreview/index.js.map +1 -1
  32. package/dist/components/LimitField/index.d.ts +3 -2
  33. package/dist/components/LimitField/index.d.ts.map +1 -1
  34. package/dist/components/LimitField/index.js.map +1 -1
  35. package/dist/components/LocaleField/index.d.ts +3 -2
  36. package/dist/components/LocaleField/index.d.ts.map +1 -1
  37. package/dist/components/LocaleField/index.js.map +1 -1
  38. package/dist/components/Page/index.d.ts +4 -3
  39. package/dist/components/Page/index.d.ts.map +1 -1
  40. package/dist/components/Page/index.js +1 -1
  41. package/dist/components/Page/index.js.map +1 -1
  42. package/dist/components/RelationshipCell/getRelationshipGroupKey.d.ts +7 -0
  43. package/dist/components/RelationshipCell/getRelationshipGroupKey.d.ts.map +1 -0
  44. package/dist/components/RelationshipCell/getRelationshipGroupKey.js +3 -0
  45. package/dist/components/RelationshipCell/getRelationshipGroupKey.js.map +1 -0
  46. package/dist/components/RelationshipCell/getRelationshipGroups.d.ts +43 -0
  47. package/dist/components/RelationshipCell/getRelationshipGroups.d.ts.map +1 -0
  48. package/dist/components/RelationshipCell/getRelationshipGroups.js +109 -0
  49. package/dist/components/RelationshipCell/getRelationshipGroups.js.map +1 -0
  50. package/dist/components/RelationshipCell/index.css +30 -0
  51. package/dist/components/RelationshipCell/index.d.ts +15 -0
  52. package/dist/components/RelationshipCell/index.d.ts.map +1 -0
  53. package/dist/components/RelationshipCell/index.js +57 -0
  54. package/dist/components/RelationshipCell/index.js.map +1 -0
  55. package/dist/components/SortBy/index.css +9 -0
  56. package/dist/components/SortBy/index.d.ts +4 -3
  57. package/dist/components/SortBy/index.d.ts.map +1 -1
  58. package/dist/components/SortBy/index.js +1 -2
  59. package/dist/components/SortBy/index.js.map +1 -1
  60. package/dist/components/SortOrder/index.css +9 -0
  61. package/dist/components/SortOrder/index.d.ts +4 -3
  62. package/dist/components/SortOrder/index.d.ts.map +1 -1
  63. package/dist/components/SortOrder/index.js +1 -2
  64. package/dist/components/SortOrder/index.js.map +1 -1
  65. package/dist/export/batchProcessor.d.ts +12 -3
  66. package/dist/export/batchProcessor.d.ts.map +1 -1
  67. package/dist/export/batchProcessor.js +61 -15
  68. package/dist/export/batchProcessor.js.map +1 -1
  69. package/dist/export/createExport.d.ts +4 -2
  70. package/dist/export/createExport.d.ts.map +1 -1
  71. package/dist/export/createExport.js +105 -22
  72. package/dist/export/createExport.js.map +1 -1
  73. package/dist/export/getCreateExportCollectionTask.d.ts.map +1 -1
  74. package/dist/export/getCreateExportCollectionTask.js +11 -0
  75. package/dist/export/getCreateExportCollectionTask.js.map +1 -1
  76. package/dist/export/getExportCollection.d.ts.map +1 -1
  77. package/dist/export/getExportCollection.js +9 -4
  78. package/dist/export/getExportCollection.js.map +1 -1
  79. package/dist/export/handleDownload.d.ts.map +1 -1
  80. package/dist/export/handleDownload.js +7 -3
  81. package/dist/export/handleDownload.js.map +1 -1
  82. package/dist/export/handlePreview.d.ts.map +1 -1
  83. package/dist/export/handlePreview.js +60 -16
  84. package/dist/export/handlePreview.js.map +1 -1
  85. package/dist/exports/types.d.ts +1 -1
  86. package/dist/exports/types.d.ts.map +1 -1
  87. package/dist/exports/types.js.map +1 -1
  88. package/dist/import/batchProcessor.d.ts +17 -4
  89. package/dist/import/batchProcessor.d.ts.map +1 -1
  90. package/dist/import/batchProcessor.js +63 -34
  91. package/dist/import/batchProcessor.js.map +1 -1
  92. package/dist/import/createImport.d.ts +3 -11
  93. package/dist/import/createImport.d.ts.map +1 -1
  94. package/dist/import/createImport.js +42 -54
  95. package/dist/import/createImport.js.map +1 -1
  96. package/dist/import/getCreateImportCollectionTask.d.ts.map +1 -1
  97. package/dist/import/getCreateImportCollectionTask.js +5 -2
  98. package/dist/import/getCreateImportCollectionTask.js.map +1 -1
  99. package/dist/import/getImportCollection.d.ts.map +1 -1
  100. package/dist/import/getImportCollection.js +6 -4
  101. package/dist/import/getImportCollection.js.map +1 -1
  102. package/dist/import/handlePreview.d.ts.map +1 -1
  103. package/dist/import/handlePreview.js +37 -7
  104. package/dist/import/handlePreview.js.map +1 -1
  105. package/dist/index.d.ts +51 -7
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +36 -8
  108. package/dist/index.js.map +1 -1
  109. package/dist/translations/languages/en.d.ts.map +1 -1
  110. package/dist/types.d.ts +205 -42
  111. package/dist/types.d.ts.map +1 -1
  112. package/dist/types.js.map +1 -1
  113. package/dist/utilities/applyFieldHooks.d.ts +22 -0
  114. package/dist/utilities/applyFieldHooks.d.ts.map +1 -0
  115. package/dist/utilities/applyFieldHooks.js +117 -0
  116. package/dist/utilities/applyFieldHooks.js.map +1 -0
  117. package/dist/utilities/collectDisabledFieldPaths.d.ts.map +1 -1
  118. package/dist/utilities/collectDisabledFieldPaths.js +1 -1
  119. package/dist/utilities/collectDisabledFieldPaths.js.map +1 -1
  120. package/dist/utilities/flattenObject.d.ts +8 -6
  121. package/dist/utilities/flattenObject.d.ts.map +1 -1
  122. package/dist/utilities/flattenObject.js +85 -75
  123. package/dist/utilities/flattenObject.js.map +1 -1
  124. package/dist/utilities/flattenedFields.d.ts +21 -0
  125. package/dist/utilities/flattenedFields.d.ts.map +1 -0
  126. package/dist/utilities/flattenedFields.js +37 -0
  127. package/dist/utilities/flattenedFields.js.map +1 -0
  128. package/dist/utilities/getExportFieldFunctions.d.ts +5 -5
  129. package/dist/utilities/getExportFieldFunctions.d.ts.map +1 -1
  130. package/dist/utilities/getExportFieldFunctions.js +122 -99
  131. package/dist/utilities/getExportFieldFunctions.js.map +1 -1
  132. package/dist/utilities/getFileFromDoc.js +3 -3
  133. package/dist/utilities/getFileFromDoc.js.map +1 -1
  134. package/dist/utilities/getImportFieldFunctions.d.ts +5 -5
  135. package/dist/utilities/getImportFieldFunctions.d.ts.map +1 -1
  136. package/dist/utilities/getImportFieldFunctions.js +95 -103
  137. package/dist/utilities/getImportFieldFunctions.js.map +1 -1
  138. package/dist/utilities/getSchemaColumns.d.ts +1 -1
  139. package/dist/utilities/getSchemaColumns.js +2 -2
  140. package/dist/utilities/getSchemaColumns.js.map +1 -1
  141. package/dist/utilities/getSelect.d.ts.map +1 -1
  142. package/dist/utilities/getSelect.js +11 -3
  143. package/dist/utilities/getSelect.js.map +1 -1
  144. package/dist/utilities/getSubmittedFormValues.d.ts +12 -0
  145. package/dist/utilities/getSubmittedFormValues.d.ts.map +1 -0
  146. package/dist/utilities/getSubmittedFormValues.js +24 -0
  147. package/dist/utilities/getSubmittedFormValues.js.map +1 -0
  148. package/dist/utilities/isPlainObject.d.ts +2 -0
  149. package/dist/utilities/isPlainObject.d.ts.map +1 -0
  150. package/dist/utilities/isPlainObject.js +3 -0
  151. package/dist/utilities/isPlainObject.js.map +1 -0
  152. package/dist/utilities/polymorphicRel.d.ts +14 -0
  153. package/dist/utilities/polymorphicRel.d.ts.map +1 -0
  154. package/dist/utilities/polymorphicRel.js +17 -0
  155. package/dist/utilities/polymorphicRel.js.map +1 -0
  156. package/dist/utilities/processRichTextField.d.ts.map +1 -1
  157. package/dist/utilities/processRichTextField.js +7 -0
  158. package/dist/utilities/processRichTextField.js.map +1 -1
  159. package/dist/utilities/removeDisabledFields.js.map +1 -1
  160. package/dist/utilities/setNestedValue.d.ts +2 -1
  161. package/dist/utilities/setNestedValue.d.ts.map +1 -1
  162. package/dist/utilities/setNestedValue.js +65 -32
  163. package/dist/utilities/setNestedValue.js.map +1 -1
  164. package/dist/utilities/sortHelpers.d.ts +1 -1
  165. package/dist/utilities/unflattenObject.d.ts +4 -3
  166. package/dist/utilities/unflattenObject.d.ts.map +1 -1
  167. package/dist/utilities/unflattenObject.js +69 -170
  168. package/dist/utilities/unflattenObject.js.map +1 -1
  169. package/dist/utilities/unflattenPostProcess.d.ts +11 -0
  170. package/dist/utilities/unflattenPostProcess.d.ts.map +1 -0
  171. package/dist/utilities/unflattenPostProcess.js +174 -0
  172. package/dist/utilities/unflattenPostProcess.js.map +1 -0
  173. package/license.md +1 -1
  174. package/package.json +9 -9
  175. package/dist/components/ExportPreview/index.scss +0 -48
  176. package/dist/components/FieldsToExport/index.scss +0 -0
  177. package/dist/components/FieldsToExport/reduceFields.spec.js +0 -239
  178. package/dist/components/FieldsToExport/reduceFields.spec.js.map +0 -1
  179. package/dist/components/ImportPreview/index.scss +0 -41
  180. package/dist/components/SortBy/index.scss +0 -3
  181. package/dist/components/SortOrder/index.scss +0 -3
  182. package/dist/utilities/buildDisabledFieldRegex.spec.js +0 -64
  183. package/dist/utilities/buildDisabledFieldRegex.spec.js.map +0 -1
  184. package/dist/utilities/fieldToRegex.spec.js +0 -151
  185. package/dist/utilities/fieldToRegex.spec.js.map +0 -1
  186. package/dist/utilities/filterToSelectedFields.spec.js +0 -204
  187. package/dist/utilities/filterToSelectedFields.spec.js.map +0 -1
  188. package/dist/utilities/getSchemaColumns.spec.js +0 -157
  189. package/dist/utilities/getSchemaColumns.spec.js.map +0 -1
  190. package/dist/utilities/parseCSV.spec.js +0 -195
  191. package/dist/utilities/parseCSV.spec.js.map +0 -1
  192. package/dist/utilities/unflattenObject.spec.js +0 -680
  193. package/dist/utilities/unflattenObject.spec.js.map +0 -1
  194. /package/dist/components/Page/{index.scss → index.css} +0 -0
@@ -1,239 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { reduceFields } from './reduceFields.js';
3
- const values = (result)=>result.map((f)=>f.value);
4
- describe('reduceFields', ()=>{
5
- describe('excludeUnsortable', ()=>{
6
- it('should include array and blocks fields by default', ()=>{
7
- const fields = [
8
- {
9
- name: 'title',
10
- type: 'text'
11
- },
12
- {
13
- name: 'items',
14
- type: 'array',
15
- fields: [
16
- {
17
- name: 'text',
18
- type: 'text'
19
- }
20
- ]
21
- },
22
- {
23
- name: 'layout',
24
- type: 'blocks',
25
- blocks: []
26
- }
27
- ];
28
- const result = values(reduceFields({
29
- fields
30
- }));
31
- expect(result).toContain('title');
32
- expect(result).toContain('items');
33
- expect(result).toContain('layout');
34
- });
35
- it('should exclude array fields when excludeUnsortable is true', ()=>{
36
- const fields = [
37
- {
38
- name: 'title',
39
- type: 'text'
40
- },
41
- {
42
- name: 'items',
43
- type: 'array',
44
- fields: [
45
- {
46
- name: 'text',
47
- type: 'text'
48
- }
49
- ]
50
- }
51
- ];
52
- const result = values(reduceFields({
53
- excludeUnsortable: true,
54
- fields
55
- }));
56
- expect(result).toContain('title');
57
- expect(result).not.toContain('items');
58
- });
59
- it('should exclude blocks fields when excludeUnsortable is true', ()=>{
60
- const fields = [
61
- {
62
- name: 'title',
63
- type: 'text'
64
- },
65
- {
66
- name: 'layout',
67
- type: 'blocks',
68
- blocks: []
69
- }
70
- ];
71
- const result = values(reduceFields({
72
- excludeUnsortable: true,
73
- fields
74
- }));
75
- expect(result).toContain('title');
76
- expect(result).not.toContain('layout');
77
- });
78
- });
79
- describe('disabledFields', ()=>{
80
- it('should include all fields when disabledFields is empty', ()=>{
81
- const fields = [
82
- {
83
- name: 'title',
84
- type: 'text'
85
- },
86
- {
87
- name: 'slug',
88
- type: 'text'
89
- }
90
- ];
91
- const result = values(reduceFields({
92
- disabledFields: [],
93
- fields
94
- }));
95
- expect(result).toContain('title');
96
- expect(result).toContain('slug');
97
- });
98
- it('should exclude a field whose path is in disabledFields', ()=>{
99
- const fields = [
100
- {
101
- name: 'title',
102
- type: 'text'
103
- },
104
- {
105
- name: 'slug',
106
- type: 'text'
107
- }
108
- ];
109
- const result = values(reduceFields({
110
- disabledFields: [
111
- 'slug'
112
- ],
113
- fields
114
- }));
115
- expect(result).toContain('title');
116
- expect(result).not.toContain('slug');
117
- });
118
- it('should exclude nested fields whose paths start with a disabled parent path', ()=>{
119
- const fields = [
120
- {
121
- name: 'meta',
122
- type: 'group',
123
- fields: [
124
- {
125
- name: 'title',
126
- type: 'text'
127
- },
128
- {
129
- name: 'description',
130
- type: 'text'
131
- }
132
- ]
133
- }
134
- ];
135
- const result = values(reduceFields({
136
- disabledFields: [
137
- 'meta.description'
138
- ],
139
- fields
140
- }));
141
- expect(result).toContain('meta.title');
142
- expect(result).not.toContain('meta.description');
143
- });
144
- });
145
- describe('combined excludeUnsortable and disabledFields', ()=>{
146
- it('should apply both filters simultaneously', ()=>{
147
- const fields = [
148
- {
149
- name: 'title',
150
- type: 'text'
151
- },
152
- {
153
- name: 'slug',
154
- type: 'text'
155
- },
156
- {
157
- name: 'items',
158
- type: 'array',
159
- fields: [
160
- {
161
- name: 'text',
162
- type: 'text'
163
- }
164
- ]
165
- }
166
- ];
167
- const result = values(reduceFields({
168
- disabledFields: [
169
- 'slug'
170
- ],
171
- excludeUnsortable: true,
172
- fields
173
- }));
174
- expect(result).toContain('title');
175
- expect(result).not.toContain('slug');
176
- expect(result).not.toContain('items');
177
- });
178
- });
179
- describe('recursive propagation through group sub-fields', ()=>{
180
- it('should propagate excludeUnsortable into group sub-fields', ()=>{
181
- const fields = [
182
- {
183
- name: 'meta',
184
- type: 'group',
185
- fields: [
186
- {
187
- name: 'title',
188
- type: 'text'
189
- },
190
- {
191
- name: 'tags',
192
- type: 'array',
193
- fields: [
194
- {
195
- name: 'tag',
196
- type: 'text'
197
- }
198
- ]
199
- }
200
- ]
201
- }
202
- ];
203
- const result = values(reduceFields({
204
- excludeUnsortable: true,
205
- fields
206
- }));
207
- expect(result).toContain('meta.title');
208
- expect(result).not.toContain('meta.tags');
209
- });
210
- it('should propagate disabledFields into group sub-fields', ()=>{
211
- const fields = [
212
- {
213
- name: 'meta',
214
- type: 'group',
215
- fields: [
216
- {
217
- name: 'title',
218
- type: 'text'
219
- },
220
- {
221
- name: 'description',
222
- type: 'text'
223
- }
224
- ]
225
- }
226
- ];
227
- const result = values(reduceFields({
228
- disabledFields: [
229
- 'meta.description'
230
- ],
231
- fields
232
- }));
233
- expect(result).toContain('meta.title');
234
- expect(result).not.toContain('meta.description');
235
- });
236
- });
237
- });
238
-
239
- //# sourceMappingURL=reduceFields.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/FieldsToExport/reduceFields.spec.ts"],"sourcesContent":["import type { ClientField } from 'payload'\n\nimport { describe, expect, it } from 'vitest'\n\nimport { reduceFields } from './reduceFields.js'\n\nconst values = (result: ReturnType<typeof reduceFields>) => result.map((f) => f.value)\n\ndescribe('reduceFields', () => {\n describe('excludeUnsortable', () => {\n it('should include array and blocks fields by default', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'items', type: 'array', fields: [{ name: 'text', type: 'text' }] },\n { name: 'layout', type: 'blocks', blocks: [] },\n ]\n\n const result = values(reduceFields({ fields }))\n\n expect(result).toContain('title')\n expect(result).toContain('items')\n expect(result).toContain('layout')\n })\n\n it('should exclude array fields when excludeUnsortable is true', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'items', type: 'array', fields: [{ name: 'text', type: 'text' }] },\n ]\n\n const result = values(reduceFields({ excludeUnsortable: true, fields }))\n\n expect(result).toContain('title')\n expect(result).not.toContain('items')\n })\n\n it('should exclude blocks fields when excludeUnsortable is true', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'layout', type: 'blocks', blocks: [] },\n ]\n\n const result = values(reduceFields({ excludeUnsortable: true, fields }))\n\n expect(result).toContain('title')\n expect(result).not.toContain('layout')\n })\n })\n\n describe('disabledFields', () => {\n it('should include all fields when disabledFields is empty', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'slug', type: 'text' },\n ]\n\n const result = values(reduceFields({ disabledFields: [], fields }))\n\n expect(result).toContain('title')\n expect(result).toContain('slug')\n })\n\n it('should exclude a field whose path is in disabledFields', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'slug', type: 'text' },\n ]\n\n const result = values(reduceFields({ disabledFields: ['slug'], fields }))\n\n expect(result).toContain('title')\n expect(result).not.toContain('slug')\n })\n\n it('should exclude nested fields whose paths start with a disabled parent path', () => {\n const fields: ClientField[] = [\n {\n name: 'meta',\n type: 'group',\n fields: [\n { name: 'title', type: 'text' },\n { name: 'description', type: 'text' },\n ],\n },\n ]\n\n const result = values(reduceFields({ disabledFields: ['meta.description'], fields }))\n\n expect(result).toContain('meta.title')\n expect(result).not.toContain('meta.description')\n })\n })\n\n describe('combined excludeUnsortable and disabledFields', () => {\n it('should apply both filters simultaneously', () => {\n const fields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'slug', type: 'text' },\n { name: 'items', type: 'array', fields: [{ name: 'text', type: 'text' }] },\n ]\n\n const result = values(\n reduceFields({ disabledFields: ['slug'], excludeUnsortable: true, fields }),\n )\n\n expect(result).toContain('title')\n expect(result).not.toContain('slug')\n expect(result).not.toContain('items')\n })\n })\n\n describe('recursive propagation through group sub-fields', () => {\n it('should propagate excludeUnsortable into group sub-fields', () => {\n const fields: ClientField[] = [\n {\n name: 'meta',\n type: 'group',\n fields: [\n { name: 'title', type: 'text' },\n { name: 'tags', type: 'array', fields: [{ name: 'tag', type: 'text' }] },\n ],\n },\n ]\n\n const result = values(reduceFields({ excludeUnsortable: true, fields }))\n\n expect(result).toContain('meta.title')\n expect(result).not.toContain('meta.tags')\n })\n\n it('should propagate disabledFields into group sub-fields', () => {\n const fields: ClientField[] = [\n {\n name: 'meta',\n type: 'group',\n fields: [\n { name: 'title', type: 'text' },\n { name: 'description', type: 'text' },\n ],\n },\n ]\n\n const result = values(reduceFields({ disabledFields: ['meta.description'], fields }))\n\n expect(result).toContain('meta.title')\n expect(result).not.toContain('meta.description')\n })\n })\n})\n"],"names":["describe","expect","it","reduceFields","values","result","map","f","value","fields","name","type","blocks","toContain","excludeUnsortable","not","disabledFields"],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- @layer payload-default {
2
- .import-preview {
3
- &__header {
4
- display: flex;
5
- justify-content: space-between;
6
- align-items: flex-end;
7
- margin-bottom: 10px;
8
- }
9
-
10
- &__info {
11
- font-size: var(--font-size-small);
12
- color: var(--theme-elevation-500);
13
- }
14
-
15
- &__import-count {
16
- font-size: var(--font-size-small);
17
- color: var(--theme-elevation-500);
18
- }
19
-
20
- &__pagination {
21
- display: flex;
22
- align-items: center;
23
- justify-content: space-between;
24
- gap: var(--base);
25
- margin-top: var(--base);
26
- padding-top: var(--base);
27
- border-top: 1px solid var(--theme-elevation-100);
28
-
29
- // When only PerPage is present (no Pagination), keep it on the right
30
- .per-page:only-child {
31
- margin-left: auto;
32
- }
33
- }
34
-
35
- &__page-info {
36
- font-size: var(--font-size-small);
37
- color: var(--theme-elevation-500);
38
- white-space: nowrap;
39
- }
40
- }
41
- }
@@ -1,3 +0,0 @@
1
- .sort-by-fields {
2
- --field-width: 25%;
3
- }
@@ -1,3 +0,0 @@
1
- .sort-order-field {
2
- --field-width: 25%;
3
- }
@@ -1,64 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { buildDisabledFieldRegex } from './buildDisabledFieldRegex.js';
3
- describe('buildDisabledFieldRegex', ()=>{
4
- describe('simple field paths', ()=>{
5
- it('should match exact field name', ()=>{
6
- const matcher = buildDisabledFieldRegex('title');
7
- expect(matcher.test('title')).toBe(true);
8
- });
9
- it('should match field with array index', ()=>{
10
- const matcher = buildDisabledFieldRegex('items');
11
- expect(matcher.test('items_0')).toBe(true);
12
- expect(matcher.test('items_1')).toBe(true);
13
- });
14
- it('should match nested fields under array items', ()=>{
15
- const matcher = buildDisabledFieldRegex('items');
16
- expect(matcher.test('items_0_title')).toBe(true);
17
- });
18
- it('should not match unrelated fields', ()=>{
19
- const matcher = buildDisabledFieldRegex('title');
20
- expect(matcher.test('otherField')).toBe(false);
21
- expect(matcher.test('titleExtra')).toBe(false);
22
- });
23
- });
24
- describe('block type slug handling', ()=>{
25
- it('should match field path with block type slug', ()=>{
26
- const matcher = buildDisabledFieldRegex('blocks.content');
27
- // Standard cases
28
- expect(matcher.test('blocks_content')).toBe(true);
29
- expect(matcher.test('blocks_0_content')).toBe(true);
30
- // With block type slug (hero, cta, etc.)
31
- expect(matcher.test('blocks_0_hero_content')).toBe(true);
32
- expect(matcher.test('blocks_1_cta_content')).toBe(true);
33
- expect(matcher.test('blocks_hero_content')).toBe(true);
34
- });
35
- it('should match nested fields within blocks', ()=>{
36
- const matcher = buildDisabledFieldRegex('blocks.content');
37
- expect(matcher.test('blocks_0_hero_content_title')).toBe(true);
38
- expect(matcher.test('blocks_0_content_richText')).toBe(true);
39
- });
40
- });
41
- describe('deeply nested paths', ()=>{
42
- it('should match three-level nesting with indices and slugs', ()=>{
43
- const matcher = buildDisabledFieldRegex('layout.sections.items');
44
- expect(matcher.test('layout_sections_items')).toBe(true);
45
- expect(matcher.test('layout_0_sections_items')).toBe(true);
46
- expect(matcher.test('layout_0_sections_1_items')).toBe(true);
47
- expect(matcher.test('layout_0_hero_sections_1_items')).toBe(true);
48
- });
49
- });
50
- describe('edge cases', ()=>{
51
- it('should not match partial field names', ()=>{
52
- const matcher = buildDisabledFieldRegex('block');
53
- expect(matcher.test('blocks')).toBe(false);
54
- expect(matcher.test('blockType')).toBe(false);
55
- });
56
- it('should handle field names with numbers', ()=>{
57
- const matcher = buildDisabledFieldRegex('field1.field2');
58
- expect(matcher.test('field1_field2')).toBe(true);
59
- expect(matcher.test('field1_0_field2')).toBe(true);
60
- });
61
- });
62
- });
63
-
64
- //# sourceMappingURL=buildDisabledFieldRegex.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/buildDisabledFieldRegex.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { buildDisabledFieldRegex } from './buildDisabledFieldRegex.js'\n\ndescribe('buildDisabledFieldRegex', () => {\n describe('simple field paths', () => {\n it('should match exact field name', () => {\n const matcher = buildDisabledFieldRegex('title')\n\n expect(matcher.test('title')).toBe(true)\n })\n\n it('should match field with array index', () => {\n const matcher = buildDisabledFieldRegex('items')\n\n expect(matcher.test('items_0')).toBe(true)\n expect(matcher.test('items_1')).toBe(true)\n })\n\n it('should match nested fields under array items', () => {\n const matcher = buildDisabledFieldRegex('items')\n\n expect(matcher.test('items_0_title')).toBe(true)\n })\n\n it('should not match unrelated fields', () => {\n const matcher = buildDisabledFieldRegex('title')\n\n expect(matcher.test('otherField')).toBe(false)\n expect(matcher.test('titleExtra')).toBe(false)\n })\n })\n\n describe('block type slug handling', () => {\n it('should match field path with block type slug', () => {\n const matcher = buildDisabledFieldRegex('blocks.content')\n\n // Standard cases\n expect(matcher.test('blocks_content')).toBe(true)\n expect(matcher.test('blocks_0_content')).toBe(true)\n\n // With block type slug (hero, cta, etc.)\n expect(matcher.test('blocks_0_hero_content')).toBe(true)\n expect(matcher.test('blocks_1_cta_content')).toBe(true)\n expect(matcher.test('blocks_hero_content')).toBe(true)\n })\n\n it('should match nested fields within blocks', () => {\n const matcher = buildDisabledFieldRegex('blocks.content')\n\n expect(matcher.test('blocks_0_hero_content_title')).toBe(true)\n expect(matcher.test('blocks_0_content_richText')).toBe(true)\n })\n })\n\n describe('deeply nested paths', () => {\n it('should match three-level nesting with indices and slugs', () => {\n const matcher = buildDisabledFieldRegex('layout.sections.items')\n\n expect(matcher.test('layout_sections_items')).toBe(true)\n expect(matcher.test('layout_0_sections_items')).toBe(true)\n expect(matcher.test('layout_0_sections_1_items')).toBe(true)\n expect(matcher.test('layout_0_hero_sections_1_items')).toBe(true)\n })\n })\n\n describe('edge cases', () => {\n it('should not match partial field names', () => {\n const matcher = buildDisabledFieldRegex('block')\n\n expect(matcher.test('blocks')).toBe(false)\n expect(matcher.test('blockType')).toBe(false)\n })\n\n it('should handle field names with numbers', () => {\n const matcher = buildDisabledFieldRegex('field1.field2')\n\n expect(matcher.test('field1_field2')).toBe(true)\n expect(matcher.test('field1_0_field2')).toBe(true)\n })\n })\n})\n"],"names":["describe","expect","it","buildDisabledFieldRegex","matcher","test","toBe"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,uBAAuB,QAAQ,+BAA8B;AAEtEH,SAAS,2BAA2B;IAClCA,SAAS,sBAAsB;QAC7BE,GAAG,iCAAiC;YAClC,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,UAAUC,IAAI,CAAC;QACrC;QAEAJ,GAAG,uCAAuC;YACxC,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,YAAYC,IAAI,CAAC;YACrCL,OAAOG,QAAQC,IAAI,CAAC,YAAYC,IAAI,CAAC;QACvC;QAEAJ,GAAG,gDAAgD;YACjD,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,kBAAkBC,IAAI,CAAC;QAC7C;QAEAJ,GAAG,qCAAqC;YACtC,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,eAAeC,IAAI,CAAC;YACxCL,OAAOG,QAAQC,IAAI,CAAC,eAAeC,IAAI,CAAC;QAC1C;IACF;IAEAN,SAAS,4BAA4B;QACnCE,GAAG,gDAAgD;YACjD,MAAME,UAAUD,wBAAwB;YAExC,iBAAiB;YACjBF,OAAOG,QAAQC,IAAI,CAAC,mBAAmBC,IAAI,CAAC;YAC5CL,OAAOG,QAAQC,IAAI,CAAC,qBAAqBC,IAAI,CAAC;YAE9C,yCAAyC;YACzCL,OAAOG,QAAQC,IAAI,CAAC,0BAA0BC,IAAI,CAAC;YACnDL,OAAOG,QAAQC,IAAI,CAAC,yBAAyBC,IAAI,CAAC;YAClDL,OAAOG,QAAQC,IAAI,CAAC,wBAAwBC,IAAI,CAAC;QACnD;QAEAJ,GAAG,4CAA4C;YAC7C,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,gCAAgCC,IAAI,CAAC;YACzDL,OAAOG,QAAQC,IAAI,CAAC,8BAA8BC,IAAI,CAAC;QACzD;IACF;IAEAN,SAAS,uBAAuB;QAC9BE,GAAG,2DAA2D;YAC5D,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,0BAA0BC,IAAI,CAAC;YACnDL,OAAOG,QAAQC,IAAI,CAAC,4BAA4BC,IAAI,CAAC;YACrDL,OAAOG,QAAQC,IAAI,CAAC,8BAA8BC,IAAI,CAAC;YACvDL,OAAOG,QAAQC,IAAI,CAAC,mCAAmCC,IAAI,CAAC;QAC9D;IACF;IAEAN,SAAS,cAAc;QACrBE,GAAG,wCAAwC;YACzC,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,WAAWC,IAAI,CAAC;YACpCL,OAAOG,QAAQC,IAAI,CAAC,cAAcC,IAAI,CAAC;QACzC;QAEAJ,GAAG,0CAA0C;YAC3C,MAAME,UAAUD,wBAAwB;YAExCF,OAAOG,QAAQC,IAAI,CAAC,kBAAkBC,IAAI,CAAC;YAC3CL,OAAOG,QAAQC,IAAI,CAAC,oBAAoBC,IAAI,CAAC;QAC/C;IACF;AACF"}
@@ -1,151 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { fieldToRegex } from './fieldToRegex.js';
3
- describe('fieldToRegex', ()=>{
4
- describe('simple field paths', ()=>{
5
- it('should match exact field name', ()=>{
6
- const regex = fieldToRegex('title');
7
- expect(regex.test('title')).toBe(true);
8
- });
9
- it('should match field with array index', ()=>{
10
- const regex = fieldToRegex('items');
11
- expect(regex.test('items_0')).toBe(true);
12
- expect(regex.test('items_1')).toBe(true);
13
- expect(regex.test('items_99')).toBe(true);
14
- });
15
- it('should match nested fields under array items', ()=>{
16
- const regex = fieldToRegex('items');
17
- expect(regex.test('items_0_title')).toBe(true);
18
- expect(regex.test('items_1_description')).toBe(true);
19
- });
20
- it('should not match unrelated fields', ()=>{
21
- const regex = fieldToRegex('title');
22
- expect(regex.test('otherField')).toBe(false);
23
- expect(regex.test('titleExtra')).toBe(false);
24
- });
25
- });
26
- describe('dotted field paths', ()=>{
27
- it('should match nested field path without indices', ()=>{
28
- const regex = fieldToRegex('blocks.content');
29
- expect(regex.test('blocks_content')).toBe(true);
30
- });
31
- it('should match nested field path with array index in middle', ()=>{
32
- const regex = fieldToRegex('blocks.content');
33
- expect(regex.test('blocks_0_content')).toBe(true);
34
- expect(regex.test('blocks_1_content')).toBe(true);
35
- expect(regex.test('blocks_42_content')).toBe(true);
36
- });
37
- it('should match deeply nested paths with multiple indices', ()=>{
38
- const regex = fieldToRegex('blocks.content.items');
39
- expect(regex.test('blocks_0_content_items')).toBe(true);
40
- expect(regex.test('blocks_0_content_0_items')).toBe(true);
41
- expect(regex.test('blocks_1_content_2_items')).toBe(true);
42
- });
43
- it('should match nested fields under the matched path', ()=>{
44
- const regex = fieldToRegex('blocks.content');
45
- expect(regex.test('blocks_0_content_title')).toBe(true);
46
- expect(regex.test('blocks_0_content_richText')).toBe(true);
47
- expect(regex.test('blocks_1_content_0_value')).toBe(true);
48
- });
49
- });
50
- describe('complex nested structures', ()=>{
51
- it('should handle three-level nesting', ()=>{
52
- const regex = fieldToRegex('layout.sections.items');
53
- expect(regex.test('layout_sections_items')).toBe(true);
54
- expect(regex.test('layout_0_sections_items')).toBe(true);
55
- expect(regex.test('layout_0_sections_1_items')).toBe(true);
56
- expect(regex.test('layout_0_sections_1_items_2')).toBe(true);
57
- expect(regex.test('layout_0_sections_1_items_2_title')).toBe(true);
58
- });
59
- it('should not match partial field name matches', ()=>{
60
- const regex = fieldToRegex('block');
61
- expect(regex.test('blocks')).toBe(false);
62
- expect(regex.test('blocks_0_content')).toBe(false);
63
- expect(regex.test('blockType')).toBe(false);
64
- });
65
- it('should handle field names that look like array indices', ()=>{
66
- const regex = fieldToRegex('data.row');
67
- expect(regex.test('data_row')).toBe(true);
68
- expect(regex.test('data_0_row')).toBe(true);
69
- expect(regex.test('data_0_row_1')).toBe(true);
70
- });
71
- });
72
- describe('edge cases', ()=>{
73
- it('should handle single character field names', ()=>{
74
- const regex = fieldToRegex('a.b.c');
75
- expect(regex.test('a_b_c')).toBe(true);
76
- expect(regex.test('a_0_b_c')).toBe(true);
77
- expect(regex.test('a_0_b_1_c')).toBe(true);
78
- });
79
- it('should handle field names with numbers', ()=>{
80
- const regex = fieldToRegex('field1.field2');
81
- expect(regex.test('field1_field2')).toBe(true);
82
- expect(regex.test('field1_0_field2')).toBe(true);
83
- });
84
- it('should match field at end of key exactly', ()=>{
85
- const regex = fieldToRegex('meta.title');
86
- expect(regex.test('meta_title')).toBe(true);
87
- expect(regex.test('meta_0_title')).toBe(true);
88
- // Should not match if title is a prefix of another word
89
- expect(regex.test('meta_titleExtra')).toBe(false);
90
- });
91
- it('should handle field names starting with underscore', ()=>{
92
- const regex = fieldToRegex('_status');
93
- expect(regex.test('_status')).toBe(true);
94
- expect(regex.test('_status_0')).toBe(true);
95
- expect(regex.test('_statusExtra')).toBe(false);
96
- });
97
- it('should handle field names containing underscores', ()=>{
98
- const regex = fieldToRegex('my_field');
99
- expect(regex.test('my_field')).toBe(true);
100
- expect(regex.test('my_field_0')).toBe(true);
101
- expect(regex.test('my_fieldExtra')).toBe(false);
102
- });
103
- it('should handle nested paths with underscore fields', ()=>{
104
- const regex = fieldToRegex('group._status');
105
- expect(regex.test('group__status')).toBe(true);
106
- expect(regex.test('group_0__status')).toBe(true);
107
- });
108
- });
109
- describe('date fields with timezone companions', ()=>{
110
- it('should match date field and its _tz companion', ()=>{
111
- const regex = fieldToRegex('publishedDate');
112
- expect(regex.test('publishedDate')).toBe(true);
113
- expect(regex.test('publishedDate_tz')).toBe(true);
114
- });
115
- it('should match nested date field and its _tz companion', ()=>{
116
- const regex = fieldToRegex('meta.publishedDate');
117
- expect(regex.test('meta_publishedDate')).toBe(true);
118
- expect(regex.test('meta_publishedDate_tz')).toBe(true);
119
- expect(regex.test('meta_0_publishedDate')).toBe(true);
120
- expect(regex.test('meta_0_publishedDate_tz')).toBe(true);
121
- });
122
- it('should match date fields in arrays with _tz companions', ()=>{
123
- const regex = fieldToRegex('events.startDate');
124
- expect(regex.test('events_0_startDate')).toBe(true);
125
- expect(regex.test('events_0_startDate_tz')).toBe(true);
126
- expect(regex.test('events_1_startDate')).toBe(true);
127
- expect(regex.test('events_1_startDate_tz')).toBe(true);
128
- });
129
- it('should match deeply nested date fields with _tz companions', ()=>{
130
- const regex = fieldToRegex('blocks.content.scheduledAt');
131
- expect(regex.test('blocks_0_content_scheduledAt')).toBe(true);
132
- expect(regex.test('blocks_0_content_scheduledAt_tz')).toBe(true);
133
- expect(regex.test('blocks_0_content_0_scheduledAt')).toBe(true);
134
- expect(regex.test('blocks_0_content_0_scheduledAt_tz')).toBe(true);
135
- });
136
- it('should not match _tz suffix on unrelated fields', ()=>{
137
- const regex = fieldToRegex('title');
138
- expect(regex.test('title')).toBe(true);
139
- expect(regex.test('title_tz')).toBe(true); // _tz is treated as a nested field suffix
140
- expect(regex.test('publishedDate_tz')).toBe(false);
141
- });
142
- it('should handle date fields with underscores in name', ()=>{
143
- const regex = fieldToRegex('start_date');
144
- expect(regex.test('start_date')).toBe(true);
145
- expect(regex.test('start_date_tz')).toBe(true);
146
- expect(regex.test('start_date_0')).toBe(true);
147
- });
148
- });
149
- });
150
-
151
- //# sourceMappingURL=fieldToRegex.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/fieldToRegex.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { fieldToRegex } from './fieldToRegex.js'\n\ndescribe('fieldToRegex', () => {\n describe('simple field paths', () => {\n it('should match exact field name', () => {\n const regex = fieldToRegex('title')\n\n expect(regex.test('title')).toBe(true)\n })\n\n it('should match field with array index', () => {\n const regex = fieldToRegex('items')\n\n expect(regex.test('items_0')).toBe(true)\n expect(regex.test('items_1')).toBe(true)\n expect(regex.test('items_99')).toBe(true)\n })\n\n it('should match nested fields under array items', () => {\n const regex = fieldToRegex('items')\n\n expect(regex.test('items_0_title')).toBe(true)\n expect(regex.test('items_1_description')).toBe(true)\n })\n\n it('should not match unrelated fields', () => {\n const regex = fieldToRegex('title')\n\n expect(regex.test('otherField')).toBe(false)\n expect(regex.test('titleExtra')).toBe(false)\n })\n })\n\n describe('dotted field paths', () => {\n it('should match nested field path without indices', () => {\n const regex = fieldToRegex('blocks.content')\n\n expect(regex.test('blocks_content')).toBe(true)\n })\n\n it('should match nested field path with array index in middle', () => {\n const regex = fieldToRegex('blocks.content')\n\n expect(regex.test('blocks_0_content')).toBe(true)\n expect(regex.test('blocks_1_content')).toBe(true)\n expect(regex.test('blocks_42_content')).toBe(true)\n })\n\n it('should match deeply nested paths with multiple indices', () => {\n const regex = fieldToRegex('blocks.content.items')\n\n expect(regex.test('blocks_0_content_items')).toBe(true)\n expect(regex.test('blocks_0_content_0_items')).toBe(true)\n expect(regex.test('blocks_1_content_2_items')).toBe(true)\n })\n\n it('should match nested fields under the matched path', () => {\n const regex = fieldToRegex('blocks.content')\n\n expect(regex.test('blocks_0_content_title')).toBe(true)\n expect(regex.test('blocks_0_content_richText')).toBe(true)\n expect(regex.test('blocks_1_content_0_value')).toBe(true)\n })\n })\n\n describe('complex nested structures', () => {\n it('should handle three-level nesting', () => {\n const regex = fieldToRegex('layout.sections.items')\n\n expect(regex.test('layout_sections_items')).toBe(true)\n expect(regex.test('layout_0_sections_items')).toBe(true)\n expect(regex.test('layout_0_sections_1_items')).toBe(true)\n expect(regex.test('layout_0_sections_1_items_2')).toBe(true)\n expect(regex.test('layout_0_sections_1_items_2_title')).toBe(true)\n })\n\n it('should not match partial field name matches', () => {\n const regex = fieldToRegex('block')\n\n expect(regex.test('blocks')).toBe(false)\n expect(regex.test('blocks_0_content')).toBe(false)\n expect(regex.test('blockType')).toBe(false)\n })\n\n it('should handle field names that look like array indices', () => {\n const regex = fieldToRegex('data.row')\n\n expect(regex.test('data_row')).toBe(true)\n expect(regex.test('data_0_row')).toBe(true)\n expect(regex.test('data_0_row_1')).toBe(true)\n })\n })\n\n describe('edge cases', () => {\n it('should handle single character field names', () => {\n const regex = fieldToRegex('a.b.c')\n\n expect(regex.test('a_b_c')).toBe(true)\n expect(regex.test('a_0_b_c')).toBe(true)\n expect(regex.test('a_0_b_1_c')).toBe(true)\n })\n\n it('should handle field names with numbers', () => {\n const regex = fieldToRegex('field1.field2')\n\n expect(regex.test('field1_field2')).toBe(true)\n expect(regex.test('field1_0_field2')).toBe(true)\n })\n\n it('should match field at end of key exactly', () => {\n const regex = fieldToRegex('meta.title')\n\n expect(regex.test('meta_title')).toBe(true)\n expect(regex.test('meta_0_title')).toBe(true)\n // Should not match if title is a prefix of another word\n expect(regex.test('meta_titleExtra')).toBe(false)\n })\n\n it('should handle field names starting with underscore', () => {\n const regex = fieldToRegex('_status')\n\n expect(regex.test('_status')).toBe(true)\n expect(regex.test('_status_0')).toBe(true)\n expect(regex.test('_statusExtra')).toBe(false)\n })\n\n it('should handle field names containing underscores', () => {\n const regex = fieldToRegex('my_field')\n\n expect(regex.test('my_field')).toBe(true)\n expect(regex.test('my_field_0')).toBe(true)\n expect(regex.test('my_fieldExtra')).toBe(false)\n })\n\n it('should handle nested paths with underscore fields', () => {\n const regex = fieldToRegex('group._status')\n\n expect(regex.test('group__status')).toBe(true)\n expect(regex.test('group_0__status')).toBe(true)\n })\n })\n\n describe('date fields with timezone companions', () => {\n it('should match date field and its _tz companion', () => {\n const regex = fieldToRegex('publishedDate')\n\n expect(regex.test('publishedDate')).toBe(true)\n expect(regex.test('publishedDate_tz')).toBe(true)\n })\n\n it('should match nested date field and its _tz companion', () => {\n const regex = fieldToRegex('meta.publishedDate')\n\n expect(regex.test('meta_publishedDate')).toBe(true)\n expect(regex.test('meta_publishedDate_tz')).toBe(true)\n expect(regex.test('meta_0_publishedDate')).toBe(true)\n expect(regex.test('meta_0_publishedDate_tz')).toBe(true)\n })\n\n it('should match date fields in arrays with _tz companions', () => {\n const regex = fieldToRegex('events.startDate')\n\n expect(regex.test('events_0_startDate')).toBe(true)\n expect(regex.test('events_0_startDate_tz')).toBe(true)\n expect(regex.test('events_1_startDate')).toBe(true)\n expect(regex.test('events_1_startDate_tz')).toBe(true)\n })\n\n it('should match deeply nested date fields with _tz companions', () => {\n const regex = fieldToRegex('blocks.content.scheduledAt')\n\n expect(regex.test('blocks_0_content_scheduledAt')).toBe(true)\n expect(regex.test('blocks_0_content_scheduledAt_tz')).toBe(true)\n expect(regex.test('blocks_0_content_0_scheduledAt')).toBe(true)\n expect(regex.test('blocks_0_content_0_scheduledAt_tz')).toBe(true)\n })\n\n it('should not match _tz suffix on unrelated fields', () => {\n const regex = fieldToRegex('title')\n\n expect(regex.test('title')).toBe(true)\n expect(regex.test('title_tz')).toBe(true) // _tz is treated as a nested field suffix\n expect(regex.test('publishedDate_tz')).toBe(false)\n })\n\n it('should handle date fields with underscores in name', () => {\n const regex = fieldToRegex('start_date')\n\n expect(regex.test('start_date')).toBe(true)\n expect(regex.test('start_date_tz')).toBe(true)\n expect(regex.test('start_date_0')).toBe(true)\n })\n })\n})\n"],"names":["describe","expect","it","fieldToRegex","regex","test","toBe"],"mappings":"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"}