@payloadcms/richtext-lexical 0.1.0-beta.1 → 0.1.0-beta.3

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 (74) hide show
  1. package/dist/field/Field.d.ts.map +1 -1
  2. package/dist/field/Field.js +19 -4
  3. package/dist/field/features/Blocks/afterReadPromise.d.ts +5 -0
  4. package/dist/field/features/Blocks/afterReadPromise.d.ts.map +1 -0
  5. package/dist/field/features/Blocks/afterReadPromise.js +52 -0
  6. package/dist/field/features/Blocks/component/BlockContent.d.ts +14 -0
  7. package/dist/field/features/Blocks/component/BlockContent.d.ts.map +1 -0
  8. package/dist/field/features/Blocks/component/BlockContent.js +189 -0
  9. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts +3 -2
  10. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts.map +1 -1
  11. package/dist/field/features/Blocks/component/FormSavePlugin.js +4 -2
  12. package/dist/field/features/Blocks/component/index.d.ts.map +1 -1
  13. package/dist/field/features/Blocks/component/index.js +25 -105
  14. package/dist/field/features/Blocks/component/index.scss +24 -1
  15. package/dist/field/features/Blocks/drawer/index.js +9 -9
  16. package/dist/field/features/Blocks/index.d.ts.map +1 -1
  17. package/dist/field/features/Blocks/index.js +40 -19
  18. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts +7 -6
  19. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +1 -1
  20. package/dist/field/features/Blocks/nodes/BlocksNode.js +9 -2
  21. package/dist/field/features/Blocks/plugin/index.js +3 -3
  22. package/dist/field/features/Blocks/validate.d.ts +5 -0
  23. package/dist/field/features/Blocks/validate.d.ts.map +1 -0
  24. package/dist/field/features/Blocks/validate.js +53 -0
  25. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  26. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +18 -4
  27. package/dist/field/features/Link/plugins/floatingLinkEditor/index.scss +2 -2
  28. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
  29. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +2 -1
  30. package/dist/field/features/Relationship/nodes/components/index.scss +8 -0
  31. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  32. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +20 -3
  33. package/dist/field/features/Upload/component/index.scss +1 -0
  34. package/dist/field/features/Upload/nodes/UploadNode.d.ts.map +1 -1
  35. package/dist/field/features/Upload/nodes/UploadNode.js +1 -1
  36. package/dist/field/features/types.d.ts +15 -2
  37. package/dist/field/features/types.d.ts.map +1 -1
  38. package/dist/field/index.scss +38 -0
  39. package/dist/field/lexical/LexicalEditor.scss +28 -26
  40. package/dist/field/lexical/config/sanitize.d.ts.map +1 -1
  41. package/dist/field/lexical/config/sanitize.js +6 -2
  42. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.scss +1 -1
  43. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.scss +1 -1
  44. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +7 -0
  45. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  46. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +8 -3
  47. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -2
  48. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  49. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +19 -11
  50. package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  51. package/dist/field/lexical/plugins/SlashMenu/index.js +14 -2
  52. package/dist/field/lexical/plugins/SlashMenu/index.scss +9 -2
  53. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +4 -3
  54. package/dist/field/lexical/theme/EditorTheme.scss +3 -2
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +9 -5
  58. package/dist/populate/defaultValue.d.ts +17 -0
  59. package/dist/populate/defaultValue.d.ts.map +1 -1
  60. package/dist/populate/defaultValue.js +31 -4
  61. package/dist/populate/recurseNestedFields.d.ts.map +1 -1
  62. package/dist/populate/recurseNestedFields.js +3 -1
  63. package/dist/validate/index.d.ts +7 -0
  64. package/dist/validate/index.d.ts.map +1 -0
  65. package/dist/validate/index.js +40 -0
  66. package/dist/validate/validateNodes.d.ts +14 -0
  67. package/dist/validate/validateNodes.d.ts.map +1 -0
  68. package/dist/validate/validateNodes.js +44 -0
  69. package/package.json +4 -3
  70. package/src/index.ts +5 -1
  71. package/dist/field/features/Upload/nodes/UploadNode.scss +0 -4
  72. package/dist/populate/validation.d.ts +0 -4
  73. package/dist/populate/validation.d.ts.map +0 -1
  74. package/dist/populate/validation.js +0 -21
@@ -2,10 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "defaultRichTextValue", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ defaultRichTextValue: function() {
8
13
  return defaultRichTextValue;
14
+ },
15
+ defaultRichTextValueV2: function() {
16
+ return defaultRichTextValueV2;
9
17
  }
10
18
  });
11
19
  const defaultRichTextValue = {
@@ -37,5 +45,24 @@ const defaultRichTextValue = {
37
45
  version: 1
38
46
  }
39
47
  };
