@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.
Files changed (100) hide show
  1. package/dist/prod/styles.css +1 -1
  2. package/dist/views/Account/index.d.ts.map +1 -1
  3. package/dist/views/Account/index.js +2 -1
  4. package/dist/views/Account/index.js.map +1 -1
  5. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  6. package/dist/views/CreateFirstUser/index.client.js +4 -2
  7. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  8. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  9. package/dist/views/CreateFirstUser/index.js +2 -1
  10. package/dist/views/CreateFirstUser/index.js.map +1 -1
  11. package/dist/views/Document/getDocumentPermissions.js +2 -2
  12. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  13. package/dist/views/Document/index.d.ts.map +1 -1
  14. package/dist/views/Document/index.js +2 -1
  15. package/dist/views/Document/index.js.map +1 -1
  16. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  17. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +2 -0
  18. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  19. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  20. package/dist/views/LivePreview/index.client.js +5 -2
  21. package/dist/views/LivePreview/index.client.js.map +1 -1
  22. package/dist/views/Version/Default/index.js +1 -1
  23. package/dist/views/Version/Default/index.js.map +1 -1
  24. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
  25. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
  26. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
  27. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  28. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
  29. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +4 -0
  30. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
  31. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +41 -0
  32. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  33. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +5 -0
  34. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
  35. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +45 -0
  36. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  37. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
  38. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -2
  39. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  40. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +60 -55
  41. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  42. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
  43. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -2
  44. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  45. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -2
  46. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  47. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +4 -0
  48. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
  49. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +34 -0
  50. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  51. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -2
  52. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  53. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -2
  54. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  55. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
  56. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +81 -34
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -2
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  62. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -2
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  64. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  65. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +11 -9
  66. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  67. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -1
  68. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  69. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  70. package/dist/views/Version/RenderFieldsToDiff/index.d.ts +1 -2
  71. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  72. package/dist/views/Version/RenderFieldsToDiff/index.js +4 -6
  73. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  74. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
  75. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
  76. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +188 -0
  77. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  78. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
  79. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  80. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
  81. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
  82. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  83. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  84. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
  85. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  86. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +13 -0
  87. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
  88. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +35 -0
  89. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  90. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +104 -0
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  92. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  93. package/dist/views/Version/Restore/index.js +2 -2
  94. package/dist/views/Version/Restore/index.js.map +1 -1
  95. package/package.json +6 -6
  96. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
  97. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
  98. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
  99. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
  100. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -14
@@ -2,6 +2,5 @@ import type { TextFieldClient } from 'payload';
2
2
  import React from 'react';
3
3
  import type { DiffComponentProps } from '../types.js';
4
4
  import './index.scss';
5
- declare const Text: React.FC<DiffComponentProps<TextFieldClient>>;
6
- export default Text;
5
+ export declare const Text: React.FC<DiffComponentProps<TextFieldClient>>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Text/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CA4CvD,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Text/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CA4C9D,CAAA"}
@@ -7,7 +7,7 @@ import Label from '../../Label/index.js';
7
7
  import { diffStyles } from '../styles.js';
8
8
  import { DiffViewer } from './DiffViewer/index.js';
9
9
  const baseClass = 'text-diff';
10
- const Text = ({
10
+ export const Text = ({
11
11
  comparison,
12
12
  diffMethod,
13
13
  field,
@@ -46,5 +46,4 @@ const Text = ({
46
46
  })]
47
47
  });
48
48
  };
