@payloadcms/next 3.19.0 → 3.20.0-canary.260f830
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/prod/styles.css +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +2 -1
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +4 -2
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +2 -1
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +2 -2
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +2 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +2 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +5 -2
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Version/Default/index.js +1 -1
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +41 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +5 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +60 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +34 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +81 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +11 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +4 -6
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +188 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +13 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +35 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +104 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +2 -2
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countChangedFields.spec.js","names":["countChangedFields","countChangedFieldsInRows","describe","locales","undefined","it","fields","name","type","comparison","a","b","version","result","expect","toBe","id","label","c","group","tabs","namedTab","admin","arrayField","blocks","slug","blockType","d","localized","en","de","tab","field","comparisonRows","versionRows"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.ts"],"sourcesContent":["import { countChangedFields, countChangedFieldsInRows } from './countChangedFields.js'\nimport type { ClientField } from 'payload'\n\ndescribe('countChangedFields', () => {\n // locales can be undefined when not configured in payload.config.js\n const locales = undefined\n it('should return 0 when no fields have changed', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const comparison = { a: 'original', b: 123 }\n const version = { a: 'original', b: 123 }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(0)\n })\n\n it('should count simple changed fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const comparison = { a: 'original', b: 123 }\n const version = { a: 'changed', b: 123 }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(1)\n })\n\n it('should count previously undefined fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const comparison = {}\n const version = { a: 'new', b: 123 }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should not count the id field because it is not displayed in the version view', () => {\n const fields: ClientField[] = [\n { name: 'id', type: 'text' },\n { name: 'a', type: 'text' },\n ]\n const comparison = { id: 'original', a: 'original' }\n const version = { id: 'changed', a: 'original' }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside collapsible fields', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const comparison = { a: 'original', b: 'original', c: 'original' }\n const version = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside row fields', () => {\n const fields: ClientField[] = [\n {\n type: 'row',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const comparison = { a: 'original', b: 'original', c: 'original' }\n const version = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside group fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const comparison = { group: { a: 'original', b: 'original', c: 'original' } }\n const version = { group: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside unnamed tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Unnamed tab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = { a: 'original', b: 'original', c: 'original' }\n const version = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside named tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'namedTab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = { namedTab: { a: 'original', b: 'original', c: 'original' } }\n const version = { namedTab: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should ignore UI fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n {\n name: 'b',\n type: 'ui',\n admin: {},\n },\n ]\n const comparison = { a: 'original', b: 'original' }\n const version = { a: 'original', b: 'changed' }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const comparison = {\n arrayField: [\n { a: 'original', b: 'original', c: 'original' },\n { a: 'original', b: 'original' },\n ],\n }\n const version = {\n arrayField: [\n { a: 'changed', b: 'changed', c: 'original' },\n { a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields inside arrays nested inside of collapsibles', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ],\n },\n ]\n const comparison = { arrayField: [{ a: 'original', b: 'original', c: 'original' }] }\n const version = { arrayField: [{ a: 'changed', b: 'changed', c: 'original' }] }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = {\n blocks: [\n { blockType: 'blockA', a: 'original', b: 'original', c: 'original' },\n { blockType: 'blockA', a: 'original', b: 'original' },\n ],\n }\n const version = {\n blocks: [\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' },\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields between blocks with different slugs', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n {\n slug: 'blockB',\n fields: [\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n { name: 'd', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = {\n blocks: [{ blockType: 'blockA', a: 'removed', b: 'original', c: 'original' }],\n }\n const version = {\n blocks: [{ blockType: 'blockB', b: 'original', c: 'changed', d: 'new' }],\n }\n\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(3)\n })\n\n describe('localized fields', () => {\n const locales = ['en', 'de']\n it('should count simple localized fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const comparison = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const version = {\n a: { en: 'changed', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(1)\n })\n\n it('should count multiple locales of the same localized field', () => {\n const locales = ['en', 'de']\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const comparison = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const version = {\n a: { en: 'changed', de: 'changed' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside localized groups fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const comparison = {\n group: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const version = {\n group: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(3)\n })\n it('should count changed fields inside localized tabs', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = {\n tab: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const version = {\n tab: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n localized: true,\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const comparison = {\n arrayField: {\n en: [{ a: 'original', b: 'original', c: 'original' }],\n de: [{ a: 'original', b: 'original', c: 'original' }],\n },\n }\n const version = {\n arrayField: {\n en: [{ a: 'changed', b: 'changed', c: 'original' }],\n de: [{ a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n localized: true,\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const comparison = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n },\n }\n const version = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ comparison, fields, version, locales })\n expect(result).toBe(3)\n })\n })\n})\n\ndescribe('countChangedFieldsInRows', () => {\n it('should count fields in array rows', () => {\n const field: ClientField = {\n name: 'myArray',\n type: 'array',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n }\n\n const comparisonRows = [{ a: 'original', b: 'original', c: 'original' }]\n const versionRows = [{ a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n comparisonRows,\n field,\n locales: undefined,\n versionRows,\n })\n expect(result).toBe(2)\n })\n\n it('should count fields in blocks', () => {\n const field: ClientField = {\n name: 'myBlocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n }\n\n const comparisonRows = [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }]\n const versionRows = [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n comparisonRows,\n field,\n locales: undefined,\n versionRows,\n })\n expect(result).toBe(2)\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldHasChanges.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAErD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldHasChanges.js","names":["fieldHasChanges","a","b","JSON","stringify"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.ts"],"sourcesContent":["export function fieldHasChanges(a: unknown, b: unknown) {\n return JSON.stringify(a) !== JSON.stringify(b)\n}\n"],"mappings":"AAAA,OAAO,SAASA,gBAAgBC,CAAU,EAAEC,CAAU;EACpD,OAAOC,IAAA,CAAKC,SAAS,CAACH,CAAA,MAAOE,IAAA,CAAKC,SAAS,CAACF,CAAA;AAC9C","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { fieldHasChanges } from './fieldHasChanges.js';
|
|
2
|
+
describe('hasChanges', () => {
|
|
3
|
+
it('should return false for identical values', () => {
|
|
4
|
+
const a = 'value';
|
|
5
|
+
const b = 'value';
|
|
6
|
+
expect(fieldHasChanges(a, b)).toBe(false);
|
|
7
|
+
});
|
|
8
|
+
it('should return true for different values', () => {
|
|
9
|
+
const a = 1;
|
|
10
|
+
const b = 2;
|
|
11
|
+
expect(fieldHasChanges(a, b)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
it('should return false for identical objects', () => {
|
|
14
|
+
const a = {
|
|
15
|
+
key: 'value'
|
|
16
|
+
};
|
|
17
|
+
const b = {
|
|
18
|
+
key: 'value'
|
|
19
|
+
};
|
|
20
|
+
expect(fieldHasChanges(a, b)).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
it('should return true for different objects', () => {
|
|
23
|
+
const a = {
|
|
24
|
+
key: 'value'
|
|
25
|
+
};
|
|
26
|
+
const b = {
|
|
27
|
+
key: 'differentValue'
|
|
28
|
+
};
|
|
29
|
+
expect(fieldHasChanges(a, b)).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
it('should handle undefined values', () => {
|
|
32
|
+
const a = {
|
|
33
|
+
key: 'value'
|
|
34
|
+
};
|
|
35
|
+
const b = undefined;
|
|
36
|
+
expect(fieldHasChanges(a, b)).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it('should handle null values', () => {
|
|
39
|
+
const a = {
|
|
40
|
+
key: 'value'
|
|
41
|
+
};
|
|
42
|
+
const b = null;
|
|
43
|
+
expect(fieldHasChanges(a, b)).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=fieldHasChanges.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldHasChanges.spec.js","names":["fieldHasChanges","describe","it","a","b","expect","toBe","key","undefined"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.ts"],"sourcesContent":["import { fieldHasChanges } from './fieldHasChanges.js'\n\ndescribe('hasChanges', () => {\n it('should return false for identical values', () => {\n const a = 'value'\n const b = 'value'\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n it('should return true for different values', () => {\n const a = 1\n const b = 2\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should return false for identical objects', () => {\n const a = { key: 'value' }\n const b = { key: 'value' }\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n\n it('should return true for different objects', () => {\n const a = { key: 'value' }\n const b = { key: 'differentValue' }\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle undefined values', () => {\n const a = { key: 'value' }\n const b = undefined\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle null values', () => {\n const a = { key: 'value' }\n const b = null\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n})\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ;AAEhCC,QAAA,CAAS,cAAc;EACrBC,EAAA,CAAG,4CAA4C;IAC7C,MAAMC,CAAA,GAAI;IACV,MAAMC,CAAA,GAAI;IACVC,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;EACAJ,EAAA,CAAG,2CAA2C;IAC5C,MAAMC,CAAA,GAAI;IACV,MAAMC,CAAA,GAAI;IACVC,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;EAEAJ,EAAA,CAAG,6CAA6C;IAC9C,MAAMC,CAAA,GAAI;MAAEI,GAAA,EAAK;IAAQ;IACzB,MAAMH,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAQ;IACzBF,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;EAEAJ,EAAA,CAAG,4CAA4C;IAC7C,MAAMC,CAAA,GAAI;MAAEI,GAAA,EAAK;IAAQ;IACzB,MAAMH,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAiB;IAClCF,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;EAEAJ,EAAA,CAAG,kCAAkC;IACnC,MAAMC,CAAA,GAAI;MAAEI,GAAA,EAAK;IAAQ;IACzB,MAAMH,CAAA,GAAII,SAAA;IACVH,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;EAEAJ,EAAA,CAAG,6BAA6B;IAC9B,MAAMC,CAAA,GAAI;MAAEI,GAAA,EAAK;IAAQ;IACzB,MAAMH,CAAA,GAAI;IACVC,MAAA,CAAOL,eAAA,CAAgBG,CAAA,EAAGC,CAAA,GAAIE,IAAI,CAAC;EACrC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Get the fields for a row in an iterable field for comparison.
|
|
4
|
+
* - Array fields: the fields of the array field, because the fields are the same for each row.
|
|
5
|
+
* - Blocks fields: the union of fields from the comparison and version row,
|
|
6
|
+
* because the fields from the version and comparison rows may differ.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getFieldsForRowComparison({ comparisonRow, field, versionRow, }: {
|
|
9
|
+
comparisonRow: any;
|
|
10
|
+
field: ArrayFieldClient | BlocksFieldClient;
|
|
11
|
+
versionRow: any;
|
|
12
|
+
}): ClientField[];
|
|
13
|
+
//# sourceMappingURL=getFieldsForRowComparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFieldsForRowComparison.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI/E;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,KAAK,EACL,UAAU,GACX,EAAE;IACD,aAAa,EAAE,GAAG,CAAA;IAClB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,UAAU,EAAE,GAAG,CAAA;CAChB,iBAiCA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getUniqueListBy } from 'payload/shared';
|
|
2
|
+
/**
|
|
3
|
+
* Get the fields for a row in an iterable field for comparison.
|
|
4
|
+
* - Array fields: the fields of the array field, because the fields are the same for each row.
|
|
5
|
+
* - Blocks fields: the union of fields from the comparison and version row,
|
|
6
|
+
* because the fields from the version and comparison rows may differ.
|
|
7
|
+
*/
|
|
8
|
+
export function getFieldsForRowComparison({
|
|
9
|
+
comparisonRow,
|
|
10
|
+
field,
|
|
11
|
+
versionRow
|
|
12
|
+
}) {
|
|
13
|
+
let fields = [];
|
|
14
|
+
if (field.type === 'array' && 'fields' in field) {
|
|
15
|
+
fields = field.fields;
|
|
16
|
+
}
|
|
17
|
+
if (field.type === 'blocks') {
|
|
18
|
+
if (versionRow?.blockType === comparisonRow?.blockType) {
|
|
19
|
+
const matchedBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
|
|
20
|
+
fields: []
|
|
21
|
+
};
|
|
22
|
+
fields = matchedBlock.fields;
|
|
23
|
+
} else {
|
|
24
|
+
const matchedVersionBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
|
|
25
|
+
fields: []
|
|
26
|
+
};
|
|
27
|
+
const matchedComparisonBlock = 'blocks' in field && field.blocks?.find(block => block.slug === comparisonRow?.blockType) || {
|
|
28
|
+
fields: []
|
|
29
|
+
};
|
|
30
|
+
fields = getUniqueListBy([...matchedVersionBlock.fields, ...matchedComparisonBlock.fields], 'name');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return fields;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=getFieldsForRowComparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFieldsForRowComparison.js","names":["getUniqueListBy","getFieldsForRowComparison","comparisonRow","field","versionRow","fields","type","blockType","matchedBlock","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload'\n\nimport { getUniqueListBy } from 'payload/shared'\n\n/**\n * Get the fields for a row in an iterable field for comparison.\n * - Array fields: the fields of the array field, because the fields are the same for each row.\n * - Blocks fields: the union of fields from the comparison and version row,\n * because the fields from the version and comparison rows may differ.\n */\nexport function getFieldsForRowComparison({\n comparisonRow,\n field,\n versionRow,\n}: {\n comparisonRow: any\n field: ArrayFieldClient | BlocksFieldClient\n versionRow: any\n}) {\n let fields: ClientField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n }\n\n if (field.type === 'blocks') {\n if (versionRow?.blockType === comparisonRow?.blockType) {\n const matchedBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === versionRow?.blockType)) || {\n fields: [],\n }\n\n fields = matchedBlock.fields\n } else {\n const matchedVersionBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === versionRow?.blockType)) || {\n fields: [],\n }\n const matchedComparisonBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === comparisonRow?.blockType)) || {\n fields: [],\n }\n\n fields = getUniqueListBy<ClientField>(\n [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n }\n }\n\n return fields\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAEhC;;;;;;AAMA,OAAO,SAASC,0BAA0B;EACxCC,aAAa;EACbC,KAAK;EACLC;AAAU,CAKX;EACC,IAAIC,MAAA,GAAwB,EAAE;EAE9B,IAAIF,KAAA,CAAMG,IAAI,KAAK,WAAW,YAAYH,KAAA,EAAO;IAC/CE,MAAA,GAASF,KAAA,CAAME,MAAM;EACvB;EAEA,IAAIF,KAAA,CAAMG,IAAI,KAAK,UAAU;IAC3B,IAAIF,UAAA,EAAYG,SAAA,KAAcL,aAAA,EAAeK,SAAA,EAAW;MACtD,MAAMC,YAAA,GAAe,QAAC,IAAYL,KAAA,IAChCA,KAAA,CAAMM,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKR,UAAA,EAAYG,SAAA,KAAe;QACxEF,MAAA,EAAQ;MACV;MAEAA,MAAA,GAASG,YAAA,CAAaH,MAAM;IAC9B,OAAO;MACL,MAAMQ,mBAAA,GAAsB,QAAC,IAAYV,KAAA,IACvCA,KAAA,CAAMM,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKR,UAAA,EAAYG,SAAA,KAAe;QACxEF,MAAA,EAAQ;MACV;MACA,MAAMS,sBAAA,GAAyB,QAAC,IAAYX,KAAA,IAC1CA,KAAA,CAAMM,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKV,aAAA,EAAeK,SAAA,KAAe;QAC3EF,MAAA,EAAQ;MACV;MAEAA,MAAA,GAASL,eAAA,CACP,C,GAAIa,mBAAA,CAAoBR,MAAM,E,GAAKS,sBAAA,CAAuBT,MAAM,CAAC,EACjE;IAEJ;EACF;EAEA,OAAOA,MAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { getFieldsForRowComparison } from './getFieldsForRowComparison';
|
|
2
|
+
describe('getFieldsForRowComparison', () => {
|
|
3
|
+
describe('array fields', () => {
|
|
4
|
+
it('should return fields from array field', () => {
|
|
5
|
+
const arrayFields = [{
|
|
6
|
+
name: 'title',
|
|
7
|
+
type: 'text'
|
|
8
|
+
}, {
|
|
9
|
+
name: 'description',
|
|
10
|
+
type: 'textarea'
|
|
11
|
+
}];
|
|
12
|
+
const field = {
|
|
13
|
+
type: 'array',
|
|
14
|
+
name: 'items',
|
|
15
|
+
fields: arrayFields
|
|
16
|
+
};
|
|
17
|
+
const result = getFieldsForRowComparison({
|
|
18
|
+
field,
|
|
19
|
+
versionRow: {},
|
|
20
|
+
comparisonRow: {}
|
|
21
|
+
});
|
|
22
|
+
expect(result).toEqual(arrayFields);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('blocks fields', () => {
|
|
26
|
+
it('should return combined fields when block types match', () => {
|
|
27
|
+
const blockAFields = [{
|
|
28
|
+
name: 'a',
|
|
29
|
+
type: 'text'
|
|
30
|
+
}, {
|
|
31
|
+
name: 'b',
|
|
32
|
+
type: 'text'
|
|
33
|
+
}];
|
|
34
|
+
const field = {
|
|
35
|
+
type: 'blocks',
|
|
36
|
+
name: 'myBlocks',
|
|
37
|
+
blocks: [{
|
|
38
|
+
slug: 'blockA',
|
|
39
|
+
fields: blockAFields
|
|
40
|
+
}]
|
|
41
|
+
};
|
|
42
|
+
const versionRow = {
|
|
43
|
+
blockType: 'blockA'
|
|
44
|
+
};
|
|
45
|
+
const comparisonRow = {
|
|
46
|
+
blockType: 'blockA'
|
|
47
|
+
};
|
|
48
|
+
const result = getFieldsForRowComparison({
|
|
49
|
+
field,
|
|
50
|
+
versionRow,
|
|
51
|
+
comparisonRow
|
|
52
|
+
});
|
|
53
|
+
expect(result).toEqual(blockAFields);
|
|
54
|
+
});
|
|
55
|
+
it('should return unique combined fields when block types differ', () => {
|
|
56
|
+
const field = {
|
|
57
|
+
type: 'blocks',
|
|
58
|
+
name: 'myBlocks',
|
|
59
|
+
blocks: [{
|
|
60
|
+
slug: 'blockA',
|
|
61
|
+
fields: [{
|
|
62
|
+
name: 'a',
|
|
63
|
+
type: 'text'
|
|
64
|
+
}, {
|
|
65
|
+
name: 'b',
|
|
66
|
+
type: 'text'
|
|
67
|
+
}]
|
|
68
|
+
}, {
|
|
69
|
+
slug: 'blockB',
|
|
70
|
+
fields: [{
|
|
71
|
+
name: 'b',
|
|
72
|
+
type: 'text'
|
|
73
|
+
}, {
|
|
74
|
+
name: 'c',
|
|
75
|
+
type: 'text'
|
|
76
|
+
}]
|
|
77
|
+
}]
|
|
78
|
+
};
|
|
79
|
+
const versionRow = {
|
|
80
|
+
blockType: 'blockA'
|
|
81
|
+
};
|
|
82
|
+
const comparisonRow = {
|
|
83
|
+
blockType: 'blockB'
|
|
84
|
+
};
|
|
85
|
+
const result = getFieldsForRowComparison({
|
|
86
|
+
field,
|
|
87
|
+
versionRow,
|
|
88
|
+
comparisonRow
|
|
89
|
+
});
|
|
90
|
+
// Should contain all unique fields from both blocks
|
|
91
|
+
expect(result).toEqual([{
|
|
92
|
+
name: 'a',
|
|
93
|
+
type: 'text'
|
|
94
|
+
}, {
|
|
95
|
+
name: 'b',
|
|
96
|
+
type: 'text'
|
|
97
|
+
}, {
|
|
98
|
+
name: 'c',
|
|
99
|
+
type: 'text'
|
|
100
|
+
}]);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=getFieldsForRowComparison.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFieldsForRowComparison.spec.js","names":["getFieldsForRowComparison","describe","it","arrayFields","name","type","field","fields","result","versionRow","comparisonRow","expect","toEqual","blockAFields","blocks","slug","blockType"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.ts"],"sourcesContent":["import { getFieldsForRowComparison } from './getFieldsForRowComparison'\nimport type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload'\n\ndescribe('getFieldsForRowComparison', () => {\n describe('array fields', () => {\n it('should return fields from array field', () => {\n const arrayFields: ClientField[] = [\n { name: 'title', type: 'text' },\n { name: 'description', type: 'textarea' },\n ]\n\n const field: ArrayFieldClient = {\n type: 'array',\n name: 'items',\n fields: arrayFields,\n }\n\n const result = getFieldsForRowComparison({\n field,\n versionRow: {},\n comparisonRow: {},\n })\n\n expect(result).toEqual(arrayFields)\n })\n })\n\n describe('blocks fields', () => {\n it('should return combined fields when block types match', () => {\n const blockAFields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n ]\n\n const field: BlocksFieldClient = {\n type: 'blocks',\n name: 'myBlocks',\n blocks: [\n {\n slug: 'blockA',\n fields: blockAFields,\n },\n ],\n }\n\n const versionRow = { blockType: 'blockA' }\n const comparisonRow = { blockType: 'blockA' }\n\n const result = getFieldsForRowComparison({\n field,\n versionRow,\n comparisonRow,\n })\n\n expect(result).toEqual(blockAFields)\n })\n\n it('should return unique combined fields when block types differ', () => {\n const field: BlocksFieldClient = {\n type: 'blocks',\n name: 'myBlocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n ],\n },\n {\n slug: 'blockB',\n fields: [\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n }\n\n const versionRow = { blockType: 'blockA' }\n const comparisonRow = { blockType: 'blockB' }\n\n const result = getFieldsForRowComparison({\n field,\n versionRow,\n comparisonRow,\n })\n\n // Should contain all unique fields from both blocks\n expect(result).toEqual([\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ])\n })\n })\n})\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ;AAG1CC,QAAA,CAAS,6BAA6B;EACpCA,QAAA,CAAS,gBAAgB;IACvBC,EAAA,CAAG,yCAAyC;MAC1C,MAAMC,WAAA,GAA6B,CACjC;QAAEC,IAAA,EAAM;QAASC,IAAA,EAAM;MAAO,GAC9B;QAAED,IAAA,EAAM;QAAeC,IAAA,EAAM;MAAW,EACzC;MAED,MAAMC,KAAA,GAA0B;QAC9BD,IAAA,EAAM;QACND,IAAA,EAAM;QACNG,MAAA,EAAQJ;MACV;MAEA,MAAMK,MAAA,GAASR,yBAAA,CAA0B;QACvCM,KAAA;QACAG,UAAA,EAAY,CAAC;QACbC,aAAA,EAAe,CAAC;MAClB;MAEAC,MAAA,CAAOH,MAAA,EAAQI,OAAO,CAACT,WAAA;IACzB;EACF;EAEAF,QAAA,CAAS,iBAAiB;IACxBC,EAAA,CAAG,wDAAwD;MACzD,MAAMW,YAAA,GAA8B,CAClC;QAAET,IAAA,EAAM;QAAKC,IAAA,EAAM;MAAO,GAC1B;QAAED,IAAA,EAAM;QAAKC,IAAA,EAAM;MAAO,EAC3B;MAED,MAAMC,KAAA,GAA2B;QAC/BD,IAAA,EAAM;QACND,IAAA,EAAM;QACNU,MAAA,EAAQ,CACN;UACEC,IAAA,EAAM;UACNR,MAAA,EAAQM;QACV;MAEJ;MAEA,MAAMJ,UAAA,GAAa;QAAEO,SAAA,EAAW;MAAS;MACzC,MAAMN,aAAA,GAAgB;QAAEM,SAAA,EAAW;MAAS;MAE5C,MAAMR,MAAA,GAASR,yBAAA,CAA0B;QACvCM,KAAA;QACAG,UAAA;QACAC;MACF;MAEAC,MAAA,CAAOH,MAAA,EAAQI,OAAO,CAACC,YAAA;IACzB;IAEAX,EAAA,CAAG,gEAAgE;MACjE,MAAMI,KAAA,GAA2B;QAC/BD,IAAA,EAAM;QACND,IAAA,EAAM;QACNU,MAAA,EAAQ,CACN;UACEC,IAAA,EAAM;UACNR,MAAA,EAAQ,CACN;YAAEH,IAAA,EAAM;YAAKC,IAAA,EAAM;UAAO,GAC1B;YAAED,IAAA,EAAM;YAAKC,IAAA,EAAM;UAAO;QAE9B,GACA;UACEU,IAAA,EAAM;UACNR,MAAA,EAAQ,CACN;YAAEH,IAAA,EAAM;YAAKC,IAAA,EAAM;UAAO,GAC1B;YAAED,IAAA,EAAM;YAAKC,IAAA,EAAM;UAAO;QAE9B;MAEJ;MAEA,MAAMI,UAAA,GAAa;QAAEO,SAAA,EAAW;MAAS;MACzC,MAAMN,aAAA,GAAgB;QAAEM,SAAA,EAAW;MAAS;MAE5C,MAAMR,MAAA,GAASR,yBAAA,CAA0B;QACvCM,KAAA;QACAG,UAAA;QACAC;MACF;MAEA;MACAC,MAAA,CAAOH,MAAA,EAAQI,OAAO,CAAC,CACrB;QAAER,IAAA,EAAM;QAAKC,IAAA,EAAM;MAAO,GAC1B;QAAED,IAAA,EAAM;QAAKC,IAAA,EAAM;MAAO,GAC1B;QAAED,IAAA,EAAM;QAAKC,IAAA,EAAM;MAAO,EAC3B;IACH;EACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmH5B,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -86,12 +86,12 @@ const Restore = ({
|
|
|
86
86
|
className: [canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' '),
|
|
87
87
|
onClick: () => toggleModal(modalSlug),
|
|
88
88
|
size: "small",
|
|
89
|
-
SubMenuPopupContent: () =>
|
|
89
|
+
SubMenuPopupContent: canRestoreAsDraft ? () => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
90
90
|
children: /*#__PURE__*/_jsx(PopupList.Button, {
|
|
91
91
|
onClick: () => [setDraft(true), toggleModal(modalSlug)],
|
|
92
92
|
children: t('version:restoreAsDraft')
|
|
93
93
|
})
|
|
94
|
-
}),
|
|
94
|
+
}) : null,
|
|
95
95
|
children: t('version:restoreThisVersion')
|
|
96
96
|
})
|
|
97
97
|
}), /*#__PURE__*/_jsx(Modal, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","Button","Modal","PopupList","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","processing","setProcessing","router","i18n","t","draft","setDraft","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","slug","undefined","type"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ChevronIcon,\n Modal,\n Pill,\n Popup,\n PopupList,\n useConfig,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","Button","Modal","PopupList","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","processing","setProcessing","router","i18n","t","draft","setDraft","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","slug","undefined","type"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ChevronIcon,\n Modal,\n Pill,\n Popup,\n PopupList,\n useConfig,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => void handleRestore()}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.20.0-canary.260f830",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"sass": "1.77.4",
|
|
80
80
|
"sonner": "^1.7.0",
|
|
81
81
|
"uuid": "10.0.0",
|
|
82
|
-
"@payloadcms/
|
|
83
|
-
"@payloadcms/
|
|
84
|
-
"@payloadcms/ui": "3.
|
|
82
|
+
"@payloadcms/translations": "3.20.0-canary.260f830",
|
|
83
|
+
"@payloadcms/graphql": "3.20.0-canary.260f830",
|
|
84
|
+
"@payloadcms/ui": "3.20.0-canary.260f830"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@babel/cli": "7.25.9",
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
"esbuild-sass-plugin": "3.3.1",
|
|
100
100
|
"eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124",
|
|
101
101
|
"swc-plugin-transform-remove-imports": "2.0.0",
|
|
102
|
-
"payload": "3.
|
|
102
|
+
"payload": "3.20.0-canary.260f830",
|
|
103
103
|
"@payloadcms/eslint-config": "3.9.0"
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
106
|
"graphql": "^16.8.1",
|
|
107
107
|
"next": "^15.0.0",
|
|
108
|
-
"payload": "3.
|
|
108
|
+
"payload": "3.20.0-canary.260f830"
|
|
109
109
|
},
|
|
110
110
|
"engines": {
|
|
111
111
|
"node": "^18.20.2 || >=20.9.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Nested/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqCxC,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import RenderFieldsToDiff from '../../index.js';
|
|
7
|
-
import Label from '../../Label/index.js';
|
|
8
|
-
const baseClass = 'nested-diff';
|
|
9
|
-
const Nested = ({
|
|
10
|
-
comparison,
|
|
11
|
-
diffComponents,
|
|
12
|
-
disableGutter = false,
|
|
13
|
-
field,
|
|
14
|
-
fieldPermissions,
|
|
15
|
-
fields,
|
|
16
|
-
i18n,
|
|
17
|
-
locale,
|
|
18
|
-
locales,
|
|
19
|
-
version
|
|
20
|
-
}) => {
|
|
21
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
22
|
-
className: baseClass,
|
|
23
|
-
children: ['label' in field && field.label && typeof field.label !== 'function' && /*#__PURE__*/_jsxs(Label, {
|
|
24
|
-
children: [locale && /*#__PURE__*/_jsx("span", {
|
|
25
|
-
className: `${baseClass}__locale-label`,
|
|
26
|
-
children: locale
|
|
27
|
-
}), getTranslation(field.label, i18n)]
|
|
28
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
29
|
-
className: [`${baseClass}__wrap`, !disableGutter && `${baseClass}__wrap--gutter`].filter(Boolean).join(' '),
|
|
30
|
-
children: /*#__PURE__*/_jsx(RenderFieldsToDiff, {
|
|
31
|
-
comparison: comparison,
|
|
32
|
-
diffComponents: diffComponents,
|
|
33
|
-
fieldPermissions: fieldPermissions,
|
|
34
|
-
fields: fields,
|
|
35
|
-
i18n: i18n,
|
|
36
|
-
locales: locales,
|
|
37
|
-
version: version
|
|
38
|
-
})
|
|
39
|
-
})]
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
export default Nested;
|
|
43
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","React","RenderFieldsToDiff","Label","baseClass","Nested","comparison","diffComponents","disableGutter","field","fieldPermissions","fields","i18n","locale","locales","version","_jsxs","className","label","_jsx","filter","Boolean","join"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Nested/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport RenderFieldsToDiff from '../../index.js'\nimport Label from '../../Label/index.js'\nimport './index.scss'\n\nconst baseClass = 'nested-diff'\n\nconst Nested: React.FC<DiffComponentProps> = ({\n comparison,\n diffComponents,\n disableGutter = false,\n field,\n fieldPermissions,\n fields,\n i18n,\n locale,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n {'label' in field && field.label && typeof field.label !== 'function' && (\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </Label>\n )}\n <div\n className={[`${baseClass}__wrap`, !disableGutter && `${baseClass}__wrap--gutter`]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={fields}\n i18n={i18n}\n locales={locales}\n version={version}\n />\n </div>\n </div>\n )\n}\n\nexport default Nested\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,kBAAA,MAAwB;AAC/B,OAAOC,KAAA,MAAW;AAGlB,MAAMC,SAAA,GAAY;AAElB,MAAMC,MAAA,GAAuCA,CAAC;EAC5CC,UAAU;EACVC,cAAc;EACdC,aAAA,GAAgB,KAAK;EACrBC,KAAK;EACLC,gBAAgB;EAChBC,MAAM;EACNC,IAAI;EACJC,MAAM;EACNC,OAAO;EACPC;AAAO,CACR;EACC,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWb,SAAA;eACb,WAAWK,KAAA,IAASA,KAAA,CAAMS,KAAK,IAAI,OAAOT,KAAA,CAAMS,KAAK,KAAK,2BACzDF,KAAA,CAACb,KAAA;iBACEU,MAAA,iBAAUM,IAAA,CAAC;QAAKF,SAAA,EAAW,GAAGb,SAAA,gBAAyB;kBAAGS;UAC1Db,cAAA,CAAeS,KAAA,CAAMS,KAAK,EAAEN,IAAA;qBAGjCO,IAAA,CAAC;MACCF,SAAA,EAAW,CAAC,GAAGb,SAAA,QAAiB,EAAE,CAACI,aAAA,IAAiB,GAAGJ,SAAA,gBAAyB,CAAC,CAC9EgB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,aAAAH,IAAA,CAACjB,kBAAA;QACCI,UAAA,EAAYA,UAAA;QACZC,cAAA,EAAgBA,cAAA;QAChBG,gBAAA,EAAkBA,gBAAA;QAClBC,MAAA,EAAQA,MAAA;QACRC,IAAA,EAAMA,IAAA;QACNE,OAAA,EAASA,OAAA;QACTC,OAAA,EAASA;;;;AAKnB;AAEA,eAAeV,MAAA","ignoreList":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
@layer payload-default {
|
|
2
|
-
.nested-diff {
|
|
3
|
-
&__wrap--gutter {
|
|
4
|
-
[dir='ltr'] & {
|
|
5
|
-
padding-left: calc(var(--base) * 0.25);
|
|
6
|
-
// border-left: $style-stroke-width-s solid var(--theme-elevation-150);
|
|
7
|
-
}
|
|
8
|
-
[dir='rtl'] & {
|
|
9
|
-
padding-right: calc(var(--base) * 0.25);
|
|
10
|
-
// border-right: $style-stroke-width-s solid var(--theme-elevation-150);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|