48
+ const defaultRichTextValueV2 = {
49
+ root: {
50
+ children: [
51
+ {
52
+ children: [],
53
+ direction: null,
54
+ format: '',
55
+ indent: 0,
56
+ type: 'paragraph',
57
+ version: 1
58
+ }
59
+ ],
60
+ direction: null,
61
+ format: '',
62
+ indent: 0,
63
+ type: 'root',
64
+ version: 1
65
+ }
66
+ };
40
67
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGRlZmF1bHRSaWNoVGV4dFZhbHVlID0ge1xuICByb290OiB7XG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRhaWw6IDAsXG4gICAgICAgICAgICBmb3JtYXQ6IDAsXG4gICAgICAgICAgICBtb2RlOiAnbm9ybWFsJyxcbiAgICAgICAgICAgIHN0eWxlOiAnJyxcbiAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkaXJlY3Rpb246IG51bGwsXG4gICAgICAgIGZvcm1hdDogJycsXG4gICAgICAgIGluZGVudDogMCxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICB9LFxuICAgIF0sXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGZvcm1hdDogJycsXG4gICAgaW5kZW50OiAwLFxuICAgIHR5cGU6ICdyb290JyxcbiAgICB2ZXJzaW9uOiAxLFxuICB9LFxufVxuIl0sIm5hbWVzIjpbImRlZmF1bHRSaWNoVGV4dFZhbHVlIiwicm9vdCIsImNoaWxkcmVuIiwiZGV0YWlsIiwiZm9ybWF0IiwibW9kZSIsInN0eWxlIiwidGV4dCIsInR5cGUiLCJ2ZXJzaW9uIiwiZGlyZWN0aW9uIiwiaW5kZW50Il0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSx1QkFBdUI7SUFDbENDLE1BQU07UUFDSkMsVUFBVTtZQUNSO2dCQUNFQSxVQUFVO29CQUNSO3dCQUNFQyxRQUFRO3dCQUNSQyxRQUFRO3dCQUNSQyxNQUFNO3dCQUNOQyxPQUFPO3dCQUNQQyxNQUFNO3dCQUNOQyxNQUFNO3dCQUNOQyxTQUFTO29CQUNYO2lCQUNEO2dCQUNEQyxXQUFXO2dCQUNYTixRQUFRO2dCQUNSTyxRQUFRO2dCQUNSSCxNQUFNO2dCQUNOQyxTQUFTO1lBQ1g7U0FDRDtRQUNEQyxXQUFXO1FBQ1hOLFFBQVE7UUFDUk8sUUFBUTtRQUNSSCxNQUFNO1FBQ05DLFNBQVM7SUFDWDtBQUNGIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGRlZmF1bHRSaWNoVGV4dFZhbHVlID0ge1xuICByb290OiB7XG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRhaWw6IDAsXG4gICAgICAgICAgICBmb3JtYXQ6IDAsXG4gICAgICAgICAgICBtb2RlOiAnbm9ybWFsJyxcbiAgICAgICAgICAgIHN0eWxlOiAnJyxcbiAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkaXJlY3Rpb246IG51bGwsXG4gICAgICAgIGZvcm1hdDogJycsXG4gICAgICAgIGluZGVudDogMCxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICB9LFxuICAgIF0sXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGZvcm1hdDogJycsXG4gICAgaW5kZW50OiAwLFxuICAgIHR5cGU6ICdyb290JyxcbiAgICB2ZXJzaW9uOiAxLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJpY2hUZXh0VmFsdWVWMiA9IHtcbiAgcm9vdDoge1xuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgZGlyZWN0aW9uOiBudWxsLFxuICAgICAgICBmb3JtYXQ6ICcnLFxuICAgICAgICBpbmRlbnQ6IDAsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGRpcmVjdGlvbjogbnVsbCxcbiAgICBmb3JtYXQ6ICcnLFxuICAgIGluZGVudDogMCxcbiAgICB0eXBlOiAncm9vdCcsXG4gICAgdmVyc2lvbjogMSxcbiAgfSxcbn1cbiJdLCJuYW1lcyI6WyJkZWZhdWx0UmljaFRleHRWYWx1ZSIsImRlZmF1bHRSaWNoVGV4dFZhbHVlVjIiLCJyb290IiwiY2hpbGRyZW4iLCJkZXRhaWwiLCJmb3JtYXQiLCJtb2RlIiwic3R5bGUiLCJ0ZXh0IiwidHlwZSIsInZlcnNpb24iLCJkaXJlY3Rpb24iLCJpbmRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQWFBLG9CQUFvQjtlQUFwQkE7O0lBOEJBQyxzQkFBc0I7ZUFBdEJBOzs7QUE5Qk4sTUFBTUQsdUJBQXVCO0lBQ2xDRSxNQUFNO1FBQ0pDLFVBQVU7WUFDUjtnQkFDRUEsVUFBVTtvQkFDUjt3QkFDRUMsUUFBUTt3QkFDUkMsUUFBUTt3QkFDUkMsTUFBTTt3QkFDTkMsT0FBTzt3QkFDUEMsTUFBTTt3QkFDTkMsTUFBTTt3QkFDTkMsU0FBUztvQkFDWDtpQkFDRDtnQkFDREMsV0FBVztnQkFDWE4sUUFBUTtnQkFDUk8sUUFBUTtnQkFDUkgsTUFBTTtnQkFDTkMsU0FBUztZQUNYO1NBQ0Q7UUFDREMsV0FBVztRQUNYTixRQUFRO1FBQ1JPLFFBQVE7UUFDUkgsTUFBTTtRQUNOQyxTQUFTO0lBQ1g7QUFDRjtBQUVPLE1BQU1ULHlCQUF5QjtJQUNwQ0MsTUFBTTtRQUNKQyxVQUFVO1lBQ1I7Z0JBQ0VBLFVBQVUsRUFBRTtnQkFDWlEsV0FBVztnQkFDWE4sUUFBUTtnQkFDUk8sUUFBUTtnQkFDUkgsTUFBTTtnQkFDTkMsU0FBUztZQUNYO1NBQ0Q7UUFDREMsV0FBVztRQUNYTixRQUFRO1FBQ1JPLFFBQVE7UUFDUkgsTUFBTTtRQUNOQyxTQUFTO0lBQ1g7QUFDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"recurseNestedFields.d.ts","sourceRoot":"","sources":["../../src/populate/recurseNestedFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAIzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAM/D,KAAK,wBAAwB,GAAG;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,+GAU7B,wBAAwB,KAAG,IAoL7B,CAAA"}
1
+ {"version":3,"file":"recurseNestedFields.d.ts","sourceRoot":"","sources":["../../src/populate/recurseNestedFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAIzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAM/D,KAAK,wBAAwB,GAAG;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,+GAU7B,wBAAwB,KAAG,IAsL7B,CAAA"}
@@ -162,6 +162,8 @@ const recurseNestedFields = ({ afterReadPromises, currentDepth = 0, data, depth,
162
162
  if (field.type === 'richText' && Array.isArray(data[field.name])) {
163
163
  data[field.name].root.children.forEach((node)=>{
164
164
  if ('children' in node && Array.isArray(node.children)) {
165
+ // This assumes that the richText editor is using lexical and not slate.
166
+ // TODO: Throw an error if Slate is used. That would be cursed, who'd do that?
165
167
  (0, _richTextRelationshipPromise.recurseRichText)({
166
168
  afterReadPromises,
167
169
  children: node.children,
@@ -179,4 +181,4 @@ const recurseNestedFields = ({ afterReadPromises, currentDepth = 0, data, depth,
179
181
  });
180
182
  };
181
183
 
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1bGF0ZS9yZWN1cnNlTmVzdGVkRmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFBheWxvYWRSZXF1ZXN0LCBSaWNoVGV4dEZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgZmllbGRIYXNTdWJGaWVsZHMsIGZpZWxkSXNBcnJheVR5cGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IEFmdGVyUmVhZFByb21pc2UgfSBmcm9tICcuLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHBvcHVsYXRlIH0gZnJvbSAnLi9wb3B1bGF0ZSdcbmltcG9ydCB7IHJlY3Vyc2VSaWNoVGV4dCB9IGZyb20gJy4vcmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlJ1xuXG50eXBlIE5lc3RlZFJpY2hUZXh0RmllbGRzQXJncyA9IHtcbiAgYWZ0ZXJSZWFkUHJvbWlzZXM6IE1hcDxzdHJpbmcsIEFycmF5PEFmdGVyUmVhZFByb21pc2U+PlxuICBjdXJyZW50RGVwdGg/OiBudW1iZXJcbiAgZGF0YTogdW5rbm93blxuICBkZXB0aDogbnVtYmVyXG4gIGZpZWxkczogRmllbGRbXVxuICBvdmVycmlkZUFjY2VzczogYm9vbGVhblxuICBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkczogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgcmVjdXJzZU5lc3RlZEZpZWxkcyA9ICh7XG4gIGFmdGVyUmVhZFByb21pc2VzLFxuICBjdXJyZW50RGVwdGggPSAwLFxuICBkYXRhLFxuICBkZXB0aCxcbiAgZmllbGRzLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwcm9taXNlcyxcbiAgcmVxLFxuICBzaG93SGlkZGVuRmllbGRzLFxufTogTmVzdGVkUmljaFRleHRGaWVsZHNBcmdzKTogdm9pZCA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnKSB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55ICYmIEFycmF5LmlzQXJyYXkoZGF0YVtmaWVsZC5uYW1lXSkpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXS5mb3JFYWNoKCh7IHJlbGF0aW9uVG8sIHZhbHVlIH0sIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dXG4gICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpLFxuICAgICAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdLmZvckVhY2goKGlkLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb2xsZWN0aW9uc1tmaWVsZC5yZWxhdGlvblRvIGFzIHN0cmluZ11cbiAgICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgcG9wdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGtleTogaSxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSAmJlxuICAgICAgICAgIGRhdGFbZmllbGQubmFtZV0/LnZhbHVlICYmXG4gICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXT8ucmVsYXRpb25Ub1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNbZGF0YVtmaWVsZC5uYW1lXS5yZWxhdGlvblRvXVxuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICBwb3B1bGF0ZSh7XG4gICAgICAgICAgICAgIGlkOiBkYXRhW2ZpZWxkLm5hbWVdLnZhbHVlLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAga2V5OiAndmFsdWUnLFxuICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmaWVsZC5yZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNbZmllbGQucmVsYXRpb25Ub11cbiAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICBwb3B1bGF0ZSh7XG4gICAgICAgICAgICBpZDogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIGtleTogZmllbGQubmFtZSxcbiAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmllbGRIYXNTdWJGaWVsZHMoZmllbGQpICYmICFmaWVsZElzQXJyYXlUeXBlKGZpZWxkKSkge1xuICAgICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWN1cnNlTmVzdGVkRmllbGRzKHtcbiAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGF0YTogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICBwcm9taXNlcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlY3Vyc2VOZXN0ZWRGaWVsZHMoe1xuICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICByZWN1cnNlTmVzdGVkRmllbGRzKHtcbiAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcHJvbWlzZXMsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdibG9ja3MnKSB7XG4gICAgICAgIGRhdGFbZmllbGQubmFtZV0uZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoeyBzbHVnIH0pID0+IHNsdWcgPT09IHJvdz8uYmxvY2tUeXBlKVxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcmVjdXJzZU5lc3RlZEZpZWxkcyh7XG4gICAgICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV1baV0sXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXS5mb3JFYWNoKChfLCBpKSA9PiB7XG4gICAgICAgICAgcmVjdXJzZU5lc3RlZEZpZWxkcyh7XG4gICAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV1baV0sXG4gICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICBwcm9taXNlcyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JpY2hUZXh0JyAmJiBBcnJheS5pc0FycmF5KGRhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICA7KGRhdGFbZmllbGQubmFtZV0gYXMgU2VyaWFsaXplZEVkaXRvclN0YXRlKS5yb290LmNoaWxkcmVuLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSAmJiBBcnJheS5pc0FycmF5KG5vZGUuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgcmVjdXJzZVJpY2hUZXh0KHtcbiAgICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgICAgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgIGZpZWxkOiBmaWVsZCBhcyBSaWNoVGV4dEZpZWxkPEFkYXB0ZXJQcm9wcz4sXG4gICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJyZWN1cnNlTmVzdGVkRmllbGRzIiwiYWZ0ZXJSZWFkUHJvbWlzZXMiLCJjdXJyZW50RGVwdGgiLCJkYXRhIiwiZGVwdGgiLCJmaWVsZHMiLCJvdmVycmlkZUFjY2VzcyIsInByb21pc2VzIiwicmVxIiwic2hvd0hpZGRlbkZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsInR5cGUiLCJoYXNNYW55IiwiQXJyYXkiLCJpc0FycmF5IiwibmFtZSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsImkiLCJjb2xsZWN0aW9uIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwicHVzaCIsInBvcHVsYXRlIiwiaWQiLCJrZXkiLCJmaWVsZEhhc1N1YkZpZWxkcyIsImZpZWxkSXNBcnJheVR5cGUiLCJmaWVsZEFmZmVjdHNEYXRhIiwidGFicyIsInRhYiIsInJvdyIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsInNsdWciLCJibG9ja1R5cGUiLCJfIiwicm9vdCIsImNoaWxkcmVuIiwibm9kZSIsInJlY3Vyc2VSaWNoVGV4dCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF1QmFBOzs7ZUFBQUE7Ozt1QkFwQnlEOzBCQUs3Qzs2Q0FDTztBQWN6QixNQUFNQSxzQkFBc0IsQ0FBQyxFQUNsQ0MsaUJBQWlCLEVBQ2pCQyxlQUFlLENBQUMsRUFDaEJDLElBQUksRUFDSkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLGlCQUFpQixLQUFLLEVBQ3RCQyxRQUFRLEVBQ1JDLEdBQUcsRUFDSEMsZ0JBQWdCLEVBQ1M7SUFDekJKLE9BQU9LLE9BQU8sQ0FBQyxDQUFDQztRQUNkLElBQUlBLE1BQU1DLElBQUksS0FBSyxrQkFBa0JELE1BQU1DLElBQUksS0FBSyxVQUFVO1lBQzVELElBQUlELE1BQU1DLElBQUksS0FBSyxnQkFBZ0I7Z0JBQ2pDLElBQUlELE1BQU1FLE9B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
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1bGF0ZS9yZWN1cnNlTmVzdGVkRmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFBheWxvYWRSZXF1ZXN0LCBSaWNoVGV4dEZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgZmllbGRIYXNTdWJGaWVsZHMsIGZpZWxkSXNBcnJheVR5cGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IEFmdGVyUmVhZFByb21pc2UgfSBmcm9tICcuLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHBvcHVsYXRlIH0gZnJvbSAnLi9wb3B1bGF0ZSdcbmltcG9ydCB7IHJlY3Vyc2VSaWNoVGV4dCB9IGZyb20gJy4vcmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlJ1xuXG50eXBlIE5lc3RlZFJpY2hUZXh0RmllbGRzQXJncyA9IHtcbiAgYWZ0ZXJSZWFkUHJvbWlzZXM6IE1hcDxzdHJpbmcsIEFycmF5PEFmdGVyUmVhZFByb21pc2U+PlxuICBjdXJyZW50RGVwdGg/OiBudW1iZXJcbiAgZGF0YTogdW5rbm93blxuICBkZXB0aDogbnVtYmVyXG4gIGZpZWxkczogRmllbGRbXVxuICBvdmVycmlkZUFjY2VzczogYm9vbGVhblxuICBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkczogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgcmVjdXJzZU5lc3RlZEZpZWxkcyA9ICh7XG4gIGFmdGVyUmVhZFByb21pc2VzLFxuICBjdXJyZW50RGVwdGggPSAwLFxuICBkYXRhLFxuICBkZXB0aCxcbiAgZmllbGRzLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwcm9taXNlcyxcbiAgcmVxLFxuICBzaG93SGlkZGVuRmllbGRzLFxufTogTmVzdGVkUmljaFRleHRGaWVsZHNBcmdzKTogdm9pZCA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnKSB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55ICYmIEFycmF5LmlzQXJyYXkoZGF0YVtmaWVsZC5uYW1lXSkpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXS5mb3JFYWNoKCh7IHJlbGF0aW9uVG8sIHZhbHVlIH0sIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dXG4gICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpLFxuICAgICAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdLmZvckVhY2goKGlkLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb2xsZWN0aW9uc1tmaWVsZC5yZWxhdGlvblRvIGFzIHN0cmluZ11cbiAgICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgcG9wdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGtleTogaSxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSAmJlxuICAgICAgICAgIGRhdGFbZmllbGQubmFtZV0/LnZhbHVlICYmXG4gICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXT8ucmVsYXRpb25Ub1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNbZGF0YVtmaWVsZC5uYW1lXS5yZWxhdGlvblRvXVxuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICBwb3B1bGF0ZSh7XG4gICAgICAgICAgICAgIGlkOiBkYXRhW2ZpZWxkLm5hbWVdLnZhbHVlLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAga2V5OiAndmFsdWUnLFxuICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmaWVsZC5yZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNbZmllbGQucmVsYXRpb25Ub11cbiAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICBwb3B1bGF0ZSh7XG4gICAgICAgICAgICBpZDogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIGtleTogZmllbGQubmFtZSxcbiAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmllbGRIYXNTdWJGaWVsZHMoZmllbGQpICYmICFmaWVsZElzQXJyYXlUeXBlKGZpZWxkKSkge1xuICAgICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWN1cnNlTmVzdGVkRmllbGRzKHtcbiAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGF0YTogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICBwcm9taXNlcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlY3Vyc2VOZXN0ZWRGaWVsZHMoe1xuICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICByZWN1cnNlTmVzdGVkRmllbGRzKHtcbiAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcHJvbWlzZXMsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdibG9ja3MnKSB7XG4gICAgICAgIGRhdGFbZmllbGQubmFtZV0uZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoeyBzbHVnIH0pID0+IHNsdWcgPT09IHJvdz8uYmxvY2tUeXBlKVxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcmVjdXJzZU5lc3RlZEZpZWxkcyh7XG4gICAgICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV1baV0sXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXS5mb3JFYWNoKChfLCBpKSA9PiB7XG4gICAgICAgICAgcmVjdXJzZU5lc3RlZEZpZWxkcyh7XG4gICAgICAgICAgICBhZnRlclJlYWRQcm9taXNlcyxcbiAgICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV1baV0sXG4gICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICBwcm9taXNlcyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JpY2hUZXh0JyAmJiBBcnJheS5pc0FycmF5KGRhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICA7KGRhdGFbZmllbGQubmFtZV0gYXMgU2VyaWFsaXplZEVkaXRvclN0YXRlKS5yb290LmNoaWxkcmVuLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSAmJiBBcnJheS5pc0FycmF5KG5vZGUuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHJpY2hUZXh0IGVkaXRvciBpcyB1c2luZyBsZXhpY2FsIGFuZCBub3Qgc2xhdGUuXG4gICAgICAgICAgLy8gVE9ETzogVGhyb3cgYW4gZXJyb3IgaWYgU2xhdGUgaXMgdXNlZC4gVGhhdCB3b3VsZCBiZSBjdXJzZWQsIHdobydkIGRvIHRoYXQ/XG4gICAgICAgICAgcmVjdXJzZVJpY2hUZXh0KHtcbiAgICAgICAgICAgIGFmdGVyUmVhZFByb21pc2VzLFxuICAgICAgICAgICAgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgIGZpZWxkOiBmaWVsZCBhcyBSaWNoVGV4dEZpZWxkPEFkYXB0ZXJQcm9wcz4sXG4gICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgIHByb21pc2VzLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJyZWN1cnNlTmVzdGVkRmllbGRzIiwiYWZ0ZXJSZWFkUHJvbWlzZXMiLCJjdXJyZW50RGVwdGgiLCJkYXRhIiwiZGVwdGgiLCJmaWVsZHMiLCJvdmVycmlkZUFjY2VzcyIsInByb21pc2VzIiwicmVxIiwic2hvd0hpZGRlbkZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsInR5cGUiLCJoYXNNYW55IiwiQXJyYXkiLCJpc0FycmF5IiwibmFtZSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsImkiLCJjb2xsZWN0aW9uIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwicHVzaCIsInBvcHVsYXRlIiwiaWQiLCJrZXkiLCJmaWVsZEhhc1N1YkZpZWxkcyIsImZpZWxkSXNBcnJheVR5cGUiLCJmaWVsZEFmZmVjdHNEYXRhIiwidGFicyIsInRhYiIsInJvdyIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsInNsdWciLCJibG9ja1R5cGUiLCJfIiwicm9vdCIsImNoaWxkcmVuIiwibm9kZSIsInJlY3Vyc2VSaWNoVGV4dCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF1QmFBOzs7ZUFBQUE7Ozt1QkFwQnlEOzBCQUs3Qzs2Q0FDTztBQWN6QixNQUFNQSxzQkFBc0IsQ0FBQyxFQUNsQ0MsaUJBQWlCLEVBQ2pCQyxlQUFlLENBQUMsRUFDaEJDLElBQUksRUFDSkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLGlCQUFpQixLQUFLLEVBQ3RCQyxR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
@@ -0,0 +1,7 @@
1
+ import type { SerializedEditorState } from 'lexical';
2
+ import type { RichTextField, Validate } from 'payload/types';
3
+ import type { SanitizedEditorConfig } from '../field/lexical/config/types';
4
+ export declare const richTextValidateHOC: ({ editorConfig }: {
5
+ editorConfig: SanitizedEditorConfig;
6
+ }) => Validate<SerializedEditorState<import("lexical").SerializedLexicalNode>, SerializedEditorState<import("lexical").SerializedLexicalNode>, unknown, RichTextField>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAK1E,eAAO,MAAM,mBAAmB;kBAAsC,qBAAqB;sKAyC1F,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "richTextValidateHOC", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return richTextValidateHOC;
9
+ }
10
+ });
11
+ const _defaultValue = require("../populate/defaultValue");
12
+ const _validateNodes = require("./validateNodes");
13
+ const richTextValidateHOC = ({ editorConfig })=>{
14
+ const richTextValidate = async (value, options)=>{
15
+ const { required, t } = options;
16
+ if (required) {
17
+ if (!value || !value?.root?.children || !value?.root?.children?.length || JSON.stringify(value) === JSON.stringify(_defaultValue.defaultRichTextValue) || JSON.stringify(value) === JSON.stringify(_defaultValue.defaultRichTextValueV2)) {
18
+ return t('validation:required');
19
+ }
20
+ }
21
+ // Traverse through nodes and validate them. Just like a node can hook into the population process (e.g. link or relationship nodes),
22
+ // they can also hook into the validation process. E.g. a block node probably has fields with validation rules.
23
+ const rootNodes = value?.root?.children;
24
+ if (rootNodes && Array.isArray(rootNodes) && rootNodes?.length) {
25
+ return await (0, _validateNodes.validateNodes)({
26
+ nodeValidations: editorConfig.features.validations,
27
+ nodes: rootNodes,
28
+ payloadConfig: options.config,
29
+ validation: {
30
+ options,
31
+ value
32
+ }
33
+ });
34
+ }
35
+ return true;
36
+ };
37
+ return richTextValidate;
38
+ };
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IFJpY2hUZXh0RmllbGQsIFZhbGlkYXRlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRFZGl0b3JDb25maWcgfSBmcm9tICcuLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZGVmYXVsdFJpY2hUZXh0VmFsdWUsIGRlZmF1bHRSaWNoVGV4dFZhbHVlVjIgfSBmcm9tICcuLi9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUnXG5pbXBvcnQgeyB2YWxpZGF0ZU5vZGVzIH0gZnJvbSAnLi92YWxpZGF0ZU5vZGVzJ1xuXG5leHBvcnQgY29uc3QgcmljaFRleHRWYWxpZGF0ZUhPQyA9ICh7IGVkaXRvckNvbmZpZyB9OiB7IGVkaXRvckNvbmZpZzogU2FuaXRpemVkRWRpdG9yQ29uZmlnIH0pID0+IHtcbiAgY29uc3QgcmljaFRleHRWYWxpZGF0ZTogVmFsaWRhdGU8XG4gICAgU2VyaWFsaXplZEVkaXRvclN0YXRlLFxuICAgIFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSxcbiAgICB1bmtub3duLFxuICAgIFJpY2hUZXh0RmllbGRcbiAgPiA9IGFzeW5jICh2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWlyZWQsIHQgfSA9IG9wdGlvbnNcblxuICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgaWYgKFxuICAgICAgICAhdmFsdWUgfHxcbiAgICAgICAgIXZhbHVlPy5yb290Py5jaGlsZHJlbiB8fFxuICAgICAgICAhdmFsdWU/LnJvb3Q/LmNoaWxkcmVuPy5sZW5ndGggfHxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShkZWZhdWx0UmljaFRleHRWYWx1ZSkgfHxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShkZWZhdWx0UmljaFRleHRWYWx1ZVYyKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcmF2ZXJzZSB0aHJvdWdoIG5vZGVzIGFuZCB2YWxpZGF0ZSB0aGVtLiBKdXN0IGxpa2UgYSBub2RlIGNhbiBob29rIGludG8gdGhlIHBvcHVsYXRpb24gcHJvY2VzcyAoZS5nLiBsaW5rIG9yIHJlbGF0aW9uc2hpcCBub2RlcyksXG4gICAgLy8gdGhleSBjYW4gYWxzbyBob29rIGludG8gdGhlIHZhbGlkYXRpb24gcHJvY2Vzcy4gRS5nLiBhIGJsb2NrIG5vZGUgcHJvYmFibHkgaGFzIGZpZWxkcyB3aXRoIHZhbGlkYXRpb24gcnVsZXMuXG5cbiAgICBjb25zdCByb290Tm9kZXMgPSB2YWx1ZT8ucm9vdD8uY2hpbGRyZW5cbiAgICBpZiAocm9vdE5vZGVzICYmIEFycmF5LmlzQXJyYXkocm9vdE5vZGVzKSAmJiByb290Tm9kZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHZhbGlkYXRlTm9kZXMoe1xuICAgICAgICBub2RlVmFsaWRhdGlvbnM6IGVkaXRvckNvbmZpZy5mZWF0dXJlcy52YWxpZGF0aW9ucyxcbiAgICAgICAgbm9kZXM6IHJvb3ROb2RlcyxcbiAgICAgICAgcGF5bG9hZENvbmZpZzogb3B0aW9ucy5jb25maWcsXG4gICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHJpY2hUZXh0VmFsaWRhdGVcbn1cbiJdLCJuYW1lcyI6WyJyaWNoVGV4dFZhbGlkYXRlSE9DIiwiZWRpdG9yQ29uZmlnIiwicmljaFRleHRWYWxpZGF0ZSIsInZhbHVlIiwib3B0aW9ucyIsInJlcXVpcmVkIiwidCIsInJvb3QiLCJjaGlsZHJlbiIsImxlbmd0aCIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWZhdWx0UmljaFRleHRWYWx1ZSIsImRlZmF1bHRSaWNoVGV4dFZhbHVlVjIiLCJyb290Tm9kZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWxpZGF0ZU5vZGVzIiwibm9kZVZhbGlkYXRpb25zIiwiZmVhdHVyZXMiLCJ2YWxpZGF0aW9ucyIsIm5vZGVzIiwicGF5bG9hZENvbmZpZyIsImNvbmZpZyIsInZhbGlkYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7Ozs4QkFIZ0Q7K0JBQy9CO0FBRXZCLE1BQU1BLHNCQUFzQixDQUFDLEVBQUVDLFlBQVksRUFBMkM7SUFDM0YsTUFBTUMsbUJBS0YsT0FBT0MsT0FBT0M7UUFDaEIsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLENBQUMsRUFBRSxHQUFHRjtRQUV4QixJQUFJQyxVQUFVO1lBQ1osSUFDRSxDQUFDRixTQUNELENBQUNBLE9BQU9JLE1BQU1DLFlBQ2QsQ0FBQ0wsT0FBT0ksTUFBTUMsVUFBVUMsVUFDeEJDLEtBQUtDLFNBQVMsQ0FBQ1IsV0FBV08sS0FBS0MsU0FBUyxDQUFDQyxrQ0FBb0IsS0FDN0RGLEtBQUtDLFNBQVMsQ0FBQ1IsV0FBV08sS0FBS0MsU0FBUyxDQUFDRSxvQ0FBc0IsR0FDL0Q7Z0JBQ0EsT0FBT1AsRUFBRTtZQUNYO1FBQ0Y7UUFFQSxxSUFBcUk7UUFDckksK0dBQStHO1FBRS9HLE1BQU1RLFlBQVlYLE9BQU9JLE1BQU1DO1FBQy9CLElBQUlNLGFBQWFDLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBY0EsV0FBV0wsUUFBUTtZQUM5RCxPQUFPLE1BQU1RLElBQUFBLDRCQUFhLEVBQUM7Z0JBQ3pCQyxpQkFBaUJqQixhQUFha0IsUUFBUSxDQUFDQyxXQUFXO2dCQUNsREMsT0FBT1A7Z0JBQ1BRLGVBQWVsQixRQUFRbUIsTUFBTTtnQkFDN0JDLFlBQVk7b0JBQ1ZwQjtvQkFDQUQ7Z0JBQ0Y7WUFDRjtRQUNGO1FBRUEsT0FBTztJQUNUO0lBRUEsT0FBT0Q7QUFDVCJ9
@@ -0,0 +1,14 @@
1
+ import type { SerializedEditorState, SerializedLexicalNode } from 'lexical';
2
+ import type { SanitizedConfig } from 'payload/config';
3
+ import type { RichTextField, ValidateOptions } from 'payload/types';
4
+ import type { NodeValidation } from '../field/features/types';
5
+ export declare function validateNodes({ nodeValidations, nodes, payloadConfig, validation: validationFromProps, }: {
6
+ nodeValidations: Map<string, Array<NodeValidation>>;
7
+ nodes: SerializedLexicalNode[];
8
+ payloadConfig: SanitizedConfig;
9
+ validation: {
10
+ options: ValidateOptions<SerializedEditorState, unknown, RichTextField>;
11
+ value: SerializedEditorState;
12
+ };
13
+ }): Promise<string | true>;
14
+ //# sourceMappingURL=validateNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateNodes.d.ts","sourceRoot":"","sources":["../../src/validate/validateNodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,wBAAsB,aAAa,CAAC,EAClC,eAAe,EACf,KAAK,EACL,aAAa,EACb,UAAU,EAAE,mBAAmB,GAChC,EAAE;IACD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,aAAa,EAAE,eAAe,CAAA;IAC9B,UAAU,EAAE;QACV,OAAO,EAAE,eAAe,CAAC,qBAAqB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACvE,KAAK,EAAE,qBAAqB,CAAA;KAC7B,CAAA;CACF,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCzB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "validateNodes", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return validateNodes;
9
+ }
10
+ });
11
+ async function validateNodes({ nodeValidations, nodes, payloadConfig, validation: validationFromProps }) {
12
+ for (const node of nodes){
13
+ // Validate node
14
+ if (nodeValidations && typeof nodeValidations?.has === 'function' && nodeValidations?.has(node.type)) {
15
+ const validations = nodeValidations.get(node.type);
16
+ for (const validation of validations){
17
+ const validationResult = await validation({
18
+ node,
19
+ nodeValidations,
20
+ payloadConfig,
21
+ validation: validationFromProps
22
+ });
23
+ if (validationResult !== true) {
24
+ return validationResult;
25
+ }
26
+ }
27
+ }
28
+ // Validate node's children
29
+ if ('children' in node && node?.children) {
30
+ const childrenValidationResult = await validateNodes({
31
+ nodeValidations,
32
+ nodes: node.children,
33
+ payloadConfig,
34
+ validation: validationFromProps
35
+ });
36
+ if (childrenValidationResult !== true) {
37
+ return childrenValidationResult;
38
+ }
39
+ }
40
+ }
41
+ return true;
42
+ }
43
+
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS92YWxpZGF0ZU5vZGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlLCBTZXJpYWxpemVkTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgUmljaFRleHRGaWVsZCwgVmFsaWRhdGVPcHRpb25zIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBOb2RlVmFsaWRhdGlvbiB9IGZyb20gJy4uL2ZpZWxkL2ZlYXR1cmVzL3R5cGVzJ1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlTm9kZXMoe1xuICBub2RlVmFsaWRhdGlvbnMsXG4gIG5vZGVzLFxuICBwYXlsb2FkQ29uZmlnLFxuICB2YWxpZGF0aW9uOiB2YWxpZGF0aW9uRnJvbVByb3BzLFxufToge1xuICBub2RlVmFsaWRhdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PE5vZGVWYWxpZGF0aW9uPj5cbiAgbm9kZXM6IFNlcmlhbGl6ZWRMZXhpY2FsTm9kZVtdXG4gIHBheWxvYWRDb25maWc6IFNhbml0aXplZENvbmZpZ1xuICB2YWxpZGF0aW9uOiB7XG4gICAgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSwgdW5rbm93biwgUmljaFRleHRGaWVsZD5cbiAgICB2YWx1ZTogU2VyaWFsaXplZEVkaXRvclN0YXRlXG4gIH1cbn0pOiBQcm9taXNlPHN0cmluZyB8IHRydWU+IHtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgLy8gVmFsaWRhdGUgbm9kZVxuICAgIGlmIChcbiAgICAgIG5vZGVWYWxpZGF0aW9ucyAmJlxuICAgICAgdHlwZW9mIG5vZGVWYWxpZGF0aW9ucz8uaGFzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBub2RlVmFsaWRhdGlvbnM/Lmhhcyhub2RlLnR5cGUpXG4gICAgKSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9ucyA9IG5vZGVWYWxpZGF0aW9ucy5nZXQobm9kZS50eXBlKVxuICAgICAgZm9yIChjb25zdCB2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB2YWxpZGF0aW9uKHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG5vZGVWYWxpZGF0aW9ucyxcbiAgICAgICAgICBwYXlsb2FkQ29uZmlnLFxuICAgICAgICAgIHZhbGlkYXRpb246IHZhbGlkYXRpb25Gcm9tUHJvcHMsXG4gICAgICAgIH0pXG4gICAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSBub2RlJ3MgY2hpbGRyZW5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGU/LmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBjaGlsZHJlblZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZU5vZGVzKHtcbiAgICAgICAgbm9kZVZhbGlkYXRpb25zLFxuICAgICAgICBub2Rlczogbm9kZS5jaGlsZHJlbiBhcyBTZXJpYWxpemVkTGV4aWNhbE5vZGVbXSxcbiAgICAgICAgcGF5bG9hZENvbmZpZyxcbiAgICAgICAgdmFsaWRhdGlvbjogdmFsaWRhdGlvbkZyb21Qcm9wcyxcbiAgICAgIH0pXG4gICAgICBpZiAoY2hpbGRyZW5WYWxpZGF0aW9uUmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblZhbGlkYXRpb25SZXN1bHRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuIl0sIm5hbWVzIjpbInZhbGlkYXRlTm9kZXMiLCJub2RlVmFsaWRhdGlvbnMiLCJub2RlcyIsInBheWxvYWRDb25maWciLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGlvbkZyb21Qcm9wcyIsIm5vZGUiLCJoYXMiLCJ0eXBlIiwidmFsaWRhdGlvbnMiLCJnZXQiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiY2hpbGRyZW4iLCJjaGlsZHJlblZhbGlkYXRpb25SZXN1bHQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBS3NCQTs7O2VBQUFBOzs7QUFBZixlQUFlQSxjQUFjLEVBQ2xDQyxlQUFlLEVBQ2ZDLEtBQUssRUFDTEMsYUFBYSxFQUNiQyxZQUFZQyxtQkFBbUIsRUFTaEM7SUFDQyxLQUFLLE1BQU1DLFFBQVFKLE1BQU87UUFDeEIsZ0JBQWdCO1FBQ2hCLElBQ0VELG1CQUNBLE9BQU9BLGlCQUFpQk0sUUFBUSxjQUNoQ04saUJBQWlCTSxJQUFJRCxLQUFLRSxJQUFJLEdBQzlCO1lBQ0EsTUFBTUMsY0FBY1IsZ0JBQWdCUyxHQUFHLENBQUNKLEtBQUtFLElBQUk7WUFDakQsS0FBSyxNQUFNSixjQUFjSyxZQUFhO2dCQUNwQyxNQUFNRSxtQkFBbUIsTUFBTVAsV0FBVztvQkFDeENFO29CQUNBTDtvQkFDQUU7b0JBQ0FDLFlBQVlDO2dCQUNkO2dCQUNBLElBQUlNLHFCQUFxQixNQUFNO29CQUM3QixPQUFPQTtnQkFDVDtZQUNGO1FBQ0Y7UUFDQSwyQkFBMkI7UUFDM0IsSUFBSSxjQUFjTCxRQUFRQSxNQUFNTSxVQUFVO1lBQ3hDLE1BQU1DLDJCQUEyQixNQUFNYixjQUFjO2dCQUNuREM7Z0JBQ0FDLE9BQU9JLEtBQUtNLFFBQVE7Z0JBQ3BCVDtnQkFDQUMsWUFBWUM7WUFDZDtZQUNBLElBQUlRLDZCQUE2QixNQUFNO2dCQUNyQyxPQUFPQTtZQUNUO1FBQ0Y7SUFDRjtJQUVBLE9BQU87QUFDVCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -27,6 +27,7 @@
27
27
  "@lexical/selection": "0.12.2",
28
28
  "@lexical/table": "0.12.2",
29
29
  "@lexical/utils": "0.12.2",
30
+ "bson-objectid": "2.0.4",
30
31
  "classnames": "^2.3.2",
31
32
  "i18next": "22.5.1",
32
33
  "katex": "0.16.8",
@@ -42,8 +43,8 @@
42
43
  "devDependencies": {
43
44
  "@types/node": "20.6.2",
44
45
  "@types/react": "18.2.15",
45
- "payload": "2.0.0-beta.0",
46
- "@payloadcms/eslint-config": "0.0.1"
46
+ "@payloadcms/eslint-config": "0.0.1",
47
+ "payload": "2.0.0-beta.17"
47
48
  },
48
49
  "exports": null,
49
50
  "publishConfig": {
package/src/index.ts CHANGED
@@ -11,8 +11,9 @@ import { defaultEditorConfig, defaultSanitizedEditorConfig } from './field/lexic
11
11
  import { sanitizeEditorConfig } from './field/lexical/config/sanitize'
12
12
  import { cloneDeep } from './field/lexical/utils/cloneDeep'
13
13
  import { richTextRelationshipPromise } from './populate/richTextRelationshipPromise'
14
+ import { richTextValidateHOC } from './validate'
14
15
 
15
- export function createLexical({
16
+ export function lexicalEditor({
16
17
  userConfig,
17
18
  }: {
18
19
  userConfig?: (defaultEditorConfig: EditorConfig) => EditorConfig
@@ -56,6 +57,9 @@ export function createLexical({
56
57
 
57
58
  return null
58
59
  },
60
+ validate: richTextValidateHOC({
61
+ editorConfig: finalSanitizedEditorConfig,
62
+ }),
59
63
  }
60
64
  }
61
65
 
@@ -1,4 +0,0 @@
1
- @import 'payload/scss';
2
-
3
- .editor-upload {
4
- }
@@ -1,4 +0,0 @@
1
- import type { RichTextField, Validate } from 'payload/types';
2
- import type { AdapterProps } from '../types';
3
- export declare const richTextValidate: Validate<unknown, unknown, RichTextField<AdapterProps>>;
4
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/populate/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAWpF,CAAA"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "richTextValidate", {
6
- enumerable: true,
7
- get: function() {
8
- return richTextValidate;
9
- }
10
- });
11
- const _defaultValue = require("./defaultValue");
12
- const richTextValidate = (value, { required, t })=>{
13
- if (required) {
14
- const stringifiedDefaultValue = JSON.stringify(_defaultValue.defaultRichTextValue);
15
- if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true;
16
- return t('validation:required');
17
- }
18
- return true;
19
- };
20
-
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1bGF0ZS92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmljaFRleHRGaWVsZCwgVmFsaWRhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0ZXJQcm9wcyB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBkZWZhdWx0UmljaFRleHRWYWx1ZSB9IGZyb20gJy4vZGVmYXVsdFZhbHVlJ1xuXG5leHBvcnQgY29uc3QgcmljaFRleHRWYWxpZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmljaFRleHRGaWVsZDxBZGFwdGVyUHJvcHM+PiA9IChcbiAgdmFsdWUsXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAocmVxdWlyZWQpIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZERlZmF1bHRWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRSaWNoVGV4dFZhbHVlKVxuICAgIGlmICh2YWx1ZSAmJiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgIT09IHN0cmluZ2lmaWVkRGVmYXVsdFZhbHVlKSByZXR1cm4gdHJ1ZVxuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG4iXSwibmFtZXMiOlsicmljaFRleHRWYWxpZGF0ZSIsInZhbHVlIiwicmVxdWlyZWQiLCJ0Iiwic3RyaW5naWZpZWREZWZhdWx0VmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBTWFBOzs7ZUFBQUE7Ozs4QkFGd0I7QUFFOUIsTUFBTUEsbUJBQTRFLENBQ3ZGQyxPQUNBLEVBQUVDLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBRWYsSUFBSUQsVUFBVTtRQUNaLE1BQU1FLDBCQUEwQkMsS0FBS0MsU0FBUyxDQUFDQyxrQ0FBb0I7UUFDbkUsSUFBSU4sU0FBU0ksS0FBS0MsU0FBUyxDQUFDTCxXQUFXRyx5QkFBeUIsT0FBTztRQUN2RSxPQUFPRCxFQUFFO0lBQ1g7SUFFQSxPQUFPO0FBQ1QifQ==