49
- export default Text;
50
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","Label","diffStyles","DiffViewer","baseClass","Text","comparison","diffMethod","field","i18n","isRichText","locale","version","placeholder","t","versionToRender","comparisonToRender","JSON","stringify","_jsxs","className","_jsx","label"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport { DiffViewer } from './DiffViewer/index.js'\nimport './index.scss'\n\nconst baseClass = 'text-diff'\n\nconst Text: React.FC<DiffComponentProps<TextFieldClient>> = ({\n comparison,\n diffMethod,\n field,\n i18n,\n isRichText = false,\n locale,\n version,\n}) => {\n let placeholder = ''\n\n if (version === comparison) {\n placeholder = `[${i18n.t('general:noValue')}]`\n }\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if (isRichText) {\n if (typeof version === 'object') {\n versionToRender = JSON.stringify(version, null, 2)\n }\n if (typeof comparison === 'object') {\n comparisonToRender = JSON.stringify(comparison, null, 2)\n }\n }\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </Label>\n <DiffViewer\n comparisonToRender={comparisonToRender}\n diffMethod={diffMethod}\n diffStyles={diffStyles}\n placeholder={placeholder}\n versionToRender={versionToRender}\n />\n </div>\n )\n}\n\nexport default Text\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,KAAA,MAAW;AAClB,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAG3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,IAAA,GAAsDA,CAAC;EAC3DC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLC,IAAI;EACJC,UAAA,GAAa,KAAK;EAClBC,MAAM;EACNC;AAAO,CACR;EACC,IAAIC,WAAA,GAAc;EAElB,IAAID,OAAA,KAAYN,UAAA,EAAY;IAC1BO,WAAA,GAAc,IAAIJ,IAAA,CAAKK,CAAC,CAAC,qBAAqB;EAChD;EAEA,IAAIC,eAAA,GAAkBH,OAAA;EACtB,IAAII,kBAAA,GAAqBV,UAAA;EAEzB,IAAII,UAAA,EAAY;IACd,IAAI,OAAOE,OAAA,KAAY,UAAU;MAC/BG,eAAA,GAAkBE,IAAA,CAAKC,SAAS,CAACN,OAAA,EAAS,MAAM;IAClD;IACA,IAAI,OAAON,UAAA,KAAe,UAAU;MAClCU,kBAAA,GAAqBC,IAAA,CAAKC,SAAS,CAACZ,UAAA,EAAY,MAAM;IACxD;EACF;EAEA,oBACEa,KAAA,CAAC;IAAIC,SAAA,EAAWhB,SAAA;4BACde,KAAA,CAAClB,KAAA;iBACEU,MAAA,iBAAUU,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGhB,SAAA,gBAAyB;kBAAGO;UAC1D,WAAWH,KAAA,IACV,OAAOA,KAAA,CAAMc,KAAK,KAAK,cACvBvB,cAAA,CAAeS,KAAA,CAAMc,KAAK,IAAI,IAAIb,IAAA;qBAEtCY,IAAA,CAAClB,UAAA;MACCa,kBAAA,EAAoBA,kBAAA;MACpBT,UAAA,EAAYA,UAAA;MACZL,UAAA,EAAYA,UAAA;MACZW,WAAA,EAAaA,WAAA;MACbE,eAAA,EAAiBA;;;AAIzB;AAEA,eAAeV,IAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","Label","diffStyles","DiffViewer","baseClass","Text","comparison","diffMethod","field","i18n","isRichText","locale","version","placeholder","t","versionToRender","comparisonToRender","JSON","stringify","_jsxs","className","_jsx","label"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport { DiffViewer } from './DiffViewer/index.js'\nimport './index.scss'\n\nconst baseClass = 'text-diff'\n\nexport const Text: React.FC<DiffComponentProps<TextFieldClient>> = ({\n comparison,\n diffMethod,\n field,\n i18n,\n isRichText = false,\n locale,\n version,\n}) => {\n let placeholder = ''\n\n if (version === comparison) {\n placeholder = `[${i18n.t('general:noValue')}]`\n }\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if (isRichText) {\n if (typeof version === 'object') {\n versionToRender = JSON.stringify(version, null, 2)\n }\n if (typeof comparison === 'object') {\n comparisonToRender = JSON.stringify(comparison, null, 2)\n }\n }\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </Label>\n <DiffViewer\n comparisonToRender={comparisonToRender}\n diffMethod={diffMethod}\n diffStyles={diffStyles}\n placeholder={placeholder}\n versionToRender={versionToRender}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,KAAA,MAAW;AAClB,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAG3B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,IAAA,GAAsDA,CAAC;EAClEC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLC,IAAI;EACJC,UAAA,GAAa,KAAK;EAClBC,MAAM;EACNC;AAAO,CACR;EACC,IAAIC,WAAA,GAAc;EAElB,IAAID,OAAA,KAAYN,UAAA,EAAY;IAC1BO,WAAA,GAAc,IAAIJ,IAAA,CAAKK,CAAC,CAAC,qBAAqB;EAChD;EAEA,IAAIC,eAAA,GAAkBH,OAAA;EACtB,IAAII,kBAAA,GAAqBV,UAAA;EAEzB,IAAII,UAAA,EAAY;IACd,IAAI,OAAOE,OAAA,KAAY,UAAU;MAC/BG,eAAA,GAAkBE,IAAA,CAAKC,SAAS,CAACN,OAAA,EAAS,MAAM;IAClD;IACA,IAAI,OAAON,UAAA,KAAe,UAAU;MAClCU,kBAAA,GAAqBC,IAAA,CAAKC,SAAS,CAACZ,UAAA,EAAY,MAAM;IACxD;EACF;EAEA,oBACEa,KAAA,CAAC;IAAIC,SAAA,EAAWhB,SAAA;4BACde,KAAA,CAAClB,KAAA;iBACEU,MAAA,iBAAUU,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGhB,SAAA,gBAAyB;kBAAGO;UAC1D,WAAWH,KAAA,IACV,OAAOA,KAAA,CAAMc,KAAK,KAAK,cACvBvB,cAAA,CAAeS,KAAA,CAAMc,KAAK,IAAI,IAAIb,IAAA;qBAEtCY,IAAA,CAAClB,UAAA;MACCa,kBAAA,EAAoBA,kBAAA;MACpBT,UAAA,EAAYA,UAAA;MACZL,UAAA,EAAYA,UAAA;MACZW,WAAA,EAAaA,WAAA;MACbE,eAAA,EAAiBA;;;AAIzB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAA"}
@@ -1,25 +1,27 @@
1
- import Iterable from './Iterable/index.js';
2
- import Nested from './Nested/index.js';
3
- import Relationship from './Relationship/index.js';
4
- import Select from './Select/index.js';
5
- import Tabs from './Tabs/index.js';
6
- import Text from './Text/index.js';
1
+ import { Collapsible } from './Collapsible/index.js';
2
+ import { Group } from './Group/index.js';
3
+ import { Iterable } from './Iterable/index.js';
4
+ import { Relationship } from './Relationship/index.js';
5
+ import { Row } from './Row/index.js';
6
+ import { Select } from './Select/index.js';
7
+ import { Tabs } from './Tabs/index.js';
8
+ import { Text } from './Text/index.js';
7
9
  export const diffComponents = {
8
10
  array: Iterable,
9
11
  blocks: Iterable,
10
12
  checkbox: Text,
11
13
  code: Text,
12
- collapsible: Nested,
14
+ collapsible: Collapsible,
13
15
  date: Text,
14
16
  email: Text,
15
- group: Nested,
17
+ group: Group,
16
18
  json: Text,
17
19
  number: Text,
18
20
  point: Text,
19
21
  radio: Select,
20
22
  relationship: Relationship,
21
23
  richText: Text,
22
- row: Nested,
24
+ row: Row,
23
25
  select: Select,
24
26
  tabs: Tabs,
25
27
  text: Text,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Iterable","Nested","Relationship","Select","Tabs","Text","diffComponents","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport const diffComponents = {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: Relationship,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: Relationship,\n}\n"],"mappings":"AAAA,OAAOA,QAAA,MAAc;AACrB,OAAOC,MAAA,MAAY;AACnB,OAAOC,YAAA,MAAkB;AACzB,OAAOC,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AACjB,OAAOC,IAAA,MAAU;AAEjB,OAAO,MAAMC,cAAA,GAAiB;EAC5BC,KAAA,EAAOP,QAAA;EACPQ,MAAA,EAAQR,QAAA;EACRS,QAAA,EAAUJ,IAAA;EACVK,IAAA,EAAML,IAAA;EACNM,WAAA,EAAaV,MAAA;EACbW,IAAA,EAAMP,IAAA;EACNQ,KAAA,EAAOR,IAAA;EACPS,KAAA,EAAOb,MAAA;EACPc,IAAA,EAAMV,IAAA;EACNW,MAAA,EAAQX,IAAA;EACRY,KAAA,EAAOZ,IAAA;EACPa,KAAA,EAAOf,MAAA;EACPgB,YAAA,EAAcjB,YAAA;EACdkB,QAAA,EAAUf,IAAA;EACVgB,GAAA,EAAKpB,MAAA;EACLqB,MAAA,EAAQnB,MAAA;EACRoB,IAAA,EAAMnB,IAAA;EACNoB,IAAA,EAAMnB,IAAA;EACNoB,QAAA,EAAUpB,IAAA;EACVqB,MAAA,EAAQxB;AACV","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Collapsible","Group","Iterable","Relationship","Row","Select","Tabs","Text","diffComponents","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import { Collapsible } from './Collapsible/index.js'\nimport { Group } from './Group/index.js'\nimport { Iterable } from './Iterable/index.js'\nimport { Relationship } from './Relationship/index.js'\nimport { Row } from './Row/index.js'\nimport { Select } from './Select/index.js'\nimport { Tabs } from './Tabs/index.js'\nimport { Text } from './Text/index.js'\n\nexport const diffComponents = {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Collapsible,\n date: Text,\n email: Text,\n group: Group,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: Relationship,\n richText: Text,\n row: Row,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: Relationship,\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ;AAC5B,SAASC,KAAK,QAAQ;AACtB,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,GAAG,QAAQ;AACpB,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,cAAA,GAAiB;EAC5BC,KAAA,EAAOP,QAAA;EACPQ,MAAA,EAAQR,QAAA;EACRS,QAAA,EAAUJ,IAAA;EACVK,IAAA,EAAML,IAAA;EACNM,WAAA,EAAab,WAAA;EACbc,IAAA,EAAMP,IAAA;EACNQ,KAAA,EAAOR,IAAA;EACPS,KAAA,EAAOf,KAAA;EACPgB,IAAA,EAAMV,IAAA;EACNW,MAAA,EAAQX,IAAA;EACRY,KAAA,EAAOZ,IAAA;EACPa,KAAA,EAAOf,MAAA;EACPgB,YAAA,EAAclB,YAAA;EACdmB,QAAA,EAAUf,IAAA;EACVgB,GAAA,EAAKnB,GAAA;EACLoB,MAAA,EAAQnB,MAAA;EACRoB,IAAA,EAAMnB,IAAA;EACNoB,IAAA,EAAMnB,IAAA;EACNoB,QAAA,EAAUpB,IAAA;EACVqB,MAAA,EAAQzB;AACV","ignoreList":[]}
@@ -7,7 +7,6 @@ export type DiffComponentProps<TField extends ClientField = ClientField> = {
7
7
  readonly comparison: any;
8
8
  readonly diffComponents: DiffComponents;
9
9
  readonly diffMethod?: DiffMethod;
10
- readonly disableGutter?: boolean;
11
10
  readonly field: TField;
12
11
  readonly fieldPermissions?: {
13
12
  [key: string]: SanitizedFieldPermissions;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,IAAI;IACzE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,CAAC,EACtB;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAAA;KACzC,GACD,IAAI,CAAA;IACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;CACtB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,IAAI;IACzE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,CAAC,EACtB;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAAA;KACzC,GACD,IAAI,CAAA;IACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;CACtB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientField, SanitizedFieldPermissions } from 'payload'\nimport type React from 'react'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nexport type DiffComponents = Record<string, React.FC<DiffComponentProps>>\n\nexport type DiffComponentProps<TField extends ClientField = ClientField> = {\n readonly comparison: any\n readonly diffComponents: DiffComponents\n readonly diffMethod?: DiffMethod\n readonly disableGutter?: boolean\n readonly field: TField\n readonly fieldPermissions?:\n | {\n [key: string]: SanitizedFieldPermissions\n }\n | true\n readonly fields: ClientField[]\n readonly i18n: I18nClient\n readonly isRichText?: boolean\n readonly locale?: string\n readonly locales?: string[]\n readonly version: any\n}\n"],"mappings":"AAOA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientField, SanitizedFieldPermissions } from 'payload'\nimport type React from 'react'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nexport type DiffComponents = Record<string, React.FC<DiffComponentProps>>\n\nexport type DiffComponentProps<TField extends ClientField = ClientField> = {\n readonly comparison: any\n readonly diffComponents: DiffComponents\n readonly diffMethod?: DiffMethod\n readonly field: TField\n readonly fieldPermissions?:\n | {\n [key: string]: SanitizedFieldPermissions\n }\n | true\n readonly fields: ClientField[]\n readonly i18n: I18nClient\n readonly isRichText?: boolean\n readonly locale?: string\n readonly locales?: string[]\n readonly version: any\n}\n"],"mappings":"AAOA","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { Props } from './types.js';
3
3
  import './index.scss';
4
- declare const RenderFieldsToDiff: React.FC<Props>;
5
- export default RenderFieldsToDiff;
4
+ export declare const RenderFieldsToDiff: React.FC<Props>;
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAkB,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvD,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0IvC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAkB,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0I9C,CAAA"}
@@ -4,9 +4,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import { fieldAffectsData, fieldIsID } from 'payload/shared';
5
5
  import React from 'react';
6
6
  import { diffMethods } from './fields/diffMethods.js';
7
- import Nested from './fields/Nested/index.js';
8
7
  const baseClass = 'render-field-diffs';
9
- const RenderFieldsToDiff = ({
8
+ export const RenderFieldsToDiff = ({
10
9
  comparison,
11
10
  diffComponents: __diffComponents,
12
11
  fieldPermissions,
@@ -94,12 +93,12 @@ const RenderFieldsToDiff = ({
94
93
  version: version
95
94
  }, i);
96
95
  }
97
- // At this point, we are dealing with a `row`, etc
96
+ // At this point, we are dealing with a field with subfields but no
97
+ // nested data, eg. row, collapsible, etc.
98
98
  if ('fields' in field) {
99
- return /*#__PURE__*/_jsx(Nested, {
99
+ return /*#__PURE__*/_jsx(Component, {
100
100
  comparison: comparison,
101
101
  diffComponents: diffComponents,
102
- disableGutter: true,
103
102
  field: field,
104
103
  fieldPermissions: fieldPermissions,
105
104
  fields: field.fields,
@@ -113,5 +112,4 @@ const RenderFieldsToDiff = ({
113
112
  })
114
113
  });
115
114
  };
116
- export default RenderFieldsToDiff;
117
115
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldAffectsData","fieldIsID","React","diffMethods","Nested","baseClass","RenderFieldsToDiff","comparison","diffComponents","__diffComponents","fieldPermissions","fields","i18n","locales","version","_jsx","className","map","field","i","Component","type","isRichText","diffMethod","fieldName","name","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","subFieldPermissions","baseCellProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs","disableGutter"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react'\n\nimport type { diffComponents as _diffComponents } from './fields/index.js'\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport { diffMethods } from './fields/diffMethods.js'\nimport Nested from './fields/Nested/index.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nconst RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents: __diffComponents,\n fieldPermissions,\n fields,\n i18n,\n locales,\n version,\n}) => {\n // typing it as `as typeof _diffComponents` here ensures the TField generics of DiffComponentProps are respected.\n // Without it, you could pass a UI field to the Tabs component, without it erroring\n const diffComponents: typeof _diffComponents = __diffComponents as typeof _diffComponents\n\n return (\n <div className={baseClass}>\n {fields?.map((field, i) => {\n if (fieldIsID(field)) {\n return null\n }\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (fieldAffectsData(field)) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.read\n\n const subFieldPermissions =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.fields\n\n if (!hasPermission) {\n return null\n }\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldPermissions: subFieldPermissions,\n fields: 'fields' in field ? field?.fields : fields,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={[]}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a `row`, etc\n if ('fields' in field) {\n return (\n <Nested\n comparison={comparison}\n diffComponents={diffComponents}\n disableGutter\n field={field}\n fieldPermissions={fieldPermissions}\n fields={field.fields}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n\nexport default RenderFieldsToDiff\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldAffectsData","fieldIsID","React","diffMethods","baseClass","RenderFieldsToDiff","comparison","diffComponents","__diffComponents","fieldPermissions","fields","i18n","locales","version","_jsx","className","map","field","i","Component","type","isRichText","diffMethod","fieldName","name","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","subFieldPermissions","baseCellProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react'\n\nimport type { diffComponents as _diffComponents } from './fields/index.js'\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport { diffMethods } from './fields/diffMethods.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nexport const RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents: __diffComponents,\n fieldPermissions,\n fields,\n i18n,\n locales,\n version,\n}) => {\n // typing it as `as typeof _diffComponents` here ensures the TField generics of DiffComponentProps are respected.\n // Without it, you could pass a UI field to the Tabs component, without it erroring\n const diffComponents: typeof _diffComponents = __diffComponents as typeof _diffComponents\n\n return (\n <div className={baseClass}>\n {fields?.map((field, i) => {\n if (fieldIsID(field)) {\n return null\n }\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (fieldAffectsData(field)) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.read\n\n const subFieldPermissions =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.fields\n\n if (!hasPermission) {\n return null\n }\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldPermissions: subFieldPermissions,\n fields: 'fields' in field ? field?.fields : fields,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={[]}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a field with subfields but no\n // nested data, eg. row, collapsible, etc.\n if ('fields' in field) {\n return (\n <Component\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={field.fields}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload';
2
+ type Args = {
3
+ comparison: unknown;
4
+ fields: ClientField[];
5
+ locales: string[] | undefined;
6
+ version: unknown;
7
+ };
8
+ /**
9
+ * Recursively counts the number of changed fields between comparison and
10
+ * version data for a given set of fields.
11
+ */
12
+ export declare function countChangedFields({ comparison, fields, locales, version }: Args): number;
13
+ type countChangedFieldsInRowsArgs = {
14
+ comparisonRows: unknown[];
15
+ field: ArrayFieldClient | BlocksFieldClient;
16
+ locales: string[] | undefined;
17
+ versionRows: unknown[];
18
+ };
19
+ export declare function countChangedFieldsInRows({ comparisonRows, field, locales, versionRows, }: countChangedFieldsInRowsArgs): number;
20
+ export {};
21
+ //# sourceMappingURL=countChangedFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK/E,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,UA8IhF;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,KAAK,EACL,OAAO,EACP,WAAgB,GACjB,EAAE,4BAA4B,UAwB9B"}
@@ -0,0 +1,188 @@
1
+ import { fieldHasChanges } from './fieldHasChanges.js';
2
+ import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
3
+ /**
4
+ * Recursively counts the number of changed fields between comparison and
5
+ * version data for a given set of fields.
6
+ */
7
+ export function countChangedFields({
8
+ comparison,
9
+ fields,
10
+ locales,
11
+ version
12
+ }) {
13
+ let count = 0;
14
+ fields.forEach(field => {
15
+ // Don't count the id field since it is not displayed in the UI
16
+ if ('name' in field && field.name === 'id') {
17
+ return;
18
+ }
19
+ const fieldType = field.type;
20
+ switch (fieldType) {
21
+ // Iterable fields are arrays and blocks fields. We iterate over each row and
22
+ // count the number of changed fields in each.
23
+ case 'array':
24
+ case 'blocks':
25
+ {
26
+ if (locales && field.localized) {
27
+ locales.forEach(locale => {
28
+ const comparisonRows = comparison?.[field.name]?.[locale] ?? [];
29
+ const versionRows = version?.[field.name]?.[locale] ?? [];
30
+ count += countChangedFieldsInRows({
31
+ comparisonRows,
32
+ field,
33
+ locales,
34
+ versionRows
35
+ });
36
+ });
37
+ } else {
38
+ const comparisonRows = comparison?.[field.name] ?? [];
39
+ const versionRows = version?.[field.name] ?? [];
40
+ count += countChangedFieldsInRows({
41
+ comparisonRows,
42
+ field,
43
+ locales,
44
+ versionRows
45
+ });
46
+ }
47
+ break;
48
+ }
49
+ // Regular fields without nested fields.
50
+ case 'checkbox':
51
+ case 'code':
52
+ case 'date':
53
+ case 'email':
54
+ case 'join':
55
+ case 'json':
56
+ case 'number':
57
+ case 'point':
58
+ case 'radio':
59
+ case 'relationship':
60
+ case 'richText':
61
+ case 'select':
62
+ case 'text':
63
+ case 'textarea':
64
+ case 'upload':
65
+ {
66
+ // Fields that have a name and contain data. We can just check if the data has changed.
67
+ if (locales && field.localized) {
68
+ locales.forEach(locale => {
69
+ if (fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])) {
70
+ count++;
71
+ }
72
+ });
73
+ } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {
74
+ count++;
75
+ }
76
+ break;
77
+ }
78
+ // Fields that have nested fields, but don't nest their fields' data.
79
+ case 'collapsible':
80
+ case 'row':
81
+ {
82
+ count += countChangedFields({
83
+ comparison,
84
+ fields: field.fields,
85
+ locales,
86
+ version
87
+ });
88
+ break;
89
+ }
90
+ // Fields that have nested fields and nest their fields' data.
91
+ case 'group':
92
+ {
93
+ if (locales && field.localized) {
94
+ locales.forEach(locale => {
95
+ count += countChangedFields({
96
+ comparison: comparison?.[field.name]?.[locale],
97
+ fields: field.fields,
98
+ locales,
99
+ version: version?.[field.name]?.[locale]
100
+ });
101
+ });
102
+ } else {
103
+ count += countChangedFields({
104
+ comparison: comparison?.[field.name],
105
+ fields: field.fields,
106
+ locales,
107
+ version: version?.[field.name]
108
+ });
109
+ }
110
+ break;
111
+ }
112
+ // Each tab in a tabs field has nested fields. The fields data may be
113
+ // nested or not depending on the existence of a name property.
114
+ case 'tabs':
115
+ {
116
+ field.tabs.forEach(tab => {
117
+ if ('name' in tab && locales && tab.localized) {
118
+ // Named localized tab
119
+ locales.forEach(locale => {
120
+ count += countChangedFields({
121
+ comparison: comparison?.[tab.name]?.[locale],
122
+ fields: tab.fields,
123
+ locales,
124
+ version: version?.[tab.name]?.[locale]
125
+ });
126
+ });
127
+ } else if ('name' in tab) {
128
+ // Named tab
129
+ count += countChangedFields({
130
+ comparison: comparison?.[tab.name],
131
+ fields: tab.fields,
132
+ locales,
133
+ version: version?.[tab.name]
134
+ });
135
+ } else {
136
+ // Unnamed tab
137
+ count += countChangedFields({
138
+ comparison,
139
+ fields: tab.fields,
140
+ locales,
141
+ version
142
+ });
143
+ }
144
+ });
145
+ break;
146
+ }
147
+ // UI fields don't have data and are not displayed in the version view
148
+ // so we can ignore them.
149
+ case 'ui':
150
+ {
151
+ break;
152
+ }
153
+ default:
154
+ {
155
+ const _exhaustiveCheck = fieldType;
156
+ throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`);
157
+ }
158
+ }
159
+ });
160
+ return count;
161
+ }
162
+ export function countChangedFieldsInRows({
163
+ comparisonRows = [],
164
+ field,
165
+ locales,
166
+ versionRows = []
167
+ }) {
168
+ let count = 0;
169
+ let i = 0;
170
+ while (comparisonRows[i] || versionRows[i]) {
171
+ const comparisonRow = comparisonRows?.[i] || {};
172
+ const versionRow = versionRows?.[i] || {};
173
+ const rowFields = getFieldsForRowComparison({
174
+ comparisonRow,
175
+ field,
176
+ versionRow
177
+ });
178
+ count += countChangedFields({
179
+ comparison: comparisonRow,
180
+ fields: rowFields,
181
+ locales,
182
+ version: versionRow
183
+ });
184
+ i++;
185
+ }
186
+ return count;
187
+ }
188
+ //# sourceMappingURL=countChangedFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countChangedFields.js","names":["fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","fields","locales","version","count","forEach","field","name","fieldType","type","localized","locale","comparisonRows","versionRows","countChangedFieldsInRows","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n fields: ClientField[]\n locales: string[] | undefined\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({ comparison, fields, locales, version }: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && field.localized) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n fields: field.fields,\n locales,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n fields: field.fields,\n locales,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n fields: field.fields,\n locales,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n fields: tab.fields,\n locales,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n fields: tab.fields,\n locales,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n fields: tab.fields,\n locales,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n field,\n locales,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const rowFields = getFieldsForRowComparison({\n comparisonRow,\n field,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n fields: rowFields,\n locales,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}